实验1,数据定义范文

实验1,数据定义范文
实验1,数据定义范文

实验1、数据定义

1.1实验目的

熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。

1.2实验内容

●用企业管理器创建数据库University_Mis

●使用CREATE语句创建基本表。

●更改基本表的定义: 增加列,删除列,修改列的数据类型。

●创建表的升、降序索引。

●删除基本表的约束、基本表的索引或基本表。

1.3实验步骤

(1)用企业管理器创建数据库University_Mis

(2)在查询分析器中用SQL语句创建关系数据库基本表:

学生表Students(Sno,Sname, Semail,Scredit,Sroom);

教师表Teachers(Tno,Tname,Temail,Tsalary);

课程表Courses(Cno,Cname,Ccredit);

成绩表Reports(Sno,Tno,Cno, Score);

其中:Sno、Tno、Cno分别是表Students、表Teachers、表Courses的主键,具有唯一性约束,Scredit具有约束“大于等于0”;Reports中的Sno,Tno,Cno 是外键,它们共同组成Reports的主键。

(3)更改表Students:增加属性Ssex(类型是CHAR,长度为2),取消Scredit

“大于等于0”约束。把表Courses中的属性Cname的数据类型改成长度为30。

(4)删除表Students的一个属性Sroom。

(5)删除表Reports。

(6)为Courses表创建按Cno降序排列的索引。

(7)为Students表创建按Sno升序排列的索引。

(8)创建表Students的按Sname升序排列的唯一性索引。

(9)删除Students表Sno的升序索引。

实验2、SQL的数据查询

2.1实验目的

熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。

2.2实验内容

实验内容主要是对数据库进行查询操作,包括如下四类查询方式:

(1)单表查询

●查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。

●使用DISTINCT保留字消除重复行。

●对查询结果排序和分组。

●集合分组使用集函数进行各项统计。

(2)连接查询

●笛卡儿连接和等值连接。

●自连接。

●外连接

●复合条件连接。

●多表连接。

(3)嵌套查询

●通过实验验证对子查询的两个限制条件。

●体会相关子查询和不相关子查询的不同。

●考察四类谓词的用法,包括:

第一类,IN、NOT IN;

第二类,带有比较运算符的子查询;

第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;

第四类,带有EXISTS谓词的子查询,实现“所有”等情况(如王宏

的“所有”课程,“所有”女生选修的课程)

(4)集合运算

●使用保留字UNION进行集合或运算。

●采用逻辑运算符AND或OR来实现集合交和减运算。

2.3实验步骤

以University_Mis数据库为例,该数据库中有四张如实验1,其中Score 是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。

在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。在表Reports中保存学生的选课记录和考试成绩。

请先输入如下符合条件的元组后,再对数据库进行有关的查询操作:

图1.1、Students表

图1.2、Teachers表

图1.3、Courses表

图1.4、Reports表

(1)查询性别为“男”的所有学生的名称并按学号升序排列。

