MySQL 查询数据

MySQL 数据库使用SQL SELECT语句来查询数据。

你可以通过 mysql> 命令提示窗口中在数据库中查询数据

语法

以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

建一张表用于我们测试:

create table student
(
ids int auto_increment primary key,
name varchar(20),
chinese float,
english float,
math float
);

插入如下数据:

insert into student values(1,'李明',89,78,90); 
insert into student values(2,'乘风',67,89,56); 
insert into student values(3,'南宫流云',87,78,77); 
insert into student values(4,'南宫皓月',88,98,90); 
insert into student values(5,'南宫紫月',82,84,67); 
insert into student values(6,'萧炎',55,85,45); 
insert into student values(7,'林动',75,65,30);

1、指定查询列

mysql> select id,name,chinese from student;

2、去重查询

用distinct关键字, 如果结果中有完全相同的行,就去除重复行

mysql> select distinct math from student;

3、select语句中进行运算

查询学生总成绩

mysql> select id,name,(chinese+math+english) as 总成绩 from student;

查询所有姓南宫人的总成绩。

mysql> select id,name,(chinese+math+english) as 总成绩 from student
-> where name like '南宫%';

4、where查询过滤

在where子句中有很多经常使用的运算符,如下:

(1)查询所有英语成绩大于90的同学成绩:

mysql> select id,name,english as 英语 from student
-> where english > 90;

(2)查询所有总分大于200分的同学

注意:where子句后不能用别名 

因为数据库中先执行where子句,再执行select子句。

mysql> select id,name,(chinese+math+english) as 总成绩 from student
-> where (chinese+math+english) > 200;

(3)查询姓林并且id大于6的学生信息

mysql> select id,name from student
-> where name like '林%' and id >6;

(4)查询英语成绩大于语文成绩的同学

mysql> select id,name from student
-> where english > chinese;

(5)查询所有总分大于200并且数学成绩小于语文成绩的学生信息

mysql> select id,name from student
-> where (chinese+math+english) >200 and math < chinese;

(6)查询所有英语成绩在80到90分的同学 

方法一:

mysql> select id,name,english from student
-> where english >=80 and english <= 90;

方法二:

注意:between是闭区间

mysql> select id,name,english from student
-> where english between 80 and 90;

(7)查询数学成绩为89,90,91的同学信息 

or:

mysql> select id,name,math from student
-> where math=89 or math=90 or math=91;

in:

mysql> select id,name,math from student
-> where math in(89,90,91);

5、order by排序语句

asc升序(默认),desc降序 

order by 子句应该位于select语句的结尾 

eg:对数学成绩进行排序 

默认升序:

mysql> select id,name,math from student
-> order by math;

降序:

mysql> select id,name,math from student
-> order by math desc;

对总分进行从高到低输出

mysql> select (chinese+math+english) as 总成绩 from student
-> order by 总成绩 desc;

6、常用函数

(1)count() 
count(*)统计null值 count(列名)排除null值 

eg :统计当前student表中一共有多少学生

mysql> select count(*) as 人数 from student;

(2)sum() 

eg:统计一个班数学总成绩

mysql> select sum(math) as 数学总成绩 from student;

(3)平均值:avg()

求数学的平均值

mysql> select sum(math)/count(*) as 数学平均值 from student;

mysql> select avg(math) as 数学平均值 from student;

7、group by 子句的使用

假设有一个职工信息表, 

EMP:表名 ;部门:depton;sal:工资;job:工作 

我们设想: 

(1)显示每个部门的平均工资和最高工资 

select deptno,avg(sal),max(sal) from EMP group by deptno; 

(2)显示每个部门的每种岗位的平均工资和最低工资 

select avg(sal),min(sal),job, deptno from EMP group by deptno, job; 

补充:首先按照deptno分组,然后各组再按照job进行分组。 

(3)显示平均工资低于2000的部门和它的平均工资 

解题思路: 

1. 统计各个部门的平均工资 

select avg(sal) from EMP group by deptno 

2. having往往和group by配合使用,对group by结果进行过滤 

select avg(sal) as myavg from EMP group by deptno having myavg<2000;

