表中每个列的类型可以是基本数据类型,也可以是用 户预先定义好的域名。完整性约束主要有三种子句: 主键子句( PRIMARY KEY)、外键子句( FOREIGN KEY)和检查子句( CHECK)。每个基本表的刨建定 义中包含了若干列的定义和若千个完整性约束。下面 举例说明。 例91:对于教学数据库中的四个关系: 教师信息表(工号,姓名,性别,职称,所属院系 邮箱,参加工作年月,基本工资,岗位津贴,照片) ·选课表(课程代码,课程名称,开课院系,学分,工 号,时间,教室,课程类型) 学生信息表(学号,姓名,性别,院系,出生年月 户籍地,是否党员,当前绩点(GPA),备注) 成绩表(学号,课程代码,成绩) 16 计算机基础教研室
计算机基础教研室 • 表中每个列的类型可以是基本数据类型,也可以是用 户预先定义好的域名。完整性约束主要有三种子句: 主键子句(PRIMARY KEY)、外键子句(FOREIGN KEY)和检查子句(CHECK)。每个基本表的创建定 义中包含了若干列的定义和若干个完整性约束。下面 举例说明。 • 例9.1:对于教学数据库中的四个关系: • 教师信息表(工号,姓名,性别,职称,所属院系, 邮箱,参加工作年月,基本工资,岗位津贴,照片) • 选课表(课程代码,课程名称,开课院系,学分,工 号,时间,教室,课程类型) • 学生信息表(学号,姓名,性别,院系,出生年月, 户籍地,是否党员,当前绩点(GPA),备注) • 成绩表(学号,课程代码,成绩) 16
基本表教师信息表可用下列语句创建: CREATE TABLE教师信息表 (工号 CHAR(4) NOT NULL 姓名 CHAR(10) NOT NULL 性别 CHAR(2), 职称 CHAR(6), 所属院系 CHAR(20), 邮箱 CHAR(36) 参加工作年月DATE, 基本工资 REAL, 岗位津贴 REAL 照片 CHAR(255), PRIMARY KEY(工号) 算机基础教研蜜
计算机基础教研室 • 基本表教师信息表可用下列语句创建: • CREATE TABLE 教师信息表 • (工号 CHAR(4) NOT NULL, • 姓名 CHAR(10) NOT NULL, • 性别 CHAR(2), • 职称 CHAR(6), • 所属院系 CHAR(20), • 邮箱 CHAR(36), • 参加工作年月 DATE, • 基本工资 REAL, • 岗位津贴 REAL, • 照片 CHAR(255), • PRIMARY KEY(工号)); 17
SQL允许列值是空值,但当要求某一列的值不允许空 值时就应在定义该列时写上 NOT NULL”,就像这里 的工号和姓名后有 NOT NULL字样。但在此处,由 于主键子句( PRIMARY KEY)已定义工号是主键 因此列工号的定义中 NOT NULL”是冗余的,可以不 写。但为了提高可读性,写上也不妨。 18 算机基础教研蜜
计算机基础教研室 • SQL允许列值是空值,但当要求某一列的值不允许空 值时就应在定义该列时写上“NOT NULL”,就像这里 的工号和姓名后有“NOT NULL”字样。但在此处,由 于主键子句(PRIMARY KEY)已定义工号是主键, 因此列工号的定义中“NOT NULL”是冗余的,可以不 写。但为了提高可读性,写上也不妨。 18
对于基本表选课表、学生信息表和成绩表可以用下列 语句创建 CREATE TABLE选课表 (课程代码 CHAR(12) NOT NULL, ·课程名称 CHAR(10) NOT NULL ·开课院系 CHAR(20), ·学分 SMALLINT 工号 CHAR(4) 时间 DATE 教室 CHAR(12), 课程类型 CHAR(10) PRIMARY KEY(课程代码), OREIGN KEY(工号) REFERENCES教师信息表(工 19 计算机基础教研室
计算机基础教研室 • 对于基本表选课表、学生信息表和成绩表可以用下列 语句创建: • CREATE TABLE 选课表 • (课程代码 CHAR(12) NOT NULL, • 课程名称 CHAR(10) NOT NULL, • 开课院系 CHAR(20), • 学分 SMALLINT • 工号 CHAR(4), • 时间 DATE, • 教室 CHAR(12), • 课程类型 CHAR(10), • PRIMARY KEY(课程代码), • FOREIGN KEY(工号) REFERENCES 教师信息表(工 号) ); 19
在基本表“选课表”的定义中说明了主键是课程代码 外键是工号,并指出外键工号和基本表“教师信息表” 中工号列对应,此处对应的列名恰好同名,实际上也 可以不同名,只要指出其对应性即可。外键体现了关 系数据库的参照完整性。 算机基础教研蜜
计算机基础教研室 • 在基本表“选课表”的定义中说明了主键是课程代码, 外键是工号,并指出外键工号和基本表“教师信息表” 中工号列对应,此处对应的列名恰好同名,实际上也 可以不同名,只要指出其对应性即可。外键体现了关 系数据库的参照完整性。 20