当前位置:文档之家› 2015网络数据库实验指导书

2015网络数据库实验指导书

《网络数据库实验》指导书计算机科学与技术专业佛山科学技术学院计算机系2015年3月目录实验一数据库和数据库表操作 (1)实验二数据库单表查询 (5)实验三数据库多表连接查询 (9)实验四数据库嵌套查询和组合查询 (11)实验五数据的更新 (17)实验六 T-SQL语言 (19)实验七视图与索引 (24)实验八存储过程的实现 (27)实验九触发器的实现 (32)实验十数据库的安全性 (36)实验十一备份、还原与导入、导出 (37)实验十二数据库应用系统设计 (38)参考资料1.王珊萨师煊.《数据库系统概论》(第四版).北京:高等教育出版社,20062.方风波. 网络数据库项目教程. 北京:电子工业出版社,20123.吴德胜. SQL Server入门经典. 北京:机械工业出版社,2013公共邮箱:fosucomputer@邮箱密码:computer学生-课程数据库xscj中用到的四个表文件如下:1.学生表(Student表)Student表(学生表)结构Student表(学生表)记录2.课程表(Course表)Course表(课程表)结构Course表(课程表)记录3.成绩表(SC表)SC表(成绩表)结构SC表(成绩表)记录4.系表(Department表)Department表(系表)结构Department表(系表)结构实验一数据库和数据库表操作一、实验目的和要求1.掌握利用查询窗口和对象资源管理器进行数据库及基本表的定义、删除与修改;2.掌握索引的建立与删除的方法。

二、实验内容与步骤(一)建立数据库【SY1-01】通过企业管理器或查询分析器建立学生-课程数据库xskc。

CREATE DATABASE xscjON PRIMARY(NAME='xscj_data',FILENAME='E:\sjk2015\xscj.mdf')LOG ON(NAME='xscj_log',FILENAME='E:\sjk2015\xscj.ldf')【注】先在E:盘上建立一个文件夹(例如:E:\sjk2015),数据库文件保存到自建的文件夹中。

(二)基本表的定义、修改与删除1.定义基本表利用查询窗口和对象资源管理器创建基本表,并输入数据。

【SY1-02】建立一个学生表Student,它由学号Sno、姓名Sname、性别Ssex、出生日期Sbirth、年龄Sage、系代号Dno五个属性组成。

要求“学号”为主键,“姓名”不能为空,“性别”默认值为“男”。

CREATE TABLE Student( Sno char(10)PRIMARY KEY,Sname Varchar(8)NOT NULL,Ssex char(2)DEFAULT'男'CHECK(Ssex in('男','女')),Sbirth smalldatetime NULL,Sage int null,Dno char(4)NULL)【SY1-03】建立课程表Course,它由课程号Cno、课程名Cname、先修课Cpno、Ccredit学分四个属性组成。

要求“课程号”为主键,“课程名”属性不能为空。

CREATE TABLE Department( Dno char(4)PRIMARY KEY,Dname Varchar(20)NOT NULL,College Varchar(20))【SY1-04】建立学生成绩表SC,包含学号Sno、课程号Cno、成绩Grade三个字段。

要求建立主键及与student、sc表联接的外键,并创建检查约束(Grade>=0 and Grade<=100)。

CREATE TABLE SC(Sno char(10)NOT NULL,Cno char(6)NOT NULL,Grade int CHECK(Grade BETWEEN 0 AND 100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))【SY1-05】建立系表Department,包含系代号Dno、系名称Dname、所属学院College三个字段。

CREATE TABLE Department( Dno char(4)PRIMARY KEY,Dname Varchar(20)NOT NULL,College Varchar(20))2 修改基本表利用查询窗口和对象资源管理器修改基本表。

【SY1-06】向基本表Student中增加“入学时间”属性列,其属性名为S_entrance,数据类型为日期型。

ALTER TABLE Student ADD S_entrance DATETIME;【SY1-07】将Student表中Sage(年龄)的数据类型改为SMALLINT型。

ALTER TABLE Student ALTER COLUMN Sage SMALLINT;【SY1-08】增加课程名称必须取唯一值的约束条件。

ALTER TABLE Course ADD UNIQUE(Cname);【SY1-09】将Student表的Dno列允许空值的属性更改为不允许为空。

ALTER TABLE Student ALTER COLUMN Dno CHAR(4) NOT NULL;【SY1-10】删除Student表中的S_entrance列。

