1) 用SQL语句来创建数据库XSCJ。
2) 在XSCJ数据库中用SQL语句来创建student表,表1-1所示student表结构。 表1-1 学生表student的结构
列名 学号 姓名 性别 年龄 籍贯 所在系 数据类型 Char Char Char char char Char 长度 9 20 2 2 20 20 是否允许为空值 默认值 N N N N N 说明 主键 取值唯一 3) 同理建课程表KC,表的结构见表1-3所示,表的内容见表1-4所示。
表1-3 课程表KC的结构 列名 课程号 课程名 教师 开课学期 学时 学分 数据类型 Char Char Char Tinyint Tinyint Tinyint 长度 3 20 10 1 2 1 是否允许为空值 默认值 N N N N 60 说明 主键 只能1-6 4) 同理建成绩表SC,表的结构见表1-5所示,表的内容见表1-6所示。
表1-5 成绩表SC的结构
列名 学号 课程号 成绩 数据类型 Char Char Tinyint 长度 6 3 3 是否允许为空值 默认值 N N 说明 外键 外键 0-100之间 5) 对KC表增加一列,属性如下
KC增加一列 列名 先修课 数据类型 Char 长度 3 是否允许为空值 默认值 N 说明 外键 先修课是kc表课程号的外键 6) 将学生表student的籍贯属性删掉
7) 将学生表student的年龄数据类型Char改为Smallint长度为2 删除学生表student的年龄唯一的约束条件。 (1) 程序:CREATE DATABASE xscj
(2)
3
5
6
4
7
8
结果如下图所示,约束条件中少了年龄取值唯一这一栏。
1、复制生成xscj数据库的代码并运行。
2、2、基于SQL语句对xscj表中的student表、course表和SC表实现以下查询。 ①查询全体学生的学号、姓名、年龄
②.查询所有姓刘的CS系学生的学号、姓名、出生年份 ③查询先行课不为空的所有课程号、课程名、先行课
④查男女同学的最小年龄和平均年龄(查询列:性别、最小年龄、平均年龄) ⑤查询选修了两门课程的学生学号、姓名
⑥查询课程的间接先行课(查询列:课程号、课程名、间接先行课程名)
⑦查年龄在15到30岁之间的学生情况并按年龄递减排序(查询列:学号、姓名、选修课程名、成绩)
⑧查询选修了课程号2的学生姓名(分别用连接和嵌套查询实现) ⑨查询选了先行课为空课程的学生姓名(分别用连接和嵌套查询实现)
⑩查询每个学生超过他选修课程平均分的课程号(查询列:学号、姓名、课程号、成绩)