实验二 数据库表操作
信息工程系 班级: 学号: 姓名:
实验目的
掌握图形工具交互式创建数据库表的方式
掌握使用T-SQL命令创建、修改、删除数据库表的方法
实验内容
1. 使用T-SQL命令创建数据库“教学管理”,其他选项均采用默认设置。
2. 在数据库教学管理中,使用T-SQL命令创建如下数据库表。教师表:Teacher,学生表:
Student,课程表:Course,选课表SC,授课表:TC。各表结构如表2.1-2.5所示。
表2.1 教师表Teacher
字段名 TNO TNAME SEX AGE PROF SAL COMM DEPT 中文描述 教师号 教师姓名 性别 年龄 职称 工资 岗位津贴 系名 数据类型 CHAR(2) CHAR(8) CHAR(2) TINYINT CHAR(10) SMALLINT SMALLINT VARCHAR(20) 是否可NULL NOT NULL NOT NULL NULL NULL NULL NULL NULL NULL 主键 取值只能为男或女 大于零 取值范围为助教、讲师、副教授及教授 大于零 默认值2000 大于等于零 约束说明 表2.2 学生表Student
字段名 SNO SNAME SEX DEPT CLASS 中文描述 学号 姓名 性别 系名 班级 数据类型 CHAR(8) CHAR(8) CHAR(2) DATETIME VARCHAR(20) VARCHAR(10) 是否可NULL NOT NULL NOT NULL NULL NULL NULL NULL 主键 取值只能为男或女 约束说明 BIRTHDAY 出生日期 表2.3 课程表Course
字段名 CNO CNAME CREDIT 中文描述 课程号 课程名 学分 数据类型 CHAR(5) VARCHAR(30) TINYINT TINYINT 是否可NULL NOT NULL NOT NULL NULL NULL 主键 约束说明 SEMESTER 学期 表2.4 选课表SC
字段名 ID SNO CNO SCORE 中文描述 编号 学号 课程号 成绩 数据类型 INT CHAR(8) CHAR(5) TINYINT 是否可NULL NOT NULL NOT NULL NOT NULL NULL 约束说明 标识列,主键 引用Student表的外键 引用Course表的外键 取值0-100之间 表2.5 授课表TC
字段名 ID TNO CNO 中文描述 编号 教师号 课程号 数据类型 INT CHAR(2) CHAR(5) 是否可NULL NOT NULL NOT NULL NOT NULL 约束说明 标识列
3. 使用T-SQL命令修改数据库教学管理里的数据表。 ① 向已有数据表Student中添加学籍列。列定义如下: 列名:NATIVE
数据类型及长度:CHAR(40) 是否可NULL:NOT NULL ② 修改已有数据表Student中的定义。 列名:NATIVE
数据类型及长度:CHAR(10) 是否可NULL:NULL ③ 删除数据库表Student中的NATIVE列。 ④ 为已有数据表Course中的CREDIT列添加约束CK_CREDIT,保证学分大于零。 ⑤ 为已有数据表Teacher中的COMM列添加默认值为0,约束名为DF_COMM。 ⑥ 为已有数据表TC中的 TNO列添加引用Teacher表的外键约束FK_TC_TNO,CNO列
添加引用Course表的外键约束FK_TC_CNO。 ⑦ 删除数据表Teacher中的约束DF_COMM。
4. 删除数据表TC。
思考
1. 一个数据库中的数据表可以有相同的表名吗?同一数据表中,列名称可以同名吗? 2. “USE 教学管理”命令是什么含义?与此语句功能相同的图形工具操作是什么? 3. 有如下定义:
CREATE TABLE TEST ( ITEM1 CHAR(10),
) ① ② ③ 4.
ITEM2 NCHAR(10), ITEM3 NCHAR(20), ITEM4 NVARCHAR(20)
ITEM1与ITEM2所占磁盘空间格式多少字节?是否相同? ITEM3与ITEM4所占磁盘空间格式多少字节?是否相同?
如果在ITEM1对应的数据项中输入字符串“123456701”可以吗?为什么? 教学管理数据库中的表删除有顺序吗?如果有,删除顺序应该是什么?
注意
1. 请将本实验的T-SQL命令保存在脚本文件中,提交脚本文件,文件名为“学号 姓名.sql”。 2. 各部分T-SQL命令前请以注释方式标明题号。
3. 思考部分以注释方式将答案标明,写在脚本文件最后。