(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。考试成绩>=60 否则=0(3)查询学分是3或4的课程的名称。

(4)查询所有课程名称中含有“算法”的课程编号。

(5)查询所有选课记录的课程号(不重复显示)。

(6)统计所有老师的平均工资。

(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。

(8)统计各个课程的选课人数和平均成绩。

(9)查询至少选修了三门课程的学生编号和姓名。

(10)查询编号S26的学生所选的全部课程的课程名和成绩。

(11)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。(12)求出选择了同一个课程的学生对。

(13)求出至少被两名学生选修的课程编号。

(14)查询选修了编号S26的学生所选的某个课程的学生编号。

(15)查询学生的基本信息及选修课程编号和成绩。

(16)查询学号S52的学生的姓名和选修的课程名称及成绩。

(17)查询和学号S52的学生同性别的所有学生资料。

(18)查询所有选课的学生的详细信息。

(19)查询没有学生选的课程的编号和名称。

(20)查询选修了课程名为C++的学生学号和姓名。

(21)找出选修课程UML或者课程C++的学生学号和姓名。

(22)找出和课程UML或课程C++的学分一样课程名称。

(23)查询所有选修编号C01的课程的学生的姓名。

(24)查询选修了所有课程的学生姓名。

(25)利用集合查询方式,查询选修课程C++或选择课程JA V A的学生的编号、姓名和积分。

(26)实现集合交运算,查询既选修课程C++又选修课程JA V A的学生的编号、姓名和积分。

(27)实现集合减运算,查询选修课程C++而没有选修课程JA V A的学生的编号。

实验3、数据更新

3.1实验目的

熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、更新、删除操作。

3.2实验内容

●在本实验中,主要内容是如何用SQL语句对数据进行更新。

●使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插

入到数据库中两种方式。

●使用SELECT INTO语句,产生一个新表并插入数据。

●使用UPDATE语句可以修改指定表中满足WHERE子句条件的元组,有三

种修改的方式:修改某一个元组的值;修改多个元组的值;带子查询地修

改语句。

●使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;

带子查询地删除语句。

3.3实验步骤

在数据库University_Mis上按下列要求进行数据更新。

(1)使用SQL语句向Students表中插入元组(Sno:S78; Sname:李迪;

Semail:LD@https://www.360docs.net/doc/1e2105690.html,; Scredit:0;Ssex:男)。

(2)对每个课程,求学生的选课人数和学生的平均成绩,并把结果存入数据库。

使用SELECT INTO 和INSERT INTO 两种方法实现。

(3)在Students表中使用SQL语句将姓名为李迪的学生的学号改为S70。

(4)在Teachers表中使用SQL语句将所有教师的工资加500元。

(5)将姓名为刘华的学生的课程“数据库原理及其应用”的成绩加上6分。

(6)在Students表中使用SQL语句删除姓名为李迪的学生信息。

(7)删除所有选修课程JA V A的选修课记录。

(8)对Courses表做删去学分<=4的元组操作,讨论该操作所受到的约束。

实验4、SQL的视图

4.1实验目的

熟悉SQL支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和取消视图。

4.2实验内容

(1)定义常见的视图形式,包括:

●行列子集视图

●WITH CHECK OPTION的视图

●基于多个基表的视图

●基于视图的视图

●带表达式的视图

●分组视图

(2)通过实验考察WITH CHECK OPTION这一语句在视图定义后产生的影响,包括对修改操作、删除操作、插入操作的影响。

(3)讨论视图的数据更新情况,对子行列视图进行数据更新。

(4)使用DROP语句删除一个视图,由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除。同样的原因,删除基表时,由

该基表导出的所有视图定义都必须显式删除。

4.3实验步骤

(1)创建一个行列子集视图CS_View,给出选课成绩合格的学生的编号、教师编号、所选课程号和该课程成绩。

(2)创建基于多个基本表的视图SCT_View,这个视图由学生姓名和他所选修的课程名及讲授该课程的教师姓名构成。

(3)创建带表达式的视图EXP_View,由学生姓名及所选课程名和所有课程成绩都比原来多5分这几个属性组成。

(4)创建分组视图Group_View,将学生的学号及他的平均成绩定义为一个视图。

(5)创建一个基于视图的视图,基于(1)中建立的视图,定义一个包括学生编号、学生所选课程数目和平均成绩的视图VV_View。

(6)查询所有选修课程“数据库原理及其应用”的学生姓名。

(7)插入元组(S52,T02,C02,59)到视图CS_View中。若是在视图的定义中存在WITH CHECK OPTION字句对插入操作由什么影响。

(8)将视图CS_View(包括定义WITH CHECK OPTION)中,所有课程编号为C01的课程的成绩都减去5分。这个操作数据库是否会正确执行,

为什么?如果加上5分(原来95分以上的不变)呢?

(9)在视图CS_View(包括定义WITH CHECK OPTION)删除编号S03学生的记录,会产生什么结果?

(10)取消视图SCT_View和视图CS_View

实验5、数据控制

5.1 实验目的

熟悉SQL的数据控制功能,能够使用SQL语句来向用户授予和收回权限。5.2 实验内容

(1)使用GRANT语句来对用户授权,对单个用户或多个用户授权,或使用保

留字PUBLIC对所有用户授权。对不同的操作对象包括数据库、视图、基

本表等进行不同权限的授权。

(2)使用WITH GRANT OPTION字句授予用户传播该权限的权利。

(3)当在授权时发生循环授权,考察DBS能否发现这个错误。如果不能,结

合取消权限操作,查看DBS对循环授权的控制。

(4)使用REVOKE子句收回授权,取消授权的级联反应。

5.3 实验步骤

用企业管理器在数据库University_Mis中建立三个用户USER1、USER2和USER3,他们在数据库中的角色是PUBLIC。请按以下要求,分别以管理员身份或这三个用户的身份登陆到数据库中,进行操作,并记录操作结果。

(1)授予所有用户对表Courses的查询权限。以USER1的身份登陆查询分析

器,用SQL语言查询Courses和Students表,查询结果如何?

(2)授予用户USER1对表Students插入和更新的权限,但不授予删除权限,

并且授予用户USER1传播这两个权限的权利。以USER?的身。。。

(3)允许用户USER2在表Reports中插入元组,更新Score列,可以查询除

了Sno以外的所有列。以USER?的身。。。

(4)用户USER1授予用户USER2对表Students插入和更新的权限,并且授

予用户USER2传播插入操作的权利。以USER?的身。。。

(5)收回对用户USER1对表Courses查询权限的授权。以USER?的身。。。

(6)由上面(2)和(4)的授权,再由用户USER2对用户USER3授予表Students

插入和更新的权限,并且授予用户USER3传播插入操作的权力。这时候,

如果由USER3对USER1授予表Students的插入和更新权限是否能得到

成功?如果能够成功,那么如果有用户USER2取消USER3的权限,对

USER1会有什么影响?如果再由DBA取消USER1的权限,对USER2

有什么影响?

实验6、SQL的空值和空集处理

6.1实验目的

认识NULL值在数据库中的特殊含义,了解空值和空集对于数据库的数据查询操作,特别是空值在条件表达式中与其他的算术运算符或者逻辑运算符的运算中,空集作为嵌套查询的子查询的返回结果时候的特殊性,能够熟练使用SQL语句来进行与空值,空集相关的操作。

6.2实验内容

通过实验验证在原理解析中分析过的SQL Server对NULL的处理,包括:

●在查询的目标表达式中包含空值的运算。

●在查询条件中空值与比较运算符的运算结果。

●使用IS NULL或IS NOT NULL 来判断元组该列是否为空值。

●对存在取空值的列按值进行ORDER BY排序。

●使用保留字DISTINCT对空值的处理,区分数据库的多中取值与现实中的

多种取值的不同。

●使用GROUP BY对存在取空值的属性值进行分组。

●结合分组考察空值对各个集合函数的影响,特别注意对COUNT(*)和

COUNT(列名)的不同影响。

●考察结果集是空集时,各个集函数的处理情况。

●验证嵌套查询中返回空集的情况下与各个谓词的运算结果。

●进行与空值有关的等值连接运算。

6.3实验步骤

(1)查询所有选课记录的成绩并将它换算为五分制(满分为5分,合格为3分),

注意,创建表时允许Score取NULL值。

(2)通过查询选修编号C07的课程的学生的人数,其中成绩合格的学生人数,

不合格的人数,讨论NULL值的特殊含义。

(3)通过实验检验在使用ORDER BY进行排序时,取NULL的项是否出现在

结果中?如果有,在什么位置?

(4)在上面的查询的过程中如果加上保留字DISTINCT会有什么效果呢?

(5)通过实验说明使用分组GROUP BY对取值为NULL的项的处理。

(6)结合分组,使用集合函数求每个同学的平均分、总的选课记录、最高成绩、

最低成绩和总成绩。

(7)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值。

(8)采用嵌套查询的方式,利用比较运算符和谓词ALL的结合来查询表Courses

中最少的学分。假设数据库中只有一个记录的时候,使用前面的方法会得到什么结果,为什么?

(9)创建一个学生表S(No,Sno,Sname),教师表T(No,Tno,Tname)

作为实验用的表。其中,No分别是这两个表的主键,其他键允许为空。

(10)向S插入元组(n1,S01,李迪)、(n2,S02,李岚)、(n3,S05,NULL)、

(n4,S04,关红);

(11)向T插入元组(n1,T09,李迪)、(n2,T08,李兰)、(n3,T01,NULL)、

(n4,T02,NULL)。

(12)对这两个表作对姓名的等值连接运算,找出既是老师又是学生的人员的学

生编号和教师编号。

实验7、实体完整性

7.1 试验目的

学习实体完整性的建立,以及实践违反实体完整性的结果。

7.2 试验内容

(1)在数据库University_Mis中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录。

(2)演示违反实体完整性的插入操作。

(3)演示违反实体完整性的更新操作。

(4)演示事务的处理,包括事务的建立、处理以及出错时的事务回滚。

(5)通过建立University_Misarship表,插入数据,演示当与现有的数据环境不等时,无法建立实体完整性以及参照完整性。

7.3 实验步骤

以系统管理员或sa用户登录进入查询分析器,在查询分析器窗口中输入如下命令,运行并观察和记录结果。

(1)在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Stu_Union(Sno CHAR(8) NOT NULL UNIUE,

Sname CHAR(8),

Ssex CHAR(1),

Sage INT,

Sdept CHAR(20),

CONSTRAINT PK_Stu_Union PRIMARY KEY(Sno));

INSERT Stu_Union V ALUES(‘S01’,’王兵’,’M’,23,’CS’);

UPDATE Stu_Union SET Sno=’’ WHERE Sdept=’CS’;

UPDATE Stu_Union SET Sno=’S02’ WHERE Sname=’王兵’;

SELECT * FROM Stu_union;

(2)在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT Stu_Union V ALUES (‘S02’,’黄山’,’M’,23,’CS’);

(3)在查询分析器中输入如下SQL语句:

USE University_Mis

UPDATE Stu_Union SET Sno =NULL WHERE Sno=’S02’;

(4)

①在查询分析器中输入如下SQL语句:

USE University_Mis

SET XACT_ABORT ON

BEGIN TRANSACTION T1

INSERT INTO Stu_union V ALUES(‘S09’,’李永’,’M’,25,’EE’);

INSERT INTO Stu_union V ALUES (‘S03’,’黄浩’,’F’,25,’EE’);

INSERT INTO Stu_union V ALUES (‘S05’,’黄浩’,’F’,25,’EE’);

SELECT * FROM Stu_union;

COMMIT TRANSACTION T1

②在查询分析器中输入如下SQL语句:

USE University_Mis

SET XACT_ABORT ON

BEGIN TRANSACTION T2

INSERT INTO Stu_union V ALUES (‘S07’,’李宁’,’M’,25,’EE’);

SELECT * FROM Stu_union;

INSERT INTO Stu_union V ALUES (‘S09’,’李靖’,’F’,22,’CS’);

COMMIT TRANSACTION T2

③在查询分析器中输入如下SQL语句:

USE University_Mis

SELECT * FROM Stu_union;

(5)

①在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Scholarship

(

M_ID V ARCHAR(10), Stu_id CHAR(8),R_Money INT

)

INSERT INTO Scholarship V ALUES(‘M01’,’ S07’,5000)

INSERT INTO Scholarship V ALUES (‘M01’,’ S08’,8000)

SELECT * FROM Scholarship

②在查询分析器中输入如下SQL语句:

USE University_Mis

ALTER TABLE Scholarship ADD

CONSTRAINT PK_Scholarship PRIMARY KEY(M_ID)

③在查询分析器中输入如下SQL语句:

USE University_Mis

ALTER TABLE Scholarship ADD

CONSTRAINT FK_Scholarship FOREIGN KEY(Stu_id) REFERENCES Students(Sno)

实验8、参照完整性

8.1实验目的

学习建立外键,以及利用FOREIGN KEY…REFERENCES子句以及各种约束保证参照完整性。

8.2实验内容

(1)为演示参照完整性,建立表Course,令Cno为其主键,并在Stu_Union 中插入数据。为下面的实验步骤做预先准备。

(2)建立表SC,令Sno和Cno分别为参照Stu_Union表以及Course表的外键,设定为级联删除,并令(Sno,Cno)为其主键。在不违反参照完整性的

前提下,插入数据。

(3)演示违反参照完整性的插入数据。

(4)在Stu_Union中删除数据,演示级联删除。

(5)在Course中删除数据,演示级联删除。

(6)为了演示多重级联删除,建立Stu_Card表,令Stu_id为参数Stu_Union 表的外键,令Card_id为其主键,并插入数据。

(7)为了演示多重级联删除,建立ICBC_Card表,令Stu_card_id为参数Stu_Union表的外键,令Card_id为其主键,并插入数据。

(8)通过删除Students表中的一条记录,演示三个表的多重级联删除。

(9)演示事务中进行多重级联删除失败的处理。修改ICBC_Card表的外键属性,使其变为On delete No action,演示事务中通过删除Students表

中的一条记录,多重级联删除失败,整个事务回滚到事务的初始状态。

(10)演示互参考问题及其解决方法。要建立教师授课和课程指定教师听课关系的两张表,规定一个教师可以授多门课,但是每个课程只能指定一个

教师去听课,所以要为两张表建立相互之间的参照关系。

8.3实验步骤

以系统管理员或sa账号登录查询分析器,在查询分析器窗体中输入如下命令,运行并观察和记录结果。

(1)在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT Stu_Union Values(‘S01’,’李用’,’0’,24,’FF’)

SELECT * FROM Stu_Union;

CREATE TABLE Course(

Cno CHAR(4) NOT NULL UNIQUE,

Cname V ARCHAR(50) NOT NULL,

Cpoints INT,

CONSTRAINT PK PRIMARY KEY(Cno));

INSERT Course V ALUES(‘C01’,’ComputerNetworks’,2);

INSERT Course V ALUES(‘C02’,’ArtificialIntelligence’,3);

(2)在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE Table SC(

Sno CHAR(5),

Cno CHAR(4),

Scredit INT,

CONSTRAINT PK_SC PRIMARY KEY(Sno,Cno),

CONSTRAINT FK_SC_Sno FOREIGN KEY(Sno) REFERENCES Stu_Union (Sno) ON DELETE CASCADE,

CONSTRAINT FK_SC_Cno FOREIGN KEY(Cno) REFERENCES Course (Cno) ON DELETE CASCADE

);

INSERT INTO SC V ALUES('S02','C01',2);

INSERT INTO SC V ALUES ('S02','C02',2);

INSERT INTO SC V ALUES ('S01','C01',2);

INSERT INTO SC V ALUES ('S01','C02',2);

SELECT * FROM SC;

(3)在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT INTO SC V ALUES(‘S99’,’C99’,2);

(4)在查询分析器中输入如下SQL语句:

USE University_Mis

DELETE FROM Stu_Union WHERE Sno=’S01’;

SELECT * FROM SC;

(5)在查询分析器中输入如下SQL语句:

USE University_Mis

DELETE FROM Course WHERE Cno=’C02’;

SELECT * FROM SC;

(6)在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Stu_Card(

Card_id CHAR(14),

Sno CHAR(8),

Remained_money DECIMAL(10,2),

Constraint PK_Stu_Card PRIMARY KEY(Card_id),

Constraint FK_Stu_Card_Sno FOREIGN KEY(Sno) REFERENCES Students(Sno) ON DELETE CASCADE

)

INSERT INTO Stu_Card V ALUES('','S03',400.25);

INSERT INTO Stu_Card V ALUES('','S09',600.50);

SELECT * FROM Stu_card;

(7)在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE ICBC_Card(

Bank_id CHAR(20),

Stu_card_id CHAR(14),

Restored_money DECIMAL(10,2),

constraint PK_ICBC_Card PRIMARY KEY(Bank_id),

constraint FK_ICBC_Card_Stu_id FOREIGN KEY(Stu_card_id) REFERENCES Stu_card(card_id) ON DELETE CASCADE

)

INSERT INTO ICBC_Card V ALUES('12','',15000.1);

INSERT INTO ICBC_Card V ALUES('45','',50000.3);

SELECT * FROM ICBC_Card;

(8)在查询分析器中输入如下SQL语句:

USE University_Mis

ALTER TABLE Reports DROP [FK_Reports_Sno];

ALTER TABLE Reports ADD

CONSTRAINT [FK_Reports_Students] FOREIGN KEY

(

[Sno]

) REFERENCES [dbo].[Students] (

[Sno]

) ON DELETE CASCADE;

DELETE FROM Students WHERE Sno=’S03’;

SELECT * FROM Stu_card;

SELECT * FROM ICBC_Card;

(9)在查询分析器中输入如下SQL语句:

ALTER TABLE ICBC_Card

DROP CONSTRAINT FK_ICBC_Card_Stu_id;

ALTER TABLE ICBC_Card

ADD CONSTRAINT FK_ICBC_Card_Stu_id FOREIGN KEY (Stu_card_id)

REFERENCES Stu_card(Card_id) ON DELETE NO ACTION;

在查询分析器中输入如下SQL语句:

Begin Transaction Del

DELETE FROM Stu_Card WHERE Card_id =’’;

SELECT * FROM Stu_card;

SELECT * FROM ICBC_card;

Commit Transaction Del

在查询分析器中输入如下SQL语句:

USE University_Mis

SELECT * FROM Stu_card;

SELECT * FROM ICBC_card;

(10)在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Listen_course(

Tno CHAR(6),Tname V ARCHAR(20),Cno CHAR(4)

CONSTRAINT PK_listen_course PRIMARY KEY(Tno)

CONSTRAINT FK_listen_course FOREIGN KEY(Cno)

REFERENCES Teach_course(Cno)

)

CREATE TABLE Teach_course(

Cno CHAR(4),Cname V ARCHAR(30),Tno CHAR(6)

CONSTRAINT PK_Teach_course PRIMARY KEY(Cno)

CONSTRAINT FK_Teach_course FOREIGN KEY(Tno)

REFERENCES Listen_course(Tno)

)

在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Listen_course(

Tno CHAR(6),Tname V ARCHAR(20),Cno CHAR(4)

CONSTRAINT PK_listen_Course PRIMARY KEY(Tno) )

在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Teach_course(

Cno CHAR(4),Cname V ARCHAR(30),Tno CHAR(6)

CONSTRAINT PK_teach_course PRIMARY KEY(Cno)

CONSTRAINT FK_teach_course FOREIGN KEY(Tno)

REFERENCES Listen_course(Tno)

)

ALTER TABLE Listen_course

ADD CONSTRAINT FK_listen_course FOREIGN KEY(Cno)

REFERENCES Teach_course(Cno);

实验9. 用户自定义完整性

9.1实验目的

学习用户自定义约束,并实践用户自定义完整性,利用SQL查询分析器用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。

9.2实验内容(建议将表改成Teachers,相应属性以T开始命名,如Tname)建立

Teacher表。

建立表Teacher,注意跟前面所建立的Teacher区分开来,

(1)创建Worker,Teacher表,并自定义2个约束U1以及U2,其中U1规定

Wname Tname字段唯一,U2规定Wage, Tage (级别)字段的上限是28。

(2)在Worker, Teacher表中插入一条合法记录。

(3)演示插入违反U2约束的例子,U2规定元组的Wage,Tage属性的值必须

<=28。

(4)去除U2约束。

(5)重新插入(3)中想要插入的数据,由于去除了U2约束,所以插入成功。

(6)创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到Worker

Teacher的Wsex Tsex字段。

(7)演示违反规则Rule_sex的插入操作。

9.3实验步骤

以系统管理员或sa帐号登录查询分析器,在查询分析器窗体下输入如下命令,运行并观察结果。

(1) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Teacher(

Tno CHAR(5),

Tname CHAR(8) CONSTRAINT U1 UNIQUE,

Tsex CHAR(1),

Tage INT CONSTRAINT U2 CHECK (Tage<=28),

Tdept CHAR(20),

CONSTRAINT PK_Teacher PRIMARY KEY(Tno))

(2) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept)

V ALUES(‘T01’,’李用’,’M’,14,’后勤部’)

SELECT * FROM Teacher

(3) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept)

Values(‘T02’,’王勇’,’M’,38,’后勤部’)

SELECT * FROM Teacher

(4) 在查询分析器中输入如下SQL语句

USE University_Mis

ALTER TABLE Worker DROP U2

(5) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept)

