文档库 最新最全的文档下载
当前位置:文档库 › 数据库实验指导

数据库实验指导

数据库实验指导
数据库实验指导

实验D001: 数据库及表的建立和管理实验

一、实验名称和性质

二、实验目的

1.了解和掌握SQL Server系统。

2.掌握数据库建立的几种方法。

3.掌握数据表的建立方法和数据表中数据的插入方法。

三、实验的软硬件环境要求

硬件环境要求:PC机(单机)。

使用的软件名称、版本号以及模块:

Windows XP下的SQL Server 2005(或SQL Server 2008)。

四、知识准备

前期要求掌握的知识:

1.SQL Server 2005平台构成:

数据库引擎。

分析服务(Analysis Services)。

集成服务(Integration Services)。

复制技术。

通知服务(Notification Services)。

报表服务(Reporting Services)。

服务代理(Service Broker)。

全文搜索。

2.SQL Server 2005安装成功后,系统会自动创建4个系统数据库:Master、Model、Msdb、Tempdb。

3.SQL Server 2005中最重要的管理工具:“SQL Server Management Studio”(简称“SSMS”)。

五、实验内容

1.创建数据库和查看数据库属性。

2.在“SSMS”中和查询编辑器中创建数据表。

3.“SSMS”中和查询编辑器中数据表中数据的插入。

六、验证性实验

(一) 在“SSMS”中创建数据库、数据表和进行数据插入

1.创建数据库

(1)使用“SSMS”建立数据库的步骤

1)单击“开始”菜单下“所有程序”→“Microsoft SQL Server2005(或Microsoft SQL Server2008)”→“SQL Server Management Studio”,如图3-1所示。

图3-1 SQL Server 2005启动

2) 在连接到服务器窗口中选择服务器名(点击服务器名称右面的下拉列表→选择“浏览更多”→展开“数据库引擎”→选择下面出现的本机号,单击“确定”),单击”连接”按钮, 如图3-2所示.。

3) 进入到“Microsoft SQL Server Management Studio(SSMS)”,如图3-3所示.。

图3-2 SQL Server 2005连接服务器界面图3-3 “SSMS”界面

4)选中“数据库”文件夹,单击鼠标右键,在弹出菜单上选择“新建数据库”。随后在数据库属性对话框的常规页面中,输入数据库名“学生选课”,如图3-4 所示。

新建数据库属性对话框有3 个页面:常规、选项和文件组。常规选项分别用来义数据库名、数据文件属性和日志文件属性。选项是对数据库中游标\状态等信息的设置。

5)单击“确定”按钮,关闭对话框。在“SSMS”窗口中出现“学生选课”数据库标志,如图3-5 所示,表明已经成功创建数据库。

图3-4 新建数据库界面图3-5 数据库建立成功界面

6)在“SSMS”中,右键单击“学生选课”数据库,在弹出菜单中选择“属性”,将弹出一个对话框,显示“学生选课”数据库的属性,如图3-6所示。

2.创建数据库表

(1)打开刚才创建的“学生选课”数据库,并在“SSMS”窗口的右边窗口中用鼠标右键点击“表”对象,选择“新建表”命令,打开表编辑器窗口,如图3-7 所示。

图3-6 数据库属性窗口图3-7 表编辑器界面

(2)根据表3-1 所示的表结构,添加新列。

- 表”,然后单击“确定”按钮,完成新表的创建。

(4)同理,根据表3-2 建课程表,根据表3-3 建选课表

表3-2 课程表

3.使用“SSMS”向数据库表输入数据、修改数据、删除数据。

(1)打开“SSMS”,选中服务器,展开数据库文件夹,进一步展开“学生选课”数据库。单击表文件夹,找到“学生表”。

(2)用鼠标右键单击“学生表”,选择“打开表”――“返回全部行,(SQL2008中选择“编辑前xx行”)就会出现表更新对话框,如图3-8 所示。

图3-8 记录输入界面

(3)参考表3-4 的内容,为学生表输入数据。

(二)在查询编辑器中创建数据库、数据表和进行数据插入

1.在“SSMS”中,点击工具栏中的第一个按钮“新建查询”,如图3-9所示。

图3-9 查询编辑器的打开

打开查询编辑器的窗口,如图3-10 所示。

图3-10 查询编辑器

2.在查询编辑器的右窗口中输入T-SQL语句:

create database student

选中该语句并执行(单击工具栏的“执行”按钮),出现

命令已成功

表示数据库成功建立。

3.用T-SQL语句创建数据表STUD:

USE STUDENT(表示student为当前数据库)

CREATE TABLE STUD(SNO VARCHAR(10) NOT NULL, SNAME VARCHAR(20) NOT NULL, SEX CHAR(2), BIRTHDAY DATETIME)

选中上述语句并执行,出现

命令已成功完成

表示数据表已经建立好。可以在“对象资源管理器”中的STUDENT数据库上右击鼠标,并单击“刷新”,然后展开“用户表”,可以看到STUD数据表。

4.向STUD数据表中插入数据记录。

INSERT INTO STUD VALUES(’200512’,’Josephine’,’F’,’1980-12-20’)

选中上述语句并执行,出现

所影响的行数为1行

表示数据已经插入到数据表中。

七、设计性实验(注意:设计性实验的题目用T-SQL命令完成)

1.实验要求

(1)创建一个XSDA数据库,该数据库的主文件逻辑名称为 xsda_data,物理文件名为D:\SQL\xsda.mdf,初始大小为20MB,无上限,增长速度为20%;数据库的日志文件逻辑名称为xsda_log,物理文件名为D:\SQL\xsda.ldf,初始大小为3MB,最大尺寸为10MB,增长速度为1MB。

(2)在XSDA数据库中创建三个数据表:

S(SNO VARCHAR (10) NOT NULL ,SNAME VARCHAR(20),DEPA VARCHAR(20), AGE INT, SEX CHAR(4) )

C(CNO VARCHAR(10) NOT NULL, CNAME VARCHAR(20),cpno varchar(10),credit int)

SC(SNO V ARCHAR(10) NOT NULL, CNAME V ARCHAR(10) NOT NULL, GRADE DECIMAL(4,1))

(3)在3个表中输入如下数据。(参考以下表中内容,每个表至少输入4-6个记录)

(4)修改S表结构,增加一个入校时间,列名为RXTIME,日期型。

(5)删除SC表中成绩不及格的记录。

(6)把S表中学号为“200512”的学生的年龄改为19。

2.思考题

(1)SQL Server 2005/2008 提供了哪些基本数据类型?

(2)数据库创建后怎样修改数据库操纵文件和数据库日志文件分配的空间大小?

(3)用数据的导入、导出实现SQL数据库之间;SQL与EXCEL之间的数据传递。

实验D002: 单表查询实验

一、实验名称和性质

二、实验目的

1.掌握数据的基本检索方法。

2.掌握数据查询的Group by和Order by子句的使用。

3.掌握聚集函数的使用方法。

三、实验的软硬件环境要求

硬件环境要求:PC机(单机)。

使用的软件名称、版本号以及模块:

Windows XP下的SQL Server 2005(或SQL Server 2008)。

四、知识准备

前期要求掌握的知识:

数据检索的语句格式:

SELECT [ALL|DISTINCT] <目标列表达式列表>