MySQL的select详细介绍的更多相关文章

  1. MySQL Cluster 配置详细介绍

    在上篇文章已经详细说明了MySQL Cluster搭建与测试,现在来说说详细的配置参数.在MySQL Cluster 环境的配置文件 config.ini 里面,每一类节点都有两个(或以上)的相应配置 ...

  2. mysql分区功能详细介绍,以及实例

    一,什么是数据库分区 前段时间写过一篇关于mysql分表的 的文章,下面来说一下什么是数据库分区,以mysql为例.mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下 ...

  3. Spotlight on Mysql详细介绍

    Spotlight on Mysql详细介绍   by:授客 QQ:1033553122     1. 版本 2. 使用介绍 1) 主页 会话面板 MySQL面板 INNODB面板 存储面板 主机面板 ...

  4. 推荐收藏 —— MySQL视图详细介绍

    前言:  在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会 ...

  5. 超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

    超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了.本文主 ...

  6. MySQL视图详细介绍

    前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详 ...

  7. 一.Select 函数详细介绍【转】

    转自:http://www.cnblogs.com/hjslovewcl/archive/2011/03/16/2314330.html Select在Socket编程中还是比较重要的,可是对于初学S ...

  8. 多图文,详细介绍mysql各个集群方案

    目录 多图文,详细介绍mysql各个集群方案 一,mysql原厂出品 二,mysql第三方优化 三,依托硬件配合 四,其它 多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移 ...

  9. 详细介绍Mysql各种存储引擎的特性以及如何选择存储引擎

    最近业务上有要求,要实现类似oracle 的dblink   linux版本 Server version: 5.6.28-0ubuntu0.14.04.1 (Ubuntu) 修改配置文件 /etc/ ...

随机推荐

  1. LG2766 最长不下降子序列问题 最大流 网络流24题

    问题描述 LG2766 题解 \(\mathrm{Subtask 1}\) 一个求最长不下降子序列的问题,发现\(n \le 500\),直接\(O(n^2)\)暴力DP即可. \(\mathrm{S ...

  2. oracle sql语言模糊查询

    '^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合.'$' 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n ...

  3. 论文阅读笔记六十五:Enhanced Deep Residual Networks for Single Image Super-Resolution(CVPR2017)

    论文原址:https://arxiv.org/abs/1707.02921 代码: https://github.com/LimBee/NTIRE2017 摘要 以DNN进行超分辨的研究比较流行,其中 ...

  4. Jmeter压力并发测试

    一.http://jmeter.apache.org/ 二.点击Download Releases选择版本下载 三.下载解压: 将解压后的文档存盘-下载logkit-2.0.jar(汉化包)放到jme ...

  5. react服务端渲染框架

    客户端渲染 加载一个空的html页面,然后请求一个打包的js文件,然后再客户端执行这个js文件 动态生成html内容然后插入到DOM元素上,在源代码查询中也只能看到空的html文档 没有任何其他内容 ...

  6. [RN] React Native 使用 Redux 比较详细和深刻的教程

    React Native 使用 Redux 比较详细和深刻的教程 React Native 使用 Redux https://www.jianshu.com/p/06fc18cef56a http:/ ...

  7. 11/10 <priorityQueue> 215 347

    215. Kth Largest Element in an Array 快速排序法,选择一个数,比这个数大的交换到左边,比这个数小的交换到右边. class Solution { public in ...

  8. 前端Vue项目——初始化及导航栏

    一.项目初始化 创建webpack模板项目如下所示: MacBook-Pro:PycharmProjects hqs$ vue init webpack luffy_project ? Project ...

  9. Linux性能优化实战学习笔记:第四十五讲

    一.上节回顾 专栏更新至今,四大基础模块的最后一个模块——网络篇,我们就已经学完了.很开心你还没有掉队,仍然在积极学习思考和实践操作,热情地留言和互动.还有不少同学分享了在实际生产环境中,碰到各种性能 ...

  10. [LeetCode] 560. Subarray Sum Equals K 子数组和为K

    Given an array of integers and an integer k, you need to find the total number of continuous subarra ...