--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 between 20 and 23;
--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 not in ('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 is null;
-- 用逻辑元符AND 和 OR
select sname,sdept,sage from student where sage between 18 and 20;
select sname,sdept,sage from student where sage>=18 and 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<20 and 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 >90
order by grade desc;
-- 查询所有学生的学号、姓名、所在系、以及他们的年龄,结果按所在系升序排序,同一个系的学生按所在系升序,同一系的学生降序排序
select sno,sname ,sdept,sage
from student
order by Sdept asc,sage desc;
-- 查询选修了3号课程的学生的学号及其cehngji
select * from sc where cno='3' order by grade desc;
SQL语句简单查询实例
最新推荐文章于 2021-08-07 16:42:16 发布