FROM <表名或视图名列表>

[ WHERE <条件表达式> ]

[ GROUP BY <列名1> [ HA VING <条件表达式> ] ]

[ ORDER BY <列名2> [ ASC|DESC ] ]

其中,SELECT后的目标列表达式可以是列名、表达式或函数。

GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。

HA VING短语:筛选出只有满足指定条件的组

ORDER BY子句:对查询结果表按指定列值的升序或降序排序

注意:T-SQL语句中关键字不区分大小写

五、实验内容

1.对数据表进行简单检索。

2.对数据表进行排序检索。

3.在检索中使用聚集函数。

六、验证性实验(首先把精品课程网站-→上机实验数据库脚本中的代码复制到新建查询窗口执行(注意,只执行一次。为避免重复,执行后把这段代码删除。)

先选择要操作的数据库,用T-SQL命令:

USE STUDENT

或在工具栏的当前数据库中选择STUDENT,如图3-11所示。

图3-11 查询编辑器界面

以下查询要求在逐个语句执行,执行后将执行结果记录下来。 1.条件查询全部数据 USE STUDENT SELECT * FROM S

2.在SELECT 关键字后指明要检索的列名 (1) 查询S 表的学生学号和姓名 SELECT SNO ,SNAME FROM S (2) 查询S 表中的系部名 SELECT DEPA FROM S

(3)查询S 表中不重复的系部名 SELECT DISTINCT DEPA FROM S 3.改变列标题的检索

(1)使用 空格 形式: 列名 新标题

SELECT SNO 学号 , SNAME 姓名 FROM S (2)使用“AS ”形式,列名 AS 新标题

SELECT SNO AS 学号, SNAME AS 姓名 FROM S 3.有条件选择的查询

(1)在S 表检索“信息系”的学生信息

SELECT * FROM S WHERE DEPA=’信息系’

(2)在S 表中检索姓“王”的学生信息

SELECT * FROM S

WHERE sname like ‘王%’

(3)在SC 表检索’C01’选修课成绩为空的选课记录

SELECT SNO , CNO FROM SC

WHERE cno=’C01’ and grade is null (4)检索年龄为21,18,22的学生学号、姓名

SELECT SNO ,SNAME FROM S WHERE age in (21,18,22)

Age IN {21,18,22}表示某条记录的AGE字段值是否是集合{21,18,22}中的元素,如是,则选择。它等价于下面语句:

SELECT SNO,SNAME FROM S

WHERE age=18 or age=21 or age=22

4.使用聚集函数

(1)查询选课表中最高分、平均分、最低分

SELECT MAX(GRADE), AVG(GRADE),MIN(GRADE)

FROM SC

(2)查询“C01”课程的最高分、平均分和最小成绩。

SELECT MAX(GRADE), AVG(GRADE),MIN(GRADE)

FROM SC

WHERE CNO=‘C01’

5.对检索结果进行排序

SELECT * FROM SC

WHERE GRADE IS NULL

ORDER BY SNO,CNO DESC

6.进行分组统计:

(1)查询各学生的选课数

SELECT SNO,COUNT(*)

FROM SC

GROUP BY SNO

(2)使用HAVING 字句:“选课表”中查询选修了3 门以上课程的学生学号。

SELECT SNO ,COUNT(*)FROM SC

GROUP BY SNO

HAVING COUNT(*)>=3

(3)“选课表”中按学号分组汇总学生的平均分,并按平均分的降序排列。

SELECT SNO 学号, AVG(GRADE)平均分 FROM SC

GROUP BY SNO

ORDER BY 平均分 DESC

(4)分析下面两个SELECT语句执行结果,说明有什么不同?

SELECT SNO FROM SC

ORDER BY SNO

GO

SELECT SNO FROM SC

GROUP BY SNO

七、设计性实验

1.实验要求

(1)查询计算机系学生的学号和姓名。

(2)查询选修了课程的学生学号。

(3)查询选修“C01”课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

(4)查询每门课程的平均分。

(5)查询学校开设的课程总数。

(6)查询选修两门及两门以上课程的学生学号。(此题除了代码,执行结果,还请写

出代码的执行过程。)

(7)查询年龄在20-22之间的男生的学号、姓名、系部。

(8)查询选修“C01”课程的学生人数。

2.实验报告要求(见精品课程网站上机指导中实验报告参考)

3.思考题

(1)使用ORDER BY子句后SELECT后的数据列有什么限制吗?使用GROUP BY 呢?

(2)执行select max(grade) from sc, 写出执行结果;执行 select sno, max(grade) from sc group by sno,写出执行结果。思考:使用GROUP BY<分组条件>子句后,语句中的统计函数的运行结果有什么不同?

实验D003:多表查询实验

一、实验名称和性质

二、实验目的

1.掌握多表连接查询方法。

2.掌握IN 子查询的嵌套查询。

3.了解EXISTS嵌套查询方法。

三、实验的软硬件环境要求

硬件环境要求:PC机(单机)。

使用的软件名称、版本号以及模块:

Windows XP下的SQL Server 2005(或SQL Server 2008)。

四、知识准备

1.多表的连接查询(相当于做笛卡儿乘积)

SELECT <目标列表达式列表>

FROM 表名,表名

2.多表的等值连接查询

SELECT [ALL|DISTINCT] <表名.列名>…

FROM 表1,表2

WHERE 表1.列名=表2.列名

注意:多表连接时要注意当某列名在两张表中同时存在时,在列名前要加表名以示区分。

3.表自身的连接

SELECT 别名.列名,…

FROM 表1 AS 别名1,表1 AS 别名2

WHERE 别名1.列名=别名2.列名

注意:自身连接时因为是对同一张表操作,为区分开来对该表操作的顺序,需要对表取两个别名,以示区别。

4.IN嵌套子查询

SELECT <目标列表达式列表>

FROM 表名

WHERE 列名IN

(SELECT 字句)

5.EXISTS嵌套子查询

–带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。

●若内层查询结果非空,则返回真值

●若内层查询结果为空,则返回假值。

由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义

所以,EXISTS子查询中一般是相关自查询,即子查询脱离父查询后不能单独执行。

思考:如果EXISTS子查询中是不相关子查询,会有什么结果?

五、实验内容

1.多表等值连接查询;

2.外连接查询;

3.IN子查询嵌套;

4.EXISTS嵌套查询。

六、验证性实验

1.多表的连接查询(相当于做笛卡儿乘积)

SELECT * FROM C,SC

2.表的等值连接查询

(1) 查询各学生的选课信息(包括学号、课程名、成绩)

因为学号和成绩在SC表中,而课程名在C表中,因此需要多表查询。

SELECT SNO,CNAME,GRADE

FROM C,SC

WHERE https://www.wendangku.net/doc/282540366.html,O=https://www.wendangku.net/doc/282540366.html,O

(2) 查询学生的选课记录,显示学生的学号、姓名、课程号、成绩。

SELECT S.SNO,SNAME,CNO,GRADE

FROM S,SC

WHERE S.SNO=SC.SNO

(3) 查询学生的选课记录,显示学生的学号、姓名、课程号、课程名、成绩

SELECT S.SNO,SNAME,https://www.wendangku.net/doc/282540366.html,O,CNAME,GRADE

FROM S,SC,C

WHERE S.SNO=SC.SNO AND https://www.wendangku.net/doc/282540366.html,O=https://www.wendangku.net/doc/282540366.html,O

3.左外连接查询:当希望左表(第一张表)中所有记录全部显示出来时,需要用左外连接操作。

INSERT INTO S (SNO,SNAME) V ALUES(’20000’,’ZXX’)

SELECT S.SNO,SNAME,CNO,GRADE

FROM S

LEFT OUTER JOIN SC ON S.SNO=SC.SNO

说明与下面等值连接的执行结果有何不同?

SELECT S.SNO,SNAME,CNO,GRADE

FROM S, SC WHERE S.SNO=SC.SNO

4.表自身的连接

(1) 查询与‘李勇’同系的学生学号

将学生表S与S本身进行等值连接(系部相等),因为S与S做连接操作时不能区分,所以,对表取一个别名。然后将第二张表S中名字为‘李勇’的记录选择出就可。

SELECT S1.SNO

FROM S AS S1,S AS S2

WHERE S1.DEPA=S2.DEPA AND S2.SNAME=’李勇’

(2)显示每个学生的非最高分成绩(学生自己的选课成绩中,不是最高分的选课记录显示出来)

SELECT SNO, CNO, GRADE FROM SC AS SC1

WHERE GRADE <(SELECT MAX(GRADE) FROM SC AS SC2

WHERE SC2.SNO=SC1.SNO)

5.IN嵌套子查询

(1)不相关的IN 子查询:子查询可以单独执行,与被嵌套的查询无关。

如,查询与‘李勇’同系的学生学号

可以先查询出‘李勇’所在的系,然后再到S表中查询与上述结果相同的记录。

SELECT SNO

FROM S

WHERE DEPA IN

(SELECT DEPA FROM S WHERE SNAME=‘李勇’)

查询‘数据库原理’课程的选课人数

SELECT COUNT(*)FROM SC

WHERE CNO IN

(SELECT CNO FROM C WHERE CNAME=‘数据库原理’)

(2)相关的子查询:子查询中要用到父查询表的信息,子查询不能独立执行。

如,查询选修课程号为“C01”课程且成绩至少高于选修课程号为“C02”的同学的Cno、Sno和GRADE。

在子查询中,因为要查找该同学‘C02’课程的成绩,所以,需要父查询表中该学生的学号信息。

SELECT CNO,SNO,GRADE

FROM SC AS SC1

WHERE CNO=’C01’AND GRADE >(

SELECT GRADE FROM SC AS SC 2

WHERE SC2.SNO=SC1.SNO AND https://www.wendangku.net/doc/282540366.html,O=’C02’)

6.EXISTS嵌套子查询

(1)执行以下语句,观察显示的两个查询结果

SELECT SNO,SNAME

FROM S

WHERE EXISTS

(SELECT * FROM SC WHERE CNO=‘C03’)

-----请写出这段代码的执行过程。

GO

SELECT SNO,SNAME FROM S

(从结果看,第一段代码有没有实际的意义?)

(2)执行以下语句,观察显示的两个查询结果

INSERT INTO C VALUES(‘C06’,‘数据库安全’,NULL,3)

SELECT SNO,SNAME

FROM S

WHERE EXISTS

(SELECT * FROM SC WHERE CNO=‘C06’)

(3)查询‘数据库原理’课程的选课人数

SELECT COUNT(*)

FROM SC

WHERE EXISTS

( SELECT * FROM C

WHERE https://www.wendangku.net/doc/282540366.html,O=https://www.wendangku.net/doc/282540366.html,O AND CNAME=’数据库原理’)

七、设计性实验

1.实验要求

(1)查询“计算机系”学生所学课程的成绩表。

(2)查询成绩比该课程平均成绩低的同学的成绩表。(提示:用相关子查询。)

(3)查询选修“C01”课程的学生学号、课程名、成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

(4)查询选修两门及两门以上课程的学生学号及姓名。

(5)查询年龄在20-22之间的男生的选修的课程号。

(6)查询选修‘数据结构’课程的学生人数。

(7)查询每门选课成绩在80分以上的学生学号、姓名。(提示:每个学生选修的所有课程中如果其最低成绩为>=80即满足条件)

2.思考题

(1)多表的连接查询是否都可以转换成嵌套查询?什么情况下连接查询不能用嵌套查

询表示?

(2)多表连接查询和IN嵌套子查询从查询效率上来说,哪种查询的效果更好?为什么?

实验D004:数据完整性约束实验

一、实验名称和性质

二、实验目的

1.掌握数据完整性约束的类型。

2.掌握SQL SERVER中的相关完整性约束。

三、实验的软硬件环境要求

硬件环境要求:PC机(单机)。

使用的软件名称、版本号以及模块:

Windows XP下的SQL Server 2005(或SQL Server 2008)。

四、知识准备

1.SQL SERVER中的完整性约束

(1)Primary key约束:利用表中的一列或多列来唯一标识一行数据.能确保primary key 对应的数据列不为空,且数据不重复.

(2)default约束:处理用户不包含全部数据列的数据插入.

(3)check约束通过检查输入数据的值来维护数据的完整性.

(4)unique约束确保主键外的列数据的唯一性

(5)Foreign key主要用来维护两个表之间的数据一致性.

2.使用规则

规则的创建:

Create rule 规则名

As

布尔表达式

规则的绑定:

Sp_bindrule rulename, ‘table.column’Sp_unbindrule ‘talbe.column’

3.创建数据表时指明完整性约束

CREATE TABLE <表名>

(<列名> <数据类型>[ <列级完整性约束条件> ]

[,<列名> <数据类型>[ <列级完整性约束条件>] ] ……[,<表级完整性约束条件> ] );

<列级完整性约束条件>:涉及相应属性列的完整性约束条件

<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件

五、实验内容

1.建立新表时增加完整性约束。

2.为已有表添加完整性约束。

3.为两表建立关联,实现参照完整性。

六、验证性实验

每小题语句输入好后执行,观察执行后有什么结果?想想为什么?

1.PRIMARY KEY主键约束的建立

(1)建立表时加主键约束

CREATE TABLE ST(SNO V ARCHAR (10) PRIMARY KEY ,SNAME VARCHAR(20) NOT NULL, DEPA V ARCHAR(20), AGE INT, SEX CHAR(4))

GO

INSERT INTO ST (SNO,SNAME,DEPA)V ALUES(‘1001’,‘ZXX’,NULL)GO

INSERT INTO ST (SNO,SNAME)V ALUES(‘1001’,‘MID’)

GO

INSERT INTO ST (SNO,SNAME)V ALUES(NULL,‘ZXX’)

(2)在已有的表上添加约束

CREATE TABLE ST2(SNO V ARCHAR (10) NOT NULL ,SNAME V ARCHAR(20)

NOT NULL, DEPA V ARCHAR(20), AGE INT, SEX CHAR(4))

GO

INSERT INTO ST2 SELECT * FROM S

GO

ALTER TABLE ST2 ADD CONSTRAINT priKEY PRIMARY KEY(SNO)

INSERT INTO ST2 (SNO,SNAME,DEPA)V ALUES(‘200512’,‘Beibei’,NULL)

运行后出现什么结果?分析原因。

2.DEFAULT约束

CREATE TABLE CUST(NO V ARCHAR(5)PRIMARY KEY,WEIGHT INT DEFAULT(10))

GO

INSERT INTO CUST(NO)V ALUES(‘ZY01’)

INSERT INTO CUST(NO)V ALUES(‘ZY03’)

INSERT INTO CUST V ALUES(‘ZY02’,20)

GO

SELECT * FROM CUST

运行后出现什么结果?分析原因。

3.CHECK 约束

CREATE TABLE CUSTOMER(CUSTNO CHAR(4)NOT NULL CHECK (CUSTNO LIKE ‘[A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]’),CUSTNAME VARCHAR(20))GO

INSERT INTO CUSTOMER V ALUES(‘BJ01’,‘Beijing Grid Corp.’)

GO

INSERT INTO CUSTOMER V ALUES(‘BJ1’,‘Beijing Grid Corp.’)

GO

INSERT INTO CUSTOMER V ALUES(‘BJ*1’,‘Beijing Grid Corp.’)

运行后出现什么结果?分析原因。

4.UNIQUE 唯一性约束的建立

CREATE TABLE CUST1(CUSTNO CHAR(4)PRIMARY KEY,CUSTNAME V ARCHAR(20)UNIQUE,COUNTRY V ARCHAR(10))

GO

INSERT INTO CUST1(CUSTNO)V ALUES(‘BJ01’)

GO

INSERT INTO CUST1(CUSTNO)V ALUES(‘BJ02’)

GO

INSERT INTO CUST1(CUSTNO, CUSTNAME )

V ALUES(‘BJ03’,‘Beijing Grid Corp.’)

GO

INSERT INTO CUST1 (CUSTNO, CUSTNAME )

V ALUES(‘BJ04’,‘Beijing Grid Corp.’)

运行后出现什么结果?分析原因。

5.FOREIGN KEY外键约束的建立

ALTER TABLE C ADD CONSTRAINT CpriKEY PRIMARY KEY(CNO)

GO

ALTER TABLE SC ADD CONSTRAINT scpriKEY PRIMARY KEY(SNO,CNO) ALTER TABLE SC ADD CONSTRAINT scforKEY1 FOREIGN KEY (SNO) REFERENCES ST2(SNO)

ALTER TABLE SC ADD CONSTRAINT scforKEY2 FOREIGN KEY (CNO) REFERENCES C(CNO)

GO

INSERT INTO SC (SNO,CNO) V ALUES(‘890’,’C10’)

INSERT INTO SC (SNO,CNO) V ALUES(‘200518’,’C01’)

INSERT INTO SC (SNO,CNO) V ALUES(‘890’,NULL)

INSERT INTO SC (SNO,CNO) V ALUES(NULL,’C10’)

运行后出现什么结果?分析原因。

七、设计性实验

1.实验要求

(1)在S表中添加完整性约束:SNO设置为主键,SEX 的默认值为‘女’,AGE 的有效值为16-25。

(2)创建1张与S相同的表S1,在创建的同时将SNO设置为主键,SEX 的默认值为‘女’,AGE 的有效值为16-25 ,并将S表中的数据插入到S1中,插入不同的记录(用INSERT命令)来验证设置的完整性。

(3)创建1张与SC相同的表SC1,将(SNO,CNO)设置为主键,SNO和CNO设置为外键,并将SC表中的数据复制到SC1中,插入不同的记录来验证设置的完整性。

(4)创建1张与C表相同的表C1,将C中数据插入到C1后,在C1上添加完整性约束:将(CNO)设置为主键,CPNO 引用 CNO,CREDIT值为3-6。

2.思考题

SQL Server 中有哪些完整性功能?保证数据完整性还需要注意哪些方面的问题?

实验D005:数据操作与索引实验

一、实验名称和性质

二、实验目的

1.掌握数据操作--插入、删除、修改。

2.掌握数据表的索引方法。

3.掌握视图的创建机制及其上的操作。

三、实验的软硬件环境要求

硬件环境要求:PC机(单机)。

使用的软件名称、版本号以及模块:

Windows XP下的SQL Server 2005(或SQL Server 2008)。

四、知识准备

1.数据插入的两种方式

单记录插入—将数值列表所表示的记录插入数据表

INSERT INTO 表名[<目标列表>] V ALUES(数值列表)

多记录插入—将SELECT语句的查询结果插入到数据表

INSERT INTO表名[<目标列表>]

SELECT 语句

2.数据删除的语句格式:

DELETE FROM 表名

[WHERE 字句]

3.数据修改格式:

UPDATE 表名

SET 字段名=表达式

[WHERE 字句]

4.索引—提高数据效率的有效方法,建立索引的方法有两种:

非聚族索引:根据某些字段按次序建立索引表,但是不修改原来的数据表;1张数据表上可以建立多个非聚族索引。

聚族索引:根据某些字段进行排序建立索引,同时将原表根据该字段排序过。一张表上只能建立一个聚族索引。

5.根据索引看数据表SELECT * FROM 表名(INDEX=该表上的索引名)

五、实验内容

1.数据的插入操作。

2.数据的修改操作。

3.数据的查询造作。

4.聚族索引、非聚族索引的建立。

5.视图的建立及其上的操作。

六、验证性实验

1.数据的插入

(1)单记录的插入

USE STUDENT

GO

SELECT * FROM S

INSERT INTO S(SNO,SNAME)V ALUES(’200300’,’Paulwen’)

SELECT * FROM S

(2)多记录的插入

CREATE TABLE SBAK(SNO V ARCHAR (10) NOT NULL ,SNAME V ARCHAR(20),DEPA V ARCHAR(20), AGE INT, SEX CHAR(4))

GO

SELECT * FROM SBAK

INSERT INTO SBAK SELECT * FROM S

SELECT * FROM SBAK

2.数据的删除

CREATE TABLE CBAK(CNO V ARCHAR(10) NOT NULL, CNAME V ARCHAR(20), CPNO V ARCHAR(10),CREDIT INT)

GO

INSERT INTO CBAK SELECT * FROM C

DELETE FROM CBAK WHERE CREDIT<4

SELECT * FROM CBAK

3.数据的修改

SELECT * FROM S

UPDATE S SET DEPA=‘CS’

WHERE DEPA=‘计算机系’

GO

SELECT * FROM S

4.索引的建立

(1)建立非聚族索引

SELECT * FROM C

GO

CREATE INDEX ICNAME ON C(CNAME)

GO

SELECT * FROM C /*看数据表*/

SELECT * FROM C WITH(INDEX=ICNAME)/*按索引次序看数据表*/ (2)建立聚族索引

SELECT * FROM C

GO

CREATE CLUSTERED INDEX CICNO ON C(CNO)

GO

SELECT * FROM C

SELECT * FROM C WITH(INDEX=CICNO)

(3)建立唯一索引

CREATE UNIQUE INDEX UISNO ON SC (SNO)

执行后有什么结果?为什么会出现这个结果?

CREATE UNIQUE INDEX UISNO ON SC (SNO,CNO DESC)

执行后有什么结果?为什么?

(4)建立复合索引

SELECT * FROM S

GO

CREATE INDEX IAGESNO ON S(AGE DESC,SNO)

GO

SELECT * FROM S

SELECT * FROM S WITH(INDEX =IAGESNO)

(5)查看表中的索引

SP_HELPINDEX ‘S’

(6)删除表中的索引

DROP INDEX S.IAGESNO

GO

SP_HELPINDEX ‘S’

5.视图及其操作

(1)视图的建立

CREATE VIEW SHOWSNO

AS

SELECT S.SNO,SNAME,A VG(GRADE ) AS 平均成绩

FROM S,SC

WHERE S.SNO=SC.SNO

GROUP BY S.SNO,SNAME

GO

SELECT * FROM SHOWSNO

创建信息系学生的视图

CREATE VIEW VISDEPA

AS

SELECT * FROM S WHERE DEPA=’信息系’

(2)在视图上修改数据

UPDATE VISDEPA

SET DEPA=’IS’

GO

SELECT * FROM VISDEPA

视图中还有数据吗?为什么会这样?

CREATE VIEW S_SUM

AS

SELECT SNO, SUM(GRADE) AS TOTALSCORE FROM SC

GROUP BY SNO

GO

UPDATE S_SUM

SET TOTALSCORE=60

执行语句,出现什么结果?分析为什么?

(3)在视图上删除数据

SELECT * FROM VISDEPA

DELETE FROM VISDEPA WHERE SEX=‘女’

SELECT * FROM VISDEPA

SELECT * FROM S

七、设计性实验

1.实验要求

(1)将S表系部为“CS”学生对应的系部改为‘计算机系’。

(2)创建一个与SC表相同新数据表SCNEW,查询SC表中成绩为空的记录并将其复制到SCNEW表中。

(3)删除SC表中成绩为空的选课记录。

(4)根据S表中姓名字段建立一个降序非簇索引。

(5)建立S表上SNO的聚族索引。

(6)建立SC表上根据SNO升序,CNO降序的复合索引。

(7)建立每门课程的课程号、课程名、选课人数、平均分的视图。

2.思考题

(1)是否可以对任意的视图进行修改?什么样的视图上不能进行修改操作?

(2)如果表中某个字段重复值比较多,要不要在该字段上建立索引?为什么?

实验D006:SQL编程及存储过程实验

一、实验名称和性质

二、实验目的

1.了解T-SQL的基本数据类型、函数;

2.掌握局部变量的定义和赋值;

3.掌握存储过程的定义及调用

三、实验的软硬件环境要求

硬件环境要求:

PC机(单机)

使用的软件名称、版本号以及模块:

Windows XP下的SQL Server 2005(或SQL Server 2008)

四、知识准备

1.SQL中的基本数据类型:

varchar:字符数据。

datetime:(常量使用特定格式的字符日期值来表示,并使用单引号括起来。例如:'1976-05-28','May 28, 1976','28 May, 1976','760528','05/28/76'。

Integer:用一串数字来表示,不含小数点,不使用引号。例如,123,1896。

Decimal:用一串数字来表示,可以包含小数点,不使用引号。例如,1893.1209,2.0。

float和real:使用科学记数法表示。例如,101.5E5,0.5E-2。

money:用一串数字,可以包含或不包含小数点,以一个货币符号($)作为前缀,不使用等等

2.SQL中的变量:SQL中变量用来存放临时数据,变量使用前一定要先进行定义,变量名必须以@开头。另外,SQL Server中还提供一些系统变量,系统变量是以@@开头的。

变量的定义:declare 变量名数据类型

go

Declare @name varchar(20)

set @name='王雨'

Print @name

Go

3.SQL中的基本函数

(1) 字符串函数:LEN()、UPPER()、LOWER()、RIGHT()、LEFT()、SUBSTRING

数据库实验

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

数据库原理实验指导 实验前准备: 请设计一个企业销售管理据库,其中需要保存的信息如下: 员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期; 客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码; 产品信息,包括:产品编号,产品名称; 员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。 此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期; 要求: (1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型; (2)将ER图转换为关系模型; 实验一 实验名称:数据定义(2课时) 一、实验目的

1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER企业管理器的使用,并将得到的表生成脚本,然后保存。 2、理解上述基本表之间的关系,建立关系表。 3、掌握修改表结构的基本方法 4、掌握索引和视图的创建方法 二、实验环境 MS SQL SERVER或者My Sql。 三、实验内容与步骤 1、建立一个数据库和五张表的表结构。 (1)/*员工人事表employee */ Create datebase sale; create table employee( emp_no char(5) Not null primary key, emp_name char(10) Not null, sex char(1) Not null,

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

#(16课时)数据库实验指导书

《数据库原理及使用》实验指导书 (适用于计算机科学和技术、软件工程专业) 热风器4 计算机科学和技术学院 2011年12月 ⒈本课程的教学目的和要求 数据库系统产生于20世纪60年代末。30多年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。数据库原理是计算科学和技术专业重要的专业课程。 本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库使用的基本训练,提高其解决实际问题的能力。 ⒉实验教学的主要内容 数据库、基本表、视图、索引的建立和数据的更新;关系数据库的查询,包括单表查询、连接查询、嵌套查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库使用系统的设计实现。 ⒊实验教学重点 本课程的实验教学重点包括: ⑴数据库、基本表、视图、索引的建立和数据的更新; ⑵SQL的数据查询; ⑶恢复、完整性和安全性实现机制; ⑷简单数据库使用系统的设计实现; 4教材的选用 萨师煊,王珊.数据库系统概论(第四版).北京:高等教育出版社.2006,5 实验1创建数据库(2学时) 实验目的 1.学会数据表的创建; 2.加深对表间关系的理解; 3.理解数据库中数据的简单查询方法和使用。 实验内容 一、给定一个实际问题,实际使用问题的模式设计中至少要包括3个基本表。使用问题是供应商给工程供应零件(课本P74)。 1.按照下面的要求建立数据库: 创建一个数据库,数据库名称可以自己命名,其包含一个主数据文件和一个事务日志文件。注意主数据文件和事务日志文件的逻辑名和操作系统文件名,初始容量大小为5MB,

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

福建工程学院《实验指导书(数据库系统原理及应用)》

数据库系统原理 实验指导书 (本科)

目录 实验一数据定义语言 (1) 实验二SQL Sever中的单表查询 (3) 实验三SQL Serve中的连接查询 (4) 实验四SQL Serve的数据更新、视图 (5) 实验五数据控制(完整性与安全性) (7) 实验六语法元素与流程控制 (9) 实验七存储过程与用户自定义函数 (11) 实验八触发器 (12)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\S tuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10% 2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录; (4)将年龄的数据类型改为smallint; (5)向S表添加“入学时间(comedate)”列,其数据类型为日期型(datetime); (6)对表S,按年龄降序建索引(索引名为inxage); (7)删除S表的inxage索引; (8)删除S表; 5.在StuDB数据库中, (1)按照《数据库系统概论》(第四版)P82页的学生-课程数据库创建STUDENT、COURSE 和SC三张表,每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。 并输入相关数据。 (2)将StuDB数据库分离,在D盘下创建DB文件夹下找到StuDB数据库的两个文件,进行备份,后面的实验要用到这个数据库。 6.(课外)按照《数据库系统概论》(第四版)P74页习题5的SPJ数据库。创建SPJ数据 库,并在其中创建S、P、J和SPJ四张表。每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。要作好备份以便后面的实验使用该数据库数据。 三、实验要求:

数据库系统概论实验指导(第六版)

数据库系统概论实验指导 (第六版) 计算机学院 2010/09

改版履历

目录 目录 (3) 1.实验概要 (4) 1.1.实验说明 (4) 1.2.实验环境和配置 (4) 1.3.上机要求 (4) 2.实验1:数据库/表的基本操作和表级约束 (5) 2.1.目的和要求 (5) 2.2.实验准备 (5) 2.3.实验内容 (5) 3.实验2:库级约束和基本表的数据操作 (8) 3.1.目的和要求 (8) 3.2.实验准备 (8) 3.3.实验内容 (8) 4.实验3:视图操作和安全性控制 (10) 4.1.目的和要求 (10) 4.2.实验准备 (10) 4.3.实验内容 (10) 5.实验4:存储过程/触发器/ODBC数据库编程 (12) 5.1.目的与要求 (12) 5.2.实验准备 (12) 5.3.实验内容 (12) 6.实验5:数据库综合实验 (14) 6.1.目的与要求 (14) 6.2.实验准备 (14) 6.3.实验内容 (14) 5.3.1.题目一:零件交易中心管理系统 (15) 5.3.2.题目二:图书管理系统 (15) 5.3.3.题目三:民航订票管理系统 (15) 5.3.4.题目四:学生学籍管理系统 (15) 5.3.5.题目五:车站售票管理系统 (16) 5.3.6.题目六:企业人事管理系统 (16) 5.3.7.题目七:电话交费管理系统 (16) 5.3.8.题目八:医药销售管理系统 (16) 7.附录:实验报告格式 (17)

1.实验概要 1.1.实验说明 内容:本课程实验分5次完成,每次完成一部分。具体内容参考本指导的后半部分。 成绩:每次实验100分,最后取所有实验的平均分作为实验的总成绩。评分标准如下: 上述每一项按照百分制给出分值,最后按照比率计算每次实验的最终成绩。 实验报告 每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。每次实验结束时,将写好的实验报告,提交给各班辅导老师。如果确有困难没有完成的情况下,课后自己完成之后提交到辅导老师的邮箱里。由辅导老师根据课堂上机实验检查状况和实验报告的内容给出每次实验的成绩。 实验报告的内容包括:实验内容、实验步骤、程序源码、运行结果(可以是程序的输出,也可以是运行画面的抓屏,抓屏图片要尽可能的小,否则文件太大)。每份实验报告是一个WORD文档。实验报告命名规则如下:DBx(实验次数)_XXXXXX(学号)_姓名例如:052978的学生的第一次实验报告文件名: DB1_052978_李宁注意:请每个人保存好自己的实验报告的电子版,直到该门课考试成绩公布之后。 1.2.实验环境和配置 SQL Server 2008(Microsoft SQL Server 2008 Express With Advance Service) 1.3.上机要求 ●上机之前,请做好预习,需要写一个简单的预习报告,格式不限。 ●严格遵守实验室的各项规定。

数据库系统设计实验报告

数据库系统设计实验报告 ――教务管理系统 学院:计算机科学与技术 专业:软件工程 班级: 学号: 姓名: 指导老师:

一、概述 项目背景:数据库课程设计 系统名称:教务管理系统 开发环境:SQL Server 2008 二、需求分析 1、系统的概述 ?一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或 者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身 份证号、入学时间等属性。 ?每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这 个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置 有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都 有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言, 虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课 程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机 学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相 同的。 ?教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容 根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2 学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程 安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点 (理工楼234),有的课程是单周上,有的双周,也有是每周都上的。 ?在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择 的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能 给任何学生选择了。 ?学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户 名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多 个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考 试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。 ?为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而 是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成 绩表中。

数据库实验指导书++数据库系统概论(第四版)++王珊、萨师煊

目录 实验一熟悉POWER DESIGNER (2) 实验二SQL SERVER 2000的安装与使用 (6) 实验三创建数据库、表 (17) 实验四SQL SERVER2000查询分析器 (29) 实验五SQL语言的DDL (38) 实验六SQL语言的DML初步 (40) 实验七DML的数据查询 (43) 实验八SQL语言综合练习 (48) 实验九嵌入式SQL ...................... 错误!未定义书签。实验十数据库设计....................... 错误!未定义书签。

实验一熟悉Power Designer 一、实验目的 1、掌握安装并破解PD的方法。 2、通过阅读和分析应用实例“学生选课系统CDM”,了解和熟悉Power Designer CDM及其相关知识。 3.掌握运用Power Designer工具建立CDM的方法。 4.初步掌握从Power Designer CDM生成相应的PDM的方法。 二、实验内容及实验步骤 1、PD环境的介绍 Power Designer的4种模型文件: (1) 概念数据模型(CDM) CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构 无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对 象。它给运行计划或业务活动的数据一个正式表现方式。 (2)物理数据模型(PDM) :PDM 叙述数据库的物理实现。 藉由PDM ,你考虑真实的物理实现的细节。你能修正PDM 适合你的表现或物理约束。 (3)面向对象模型(OOM) 一个OOM包含一系列包,类,接口, 和他们的关系。这些对象一起形成所有的( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。 (4)业务程序模型(BPM) BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用 2、创建CDM(以学生选课系统为例) (1)新建一个CDM,命名为CssCdm(css,Course SelectionSystem ) (2)创建“学生”、“课程”实体和“选课”联系,并命名 (3)为各实体和联系创建属性 学生(学号,姓名,性别,年龄)

数据库实验报告

数据库实验报告

数据库原理及应用(本科)实验指导书 -计算机信息教研室- 二○一二年五月 精心整理,用心做精品0

目录 实验1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14) 精心整理,用心做精品1

时间:机房号:得分: 实验1 创建数据库与数据表 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER 和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE 和选修SC三个数据表,各表中的数据如下所示: 学生STUDENT: Sno Sname Ssex Sage Sdept 95001 李勇M 20 CS 95002 刘晨 F 19 IS 95003 王敏 F 18 MA 95004 张立M 18 IS 课程COURSE: Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构7 4 6 数据处理 2 精心整理,用心做精品2

7 C语言 6 4 选修SC: Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 2. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。 供应商S: SNO SNAME CITY S1 精益天津 S2 万胜北京 S3 东方北京 S4 丰泰隆上海 S5 康健南京 零件P: PNO PNAME COLOR WEIGHT P1 螺母红12 P2 螺栓绿17 P3 螺丝刀蓝14 P4 螺丝刀红14 P5 凸轮蓝40 P6 齿轮红30 工程项目J: JNO JNAME CITY J1 三建北京 J2 一汽长春 J3 弹簧厂天津 J4 造船厂天津 精心整理,用心做精品3

大型数据库系统(SQL Server 2005)--实验指导讲义

实验一SQL Server 2005数据库服务器界面使用及数据库原理知 识的应用 1.实验目的 (1)通过使用SQL Server 2005的控制界面感受SQL Server 2005。 (2)熟悉SQL Server 2005所需的软、硬件要求。 (3)熟悉SQL Server 2005支持的身份验证种类。 (4)掌握SQL Server 2005服务的几种启动方法。 (5)掌握SQL Server Management Studio的常规使用。 (6)掌握关系数据库的逻辑设计方法——E-R图。 2.实验准备 (1)了解SQL Server Management Studio的常规使用。 (2)了解SQL Server 2005所需的软、硬件要求。 (3)了解SQL Server 2005支持的身份验证种类。 (4)了解SQL Server 2005服务的几种启动方法。 (5)了解关系数据库的逻辑设计方法——E-R图。 3.实验内容 (1)分别使用“Windows身份验证模式”和“SQL Server和Windows身份验证模式”登录SQL Server 2005集成控制台。 (2)利用SQL Server Configuration Manager配置SQL Server 2005服务器。 (3)利用SQL Server 2005创建的默认帐户,通过注册服务器向导首次注册服务器。 (4)试着创建一些由SQL Server 2005验证的账户,删除第一次注册的服务器后用新建的账户来注册服务器。 (5)为某一个数据库服务器指定服务器别名,然后通过服务器别名注册该数据库服务器。 (6)熟悉和学习使用SQL Server Management Studio。 (7)设计E-R图。参照书上19页的优化模式,要求注明实体的主码、联系的类型和主码。

数据库实验报告

合肥师范学院实验报告册 2014 / 2015 学年第2学期 系别计算机学院 实验课程数据库原理 专业 班级 姓名 学号 指导教师

实验一——数据库基本操作 一、实验目的 1.熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。 2.掌握界面操作方法完成用户数据库建立、备份和还原。 3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。 二、实验预习内容 在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。 2.使用SQL SERVER 2000 中的企业管理器完成以下任务。 数据库名称:STC 表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) ); COUTSES(cno char(3), cname varchar(50), cpno char(3), credit int ); SC(sno char(9), cno char(3), grade int ); 说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。 1)建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材)2)分析并建立各表的主码,用下划线在上面表结构中标出主码。 3)建立各表之间的关联,请简述操作步骤。 (1)CREATE TABLE Stu ( sno char(9), sname varchar(50), ssex char(2), sage int, sdept char(2) ); CREATE TABLE COURSE ( cno char(3), cname varchar(50), cpno char(3), credit int); CREATE TABLE SC ( sno char(9), cno char(3), grade int); 4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC 进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

