实验一、数据库的建立和管理一、实验目的1、掌握数据库的基础知识,了解数据库的物理组织与逻辑组成情况;2、熟练掌握使用SQL Server 2000企业管理器创建和维护数据库;熟悉使用SQL语句创建和管理数据库;3、熟练掌握数据库的备份和恢复。
二、实验内容与要求1、使用“向导”创建数据库testdb;要求:用“向导”创建数据库testdb(数据库参数见下表);表1、数据库ST的参数参数参数值数据库名称testdb数据文件位置D:\sql\ testdb _Data.mdf数据文件初始大小5MB数据文件最大值10MB数据文件增长量原来的10%事务日志文件位置D:\sql\ testdb _Data.ldf事务日志文件初始大小1MB事务日志文件最大值10MB事务日志文件增长量1MB步骤:1)选择向导为创建数据库向导2)指定位置和数据文件大小3)命名事物日志文件4)完成结果查看2、利用“企业管理器”创建数据库student,查看和修改数据库student属性;要求:利用“企业管理器”创建一个名为“student”数据库:(1)包含一个数据文件,逻辑文件名“student_data”,磁盘文件名“D:\sql\ student_data.mdf ”,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB;(2)包含一个事务日志文件,逻辑文件名为“student _log”,磁盘文件名“D:\sql\student_log.ldf ”,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB;(3)对数据库作如下修改:将数据文件的最大容量增加为15M,增长值改为“原来的10%”,将事务日志文件的最大容量增加为15MB,递增值改为2MB;3、删除testdb数据库;要求:利用“企业管理器”创建名为“testdb”的数据库:4、分离student数据库,再重新附加student数据库。
要求:将已经创建好的student数据库(包括数据文件和日志文件)拷贝到移动硬盘上,并删除“D:\sql\”路径下的student数据库。
然后再次将student数据库附加到数据库中可以继续操作。
三、实验提示与步骤见上四、思考与拓展训练使用SQL 语句在查询分析器中完成以下操作:创建数据库student2(参数同student 数据库相同),修改数据库student2 的属性,再删除数据库student2。
创建数据库student2CREATE DATABASE student2ON(NAME='student_data',FILENAME='E:\3S\Database\text1\student2.mdf',SIZE=5,MAXSIZE=10,FILEGROWTH=10%)LOG ON(NAME=student2_log,FILENAME='E:\3S\Database\text1\student2.ldf',SIZE=1,MAXSIZE=10,FILEGROWTH=1)GO创建结果显示:选择创建的数据库并查看当前数据库的一些基本信息USE[student2]GOexec sp_helpdb/*查看一下当前的数据库的一些基本信息*/执行修改命令,并再次查看信息,显示信息已经被修改USE[student2]GOALTER DATABASE student2modify file(name=student_data,size=8mb)exec sp_helpdb/*查看一下当前的数据库的一些基本信息*/执行删除操作DROP DATABASE student2实验二、数据定义一、实验目的1、掌握数据库表与视图的基础知识;2、熟练掌握在企业管理器中创建、查看、修改、删除表与视图的操作方法;3、熟练掌握在查询分析器中创建、查看、修改、删除表与视图的操作方法;二、实验内容与要求1、使用“企业管理器”执行创建基本表、修改基本表和删除基本表的操作;要求:(1)创建基本表。
在已有的student数据库中建立4个表,其结构如下所示,并要求为各属性选择合适的数据类型。
在S表中定义学号为主码,约束性别只能在男和女之间选一个,年龄不能小于0;在C表中定义课程号为主码,约束学分大于等于1;在SC表中定义(学号,课程号)为主码,定义学号和课程号分别为SC的外码,约束成绩大于等于0;在D表中定义系别号为主码。
学生关系S(例3.1):学号姓名性别年龄系别名Sno Sname Ssex Sage Sdept课程关系C (例3.2):课程号课程名学分授课教师Cno Cname Ccredit Cteacher课程关系SC (例3.3):学号课程号成绩Sno Cno Score系关系D:系别号系别名系主任Dno Dname Dmn(2)修改基本表的结构。
对student数据库中的基本表执行下列修改操作:①在表S上增加“入学时间”属性列,其数据类型为日期型;②在表S中将年龄的数据类型改为半字长整数;③在表S中将原年龄属性的约束条件age>0改为age>=18,并重新命名约束名为A_U④在表S中删除增加的“入学时间”属性列。
(3)删除基本表。
在student数据库中删除D表。
2、使用“查询分析器”的Transcat-SQL语句执行创建基本表、修改基本表和删除基本表的操作;要求:同实验内容1要求相同。
创建数据库CREATE DATABASE STUDENT1GOUSE STUDENT1建立学生表“S”CREATE TABLE S(SNO CHAR(5) PRIMARY KEY,SN V ARCHAR(8) NOT NULL,SEX CHAR(2) NOT NULL CHECK (SEX IN ('男','女')),AGE INT NOT NULL CHECK (AGE>0),DEPT V ARCHAR (20),CONSTRAINT SN_U UNIQUE(SN))建立课程表“C”CREATE TABLE C(CNO CHAR(5) NOT NULL PRIMARY KEY,CN V ARCHAR(20),CT INT CHECK(CT>=1))建立选修关系表“SC”CREATE TABLE SC(SNO CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES S(SNO),CNO CHAR(5) NOT NULL ,SCORE NUMERIC(3,0),CONSTRAINT S_C_P PRIMARY KEY(SNO,CNO),CONSTRAINT C_F FOREIGN KEY(CNO) REFERENCES C(CNO))建立系关系表“D”CREATE TABLE D(DNO CHAR(5) PRIMARY KEY,DNAME V ARCHAR(20),DNM V ARCHAR(20))向S表中增加“入学时间”列,其数据类型为日期型ALTER TABLE S ADD SCOME DATETIME将年龄的数据类型改为半字长整型ALTER TABLE S ALTER COLUMN Sage SMALLINT在表S中将原年龄属性的约束条件age>0改为age>=18,并重新命名约束名为A_U首先执行删除原有的约束条件ALTER TABLE S DROP CONSTRAINT CK_S_1接着定义新的约束条件,并重命名ALTER TABLE S ADD CONSTRAINT A_U CHECK(Sage>18)在表S中删除增加的“入学时间”属性列ALTER TABLE S DROP COLUMN SCOME删除基本表。
在student数据库中删除D表。
DROP TABLE D3、使用“企业管理器”和“查询分析器”的Transcat-SQL语句两种工具分别执行创建视图、删除视图的操作。
要求:(1)使用“企业管理器”将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图view并查看视图。
(2)使用“查询分析器”的Transcat-SQL语句”将S,C,SC表中学生的学号,姓名,性别,年龄,课程号,课程名,学分,成绩定义为视图view_G并查看视图。
CREATE VIEW VIEW_GASSELECT o,ame,S.Sno,S.Sname,SC.ScoreFROM S,C,SC(3)使用“查询分析器”的Transcat-SQL语句删除视图view_G。
DROP VIEW VIEW_G三、实验提示与步骤四、思考与拓展训练1、使用“企业管理器”,在testdb数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,作者);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)。
要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。
建立图书、读者和借阅3个表的表级约束:每个表的主码约束;借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的惟一性约束;实现读者性别只能是“男”或“女”的Check(检查)约束。
2、思考定义了约束条件和没有定义约束条件的区别。
约束条件有如下种类和作用,如果没有进行定义约束条件的话,则无法保证表中存储数据的完整性1)实体完整性约束--就是常说的主键约束,用来区分两条不同的记录。
2)参照完整性--就是常说的外键约束,用来保证数据的整合性3)域完整性约束--就是常说的check约束实验三、数据更新一、实验目的1、掌握利用企业管理器中对表数据插入、修改和删除等更新操作。
2、掌握利用查询分析器中对表数据插入、修改和删除等更新操作;二、实验内容与要求1.使用“企业管理器”和“查询分析器”的SQL 语句插入数据。
要求:(1)使用“查询分析器”将下列数据插入到student 数据库S 基本表中:步骤INSERT INTO S VALUES('20501','李涛','男','19','信息')INSERT INTO S VALUES('20502','王林','女','18','计算机')INSERT INTO S VALUES('20503','陈高','女','21','自动化')INSERT INTO S VALUES('20504','张杰','男','17','自动化')INSERT INTO S VALUES('20505','吴小丽','女','19','信息')INSERT INTO S VALUES('20506','徐敏敏','女','20','计算机')(2)使用“企业管理器”将下列数据插入到student 数据库 C 和SC 基本表中:结果:(3)使用“查询分析器”在student数据库的SC基本表中插入某个学生的选课信息(如:学号为“20505”,课程号为“C0004”,成绩待定);结果:INSERT INTO SC(Sno,Cno)VALUES('20505','C0004')(4)使用“查询分析器”在student 数据库的S、C、SC 基本表中执行如下语句插入数据,请记录执行结果,并分析原因。