1、建立数据库Student_DB_姓名首字母缩写(如姓名为张三的同学建立的数据库为Student_DB_ZS),并在此数据库中用命令方式创建数据表(注意表中列的相关约束): 学生表:Student(Sno, Sname, Ssex, Sage, Sdept); 课程表:Course(Cno, Cname, Cpno, Ccredit); 学生选课表:SC(Sno, Cno) 学生表的逻辑设计:
课程表的逻辑设计:
选课表的逻辑设计:
说明:选课表的主码:(Sno, Cno)
2、用SQL语言完成如下的操作(请给出SQL语句及相应执行结果的截图): (1)向SC表中增加成绩(Grade)列,其数据类型为短整型。 (2)将学生表中年龄的数据类型改为整型。 (3)为Student表的Sname增加取值唯一的约束。 (4)用界面化方式向三个表中填充数据(参照课本P79页)(此题可不用给出结果图)。 (5) 索引有什么作用;SQL SERVER中索引的种类。 作用:索引主要用来提升数据检索速度,在数据量很大的时候有用。索引相当于图书馆的图书目录,能够帮你快速定位到需要查询的内容。 种类:普通索引、唯一索引、主键索引和全文索引。
(6)对Student表按学号降序建唯一索引。 (7)对Student表按学生姓名列建聚集索引,观察能否建立成功,如未成功请分析原因。 不能创建聚集索引的原因是我们在Student表中定义了Sno作为主键,主键就是加了唯一性约束的聚集索引,又因为同一张表中不能有多个聚集索引的存在,所以不能继续创建聚集索引。 (8)删除第(6)题建立的索引。 3、用SQL语句完成如下对三个表的查询(请给出SQL语句及执行结果的截图): (1)查询所有课程的课程号和课程名。 (2)查询全体学生的记录。 (3)查询学生表中的所有的系。
(4)查询全体学生的姓名、出生年份和所在的院系,并为出生年份和所在院系两列分别起别名为sbirth,department,并将系名全部转换成小写字母。 (5)求数学系学生的学号和姓名。 (6)查询所有考试成绩在80分以下的学生学号、课程号。 (7)查询学分在2~7之间的课程信息。 (8)查询课程名为DB_Design课程的课程号和学分。 (9)查询没有先修课的课程号、课程名及学分。 (10)查询信息系学生性别为男且年龄小于20岁的学生姓名。 (11)查询18到22岁的女学生信息,并按年龄升序排序。 (12)查询专业为“CS”、“IS”的学生信息。 (13)查询选修了3号课程的学生的学号及成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。 (14)查询课程的总数。 (15)查询选修2号课程的学生平均成绩和最高成绩,并分别为平均成绩和最高成绩起别名为AVG,MAX。 (16)查询每个学生的选课门数,要求输出学生学号及选课的门数。 (17)查询选修了2门及以上课程的学生学号。 (18)检索平均成绩超过80分的学生学号和平均成绩。 |