桂林理工《数据库原理及应用》实验指导(改版)

数据库原理及应用(本科)实验指导书 -计算机信息教研室- 桂林理工大学信息科学与工程学院 二○一二年五月

目录 实验 1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14)

时间:机房号:得分: 实验1 创建数据库与数据表 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC 三个数据表,各表中的数据如下所示: 学生STUDENT: Sno Sname Ssex Sage Sdept 95001 李勇M 20 CS 95002 刘晨 F 19 IS 95003 王敏 F 18 MA 95004 张立M 18 IS 课程COURSE: Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构7 4 6 数据处理 2 7 C语言 6 4 选修SC: Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 2. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J 和供应情况表SPJ四个数据表,各表中数据如下所示。

供应商S: SNO SNAME CITY S1 精益天津 S2 万胜北京 S3 东方北京 S4 丰泰隆上海 S5 康健南京 零件P: PNO PNAME COLOR WEIGHT P1 螺母红12 P2 螺栓绿17 P3 螺丝刀蓝14 P4 螺丝刀红14 P5 凸轮蓝40 P6 齿轮红30 工程项目J: JNO JNAME CITY J1 三建北京 J2 一汽长春 J3 弹簧厂天津 J4 造船厂天津 J5 机车厂唐山 J6 无线电厂常州 J7 半导体厂南京 供应情况SPJ: SNO PNO JNO QTY S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200

