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语句后指定的别名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的经典测试表)如何显示每个部门的平均工资和最高工资:
显示每个部门的每种岗位的平均工资和最低工资:
说明:首先按照deptno分组,然后各组再按照job进行分组。
显示平均工资低于2000的部门和它的平均工资
解题思路:
1. 统计各个部门的平均工资
select avg(sal) from EMP group by deptno
2. having往往和group by配合使用,对group by结果进行过滤
以上便是对数据库select的一些总结,select语句在数据库中占有非常重要的地位,希望这次总结对大家有帮助!