V ALUES(‘T02’,’王勇’,’M’,38,’后勤部’)

SELECT * FROM Teacher

(6) 在查询分析器输入如下SQL语句

USE University_Mis

Go

CREATE RULE Rule_sex AS @Value IN (‘F’,’M’)

Go

EXEC SP_bindrule Rule_sex, ‘Teacher.[Tsex]’;

(7) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher V ALUES(‘T03’,’黄号’,’1’,’25’,’后勤部’)

实验10、触发器

10.1 实验目的

通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。

10.2 实验内容(用实验9的Teacher表)

(1) 为Teacher表建立触发器T1,当插入或使更新表中的数据时,保证所操作的纪录的Tage值大于0。

(2) 为Teacher表建立触发器T2,禁止删除编号为00001的CEO。

(3) Teacher表中的人员的编号是唯一且不可更变的,创建触发器T3实现更新中编号的不可改变性。

(4) 演示违反T1触发器的约束的插入操作。

(5) 演示违反T1触发器的约束的更新操作。

(6) 演示违反T2触发器的约束的插入操作。

(7) 演示违反T2触发器的约束的更新操作。

10.3 实验步骤

(1) 仍然使用自定义完整性实验中的Teacher表。为此表建立触发器T1,当插入或使更新表中的数据时,保证所操作的纪录的Tage值大于0。

