数据库系统概论实验报告
通信工程
152210704110
周祯楠
一、数据定义
实验内容与要求
1. 实验目的与要求
掌握使用查询分析器进行数据定义的方法
2. 实验内容
(1)数据库的定义
(2)表和视图的定义
(3)索引的定义
3. 实验步骤
(1)创建和使用数据库
(2)创建和使用表、视图
(3)索引
创建和使用表、视图
1. 创建数据库,命名为学号后三位
2. 在个人学号数据库中创建如下的三张表,并输入记录内容:
教师表(JS)
列名
Tno
Tname
Tsex
Birthday
说明
教师号(主键) 字符串,长度为 7
字符串,长度为 10
姓名
字符串,长度为 2
日期时间型
数据类型
性别
出生日期
Tname
字符串,长度为 20
字符串,长度为 18
Sid
Dept
Birthday
1971-3-20 电信 551021197103203121
1963-7-13 数理 32010119630713318X
1973-9-15 外语 461031197309153829
1960-2-18 社科 560102196002185623
1977-10-11 数理 230103197710118632
1962-4-23 电信 320104196204237516
1968-8-27 社科 321102196808277214
1980-7-10 电信 570102198007103452
1981-3-2
外语 110102198103024125
数据类型
字符串,长度为 10
字符串,长度为 20
短整型
字符串,长度为 10
整数
property
考试
说明
课程名
学分
授课时数
所在部门
身份证号
课程性质
课程号(主键)
Dept
Sid
JS
Tsex
Tno
T001 刘薇
女
T002 张骐劲 男
T003 李子文 女
T004 江海防 女
T005 李铁
男
T006 吴天一 男
T007 赵志华 男
T008 钱进
男
T009 孙星南 女
课程表(Course)
列名
Cno
Cname
Credit
property
Hours
Course
Cno
01010101
01010102
01010103
01010104
01010105
考查
授课表(SK):(Tno,Cno)主键,Tno 外键,Cno 外键
列名
Tno
Cno
Hours
SK
Tno
T001
T002
T009
T004
T005
T006
T003
Cname
Credit
大学英语 1
4
普通物理 1
4
高等数学 1
6
2
形势政策
计算机基础 4
Cno
01010105
01010102
01010101
01010104
01010103
01010105
01010101
Hours
64
64
64
32
96
64
64
考试
考试
考查
教师号
课程号
说明
授课时数
数据类型
字符串,长度为 7
字符串,长度为 10
整数
· 创建 JS(教师)表:
create table JS110
( Tno char(7),
Tname char(10),
Tsex char(2),
Birthday date,
Dept char(20),
Sid char(18)
);
INSERT
INTO JS110
VALUES('T001','刘薇','女','1971-3-20','电信','551021197103203121')
INSERT
INTO JS110
VALUES('T002','张骐劲','男','1963-7-13','数理','32010119630713318X')
INSERT
INTO JS110
VALUES('T003','李子文','女','1973-9-15','外语','461031197309153829')
INSERT
INTO JS110
VALUES('T004','江海防','女','1960-2-18','社科','560102196002185623')
INSERT
INTO JS110
VALUES('T005','李铁','男','1977-10-11','数理','230103197710118632')
INSERT
INTO JS110
VALUES('T006','吴天一','男','1962-4-23','电信','320104196204237516')
INSERT
INTO JS110
VALUES('T007','赵志华','男','1968-8-27','社科','321102196808277214')
INSERT
INTO JS110
VALUES('T008','钱进','男','1980-7-10','电信','570102198007103452')
INSERT
INTO JS110
VALUES('T009','孙星南','女','1981-3-2','外语','110102198103024125')
· 创建 Course 课程表
create table Course110
( Cno char(10),
Cname char(20),
Credit smallint,
property char(10),
Hours int
);
insert into Course110
values('01010101','大学英语 1','4','考试',null);
insert into Course110
values('01010102','普通物理 1','4','考试',null);
insert into Course110
values('01010103','高等数学 1','6','考试',null);
insert into Course110
values('01010104','形势政策','2','考查',null);
insert into Course110
values('01010105','计算机基础','4','考查',null);
select * from Course110
· 创建 SK 授课表
create table SK110
( Tno char(7),
Cno char(10),
Hours int
);
insert into SK110
values('T001','01010105','64');
insert into SK110
values('T002','01010102','64');
insert into SK110
values('T009','01010101','64');
insert into SK110
values('T004','01010104','32');
insert into SK110
values('T006','01010105','64');
insert into SK110
values('T003','01010101','64');
select * from SK110
运行结果:
JS 表
Course 表
SK 表
3. 修改表结构
1) 在授课表中添加一个授课类别,列名为 Type,类型为 char(4)
AITER TABLE SK110
ADD Type char(4)
2) 将授课表中的 Hours 的类型改为 Smallint
ALTER TABLE SK110
ATTER COLUMN Hours Smallint
3) 删除课程表的 Hours 列
ALTER TABLE Course110
DROP COLUMN Hours
4. 完成以下功能:
1) 定义表 students,其中字段有:SNO CHAR(10) 、 SNAME CHAR(8) 、 AGE
NUMERIC(3,0)、 SEX
求 SNO 和 SNAME 不为空,SNO 为主键。
(备注:第二次做实验的时候把表名以学号后四位命名了)
CHAR(2)、 BPLACE CHAR(20)、Polity CHAR(20)。要
以下是 SQL 语句和运行结果的截图:
2) 在教师表 JS 中增加住址列,字段名为 ADDR,类型为 CHAR,长度 50。
ALTER TABLE JS110
ADD Addr char(50)
运行结果:
3) 根据 students 表,建立一个只包含学号、姓名、年龄的女学生视图,表名为 GRIL。
CREATE VIEW GRIL
AS
SELECT Sno,Sname,Age
FROM Student4110
WHERE Sex=’女’
4) 建立成绩表,表名为 score,其中字段有:SNO CHAR(10),CNO CHAR(10),
scoreNUMERIC(6,0),并输入部分记录,内容自定
5. 定义索引
1) 在数据库中的新建一个数据表,名为 js1,结构与 js 表相同。为 js1 表创建一
个唯一聚集索引,索引字段为 Sid,索引名为 I_js_sid。
create table JS1
(Tno char(7) primary key,
Tname char(10),
Tsex char(2),
Birthday date,
Dept char(20),
Sid char(18));
create unique clustered index I_js_sid on JS1(Sid);