数据库系统实验

实验指导书 班级:090402 姓名:郑锦坤

序言 数据库是数据管理的最新技术,是计算机科学的重要分支。通过学习重点让大家掌握数据库技术的程序设计思想和方法,学习开发管理系统的技术,并结合PB8.0以上版本和SQL SERVER 2000以上版本上机环境编程测试。 为了达到这个目的,这里安排五个实验单元。 实验报告的内容 1.题目 描述每个实验的内容是什么。 2.需求分析 用E-R图描述数据库的模式设计及每个关系模式的建立;描述数据字典及程序数据流;每个事件、函数或过程 的头和规格说明; 3.源程序清单和结果 源程序要加注释,要有测试数据及结果。

实验1:学习SQL 语句与SQL SERVER的数据库环境(4学时) 本次实验的主要目的在于学会使用SQL SERVER环境建 库的方法,学会SQL SERVER企业管理器和查询分析器的使用,通过数据库操纵环境,了解库的建立、表的建立、数据库 的查询实现方法。实验数据如下: Student SC

实验报告 1 日期: 一.SQL语句实验题目: 1.建立课程表 2.建立学生表 3.建立选课表 4.查询所有学生的详细信息

SELECT Student.SCLASS, Student.SNO,Student.SNAME, Student.SSEX, Student.SAGE , Student.SDEPT,https://www.wendangku.net/doc/282540366.html,O,SC.GRADE,https://www.wendangku.net/doc/282540366.html,AME,Course.CPNO,Course. CCREDIT FROM Course,Student,SC WHERE SC.SCLASS=Student.SCLASS AND SC.SNO=Student.SNO AND https://www.wendangku.net/doc/282540366.html,O=https://www.wendangku.net/doc/282540366.html,O 5.查询1班的学生号学及姓名 SELECT SNO,SNAME FROM Student WHERE SCLASS='1' 6.查询‘刘晨’的出生年 7.查询姓‘刘’的学生的详细情况