在查询分析器中输入如下SQL语句

USE University_Mis

GO

CREATE TRIGGER T1 ON Teacher

FOR INSERT,UPDATE

AS

IF(SELECT Tage FROM INSERTED)<1

BEGIN

PRINT ‘职工年龄必须是大于0的整数! 操作失败!’

ROLLBACK TRANSACTION

END

(2) 为Teacher表建立触发器T2,禁止删除编号为S01的CEO。

在查询分析器中输入如下SQL语句

USE University_Mis

GO

CREATE TRIGGER T2 ON Teacher

FOR DELETE

AS

IF(SELECT Tno FROM DELETED)=’T01’

BEGIN

PRINT ‘此人是CEO! 删除操作失败!’

ROLLBACK TRANSACTION

END

(3) Teacher表中的人员的编号是唯一且不可更变的,创建触发器T3实现更新中编号的不可改变性。

在查询分析器中输入如下SQL语句

USE University_Mis

GO

CREATE TRIGGER T3 ON Teacher

FOR UPDATE

AS

IF UPDATE(Tno)

BEGIN

PRINT ‘职工编号不能修改!’

ROLLBACK TRANSACTION

END

(4) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher V ALUES(‘T03’,’李宏’,’F’,-10,’开发部’)

(5) 在查询分析器中输入如下SQL语句

USE University_Mis

UPDATE Teacher SET Tage=-7 WHERE Tno=’T01’

(6) 在查询分析器中输入如下SQL语句

USE University_Mis

DELETE FROM Teacher WHERE Tname=’李用’

(7) 在查询分析器中输入如下SQL语句

USE University_Mis

UPDATE Teacher SET Tno=’T07’ WHERE Tsex=’F’

特别要求与说明

1、每做一个实验都要写实验报告,报告格式见参考模板。

2、以上10个实验中用粗体字书写的实验内容要求同学必须完成,并将相应命令和执行结果窗口剪贴到实验报告中。

3、本课程实验1至实验9的要求都是统一的,但每个同学在实验时必将其修改成针对自己的、具有个性化的特殊实验要求。修改的关键是在数据库、基本表和属性的命名中必须加上自己的姓名信息。操作方法如下:

①基本表命名与数据库名类似,都是姓的全拼加上名的第一个字母和下划线

组成前缀,比如黄德才姓名为Huang de cai,则前缀是huangdecai_,因此数据库University_Mis和基本表Students分别命名为Huangdc_University_Mis 和Huangdc_Students。

②属性名的前缀以姓名的第一个字母和下划线组成,比如,黄德才姓名为

huang de cai,则属性的前缀是hdc_,基本表huangdc_Students中属性名为Sname, Scredit, Sroom就分别命名为hdc_Sname, hdc_Scredit, hdc_Sroom。

4、要求把实验过程、SQL命令和执行结果窗口复制到实验报告中,请从精品课程网站下载毕业设计报告模板。

5、实验报告通过精品课程网站提交。

数据库系统概论(王珊第五版)数据库实验1