ALTER TABLE Student DROP COLUMN S_entrance;3 删除基本表【SY1-11】删除Student表。

DROP TABLE Student;说明:此表删除后,请立即将其建立起来,以便后面的例子使用。

(三)索引的建立和删除1 建立索引【SY1-12】在基本表Student的Sname(姓名)列上建立一个聚簇索引,而且Student中的物理记录将按照Sname值的升序存放。

其语句为:CREATE CLUSTERED INDEX Stu_Sname ON Student(Sname);【SY1-13】分别为学生-课程数据库中的Student,Course,SC三个表建立索引。

其中Student表按Sno(学号)升序建唯一索引,Course表按Cno(课程号)升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。

其语句为:CREATE UNIQUE INDEX Stu_Sno ON Student(Sno);CREATE UNIQUE INDEX Cou_Cno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);2 删除索引【SY1-14】删除Student表的Stu_Sname索引。

DROP INDEX Student.Stu_Sname;建立数据库文件CREATE DATABASE xscjON PRIMARY(NAME='xscj_data',FILENAME='E:\sjk2015\xscj.mdf')LOG ON(NAME='xscj_log',FILENAME='E:\sjk2015\xscj.ldf')建立表结构USE xscjCREATE TABLE Student( Sno char(10)PRIMARY KEY,Sname Varchar(8)NOT NULL,Ssex char(2)DEFAULT'男'CHECK(Ssex in('男','女')),Sbirth smalldatetime NULL,Sage int null,Dno char(4)NOT NULL)CREATE TABLE Department( Dno char(4)PRIMARY KEY,Dname Varchar(20)NOT NULL,College Varchar(20))CREATE TABLE Course(Cno char(6)PRIMARY KEY,Cname varchar(20)NOT NULL,Cpno char(6)Null,Ccredit smallint)CREATE TABLE SC(Sno char(10)NOT NULL,Cno char(6)NOT NULL,Grade int CHECK(Grade BETWEEN 0 AND 100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))输入表记录INSERT INTO Student VALUES('2012314101','李勇','男','1995-09-13',null,'DX01')INSERT INTO Student VALUES('2012314102','刘晨','女','1996-07-28',null,'DX01') INSERT INTO Student VALUES('2012314201','欧阳原野','男','1998-11-02',null,'DX01') INSERT INTO Student VALUES('2012314202','周小李','女','1997-01-15',null,'DX01') INSERT INTO Student VALUES('2012394101','郑涛','男','1996-05-14',null,'DX01') INSERT INTO Student VALUES('2012394201','吴小莉','女','1997-11-05',null,'DX01') INSERT INTO Student VALUES('2012374120','王敏','女','1999-07-16',null,'DX02') INSERT INTO Student VALUES('2012214230','欧大海','男','1996-04-04',null,'LX01')UPDATE Student SET Sage=year(getdate())-year(Sbirth)INSERT INTO Department VALUES('DX01','计算机系','电信学院')INSERT INTO Department VALUES('DX02','电子系','电信学院')INSERT INTO Department VALUES('LX01','数学系','理学院')INSERT INTO Department VALUES('LX02','物理系','理学院')INSERT INTO Course VALUES('1','数据库','5',4)INSERT INTO Course VALUES('2','数学',NULL,2)INSERT INTO Course VALUES('3','信息系统','1',4)INSERT INTO Course VALUES('4','操作系统','6',3)INSERT INTO Course VALUES('5','数据结构','7',4)INSERT INTO Course VALUES('6','数据处理',NULL,2)INSERT INTO Course VALUES('7','C语言',6,4)INSERT INTO Course VALUES('8','DB_Design',1,2)INSERT INTO SC VALUES('2012314101','1',92)INSERT INTO SC VALUES('2012314101','2',59)INSERT INTO SC VALUES('2012314101','3',88)INSERT INTO SC VALUES('2012314102','1',78)INSERT INTO SC VALUES('2012314102','2',90)INSERT INTO SC VALUES('2012314102','3',80)INSERT INTO SC VALUES('2012314201','1',90)INSERT INTO SC VALUES('2012314202','1',80)INSERT INTO SC VALUES('2012394101','1',85)INSERT INTO SC VALUES('2012394201','1',88)INSERT INTO SC VALUES('2012374120','1',45)INSERT INTO SC VALUES('2012214230','1',100)INSERT INTO SC VALUES('2012314101','4',NULL)实验二数据库单表查询1 无条件查询【SY2-01】查询全体学生的详细信息。

相关主题