数据库实验指导书

数据库实验指导书 电气与电子工程学院

实验项目 实验一认识DBMS及数据库的建立 实验二交互式SQL(数据库查询与更新) 实验三数据控制(安全性部分) 实验四数据控制(完整性部分)

实验一认识DBMS及数据库的建立 一、实验目的: 1.掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。 2.掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。 3.掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。 二、实验内容及步骤: 1.通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jiaoxuedb,要求: 有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为jiaoxuedb1和jiaoxuedb2,物理文件名为jiaoxuedb1.mdf和jiaoxuedb2.mdf。主文件是jiaoxuedb1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为jiaoxuedblog1和jiaoxuedblog2,物理文件名为jiaoxuedblog1.df和jiaoxuedblog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。 2.用企业管理器在jiaoxuedb数据库中建立如下表: 学生表: jiaoxuedbdent 课程表: Course 选课表: SC

3.查看表格:显示当前数据库中所有对象的信息。 4.利用企业管理器删除表: 在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。单击“全部删除”按钮,即可去除表。

数据库实验指导及报告-2015正式版

编号:2015版 《数据库原理及应用》 实验报告 实验报告作者(姓名及学号): 实验指导教师:鲍芳 实验时间:2015-2016 秋季实验班级:自动化电气13级班 实验中心三号楼 广东工业大学