实验1 SQL SERVER 2008环境 一、实验目的 1.掌握服务管理器的启动和停止方法; 2.掌握SQL Server Management Studio对象资源管理器的使用方法; 3.掌握注册服务器的步骤。 4.掌握E-R图在计算机中的画法。 二、实验学时 2学时 三、实验要求 1.了解SQL Server 2008的安装过程。 2.熟练掌握SQL Server2008数据库服务器的启动方法。 3.熟练掌握SQL Server2008数据库服务器的登录方法和注册方法。 4.掌握E-R图的画法,学会使用Visio画出标准的E-R图。 5.独立完成实验内容,并提交书面实验报告。 四、实验内容 1.了解并熟悉SQL Server 2008的安装方法。 2.登录SQL Server 2008服务器,主要包括启动、暂停、停止和重新启动服务器,登录SQL Server Management Studio等操作; 3. 掌握SQL Server Management Studio对象资源管理器的使用方法; 4.注册SQL Server 2008服务器。 5. 有一个图书管理系统需要构建E-R图,要求如下: (1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号唯一标识。 (2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。 (3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向相应出版社增购有关书籍。约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。 将有关实体型及其联系画出E-R模型图画在实验报告册中。

数据库实验3

浙江大学实验报告 课程名称:数据库系统原理实验类型:上机 实验项目名称:SQL数据完整性 实验目的和要求 熟悉通过SQL进行数据完整性控制的方法。 一、实验内容和原理 1. 定义若干表,其中包括primary key, foreign key 和check的定义。 2. 让表中插入数据,考察primary key如何控制实体完整性。 3. 删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。 4. 修改被引用表中的行的primary key,考察foreign key 中on update 子句如何控制参照完整性。 5. 定义一个asseration, 并通过修改表中数据考察断言如何控制数据完整性。 6. 定义一个trigger, 并通过修改表中数据考察触发器如何起作用。 7. 完成实验报告。 二、实验平台 数据库管理系统:SQL Server 或MySQL 四、操作方法与实验步骤及结果 1.定义若干表,其中包括primary key, foreign key 和check的定义。 如下图所示,建立了三个表分别为classroom,department 和course,其中主键分别被定义为building,dept_name,然后又定义了course中的的dept_name为外键。在course的定义中还有一个定义check的语句。

2.让表中插入数据,考察primary key如何控制实体完整性。 向department中插入主键为null的数据是报错,从而控制了实体完整性。 但当插入数据其他属性为0(不为主键)时,可以进行成功的插入操作。 插入后的结果显示如下。 3.删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。 首先建立两个表school和students,并向其中插入数据,显示结果如下。 在先前定义了students表school_name为school中这一属性的外键,下面将

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

数据库基本概念

数据库基本概念 引言 本章的目标是讲解数据库研究人员常常要使用到的一些理论和术语。我所在的工作组集中了一批以开发性能优异的数据库系统为谋生手段的精英,数据库理论乍看起来与我们的具体工作相距甚远。 是否很有必要学习有关数据库理论方面的知识可能是留给你思考的一个问题。我们说,理解一种技术的基本原理是非常重要的。这就好比把你的汽车交给一个不懂火花塞工作原理的机械师,或是坐在一架由不懂飞行理论的驾驶员的飞机上。如果你不懂数据库设计的相关理论,又怎能指望用户登陆门请你设计系统呢? 研究人员所用的某些术语和概念令我们感到困惑,部分原因是数学基础的问题。有一些术语,大多数程序员理解为一种含义,而实际上是完全不同的另一种含义。为了能设计合理的系统,了解关系数据库理论是十分重要的。 为了搞清楚研究人员的专业术语,我们需要学习一些关系数据库理论中较浅显的内容,并且同我们所熟知的SQL概念进行比较。许多书中都讲解了这些内容,所以并不打算过于深入地探讨理论。我们只提供一些基本且实用的数据库概念。 本章将主要从面向SQL的角度介绍关系理论。我们将常常涉及相关理论的具体实现,尽管这超出了本书的范围,但却是难以避免的。然而我们不会陷入实现的细节,仅仅给出一个概述。更进一步的内容,参看第一章提到的参考书目。 在本章中,我们将会看到下列内容: ?关系模型——考察相关的技术术语:我们将在后面的章节中构造它们 ?其他数据库概念的定义 关系模型 正像第1章中提到的,E.F.Codd早在1970年就提出了关系模型的概念。在这一节中,我们将从SQL Server 的角度出发,考察一些在关系模型中比较重要的内容。 正像我们所看到的那样,SQL Server 与关系模型有很多共性的东西,但

数据库实验1

实验 1 :数据库的定义实验 本实验需要 2 学时。 一、实验目的 要求学生熟练掌握和使用SQL 、Transact-SQL 、SQLServer 企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL 语句和进行结果分析。 二、实验内容 1)创建数据库和查看数据库属性。 2)创建表、确定表的主码和约束条件,为主码创建索引。 3)查看和修改表结构。 4)熟悉SQL Server 企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 .基本操作实验 1)、使用企业管理器建立学生_课程数据库。 2)、在企业管理器中查看学生_课程数据库的属性,并进行修改,使之符合要求。 3)、通过企业管理器,在建好的学生_课程数据库中建立学生、课程和选课3 个表,其结构为: 学生( 学号,姓名,性别,出生日期,学院,所在系,联系电话) ;

课程( 课程号,课程名,教师,开课学期,学时,学分) ; 选课( 学号,课程号,成绩) 。

要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。4)、在企业管理器中建立学生、课程和选课3 个表的表级约束:每个表的主码约束;学生表与课程表间、课程表与选课表之间的外码约束,要求按语义先确定外码约束表达式,再通过操作予以实现;实现选课表的课程号和学号的惟一性约束;实现学生表性别只能是“男”或“女”的Check( 检查) 约束。 2 .提高操作实验 1)、用SQL 描述的建立学生—课程库操作,在SQL Server 企业管理器中实现 2) 将设计的数据库应用系统中的数据库、库中的表、索引和约束用Transact-SQL 表达,并通过企业管理器或查询分析器实现建库、建表、建立表间联系和建立必要的索引、列级约束和表级约束的操作。 四、实验方法 1 .创建数据库 (1)、使用企业管理器创建数据库的步骤

实验一数据库定义实验

实验一数据库定义实验 一、实验目的 使用SQL Server Management Studio、T-SQL语句创建和管理数据库,学会使用SQL Server查询分析器接收 T-SQL语句和进行结果分析。使用T-SQL语句进行数据表的创建和删除,并对数据表和表中的数据进行有效有管理。 二、实验环境 实验室名称:11#208 软件环境:操作系统:windows 10;SQL 2008 硬件环境:安装内存(RAM):可用) 处理器:Intel(R) Core(TM) i5-5200U CPU @ 硬盘:250GB-SSD 500GB-HDD 三、实验内容 1.用SQL Server Management Studio创建、修改数据库 2.用T-SQL语句创建、修改数据库 3.用SQL Server Management Studio创建、修改数据表 4.用T-SQL语句创建、修改数据表

四、实验步骤及实验结果分析 (一)、创建、修改数据库 1.用SQL Server Management Studio创建步骤: (1)、单击“开始”菜单选择“所有程序”->Microsoft SQL Server 2008->SQL Server Management Studio (2)、单击“视图”->”对象资源管理器”->右击“数据库”->选择“新建 数据库”命令 (3)、在“数据库名称”文本框中输入新建数据库的名称,本例输入“JXGL” (4)、在“新建数据库”的对话框里设置“常规”、“选项”、“文件组” 2.用SQL Server Management Studio修改数据库步骤: (1)、在“对象资源管理器”窗口右击要修改大小的数据库,选择“属性”弹 出属性对话框 (2)、在属性对话框中的“常规”、“文件”、“文件组”、“选项”、“更改跟踪”、 “权限”、“扩展属性”、“镜像”、“事务日志传送”修改数据库的相关信息 3.用SQL Server Management Studio删除数据库 右击要删除的数据库,在弹出的菜单中选择删除命令在弹出的“删除对象” 的对话框中,单击“确定”按钮 4.用T-SQL语句创建数据库: (1)、打开SSMS窗口,并连接到服务器 (2)、依次选择“文件”->”新建”->“数据库引擎查询”命令或者单击标 准工具栏的“新建查询”按钮,创建一个查询输入窗口 (3)、在窗口中输入以下create database 语句:

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

