--2020.3.18-- 单表查询use student;select sno from student;-- gorup by 将查询结果按指定字段的取值分组-- having 晒寻满足指定条件的组-- order by 按指定的字段的值,以升序或降序排列查询结果-- 查询全体学生的姓名、出生年份-- SELECT Sname, 2020-Sage Birthday FROM Student;-- 在每个学生姓名后面显示字符串2018-- SELECT Sname ,'2018' FROM student;-- 查询全体学生的人数-- SELECT count(Sname) 学生 FROM Student;-- 取消重复行-- 在,使用一个即可-- SELECT DISTINCT Sno from Student;-- 查询满足条件的子句(where)-- 使用谓词-- BETWEEN...AND.. NOT BETWEEN...AND...select sname,sdept,sage from student where Sage between20and23;--select sname,sdept,sage from student where Sage between 20 and 18;--IN<值表>,not in<值表> select sno,sname,sdept from student where Sdept in('CS','MA','IS');select sno,sname,sdept from student where Sdept notin('CS','IS');-- [NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']-- <匹配串>:指定匹配模板,可以是笃定字符串或含通配符的字符串-- 当匹配模板为固定字符串时,可以用=运算符取代like谓词。!= 《NOT LIKE》-- 通配符-- %()任意长度(长度可以为0)的字符串-- _(下划线)代表任意单个字符-- 当用户要查询的字符串本身就含有% 或 _时,要使用ESCAPE‘<换码字符>’对通配符进行转义-- 查询所有姓刘的同学的学号,姓名和系列select sno,sname,sdept from student where sname like'刘%';select*from student where sname like'欧阳__';select*from Student where sname like'欧阳__';-- 在课程表中查询‘Db_DESIGN’ 这门课的课程号以及学分-- 使用通配符select cno,cname from course where cname like'DB\_DESIGN'escape'\' ;
-- 查询以‘DB_’开头,且倒数第三个字符以i的课程的课程号以及学分。
select cno,ccredit from course where cname like 'DB\_%i__' escape '\';-- 使用谓词-- 涉及到空值用 is null ,is not null-- 查询选修了课程,但还没有得到成绩的学生的学号和课程号select sno,cno from sc where grade isnull;-- 用逻辑元符AND 和 OR select sname,sdept,sage from student where sage between18and20;select sname,sdept,sage from student where sage>=18and sage<=20;-- 查询计算机系,年龄20岁以下-- 注意别丢条件,要细心select sno,sname,sdept from student where sdept='CS'and sage<20;select cname,cno,cpno,ccredit from Course where Cname like'数%';select sno,sname from student where sage<20and ssex='女'and sdept='CS';select*from Course where cpno='7'or Cpno='5';select*from Course where Cpno in('5','7');-- 使用ORDER BY子句-- 可以按一个或多个属性列排序-- 升序:ASC ; 降序:DESC;缺省值为升序-- 查询所有成绩选课学生的学号和课程号,结果按成绩降序排序select sno,cno
from sc
where grade >90orderby grade desc;-- 查询所有学生的学号、姓名、所在系、以及他们的年龄,结果按所在系升序排序,同一个系的学生按所在系升序,同一系的学生降序排序select sno,sname ,sdept,sage
from student
orderby Sdept asc,sage desc;-- 查询选修了3号课程的学生的学号及其cehngjiselect*from sc where cno='3'orderby grade desc;