(MS SQL SERVER 2005) 第一次实验注意事项: 1.携带U盘;本实验使用MS SQL SERVER 2005; 2.在“我的电脑\|管理\服务及应用\SQLSERVER配置管理器\SQLSERVER2005服务” 菜单下启动“SQL SERVER(MSSQLSERVER)”服务,双击应用程序“SQL Server Management Studio”,注意“服务器名称”不要使用缺省设置,通过“浏览更多” 及展开“数据库引擎”选择本机号码,点击“连接”; 3.在“对象资源管理器”窗口显示有绿色箭头;在对象资源管理器中附加myCapeCodd 数据库:鼠标右键点击“数据库”选择“附加”,指明数据文件.mdf的位置(均指向U盘的某个文件夹);附加成功后在数据库目录下可见myCapeCodd; 4.点击“新建查询”即可在窗口输入相关SQL语句,可以用截图软件保存查询结果。(注意MS SQL SERVER 2008 不支持数据库.mdf.及log文件指向U盘。) 2015数据库原理及应用实验安排(实验一至实验七) 在实验四至实验七中,务必对提交的SQL语句返回的查询结果与人工检索的结果相对比,以此方式验证SQL语句的正确性。 以下实验内容涉及学生自己创建数据库。 5.在对象资源管理器中创建自己的数据库:鼠标右键点击“数据库”选择“新建数据 库”,名称取为“电气X班XXX学生成绩管理数据库”;在“新建数据库”时要指明数据文件及事务日志的位置(均指向U盘的某个文件夹),不要使用缺省设置; 6.在“新建查询”下输入SQL语句,注意先选择对应的“电气X班XXX学生成绩管 理数据库”,而不是缺省的master数据库;检查及执行该语句,注意每次输入新的SQL语句时先清空输入界面;注意在半角状态输入空格,若在全角状态输入空格容易导致出错; 7.创建数据库中的表后(注意刷新),在对象资源管理器窗口可见该表及其所拥有的 键及约束:学生:键:1,约束:1;课程:键:1;选课:键:3,约束:1 8.在对象资源管理器中“数据库”子菜单使用“附加”命令选中.mdf文件(对应的.log

《数据库系统原理》实验指导书范文

《数据库系统原理》实验指导书 计算机科学与技术与学院计算机科学与技术系 二○一二年

目录 实验一认识DBMS ..................................................................................... 错误!未定义书签。实验二交互式SQL(4小时) ................................................................. 错误!未定义书签。实验三数据库完整性(2小时) ........................................................... 错误!未定义书签。实验四数据库安全性(2小时) ........................................................... 错误!未定义书签。

实验一认识DBMS 一、实验目的 1.通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架。在此推荐SQL SERVER2005。 2.熟悉DBMS的安装、配置及使用。 3.搭建今后实验的平台。 二、实验平台 操作系统:Windows XP。 数据库管理系统:SQL SERVER2005。选择安装各个数据库管理系统之前,请仔细看清硬件的配置要求。 三、实验内容和要求 1.根据安装文件的说明安装数据库管理系统。在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。 2.学会启动和停止数据库服务。 在正确安装SQL SERVER2005后,SQL SERVER数据库引擎服务会在系统启动时自动启动。如果要手动地启动和停止数据库引擎服务,可以通过SQL SERVER配置管理器(SQLSERVER CONFIGURATION MANAGER)来进行管理。SQL SERVER配置管理器综合了SQLSERVER 2000中的服务管理器、服务器网络适用工具和客户端网络实用工具的功能。 打开 SQL SERVER配置管理器工具,单击“SQL SERVER2005服务”节点,其中的“SQL SERVER”服务就是我们所说的数据库引擎。与SQL SERVER 2000一样,可以通过这个配置管理器来启动、停止所安装的服务,如“SQLSERVER(MSSQLSERVER)”。 3.了解RDBMS系统的体系结构。 SQL SERVER2005是一款具有“客户机/服务器”架构的关系型数据库管理系统,它使用T-SQL语言在客户机和服务器之间传递客户机的请求和服务器的响应。 数据库体系结构:又划分为数据库逻辑结构和数据库物理结构。数据库逻辑结构主要应用于面向用户的数据组织和管理,如表、视图、存储过程和触发器、约束等。数据库物理结构主要应用于面向计算机的数据组织和管理,如数据以表文件的形式存放在硬盘上。 4.了解RDBMS的管理和使用。例如SQL SERVER Management Studio是SQL SERVER 2005种最重要的管理工具,它融合了SQL SERVER2000的查询分析器和企业管理器、OLAP分析器等多种工具的功能,为管理人员提供了一个简单的实用工具,使用这个工具既可以用图形化的方法,也可以通过编写SQL语句来实现数据库的操作。 5.初步了解RDBMS的安全性,这里主要是服务器用户的登录和服务器预定义角色。可以尝试建立一个新的登录名,赋予其数据库管理员的角色,今后的实验可以用该登录名来创建数据库用户。

数据库系统原理及应用实验全套

数据库系统原理及应用实验指导书 (本科) 福建工程学院计算机与信息科学系计算机软件与理论教研室 浅诺制作 2012年5月

目录 实验一数据定义语言 (1) 实验二 SQL Sever中的单表查询 (5) 实验三 SQL Serve中的连接查询 (8) 实验四 SQL Serve的数据更新、视图 (12) 实验五数据控制(完整性与安全性) (17) 实验六语法元素与流程控制 (22) 实验七存储过程与用户自定义函数 (28) 实验八触发器 (34)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10%

2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S: S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录;

数据库实验报告

计算机与信息学院 实验报告 专业班级 计科3班 学生姓名及学号 2014217151 李勤阳课程教学班号 任课教师 实验指导教师 实验地点 计算机楼303 20 16 ~20 17 学年第一学期

实验一数据库的创建和删除 一. 实验目的: 1. 了解SQL Server数据库的环境。 2. 掌握使用SQL 语句创建数据库的方法。 二.实验要求 1. 掌握通过查询分析器进行交互式SQL语句的使用方法。 2. 理解SQL Server中的共享架构dbo。 3.注意操作结果的截图与保存,供撰写实验报告使用。 三.实验内容 1. 使用SQL语句创建数据库EDUC。 数据库的参数要求: 数据库名称:EDUC 数据库存储路径:将数据库文件存储在D:\jxgl\目录中。 (注,如果该目录不存在,需在D盘新建一个名为jxgl的文件夹) 其他参数要求: 数据文件的初始大小:10M 最大:60M 按5%的比例自动增长。 日志文件的初始大小:4M 最大:10M 增量为1M。 2. 将新创建的数据库设置为当前数据库。 四.实验步骤

1.创建数据库EDUC的SQL语句: 示例:创建数据库userdb1 maxsize=5 , filegrowth=1)create database userdb1 on (name=userdb1_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='d:\sql_data\userdb1.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb1_log, filename='d:\sql_data\userdb1.ldf ' , size=2 , reate database EDUC on (name=EDUC_data, filename='E:\jxgl\EDUC.mdf', size=10, maxsize=60, filegrowth=5%) log on ( name=EDUC_log, filename='E:\jxgl\EDUC.ldf ',

数据库原理及应用实验指导★---实验4_SQL语言——SELECT查询操作[1]

实验4 SQL 语言——SELECT 查询操作 1 实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作 实验示例 实验示例中要使用包括如下三个表的“教学管理”数据库JXGL : (1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。 (2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。 (3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。 1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。 CREATE DATABASE JXGL 2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下: Create Table Student ( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno), Sname VARCHAR(20), Sage SMALLINT CHECK(Sage>=15 AND Sage<=45), Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'), Sdept CHAR(2)); Create Table Course ( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno), Cname VARCHAR(20), Cpno CHAR(2), Ccredit SMALLINT); Create Table SC ( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL, Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)), PRIMARY KEY(Sno,Cno),

相关文档
相关文档 最新文档