Sql语句实例

设教学数据库Education有三个关系:
学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学号,名字,年龄,性别,系
学习关系SC(SNO,CNO,GRADE);学号,课程号,成绩
课程关系C(CNO,CNAME,CDEPT,TNAME)课程编号,课程名,课程部门老师名
查询问题:
1:查所有年龄在20岁以下的学生姓名及年龄。

Select sname,age from s where age<20
2:查考试成绩有不及格的学生的学号

Select s.sno from s join sc on s.sno=sc.sno where grade<60
3:查所年龄在20至23岁之间的学生姓名、系别及年龄。

select sname,age,sdept from s where age BETWEEN 20 AND 23
4:查计算机系、数学系、信息系的学生姓名、性别。可以用in

select sname,sex from s where sdept=’计算机’ or sdept=’数学’ or sdept=’软工’
5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别

Select sname,sex from s where not (sdept=’计算机’) and  not (sdept=’数学’) and not (sdept=’建筑’)
6:查所有姓“刘”的学生的姓名、学号和性别。

Select sname,sno,sex from s where sname LIKE ‘刘%’
7:查姓“上官”且全名为3个汉字的学生姓名。

Select sname from s where sname LIKE ‘上官_’
8:查所有不姓“张”的学生的姓名。

Select sname from s where sname NOT LIKE ‘张%’
9:查DB_Design课程的课程号。

select cno from c WHERE cname=’db_design’

10:查缺考的学生的学号和课程号。

select sno,cno from sc where grade=’缺考’
11:查年龄为空值的学生的学号和姓名。(看)

Select sno,sname from s where age is null
12:查计算机系20岁以下的学生的学号和姓名。

Select sno,sname from s where sdept=’计算机’ AND age <20
13:查计算机系、数学系、信息系的学生姓名、性别。Where in

Select sex,sname from s where sdept=’计算机’ or sdept=’软工’ or sdept=’数学’
14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。

select sc.sno,grade from sc join c on sc.cno=c.cno where c.cname=’c2′ GROUP BY grade desc
15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。

select * from s ORDER BY sdept,age DESC
16:查询学生总人数。

SELECT count(sno) from s
17:查询选修了课程的学生人数。   Distinct 去重

select count(DISTINCT(sno)) from sc
18:计算选修了C1课程的学生平均成绩。

select avg(grade) from sc JOIN c on sc.cno=c.cno where c.cname=’c1′
19:查询学习C3课程的学生最高分数。字段为int类型

select max(grade) from sc JOIN c on sc.cno=c.cno where c.cname=’c3′
20:查询各个课程号与相应的选课人数。

select COUNT(sno) from sc group by cno
21:查询计算机系选修了3门以上课程的学生的学号。(没做完) having 在结果集中删选

#SELECT s.sno from s,sc where sdept=’1502′ and s.sno = sc.sno  HAVING COUNT(cno)>3

22:求基本表S中男同学的每一年龄组(超过50人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。

#SELECT COUNT(sage)  from s where ssex=’男’ GROUP BY sage HAVING COUNT(sage)>50 ORDER BY count(sage),sage desc

23:查询每个学生及其选修课程的情况。

select sname,cname,grade from sc join s on sc.sno=s.sno join c on sc.cno=c.cno
24:查询选修了C2课程且成绩在90分以上的所有学生。

select sname from sc join s on sc.sno=s.sno join c on sc.cno=c.cno where grade >90 AND cname=’c2′
25:查询每个学生选修的课程名及其成绩。

select sname,cname,grade from sc join s on sc.sno=s.sno join c on sc.cno=c.cno
26:统计每一年龄选修课程的学生人数。

27:查询选修了C2课程的学生姓名。

select sname from sc join s on sc.sno=s.sno join c on sc.cno=c.cno WHERE cname=’c2′
28:查询与“张三”在同一个系学习的学生学号、姓名和系别。

select sname,sno,sdept from s WHERE sdept=(SELECT sdept from s where sname=’张三’)
29:查询选修课程名为“数据库”的学生学号和姓名。

select sname,s.sno from s JOIN sc on s.sno=sc.sno join c on sc.cno=c.cno where cname=’数据库’
33:查询所有未选修C2课程的学生姓名。

select sname from sc join s on sc.sno=s.sno  where sc.sno not in (select sc.sno from sc join c on sc.cno=c.cno where c.cname in (‘c2’))
35:查询选修了全部课程的学生姓名。

36:查询所学课程包含学生S3所学课程的学生学号

select sc.sno from sc where sc.cno in(select sc.cno from sc join s on sc.sno=s.sno where sname=’赵六’)

 

#查DB_Design课程的课程号。
#ESCAPE 自定义转义符 也可以使用\来转义
#SELECT cno,cname from c where cname like ‘DB_Design’ ESCAPE ”

#查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。

#SELECT sno,grade from sc where cno =1 ORDER BY grade desc

#查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。
#SELECT * from s ORDER BY sdept asc ,sage desc
#查询选修了课程的学生人数。
#SELECT count(DISTINCT(sno)) from sc 
#查询各个课程号与相应的选课人数。
#SELECT COUNT(sno),cno  from sc GROUP BY cno
#查询计算机系选修了3门以上课程的学生的学号。  HAVING 在结果集中筛选
#SELECT s.sno from s,sc where sdept=’1502′ and s.sno = sc.sno  HAVING COUNT(cno)>3

#求基本表S中男同学的每一年龄组(超过50人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。
#SELECT COUNT(sage)  from s where ssex=’男’ GROUP BY sage HAVING COUNT(sage)>50 ORDER BY count(sage),sage desc
#查询每个学生及其选修课程的情况。
#SELECT * from s,sc where s.sno = sc.sno
#查询选修了C2课程且成绩在90分以上的所有学生。(第二种形式的两表联查)
#SELECT * FROM sc,c where sc.cno = c.cno and grade>80 and cname=’php’
#查询每个学生选修的课程名及其成绩。(第二种形式的三表联查)
SELECT sname,cname,grade from s,sc,c where sc.cno = c.cno and s.sno = sc.sno

    原文作者:SQL
    原文地址: https://blog.csdn.net/alashan007/article/details/78214919
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