教 案 用 纸
平顶山工业职业技术学院
平顶山工业职业技术学院
平顶山工业职业技术学院
平顶山工业职业技术学院
第二篇:实训一
网络数据库上机题目和上机指导
实训一:数据库、表的创建与管理
时间:4小时
目的:
熟练掌握用命令创建数据库、创建与管理表。
题目:
一、用下面命令创建含有一个数据文件和一个日志文件的数据库“姓名教学管理”。
1.创建数据库“姓名教学管理”
CREATE DATABASE 白老师教学管理
ON
PRIMARY ( NAME = JXGL,
FILENAME = 'F:\白老师教学.mdf',
SIZE = 3,
MAXSIZE = 5,
FILEGROWTH = 10%)
LOG ON
( NAME = JWGLL,
FILENAME = 'F:\白老师教学L.ldf',
SIZE = 1,
MAXSIZE = 3,
FILEGROWTH =10%)
创建之后,请找出该数据库文件保存在哪个文件夹中,共产生了几个文件,文件名是什么,尤其要注意文件的扩展名,哪一个是数据库文件,哪一个是日志文件。
接着打开数据库:
USE 姓名教学管理
二、在数据库“姓名教学管理”中创建若干个表。
1.创建教室表,表中使用主键。
CREATE TABLE 教室
(教室编号 char(6) primary key, 座位数 decimal(3), 有无多媒体 binary(1))
1
网络数据库上机题目和上机指导
2.创建班级表,表中使用计算列。
CREATE TABLE 班级
(班级编号 char(6) PRIMARY KEY, 班级名称 nchar(5) null,
班主任 NCHAR(4), 男生人数 TINYINT,
女生人数 TINYINT, 总人数 AS 男生人数+女生人数)
3.创建课程表,表中使用域完整性约束。
CREATE TABLE 课程
(课程编号 CHAR(8) PRIMARY KEY,
课程名称 VARCHAR(20) NOT NULL,
学分 DECIMAL(3,1) CONSTRAINT KC_XF CHECK (学分>=1 AND 学分<=8),
教材 VARCHAR(40) NULL, 教学大纲 VARCHAR(MAX), 任课教师 CHAR(8) NULL)
4.创建学生表,表中使用记录完整性约束、全局唯一标识符字段、参照性约束。
CREATE TABLE 学生(学号 char(8) PRIMARY KEY,
姓名 nchar(4),
性别 nchar(1) default '男' check (性别='男' or 性别='女'),
出生日期 datetime not null,
出生地 nvarchar(5),
入党日期 datetime,
check (入党日期>出生日期),
班级编号 CHAR(6) CONSTRAINT XS_BJBH FOREIGN KEY REFERENCES 班级(班级编号), PASSWORD UNIQUEIDENTIFIER CONSTRAINT 密码 DEFAULT NEWID())
关于REFERENCES的语法格式见P87。
5.创建排课表,表中使用参照性约束。
CREATE TABLE 排课
(班级编号 CHAR(6) NOT NULL CONSTRAINT PK_BJBH FOREIGN KEY(班级编号)
REFERENCES 班级(班级编号),
课程编号 char(8) NOT NULL CONSTRAINT 课号 FOREIGN KEY REFERENCES 课程(课程编号),
教室号 char(6) NOT NULL CONSTRAINT PK_JSBH REFERENCES 教室(教室编号),
学期 char(4), 起止周 char(5))
6.创建成绩表
create table 成绩(学号 char(8) NOT NULL CONSTRAINT CJ_XH REFERENCES 学生,
课程编号 CHAR(8) NOT NULL CONSTRAINT CJ_KCBH REFERENCES 课程(课程编号), 分数 decimal(4,1) check (分数>=0 and 分数<=100))
2
网络数据库上机题目和上机指导
三、用下面命令修改“姓名教务管理”数据库中的表结构。
1.为“教室”表增加“管理员”列、“联系电话”列
ALTER TABLE 教室 ADD 管理员 NCHAR(4) NULL,联系电话 CHAR(8)
2.删除排课表中的“起止周”列。
ALTER TABLE 排课 DROP COLUMN 起止周
3.为排课表增加“开始周”、“星期”、“节次”、“结束周”。
ALTER TABLE 排课 ADD 开始周 TINYINT,星期 tinyint,节次 char(4),
结束周 tinyint,constraint pk1 CHECK (结束周>=开始周)
4.删除“课程”表中的“学分”约束。
ALTER TABLE 课程 DROP CONSTRAINT KC_XF
注意:如果在创建表时未命名约束,则不便用该命令删除。
5.在“学生”表中增加“已修学分”字段、“组长”字段,并引用本表中的字段“学号”作为参照约束。
ALTER TABLE 学生 ADD 已修学分 DECIMAL(4,1) DEFAULT 0,
组长 char(8) NULL CONSTRAINT XS_ZZ REFERENCES 学生(学号)
注意:“组长”列必须和“学号”列类型相同。
6. 为“学生”表增加“班级编号”参照约束。
ALTER TABLE 学生 ADD
CONSTRAINT XS_BJ FOREIGN KEY (班级编号) REFERENCES 班级(班级编号)
7.把“课程”表中“教学大纲”字段数据类型修改为NVARCHAR(max)。
ALTER TABLE 课程 ALTER COLUMN 教学大纲 NVARCHAR(max)
该命令也可修改NULL或NOT NULL,不能省略数据类型。
四、作业
8. 为“学生”表增加“民族”字段
ALTER TABLE 学生 ADD 民族 nchar(6) NOT null
3
网络数据库上机题目和上机指导
9. 为排课表中的参照约束“课号”增加级联删除和级联更新。
ALTER TABLE 排课 DROP CONSTRAINT 课号
ALTER TABLE 排课 ADD CONSTRAINT 课号 FOREIGN KEY(课程编号) REFERENCES 课程(课程编号) ON DELETE CASCADE ON UPDATE CASCADE
修改字段名
SP_RENAME '排课.星期',周次,'COLUMN'
4