【MySQL】数据库 -- select详解

select是数据库中很重要的语句;

语法:

select [distinct] *| {column1,column2,...} from tbl_name;

创建一张学生表来测试:


插入数据:


可以指定查询哪些列,比如:查询id,姓名,数学成绩:


查询所有:


distinct 如果结果中有完全相同的行,就去除重复行:


在select语句中可以使用表达式对查询的列进行运算

select语句中可以使用as起别名

select column as 别名 from 表;

实例:

1. 在所有学生分数上加上10分(查询所有学生的总分再加10分)


2.将所有行g的学生成绩增加60%(查询总分再增加60%):




select的where子句

使用where子句,进行查询过滤。

在where子句中经常使用的运算符:


查询姓y的学生的成绩:


查询英语成绩大于80分的同学:


查询总分大于250分的所有同学:


查询姓a并且成id大于5的学生:


查询英语成绩大于语文成绩的同学:


查询总分大于200分并且数学成绩小于语文成绩的姓l的学生:


查询英语分数在90 - 99 之间的同学:


查询数学成绩为88,99的同学:


select的order by 子句

order by子句排序查询结果:

select column1,column2,... from table order by column asc|desc,...;
order by 指定排序的列,排序的列可以使表中的列名,也可以是select语句后指定的别名
asc升序(默认),desc降序

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

实例:

对数学成绩进行排序:


对总分进行排序后,按从高到低输出:


对c的学生按成绩进行从低到高排序:




count

count(列名)返回某一列,行的总数:

select count(*)|count(列名) from tbl_name where condition

实例:

统计一个班级共有多少学生:


统计数学成绩大于等于88的学生有多少人:


统计总分大于250的人数有多少


说明:count(*)会统计一共的记录数,count(列名)会排除为null的情况!



sum

sum函数返回满足where条件的行的和

select sum(列名) {,sum(列名)...} from tbl_name [where condition]

实例:

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


统计一个班级语文,英语,数学各科的总成绩:


统计一个班级数学成绩平均分:


注意:sum仅对数值起作用,否则结果无意义。



avg

agv函数返回满足where条件的一列的平均值:

select avg(列名) [,avg(列名),...] from tbl_name [where condition];

实例:

求一个班级的数学平均分:


max/min

max/min函数返回满足where条件的一列的最大/最小值:

select max(列名) from tbl_name [where condition]

实例:

求班级最高和最低分:




group by子句的使用

group by 子句对列进行分组

select column1, column2, .. from table group by column;
为了讲清楚分组,创建一个雇员信息表(来自oracle 9i的经典测试表)
1. EMP员工表
2. DEPT部门表
3. SALGRADE工资等级表
示例:

如何显示每个部门的平均工资和最高工资:


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


说明:首先按照deptno分组,然后各组再按照job进行分组。
显示平均工资低于2000的部门和它的平均工资
解题思路:
1. 统计各个部门的平均工资
select avg(sal) from EMP group by deptno

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


以上便是对数据库select的一些总结,select语句在数据库中占有非常重要的地位,希望这次总结对大家有帮助!




猜你喜欢

转载自blog.csdn.net/yaotengjian/article/details/80384774