一般格式
select [*|distinct] 目标列表达式 [,目标列表达式]… from 表名 [,表名] |
(select 语句)[as] 别名 [where 条件表达式]
[group by 列名1 [having 条件表达式]]
[order by 列名2 [asc|desc]];
1)消除值重复的行 (仅不显示重复的行)
select distinct name from student;
limit
limit 0,1
以0号列开始显示1列
=limit 1
limit 1,1
以1号列开始显示1列,即显示第2列
offset设置开始位
limit 1 offset 2 ; = limit 2,1;
以2号列开始显示1列,即显示第3例
ORDER BY子句
用户可以用ORDER BY字句对结果集按照一个或多个数据列的 升序(ASC)或降序(DESC)排列,默认升序
select * from student order by name desc;
where常用的比较运算符
select * from student where 2018-30 <birth<2018-20
查询姓名为aa的学生信息
select * from stu where name= ‘aa’;
查询所有女生(非男生)的学员信息
select * from stu where sex <> ’boy’;
Between and
使用between运算来显示一个区间内的值,
查询在1995-07-13到1995-07-15之间的学生信息。
select * from student where birthday between ‘1995-07-13’and ‘1995-07-15’;
IN
查询班级编号是1或者是2的学员信息
select * from student where cid in(1,2);
查询班级编号不是1或不是2的学员信息
select * from student where cid NOT in(1,2);
like 使用like运算选择类似的的值
选择条件可以包含字符或数字:
%代表零个或多个字符(任意个字符)
_代表一个字符
select * from student where name LIKE ‘张%’;
GROUP BY +分组依据 (+限制语句having count(*)>2);
将结果集按照某一列或多列的值进行分组,值相等的为一组。
分组后,聚集函数count(*)将作用于每一个组。
having count(*)…筛选count(*)值;
聚集函数
查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
order by avg(score)asc,cno desc;(前面排序条件无法完成,则用后面)
聚合函数可以和where cno连用
select avg(score) from sc where cno in (select cno from course where cname='J2SE');