数据库的4个基本概念

数据库的4个基本概念 1.数据(Data):描述事物的符号记录称为数据。 2.数据库(DataBase,DB):长期存储在计算机内、有组织的、可共享的大量数据的集合。 3.数据库管理系统(DataBase Management System,DBMS 4.数据库系统(DataBase System,DBS) 数据模型 数据模型(data model)也是一种模型,是对现实世界数据特征的抽象。用来抽象、表示和处理现实世界中的数据和信息。数据模型是数据库系统的核心和基础。 数据模型的分类 第一类:概念模型 按用户的观点来对数据和信息建模,完全不涉及信息在计算机中的表示,主要用于数据库设计现实世界到机器世界的一个中间层次 实体(Entity): 客观存在并可相互区分的事物。可以是具体的人事物,也可以使抽象的概念或联系 实体集(Entity Set): 同类型实体的集合。每个实体集必须命名。 属性(Attribute): 实体所具有的特征和性质。 属性值(Attribute Value): 为实体的属性取值。 域(Domain): 属性值的取值范围。 码(Key): 唯一标识实体集中一个实体的属性或属性集。学号是学生的码 实体型(Entity Type): 表示实体信息结构,由实体名及其属性名集合表示。如:实体名(属性1,属性2,…) 联系(Relationship): 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体型内部的联系(各属性)和实体型之间的联系(各实体集)。有一对一,一对多,多对多等。 第二类:逻辑模型和物理模型 逻辑模型是数据在计算机中的组织方式 物理模型是数据在计算机中的存储方式 数据模型的组成要素 数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成 关系模型(数据模型的一种,最重要的一种) 从用户观点看关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。 ?关系(Relation):一个关系对应通常说的一张表。 ?元组(Tuple):表中的一行即为一个元组。 ?属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。 ?码(Key):表中的某个属性组,它可以唯一确定一个元组。 ?域(Domain):一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.360docs.net/doc/1e2105690.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.360docs.net/doc/1e2105690.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

数据库的定义以及数据集合

数据库是什么以及数据集合 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。 数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。 数据整体 数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。 数据共享 数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。

数据库实验1

教务处制 第1页,共1页 苏州大学实验报告 院、系 计算机学院 年级专业 姓名 学号 课程名称 数据库原理 成绩 指导教师 同组实验者 无 实验日期 实 验 名 称 实验一 数据库操作 一. 实验目的 1. 熟悉DBMS 的环境; 2. 掌握图形化和SQL 语句两种方法创建数据库; 3. 掌握分离和附加数据库的操作。 二. 实验内容 1. 熟悉服务器的启动、暂停、和停止操作; 2. 熟悉Management Studio 的工作环境; 3. 图形化创建数据库: 3.1:用图形化界面创建Myfirstdb 数据库,要求主数据库文件为20MB ,最大大小是100M ,每次增长5MB ;事务日志文件为20MB ,最大大小是100M ,每次增长20MB 。 3.2:创建用户文件组:usergroup ; 3.3:为Myfirstdb 数据库添加一个次要数据文件Myfirstdb_dat2,大小为10MB ,最大大小不受限制,将该文件添加到usergroup 文件组中; 3.4: 查看创建Myfirstdb 的SQL 语句,将其复制在实验报告上; 4、用SQL 语句完创建grade 数据库; (注意记下数据库文件的位置) 5、删除Myfirstdb 数据库的usergroup 文件组应该如何操作?试用SQL 语句实现。 6、用SQL 语句删除Myfirstdb 数据库。 7、分离4所建的数据库,找到其所对应的数据库文件,拷到U 盘上。下次实验时将其附加。 三. 实验步骤和结果(将完成的SQL 语句粘贴于此) 四. 思考题: 1. 简述组成SQL Server2005数据库的3种类型的文件。 五. 实验总结(分析一下上机结果与选择的答案之间一致或不一致的原因)

最新最新数据库管理系统实验报告含答案(1)

武汉纺织大学《最新数据 库管理系统》课程实验报告 班级: _______姓名:实验时间:年月日指导教师:_______ 一、实验目的 1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。 2、牢固掌握SQL SERVER的功能操作和Transact-SQL语言。 3、紧密联系实际,学会分析,解决实际问题。学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。 二、实验内容 1.导入实验用示例数据库: f:\教学库.mdf f:\教学库_log.ldf f:\仓库库存.mdf f:\仓库库存_log.ldf 1.1 将数据库导入 在SqlServer 2005 导入已有的数据库(*.mdf)文件,在SQL Server Management Studio 里连接上数据库后,选择新建查询,然后执行语句 EXEC sp_attach_db @dbname = '教学库', @filename1 = 'f:\教学库.mdf', @filename2 = 'f:\教学库_log.ldf' go use [教学库] EXEC sp_changedbowner 'sa' go EXEC sp_attach_db @dbname = '仓库库存',

@filename1 = 'f:\仓库库存.mdf', @filename2 = 'f:\仓库库存_log.ldf' go use [仓库库存] EXEC sp_changedbowner 'sa' go 1.2 可能出现问题 附加数据库出现“无法打开物理文件"X.mdf"。操作系统错误5:"5(拒绝访问。)"。(Microsoft SQL Server,错误: 5120)”。 解决:找到要附加的.mdf文件-->右键-->属性-->安全-->选择当前用户-->编辑-->完全控制。对.log文件进行相同的处理。 2.删除创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸为5MB,增长速度为1MB。 CREATE DATABASE仓库库存 (NAME = '仓库库存_data', FILENAME = 'F:\仓库库存_data.MDF' , SIZE = 10MB, FILEGROWTH = 20%) LOG ON (NAME ='仓库库存_log', FILENAME = 'F:\仓库库存_log. LDF', SIZE = 2MB, MAXSIZE = 5MB, FILEGROWTH = 1MB) 2.1 在数据库“仓库库存”中完成下列操作。 (1)创建“商品”表,表结构如表1:

数据库实验报告

数据库原理及应用 实验报告 学院: 专业: 班级: 姓名: 学号: 指导教师:

实验一 SQL Server常用管理工具的使用 实验目的: 1. 理解服务的概念,掌握SQL Server服务的启动、暂停和停止。 2. 熟悉SQL Server数据库结构,掌握企业管理器的基本操作。 3. 理解查询分析器的作用,掌握查询分析器的常用用法。 实验内容与步骤: 一、服务管理器的用法 SQL Server 是作为Windows 网络操作系统的一个服务运行的。通过设置,可以在启动操作系统时自动启动SQL Server,也可以远程启动和停止SQL Server。可以使用下列工具手工启动、暂停和停止SQL Server服务实验要求1:使用SQL Server服务管理器查看SQL Server服务是否正在运行,若正在运行,将其停止。 实验要求2:使用控制面板中的“服务”管理控制台将已停止的SQL Server 服务启动。 二、企业管理器的使用 企业管理器是SQL Server提供的最主要的数据库管理图形界面工具,它以树形结构来组织数据库服务器、数据库和数据库中的对象,大部分的数据库管理工作都可以使用它来完成。 实验要求3:启动企业管理器,查看SQL Server的注册属性。 启动企业管理器后,在控制台树中,展开“Microsoft SQL Servers”,然后展开“SQL Server”,组右击自己的服务器名,然后单击“编辑SQL Server注册属性”。 实验要求4:在企业管理器中,查看Northwind数据库中用户数据表和系统数据表各有多少个? 三、查询分析器的使用 查询分析器是图形化的数据库编程接口,用户可以以自由的文本格式编辑、调试和执行SQL脚本。 实验要求5:在查询分析器中,使用SQL语句在master数据库中查询sysobjects表的所有信息。

数据库实验习题

《数据库概论》实验指导书 (2003级) 一、实验目的: 数据库系统是一门应用性很强的课程,上机实验是数据库课程的重要环节。本实验是结合《数据库概论》课程的学习而开设的实验。本实验目的如下: 1. 通过上机实验,加深对数据库系统理论知识的理解,增强对网络环境下大型数据库的感性认识和实际操作能力; 2. 通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握其操作技术。熟悉ORACLE数据库的Net8工具,掌握ORACLE数据库的网络连接配置; 3. 学习使用SQL语言,加深对SQL语言的认识和理解,提高SQL语言的实际应用能力; 4. 加强对事务处理、权限管理等概念的认识和理解。 二、适应专业:信息管理与信息系统,信息与计算机科学 三、实验学时数:12学时 四、实验内容及学时安排: 实验准备: 各班选出10个同学,协助老师搭建试验环境。包括: 1)安装ORACLE客户端,配置与主机的数据库连接。 2)安装软件工具 PLSQL/DEVELOPER 3)负责本班用户的建立。 分为两批上午下午各两个班。 实验一:数据定义/数据操纵语言 实验目的:熟悉Oracle上机环境以及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 学时数:4学时 实验内容:SQL数据定义语句, SQL数据操纵语句。 实验要求:1. 熟悉Oracle上机环境; 2. 建立数据库表,修改数据库表结构,建立、删除索引;

