[关闭]
@weidong 2017-10-10T12:15:38.000000Z 字数 3357 阅读 450

SQL练习题

题目


介绍

表结构介绍

属性名 数据类型 可否为空 含 义
Sid varchar (20) 学号(主键)
Sname varchar (20) 学生姓名
Ssex varchar (20) 学生性别
Sbirthday datetime 生日
Sclass varchar (20) 学生所在班级

属性名 数据类型 可否为空 含 义
Cid varchar (20) 课程号(主键)
Cname varchar (20) 课程名称
Tid varchar (20) 教工编号(外键)

属性名 数据类型 可否为空 含 义
Sid varchar (20) 学号(外键)
Cid varchar (20) 课程号(外键)
Sdegree Decimal(4,1) 成绩

属性名 数据类型 可否为空 含 义
Tid varchar (20) 教工编号(主键)
Tname varchar (20) 教工姓名
Tsex varchar(20) 教工性别
Tbirthday datetime 生日
Tprof varchar(20) 职称
Tdepart varchar(20) 教工所在部门

新建数据库

  1. CREATE DATABASE practise;

新建学生信息表student

  1. CREATE TABLE student (
  2. Sid VARCHAR (20) NOT NULL PRIMARY KEY,
  3. Ssname VARCHAR (20) NOT NULL,
  4. Ssex VARCHAR (20) NOT NULL,
  5. Sbirthday datetime,
  6. Sclass VARCHAR (20)
  7. );

新建立教师表

  1. CREATE TABLE teacher (
  2. Tid VARCHAR (20) NOT NULL PRIMARY KEY,
  3. Tname VARCHAR (20) NOT NULL,
  4. Tsex VARCHAR (20) NOT NULL,
  5. Tbirthday datetime,
  6. Tprof VARCHAR (20),
  7. Tdepart VARCHAR (20) NOT NULL
  8. );

新建立课程表course

  1. CREATE TABLE course (
  2. Cid VARCHAR (20) NOT NULL PRIMARY KEY,
  3. Cname VARCHAR (20) NOT NULL,
  4. tid VARCHAR (20) NOT NULL,
  5. FOREIGN KEY (tid) REFERENCES teacher (tid) -- 课程id和教师id绑定
  6. );

建立成绩表

  1. CREATE TABLE score (
  2. Sid VARCHAR (20) NOT NULL,
  3. FOREIGN KEY (sid) REFERENCES student (sid),-- 成绩id和学生id绑定
  4. Cid VARCHAR (20) NOT NULL,
  5. FOREIGN KEY (cid) REFERENCES course (cid),-- 和课程id绑定
  6. Sdegree DECIMAL
  7. );

添加学生信息

  1. insert into student values('101','彬彬','男','1994-09-01','1701');
  2. insert into student values('102','博闻','男','1995-10-08','1702');
  3. insert into student values('103','川崎','女','1994-9-08','1702');
  4. insert into student values('104','睿智','女','1994-3-26','1702');
  5. insert into student values('105','王丽','女','1996-07-24','1703');
  6. insert into student values('106','姜静','女','1996-05-24','1703');
  7. insert into student values('107','慧语','男','1996-03-21','1703');
  8. insert into student values('108','俊伟','女','1995-05-10','1704');
  9. insert into student values('109','曼语','男','1997-04-03','1704');

添加教师表

  1. insert into teacher values('11','若飞','男','1968-12-02','副教授','计算机系');
  2. insert into teacher values('22','若光','男','1969-02-12','讲师','土木工程系');
  3. insert into teacher values('33','若华','女','197-06-05','助教','计算机系');
  4. insert into teacher values('44','腾文','女','1977-07-14','助教','土木工程系');

添加课程表

  1. insert into course values('1','计算机导论','11');
  2. insert into course values('2','操作系统','22');
  3. insert into course values('3','数字电路','33');
  4. insert into course values('4','高等数学','44');

添加成绩表

  1. insert into score values('101','1','86');
  2. insert into score values('101','2','75');
  3. insert into score values('101','3','68');
  4. insert into score values('102','1','92');
  5. insert into score values('102','2','88');
  6. insert into score values('102','3','76');
  7. insert into score values('103','2','64');
  8. insert into score values('103','3','91');
  9. insert into score values('103','4','78');
  10. insert into score values('104','2','85');
  11. insert into score values('105','4','79');
  12. insert into score values('105','3','81');

1、 查询Student表中的Sname、Ssex和Sclass列。


2、 查询所有教师的所在部门,并过滤重复的值。


3、 查询Student表的所有记录。


4、 查询成绩表中成绩在50到75之间的所有记录。


5、 查询成绩表中成绩为85,86或88的记录。


6、 查询学生表中“1702”班或性别为“女”的同学记录。


7、 查询学生表所有数据,并以Sclass降序排序。


8、 查询“1702”班的学生人数。


10、查询成绩表中的最高分的学生学号和课程号。(子查询或limit取值)


11、查询每门课的平均成绩。(提示:group by分组)


12、查询1702班和1704班全体学生的记录。


13、查询存在有85分以上成绩的课程ID


14、查询所有选修“计算机导论”课程的“男”同学的成绩表。


15、查询和“大侠”同性别并同班的同学名字(子查询)


16、查询最高分同学的学生id、课程id和分数


17、查询“男”教师及其所上的课程。


18、以班号从大到小的顺序查询Student表中的全部记录。


19、查询Student表中不姓“川”的同学记录


20、查询所有未讲课的教师名字和所在部门


21、查询所有“女”教师和“女”同学的名字、性别和生日(组合查询)


22、查询分数大于70,小于90的分数ID


23、查询“1702”班学生的平均分。(可以使用子查询以及内连接查询)


24、查询选修了“3”课程的成绩高于“109”号同学的"3"课程成绩的所有同学的记录。


25、查询成绩高于学号为“106”、课程号为“1”的成绩的所有记录。


26、查询“若飞“教师任课的学生成绩。


27、查询成绩表中学一门以上课程的同学中分数为非本科最高分成绩的记录。


28、查询成绩比该课程平均成绩低的同学的成绩表。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注