3. 对数据库表进行插入、修改和删除数据的操作。 实验二:数据查询语言,视图定义 实验目的:体会SQL语言数据查询功能的丰富和复杂,视图使用。 学时数:4学时 实验内容:SQL数据查询语句,视图的定义与操纵; 实验要求:对数据库表进行各种查询操作,建立视图,视图查询,视图更新; 实验三:授权控制与事务处理 实验目的:通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。 学时数:2学时 实验内容: 1. SQL数据控制语句; 2. SQL事务处理。 实验要求: 1. 给某一或全部用户授权和收回授权; 2. 事务回退,事务提交。 五、教材及参考文献 1.《数据库系统概论》(第三版)萨师煊等编著高等教育出版社 2000.2 2.《ORACLE 8.x For Windows NT实用教程》翁正科等编著清华大学出版社 1998.10 六、实验环境 实验要求如下环境 服务器端:Windows 2000NT Server; ORACLE 8.x Database Server For Windows Windows2000 Server 客户端: Windows9x;Oracle 8.x Client 网络协议:TCP/IP 七、成绩考核 上机实验考核采取实验报告和上机抽查检验相结合的方式。每次实验结束后都必须写出实验报告。 八. 实验报告

数据库认证实验四答案

--1,创建登陆用户temp1,密码是1234,加入到school数据库中并赋予db_owner数据库角色. Sp_addlogin'temp1','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp1'; --- /* CREATE LOGIN tmp1 WITH PASSWORD = '123',default_database=School; -- Creates a database user for the login created above. CREATE USER user1 FOR LOGIN tmp1; */ --查看登录账号的信息 Select*from sys.syslogins where name='temp1'; /* use School go exec sp_addsrvrolemember 'temp1','sysadmin';--添加服务器角色 */ --赋予db_owner数据库角色. use School go exec sp_addrolemember'db_owner','temp1'; --2,创建登陆用户temp2,密码是1234, --加入到school数据库中,并赋予该用户对student表select,insert权限 Sp_addlogin'temp2','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp2';

grantselect,insert on student to temp2; --3,对数据库school进行完全数据库备份,写出备份语句 Use School Go Sp_addumpdevice'disk','schoolinfo','e:\data\schoolinfo.bak' Go Backupdatabase school to schoolinfo withinit; --4,将student学生信息表中所有学生信息年龄改为20,进行差异化备份--修改表的数据 use school go update student set sage=20; ---执行差异化的备份 Use School Go Backupdatabase School todisk='e:\data\schoolinfo.bak'; Use school Go Backupdatabase School to schoolinfo withdifferential,init Use school Go select*from student Backupdatabase school to schooldemo withdifferential,init

数据库的基本概念

1.关系的基本操作:选择、投影、并、差、笛卡尔集。 2.声明变量的语句:declare @XXX (XXX为变量名称) 3.判断并发调度的正确性: (1)可串行性的调度:多个事务的并发执行是正确的,当且仅当其结果与某一次串行的执行这些实物的结果相同。 (2)可串行性:是并发事务调度的准则。按照这个准则,一个给定的并发调度,当且仅当他是可串行化的才认为是正确的调度。 4.事物的四个特性:原子性、一致性、隔离性和持续性。 5.定义视图: Create view <视图名称>[(列名)[,(列名)]] As <子查询> [with check option] 6.关系数据理论: 7.范式: (1)第二范式:若R∈1NF,且每一个非主属性完全依赖于码,则R∈2NF (2)第三范式:非主属性中不存在传递关系。 8.角色、权限 (1)创建角色:create role <角色名> (2)给角色授权:create <权限> on <对象类型> 对象名to 角色。 9.设计中概念模型描述什么:实体、属性、码、实体型、实体集、联系。 10.关系的完整性:实体完整性、参照完整性、用户定义的完整性。 11.读锁和写锁的定义: (1)写锁:又称“排它锁”,若事物T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事物都不能对A加任何类型的锁,直到T释放A上的锁。 (2)读锁:又称“共享锁”,若事物T对数据对象A加上S锁,则事物T可以读A但不能修改A,其他事物只能对A加S锁,而不能加X锁,直到T释放A上的S锁。 简答: 1.关系模式:判断是第几范式,分析指出主键、外键P175 例题4 2.举例说明参照完整性(外键取值的几种情况)P49例题1,例题2,例题3 3.数据库的设计步骤、任务。 (1)需求分析(2)概念结构设计(3)逻辑结构设计(4)物理结构设计 (5)数据库实施(6)数据库运行和维护 4.描述并发调度中锁的概念、作用 (1)概念:事物T对某个数据对象操作之前,先向系统发出申请,对其加锁。加锁后的事物T就对该数据对象有了一定的控制,在事物T释放它的锁之前,其他的事物不能更新此数据对象。 (2)作用:解决了事物并发过程中可能出现的丢失修改、不可重复读、读“脏”数据。

数据库实验一

实验一基本表的定义、删除与修改 一、实验目的: 熟练掌握基本表的定义、删除与修改,为后继学习作准备。 二、实验属性(验证性) (1)了解并掌握SQL SERVER 2005管理控制器的使用; (2)掌握基本表的定义、删除与修改。 三、实验仪器环境与要求 1.每人一台计算机。 2.计算机安装有SQL SERVER2005。 四、实验要求(预习、实验前、实验中、实验后等要求) 1.预习教材第三章,熟悉SQL语句。 2.熟悉SQL SERVER 2005,能使用管理控制器的使用。 3.能够熟练使用SQL语句进行表的创建、删除与修改。 五、实验原理 SQL语言基本应用。 六、实验步骤: (1)启动SQL SERVER 2005。 (2)启动SQL SERVER 2005查询分析器; (3) 创建数据库; (5) 创建如下表: 1 定义基本表 1.1、学生表Student,每个属性名的意义为Sno-学号字符型长度为10、Sname-姓名字符型长度为20、Ssex-性别字符型长度为4、Sage-年龄为整型、Sdept-所在系字符型长度为15。这里要求Sno为主码,Sname不能为空值,且取值唯一。 create table student (Sno char(10) primary key, Sname char(20) unique, Ssex char(4), Sage smallint, Sdept char(15) );

1.2、建立表课程表Course,其属性名意义分别为Cno-课程号、字符型长度为15, Cname-课程名、字符型长度为20, Pre_Cno-先修课程号、字符型长度为15, Credits-学分、整型。Cno 为主码。 create table course (Cno char(15) primary key, Cname char(20), Pre_Cno char(15) references course(Cno), Ccredit smallint, ); 1.3选课表SC。其中的属性名意义分别为Sno-学号、字符型长度为10,Cno-课程号、 字符型长度为15和Grade-考试成绩、整型。Sno和Cno为主码。 create table sc ( Sno char(10) references student(Sno), Cno char(15) references course(Cno), Grade smallint, primary key (Sno, Cno), )

数据库实验二

数据库实验二 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

实验报告册 2014 / 2015 学年第2 学期 系别计算机科学与技术系 实验课程数据库原理 专业计算机科学与技术 班级 姓名 学号 指导教师 实验二——SQL语句 一、实验目的 1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集 合查询和统计查询,能理解空值的处理;

2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、 删除操作; 3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图; 4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作; 二、实验预习内容 在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以 下操作。请在空白处填写相应的SQL命令。 1)查询年级为2001的所有学生的名称,按编号顺序排列; 2)查询所有课程名称中含有data的课程编号; 3)统计所有老师的平均工资; 4)查询至少选了3门课的学生编号; 5) 6)查询没有学生选的课程编号; 7)查询既选了C++又选了Java课程的学生编号; 8)查询选了C++但没选Java课程的学生编号; 9)向STUDENTS表中插入“LiMing”的个人信息); 10)将“LiMing”的年级改为2002; 11)删除所有选了Java课程的学生选课记录; 12)求出每门课的课程号、选课人数,结果存入数据库表T1中。

数据库的概念

第1章数据库的概念 本章主要介绍数据库的意义、数据库的发展史、数据库的体系结构、数据库系统以及数据库管理系统等内容,以便读者对数据库的概念有一个基本的了解。 1.1 数据库的意义 1.1.1 信息处理及数据处理 诞生于20世纪中叶的计算机科学较之其他现代科学技术的发展更迅速,在21世纪到来之际,它几乎可以称为“知识爆炸”了。21世纪是信息和知识的社会,如何组织和利用这些庞大的信息和知识已成为衡量一个国家科学技术水平高低的重要标志。 早在20世纪60年代,数据库技术作为现代信息系统基础的一门软件学科便应运而生了。现在,数据库技术已成为计算机领域中最重要的技术之一,它是软件学科中一个独立的分支。它的出现使得计算机应用渗透到工农业生产、商业、行政、教育、科学研究、工程技术和国防军事的各个部门。管理信息系统(MIS)、办公自动化系统(OA)、决策支持系统等都是使用了数据库管理系统或数据库技术的计算机应用系统。 数据库(Database,即DB)是存储在一起的相关数据的集合,是存储数据的“仓库”。因此,要理解数据库就需要先了解在数据处理领域中常遇到的两个基本概念:“信息”(information)和“数据”(data)。 信息是关于现实世界事物的存在方式或运动状态的反映的组合。例如,上课用的黑板,它的颜色是黑的,形状是矩形,尺寸是长3.2m,高1.4m,材料是木材,这些都是关于黑板的信息,都是关于黑板的存在状态的反映,从不同角度“反映”或“刻画”了黑板这个事物。信息源于物质和能量,一切事物,包括自然和人类都产生信息,信息是物质和能量形态的反应,它不可能脱离物质而存在。信息传递需要物质载体,信息的获取和传递要消耗能量。信息是可以感知的和存储的,并且可以加工、传递和再生。电子计算机是信息处理领域中最先进的工具之一,人类对收集到的信息可以进行取舍整理。几乎和信息同样广泛使用的另一个概念是“数据”。所谓数据,通常指用符号记录下来的可加以鉴别的信息。例如,为了描述黑板的信息,可以用一组数据“黑色、矩形、3.2m×1.4m”来表示,由于“黑色”、“矩形”、“3.2”、“m”……这些符号已经被人们赋予了特定的语义,所以它们就具有了传递信息功能。

数据库实验1认识数据库管理系统

《数据库技术》 实验指导书徐州师范大学计算机科学与技术学院

实验一使用数据库管理系统(2学时) 【实验目的】 1.掌握服务管理器的启动和停止方法; 2.掌握注册服务器的步骤; 3.掌握在SQL Server 2008中创建和编辑数据库; 4.掌握备份、附加和分离数据库的方法 【实验要求】 1.熟练掌握SQL Server2008数据库服务器服务启动和注册方法; 2.熟练使用Management Studio界面方式创建及编辑数据库; 3.熟练进行数据库备份、分离附加操作; 4.独立完成实验内容,并提交书面实验报告。 【实验内容】 1. 管理SQL Server 2008服务器,主要包括启动、暂停、停止和重新启动等操作; 2. 注册SQL Server 2008服务器。 3. 使用SQL Server 2008对象资源管理器和SQL语句(新建查询)两种方法,完成学生管理系统数据库的创建,修改数据库属性。 (1)创建一个数据库,要求如下。 ●数据库名“STUDENT”。 ●数据库中包含一个数据文件,逻辑文件名为student_data,磁盘文件名为 student_data.mdf,文件初始容量为10MB,最大容量为100MB,文件容量递增值为5%。 ●事务日志文件,逻辑文件名为student_log,磁盘文件名为student_log.ldf,文件初始 容量为5MB,最大容量为30MB,文件容量递增值为2MB。 (2)对该数据库做如下修改。 ●添加一个数据文件.逻辑文件名为student2_data,磁盘文件名为student2_data.ndf, 文件初始容量为5MB,最大容量为50MB,文件容量递增值为5MB。 ●将日志文件的最大容量增加为50MB.递增值改为3MB。 (3)将学生数据库更名为STU。 (4)备份STUDENT数据库。 (5)删除STUDENT数据库。 (6)还原STUDENT数据库。 4.附加给定的数据库文件并分离创建好的数据库文件。 【实验步骤】 1.管理SQL Server 2008服务器,主要包括启动、暂停、停止和重新启动等

相关文档
最新文档