SQLserver2005实验.ppt_第1页
SQLserver2005实验.ppt_第2页
SQLserver2005实验.ppt_第3页
SQLserver2005实验.ppt_第4页
SQLserver2005实验.ppt_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二部分 SQL Server 2005实验 数据库基础 内容 实验1 SQL Server 2005管理工具的使用 实验2 创建数据库与二维表 实验3 数据库的查询 实验4 数据库的更新 实验5 T-SQL Server 2005编程 数据库基础 内容 实验6 索引与完整性 实验7 存储工程与触发器 实验8 数据库的安全性 实验9 备份恢复与导入导出 数据库基础 实验1 SQL Server 2005管理工具的使用 目的与要求 (1)掌握SQL Server 2005服务器的安装。 (2)掌握SQL Server Management Studio的基本使用方法 。 (3)对数据库及其对象有基本了解。 数据库基础 实验1 SQL Server 2005管理工具的使用 实验准备 (1)了解SQL Server 2005各种版本安装的软硬件要求。 (2)了解SQL Server支持的身份验证模式。 (3)SQL Server各组件的主要功能。 (4)对数据库、表、数据库对象有基本了解。 (5)了解在SQL Server Management Studio中执行SQL语 句的方法。 数据库基础 实验1 SQL Server 2005管理工具的使用 实验内容 1.利用SQL Server Management Studio查看系统自带的master数据库 (1)打开SQL Server Management Studio窗口。 (2)在“连接到服务器”对话框中,选择服务器类型、服务器名称, 设置好身份验证模式后,单击“连接”按钮。 (3)从“对象资源管理器”窗格中依次展开SQL Server服务器下的“数 据库”“系统数据库”master节点,则将列出该数据库的所有对象, 如:表、视图、可编程性、Service Broker、安全性等。 (4)选中master的“表”“系统表”,将列出master数据库所有的表, 我们可以查看各表的相关信息,如列、键、约束、触发器、索引等。 数据库基础 实验1 SQL Server 2005管理工具的使用 2.通过T-SQL语句查询数据库中表的记录 (1)以master数据库的表spt_values为例,点击工具栏中的“新建查询 ”按钮。 (2)在编辑窗口中输入如下T-SQL语句: use master select * from spt_values go 点击工具栏中的“执行”按钮,看看执行结果是什么? 数据库基础 实验1 SQL Server 2005管理工具的使用 【思考与练习】 通过T-SQL语句查询master数据库spt_monitor表的记录。 数据库基础 实验2 创建数据库与二维表 目的与要求 (1)了解SQL Server数据库的逻辑结构和物理结构。 (2)了解表的结构特点。 (3)了解SQL Server的基本数据类型。 (4)了解空值概念。 (5)学会在SQL Server Management Studio中创建数据库和表。 (6)学会使用T-SQL语句创建数据库和表。 数据库基础 实验2 创建数据库与二维表 实验准备 (1)创建数据库必须要确定数据库名、所有者、数据库大小(初始 大小、最大文件大小、是否启用自动增长及增长方式等)和存储数据 库的文件。 (2)确定数据库包含哪些表以及所包含的各表的结构,还要了解 SQL Server的常用数据类型,以便创建数据库和表。 (3)了解2种常用的创建数据库、表的方法,即通过SQL Server Management Studio图形工具中创建和使用T-SQL的CREATE DATABASE语句创建。 数据库基础 实验2 创建数据库与二维表 实验内容 1.实验题目 创建用于企业管理的员工管理数据库,数据库名为YGGL,包含员工 的信息、部门信息以及员工的薪水信息。数据库YGGL包含下列3个 表。 (1)Employees:员工自然信息表。 (2)Departments:部门信息表。 (3)Salary:员工薪水情况表。 各表的结构分别如表T2.1,表T2.2,表T2.3所示。 数据库基础 实验2 创建数据库与二维表 表T2.1 Employees表结构 列名数据类型长度是否允许 为空 值 说明 Employee ID Char6员工编号, 主键 NameChar10姓名 SexBit1性别 PhoneNu mber Char12电话 号码 EmailAdd ress Char30电子邮件地 址 Departme ntID Char3员工部门号 ,外键 数据库基础 实验2 创建数据库与二维表 表T2.2 Departments表结构 列名数据类 型 长度是否允许 为空 值 说明 Departme ntID 字符型 ( char ) 3部门编号 ,主键 Departme ntNa me 字符型 ( char ) 20部门名 Note文本( text ) 16备注 数据库基础 实验2 创建数据库与二维表 表T2.3 Salary表结构 列名数据类 型 长度是否允许 为空 值 说明 Employe eID 字符型 ( char ) 6员工编号 ,主键 InCome浮点型 ( float ) 8收入 OutCome浮点型 ( float ) 8支出 数据库基础 实验2 创建数据库与二维表 2.实验步骤 (1)在SQL Server Management Studio中创建数据库 YGGL 要求:数据库YGGL初始大小为10MB,最大大小为50MB ,数据库自动增长,增长方式是按5%比例增长;日志文 件初始为2MB,最大可增长到5MB(默认为不限制), 按1MB增长(默认是按10%比例增长)。 数据库基础 实验2 创建数据库与二维表 在“对象资源管理器”窗格中右击“数据库”节点,从弹出的 菜单中选择“新建数据库”命令,打开“新建数据库”窗口, 在“数据库名称”文本框中输入数据库名称YGGL,然后在 “数据库文件”选项卡中按要求设置数据库大小、增长方式 和增长比例等,单击“确定”按钮,完成数据库YGGL的创 建。 数据库基础 实验2 创建数据库与二维表 (2)在SQL Server Management Studio中删除创建的数据 库YGGL 在SQL Server Management Studio中展开“数据库”节点,在 其子节点“YGGL”上单击鼠标右键,选择“删除”,打开“删 除对象”窗口,单击“确定”按钮,即删除了创建的数据库 YGGL。 数据库基础 实验2 创建数据库与二维表 (3)使用T-SQL语句创建数据库YGGL 按照步骤(1)中的要求创建数据库YGGL。 数据库基础 实验2 创建数据库与二维表 打开SQL Server Management Studio窗口,点击工具栏中的“新建查询”按钮,在编辑窗 口中输入以下T-SQL语句: CREATE DATABASE YGGL ON ( NAME=YGGL_Data, FILENAME=c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataYGGL_Data.mdf, SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% ) LOG ON 数据库基础 实验2 创建数据库与二维表 ( NAME=YGGL_Log, FILENAME=c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataYGGL_Log.ldf, SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB ) GO 点击工具栏中的“执行”按钮,执行上述语句,并在“对象资源管理器” 窗格中查看执行结果。 数据库基础 实验2 创建数据库与二维表 (4)在SQL Server Management Studio中分别创建表Employees, Departments和Salary 在SQL Server Management Studio中依次展开“数据库”“YGGL”节点 ,在子节点“表”上单击鼠标右键,选择“新建表”命令,在右边的表属 性栏中显示了设置此表格的相关信息,输入表名Employees;在窗口 的中间可以设置此表的一些列属性,输入Employees表的各字段信息 ,保存后即创建了表Employees。按照同样的操作过程创建表 Departments和Salary。 数据库基础 实验2 创建数据库与二维表 (5)在SQL Server Management Studio中删除创建的表 Employees,Departments和Salary 在SQL Server Management Studio中依次展开“数据库 ”“YGGL” “表”节点,在子节点“dbo. Employees”上单 击鼠标右键,选择“删除”命令,打开“删除对象”窗口,点 击“确定”按钮,即删除了创建的表Employees。按照同样 的操作过程删除表Departments和Salary。 数据库基础 实验2 创建数据库与二维表 (6)使用T-SQL语句创建表Employees,Departments和Salary 点击工具栏中的“新建查询”按钮,在编辑窗口中输入以下T-SQL语句 : USE YGGL CREATE TABLE Employees ( EmployeeID char(6) NOT NULL, Name char(10) NOT NULL, Sex bit NOT NULL, 数据库基础 实验2 创建数据库与二维表 PhoneNumber char(12) NULL, EmailAddress char(20) NULL, DepartmentID char(3) NOT NULL ) GO 点击工具栏中的“执行”按钮,执行上述语句,即可创建表Employees 。按照同样的操作过程创建表Departments和Salary,并在“对象资源 管理器”窗格中查看执行结果。 数据库基础 实验3 数据库的查询 目的与要求 (1)掌握SELECT语句的基本语法。 (2)掌握子查询的表示。 (3)掌握连接查询的表示。 (4)掌握数据汇总的方法。 (5)掌握SELECT语句的GROUP BY子句的作用和使用方法。 (6)掌握SELECT语句的ORDER BY子句的作用和使用方法。 数据库基础 实验3 数据库的查询 实验准备 (1)了解SELECT语句的基本语法格式。 (2)了解SELECE语句的执行方法。 (3)了解子查询的表示方法。 (4)了解连接查询的表示。 (5)了解数据汇总的方法。 (6)了解SELECT语句的GROUP BY子句的作用和使用方法。 (7)了解SELECT语句的ORDER BY子句的作用。 数据库基础 实验3 数据库的查询 实验内容 1.SELECT语句的基本使用 (1)对于实验2给出的数据库表结构,查询每个雇员所有数据。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT * FROM Employees GO 数据库基础 实验3 数据库的查询 【思考与练习】 用SELECT语句查询Departments和Salary表的所有记录。 (2)查询每个雇员的电话号码和电子邮件地址。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT PhoneNumber,EmailAddress FROM Employees GO 数据库基础 实验3 数据库的查询 【思考与练习】 用SELECT语句查询Departments和Salary表的一列或若干列。 (3)查询EmployeeID为300380的雇员的电话和电子邮件。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT PhoneNumber,EmailAddress FROM Employees WHERE EmployeeID=300380 GO 数据库基础 实验3 数据库的查询 【思考与练习】 用SELECT语句查询Departmens和Salary表中满足指定条件的1列或若干列。 (4)查询Employees表中女雇员的电话和电子邮件地址,使用AS子句将结果中各列的 标题分别指定为电话、邮箱。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT PhoneNumber AS 电话,EmailAddress AS 邮箱 FROM Employees WHERE sex=0 GO 注意:使用AS子句可指定目标列的标题。 数据库基础 实验3 数据库的查询 (5)计算每个员工的实际收入。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT EmployeeID,实际收入=InCome-OutCome FROM Salary GO 数据库基础 实验3 数据库的查询 (6)找出所有姓王的员工的部门号。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT DepartmentID FROM Employees WHERE name LIKE 王% GO 数据库基础 实验3 数据库的查询 【思考与练习】 找出所有使用“新浪”邮箱的员工的号码和部门号。 数据库基础 实验3 数据库的查询 (7)找出所有收入在15002500元之间的员工号码。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT EmployeeID FROM Salary WHERE InCome BETWEEN 1500 AND 2500 GO 数据库基础 实验3 数据库的查询 【思考与练习】 找出所有在部门“1”或“3”工作的员工的号码。 注意:在SELECT语句中LIKE、BETWEENAND、IN、 NOT及CONTAIN谓词的作用。 数据库基础 实验3 数据库的查询 2.子查询的使用 查找在营销部工作的员工的情况。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT * FROM Employees WHERE DepartmentID= (SELECT DepartmentID FROM Departments WHERE DepartmentName=营销部) GO 数据库基础 实验3 数据库的查询 【思考与练习】 用子查询的方法查找所有收入在2000元以下的员工的情况 。 数据库基础 实验3 数据库的查询 3.连接查询的使用 查询每个员工的情况以及薪水的情况。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT Employees.*,Salary.* FROM Employees,Salary WHERE Employees.EmployeeID=Salary.EmployeeID GO 数据库基础 实验3 数据库的查询 【思考与练习】 查询每个员工的情况以及其工作部门的情况。 数据库基础 实验3 数据库的查询 4.数据汇总 (1)求研发部员工的平均收入。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT AVG(InCome)AS 研发部平均收入 FROM Salary WHERE EmployeeID IN (SELECT EmployeeID FROM Employees WHERE DepartmentID= (SELECT DepartmentID FROM Departments WHERE DepartmentName=研发部) GO 数据库基础 实验3 数据库的查询 【思考与练习】 查询研发部员工的最高和最低收入。 数据库基础 实验3 数据库的查询 (2)求研发部员工的平均实际收入。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT AVG(InCome-OutCome)AS 研发部平均实际收入 FROM Salary WHERE EmployeeID IN 数据库基础 实验3 数据库的查询 (SELECT EmployeeID FROM Employees WHERE DepartmentID= (SELECT DepartmentID FROM Departments WHERE DepartmentName=研发部) GO 数据库基础 实验3 数据库的查询 【思考与练习】 查询研发部员工的最高和最低实际收入。 数据库基础 实验3 数据库的查询 (3)求研发部的总人数。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT COUNT(EmployeeID) FROM Employees WHERE DepartmentID= (SELECT DepartmentID FROM Departments WHERE DepartmentName=研发部) GO 数据库基础 实验3 数据库的查询 【思考与练习】 统计研发部收入在2000元以上员工的人数。 数据库基础 实验3 数据库的查询 5.GROUP BY,ORDER BY子句的使用 (1)求各部门的员工数。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT COUNT(EmployeeID) FROM Employees GROUP BY DepartmentID GO 数据库基础 实验3 数据库的查询 【思考与练习】 统计各部门收入在2500元以上的员工的人数。 数据库基础 实验3 数据库的查询 (2)将各员工的情况按收入由高到低排列。 在查询编辑窗口中输入如下语句并执行: USE YGGL SELECT Employees.*,Salary.* FROM Employees,Salary WHERE Employees.EmployeeID=Salary.EmployeeID ORDER BY InCome DESC GO 数据库基础 实验3 数据库的查询 【思考与练习】 将各员工的情况按员工编号排列。 数据库基础 实验4 数据库的更新 目的和要求 (1)学会在SQL Server Management Studio中对数据库表 进行插入、修改和删除数据操作。 (2)学会使用T-SQL语句对数据库表进行插入、修改和 删除数据操作。 (3)了解数据更新操作时要注意数据完整性。 (4)了解T-SQL语句对表数据操作的灵活控制功能。 数据库基础 实验4 数据库的更新 实验准备 (1)了解对表数据的插入、修改和删除都属于表数据的更新操作。对表数 据的操作都可以在SQL Server Management Studio中进行,也可以由T-SQL语 句实现。 (2)掌握T-SQL中用于对表数据进行插入、修改和删除的命令分别是 INSERT、UPDATE和DELETE(或TRUNCATE TABLE)。要特别注意在执 行插入、删除、修改等数据更新操作时,必须保证数据完整性。 (3)了解使用T-SQL语句在对表数据进行插入、修改和删除时,比通过SQL Server Management Studio图形工具操作表数据更为灵活,功能更强大。 数据库基础 实验4 数据库的更新 实验内容 1.实验题目 分别通过SQL Server Management Studio和T-SQL语句,按 照以下实验步骤向建立的数据库YGGL的3个表Employees ,Departments和Salary中插入多行数据记录,然后修改和 删除一些记录。使用T-SQL语句进行有限制的修改和删除 。 数据库基础 实验4 数据库的更新 2.实验步骤 (1)在SQL Server Management Studio中向数据库YGGL 表加入数据 在SQL Server Management Studio中向表Employees中加 入如表T4.1所示的记录。 数据库基础 实验4 数据库的更新 表T4.1 Employees数据记录 编 号 姓名电话电子邮件部 门 号 性 别 1005 9 2 赵 伟 2874960 7 zhaowei16 3.com 31 1018 2 5 孙磊2986480 2 sunleisina. com 21 2017 8 3 李伟8363692 8 liwei126.c om 20 2035 8 6 周超6853947 0 zhaochaos 10 2028 9 7 吴盟6541769 8 NULL21 3003 8 0 张明2730978 1 zhangming tom.co m 40 3056 8 4 王浩8732347 5 NULL51 数据库基础 实验4 数据库的更新 在SQL Server Management Studio中依次展开“数据库 ”“YGGL” “表”节点,在子节点“dbo. Employees”上单 击鼠标右键,选择“打开表”命令,逐字段输入各记录值, 输入完后,关闭该选项卡窗格。 在SQL Server Management Studio中向表Departments中 加入如表T4.2所示的记录。 数据库基础 实验4 数据库的更新 表T4.2 Departments数据记录 编号部门名称备注 1研发部NULL 2营销部NULL 3后勤处NULL 4人事部NULL 5保卫处NULL 数据库基础 实验4 数据库的更新 在SQL Server Management Studio中向表Salary中加入如 表T4.3所示的记录。 数据库基础 实验4 数据库的更新 表T4.3 Salary数据记录 编号收入支出 2017831874.32345.36 1005921987.35254.92 2035861367.76213.89 3003802569.22688.91 1018251690.08409.8 2028973028.55955.4 3056842000.74199.84 数据库基础 实验4 数据库的更新 (2)在 SQL Server Management Studio中修改数据库YGGL 表的数据 在SQL Server Management Studio中删除表Employees的 第7行和Salary的第7行。注意进行删除操作时,作为两表 主键的EmployeeID的值,以保持数据的完整性。 在节点“dbo. Employees”上单击鼠标右键,选择“打开表” 命令,选择要删除的行,单击鼠标右键,选择“删除”命令 ,单击“是”按钮。 数据库基础 实验4 数据库的更新 在SQL Server Management Studio中删除表Departments 的第4行,同时也要删除表Employees的第6行。 操作方法同。 在SQL Server Management Studio中将表Employees中编 号为202897的记录的部门编号改为4。 在节点“dbo. Employees”上单击鼠标右键,选择“打开表” 命令,将光标定位至编号为202897的记录的DepartmentID 字段,将值2改为4。 数据库基础 实验4 数据库的更新 (3)使用T-SQL命令修改数据库YGGL表数据 使用T-SQL命令分别向YGGL数据库Employees, Departments和Salary表中插入1行记录。 数据库基础 实验4 数据库的更新 点击工具栏中的“新建查询”按钮,在编辑窗口中输入以下T-SQL语句 : USE YGGL INSERT INTO Employees VALUES(102427,刘涛,1,89324852,NULL, 4) GO INSERT INTO Departments VALUES(6,管理部,NULL) GO 数据库基础 实验4 数据库的更新 INSERT INTO Salary VALUES(102427,1321.37,79) GO 点击工具栏中的“执行”按钮,执行上述语句,在SQL Server Management Studio中分别打开YGGL数据库的 Employees,Departments和Salary表,观察数据的变化。 数据库基础 实验4 数据库的更新 使用T-SQL命令修改Salary表中的某个记录的字段值。 点击工具栏中的“新建查询”按钮,在编辑窗口中输入以下T-SQL语句 : USE YGGL UPDATE Salary SET InCome = 2367.76 WHERE EmployeeID = 203586 GO 点击工具栏中的“执行”按钮,执行上述语句,在SQL Server Management Studio中打开YGGL数据库的Salary表,观察数据的变化 。 数据库基础 实验4 数据库的更新 修改表Employees和Departments的记录值,仍然要注意完整性。 操作过程同。 使用T-SQL命令修改Salary表中的所有记录的字段值。 点击工具栏中的“新建查询”按钮,在编辑窗口中输入以下T-SQL语句: USE YGGL UPDATE Salary SET InCome = InCome+200 GO 点击工具栏中的“执行”按钮,执行上述语句,将所有职工的收入都增加200 。可见,使用T-SQL语句操作表数据比通过SQL Server Management Studio图 形工具更为灵活。 数据库基础 实验4 数据库的更新 使用TRUNCATE TABLE语句删除表中所有行。 点击工具栏中的“新建查询”按钮,在编辑窗口中输入以下T-SQL语句 : USE YGGL TRUNCATE TABLE Salary GO 点击工具栏中的“执行”按钮,执行上述语句,将删除Salary表中所有 行。 注意:实验时一般不轻易做这个操作,后面的实验还要用到这些数据 ,因此可见一个临时表,输入少量数据后进行。 数据库基础 实验5 T-SQL Server 2005编程 实验5 T-SQL Server 2005编程 目的与要求 (1)掌握用户自定义类型的使用。 (2)掌握变量的分类及其使用。 (3)掌握各种运算符的使用。 (4)掌握各种控制语句的使用。 (5)掌握系统函数及其用户自定义函数的使用。 数据库基础 实验5 T-SQL Server 2005编程 实验准备 (1)了解T-SQL支持的各种基本数据类型。 (2)了解自定义数据类型使用的一般步骤。 (3)了解T-SQL各种运算符、控制语句的功能及使用方 法。 (4)了解系统函数的调用方法。 (5)了解用户自定义函数使用的一般步骤。 数据库基础 实验5 T-SQL Server 2005编程 实验内容 1.自定义数据类型的使用 (1)对于实验2给出的数据表结构,自定义1个数据类型ID_type,用 于描述员工编号。在查询编辑窗口中输入如下语句并执行: USE YGGL EXEC sp_addtype ID_type, char(6),not null GO 数据库基础 实验5 T-SQL Server 2005编程 (2)重新创建YGGL数据库的Employees表。在查询编辑 窗口中输入如下程序并执行: USE YGGL IF EXISTS(SELECT name FROM sysobjects WHERE type=U and name=Employees) DROP table Employees 数据库基础 实验5 T-SQL Server 2005编程 CREATE TABLE Employees ( EmployeeID ID_type, Name char(10)NOT NULL, Sex bit NOT NULL, PhoneNumber char(2)NULL, EmailAddress char(20)NULL, DepartmentID char(3)NOT NULL ) GO 数据库基础 实验5 T-SQL Server 2005编程 2.自定义函数的使用 (1)定义一函数实现如下功能。对于1个给定的DepartmentID之值, 查询该值在Departments表中是否存在,若存在返回0,否则返回-1. 在查询编辑窗口中输入如下程序并执行: CREATE FUNCTION CHECK_ID (departmentid char(3) RETURNS integer AS 数据库基础 实验5 T-SQL Server 2005编程 begin declare num int IF EXISTS (SELECT DepartmentID FROM Departments WHERE departmentid=DepartmentID) select num=0 ELSE select num=-1 return num end GO 数据库基础 实验5 T-SQL Server 2005编程 (2)写一段T-SQL脚本程序调用上述函数。当向Employees表插入一条记录时,首先 调用函数CHECE_ID检索该记录的DepartmentID之值在表Departments的DepartmentID 字段中是否存在对应值,若存在,则将该记录插入Employees表。 在查询编辑窗口中输入如下程序并执行: USE YGGL DECLARE num int SELECT num=dbo.CHECK_ID(2) IF num=0 insert into Employees values(783462,刘伟,0,63237846,NULL,2) GO 数据库基础 实验5 T-SQL Server 2005编程 【思考与练习】 编写如下程序 (1)自定义一个数据类型,用于描述YGGL数据库中的 DepartmentID字段,然后编写代码重新定义数据库的各表。 (2)当对Departments表的DepartmentID字段值修改时,对Employees 表中对应的DepartmentID字段值也进行相应修改。 (3)对Employees表进行修改时,不允许对DepartmentID字段值进行 修改。 数据库基础 实验6 索引与完整性 目的与要求 (1)掌握索引的使用方法。 (2)掌握数据完整性的实现方法。 数据库基础 实验准备 (1)了解索引的作用与分类。 (2)掌握索引的创建方法。 (3)理解数据完整性的概念及分类。 (4)掌握各种数据完整性的实现方法。 实验6 索引与完整性 数据库基础 实验内容 1.建立索引 (1)使用图形化工具创建索引。 打开SQL Server Management Studio窗口,从“对象资源管理器”窗格中 依次展开SQL Server服务器下的“数据库”“YGGL”“表 ”“dbo.Salary”节点,在其子节点“索引”上单击鼠标右键,选择“新建 索引”命令,打开新建索引窗口,输入索引名称为“employee_ind”,选 择索引类型,并点击“添加”按钮,选择添加到索引键的列,点击“确 定”按钮返回“常规”页面,配置其他选项后,点击“确定”按钮完成创 建。 实验6 索引与完整性 数据库基础 (2)使用T-SQL语句创建索引。 在SQL Server Management Studio查询编辑窗口中输入如下程序: USE YGGL IF EXISTS (SELECT name FROM sysindexes WHERE name=depart_ind) DROP INDEX Employees.depart_ind GO USE YGGL CREATE INDEX depart_ind ON Employees (DepartmentID) 点击工具栏中的“执行”按钮,执行上述语句,并在“对象资源管理器”窗格中查看执行 结果。 实验6 索引与完整性 数据库基础 【思考与练习】 什么情况下可以看到建立索引的好处? 实验6 索引与完整性 数据库基础 2.数据完整性 (1)域完整性的实现。 打开SQL Server Management Studio窗口,从“对象资源管理器”窗格中 依次展开SQL Server服务器下的“数据库”“YGGL”“表”,在其子 节点“dbo.Salary”上单击鼠标右键,从弹出的快捷菜单中选择“设计” 命令。再单击鼠标右键,选择“CHECK约束”命令,打开“CHECK约 束”对话框。点击“添加”按钮,在“表达式”文本框中输入要设置的 CHECK约束文本(InCome=OutCome),单击“关闭”按钮完成约束 的创建。 实验6 索引与完整性 数据库基础 (2)实体完整性的实现。 打开SQL Server Management Studio窗口,从“对象资源 管理器”窗格中依次展开SQL Server服务器下的“数据库 ”“YGGL”“表”,在其子节点“dbo.Employees”上单击 鼠标右键,从弹出的快捷菜单中选择“设计”命令。右键单 击要设置主键的列EmployeeID,选择“设置主键”命令完成 设置PRIMARY KEY约束的列。 实验6 索引与完整性 数据库基础 再单击鼠标右键,从弹出的快捷菜单中选择“索引/键” 命令,打开“索引/键”对话框,点击“添加”按钮,再点击“ 列”右侧的按钮,打开“索引列”对话框,在“列名”的下拉 菜单中选择“EmailAddress”,点击“确定”返回“索引/键”对 话框,输入“名称”后点击“关闭”按钮完成设置UNIQUE约 束的列。 实验6 索引与完整性 数据库基础 (3)参照完整性的实现。 在节点“dbo.Employees”上单击鼠标右键,从弹出的快捷 菜单中选择“设计”命令。单击鼠标右键选择“关系”命令, 打开“外键关系”对话框,点击“添加”按钮,再点击“表和 列规范”右侧的按钮,打开“表和列”对话框,输入关系名 ,“主键表”选择“Departments”,并在下面两个下拉菜单中 都选择“EmployeeID”。 实验6 索引与完整性 数据库基础 【思考与练习】 (1)实现将多个CHECK约束用于单个列。 (2)通过在表级创建CHECK约束,将一个CHECK约束 应用于多个列。 实验6 索引与完整性 数据库基础 实验7 存储工程与触发器 目的与要求 (1)掌握索引的使用方法。 (2)掌握存储过程的使用方法。 (3)掌握触发器的使用方法。 数据库基础 实验7 存储工程与触发器 实验准备 (1)了解索引的作用与分类。 (2)掌握索引的创建方法。 (3)理解数据完整性的概念及分类。 (4)了解各种数据完整性的实现方法。 (5)了解存储过程的使用方法。 (6)了解触发器的使用方法。 (7)了解inserted逻辑表和deleted逻辑表的使用。 数据库基础 实验7 存储工程与触发器 实验内容 1.创建触发器 对于YGGL数据库,表Employees的DepartmentID列与表Departments 的DepartmentID列应满足参照完整性规则,即: (1)向Employees表添加1条记录时,该记录的DepartmentID值在 Departments表中应存在。 (2)修改Departments表DepartmentID字段值时,该字段在Employees 表中的对应值也应修改。 (3)删除Departments表中1条记录时,该记录DepartmentID字段值在 Employees表中对应的记录也应被删除。 数据库基础 实验7 存储工程与触发器 对于上述参照完整性,在此通过触发器实现。 在SQL Server Management Studio查询编辑窗口中输入如 下程序并执行: 向Employees表插入或修改1条记录时,通过触发器检查 记录的DepartmentID值在Departments表中是否存在,若不 存在,则取消插入或修改操作。 数据库基础 实验7 存储工程与触发器 USE YGGL GO CREATE TRIGGER EmployeesIns on dbo.Employees FOR INSERT,UPDATE AS BEGIN IF (SELECT ins.departmentid from inserted ins)NOT IN (SELECT departmentid FROM departments) ROLLBACK END 数据库基础 实验7 存储工程与触发器 修改Departments表DepartmentID字段值时,该字段在 Employees表中的对应值也进行相应修改。 数据库基础 实验7 存储工程与触发器 USE YGGL GO CREATE TRIGGER DepartmentsUpdate on dbo.Departments FOR UPDATE AS BEGIN IF (COLUMNS_UPDATED()&01)0 UPDATE Employees SET DepartmentID=(SELECT ins.DepartmntID from INSERTED ins) WHERE DepartmentID=(SELECT DepartmentID FROM deleted) END GO 数据库基础 实验7 存储工程与触发器 删除Departments表中1条记录的同时删除该记录 DepartmentID字段值在Employees表中对应的记录。 数据库基础 实验7 存储工程与触发器 USE YGGL GO CREATE TRIGGER DepartmentsDelete on dbo.Departments FOR DELETE AS BEGIN DELETE FROM Employees WHERE DepartmentID=(SELECT DepartmentID FROM deleted) END GO 数据库基础 实验7 存储工程与触发器 2.创建存储过程 在SQL Server Management Studio查询编辑窗口中输入各 存储过程的代码并执行以下程序: (1)添加员工记录的存储过程EmployeeAdd: 数据库基础 实验7 存储工程与触发器 【思考与练习】 上述触发器的功能用完整性的方法完成。 数据库基础 实验7 存储工程与触发器 USE YGGL GO CREATE PROCEDURE EmployeeAdd (employeeid char(6),name char(10),sex bit, phonenumber char(12),emailaddress char(20),departmentid char(3) AS BEGIN INSERT INTO Employees VALUES (employeeid,name,sex,phonenumber,emailaddress,departmentID) END RETURN GO 数据库基础 实验7 存储工程与触发器 (2)修改员工记录的存储过程EmployeeUpdate: USE YGGL GO CREATE PROCEDURE EmployeeUpdate (empid char(6),employeeid char(6),name char(10),sex bit, phonenumber char(12),emailaddress char(20),departmentid char(3) AS 数据库基础 实验7 存储工程与触发器 BEGIN Update Employees SET EmployeeID=employeeid, Name=name, Sex=sex, PhoneNumber=phonenumber, EmailAddress=emailaddress, DepartmentID=departmentID WHERE EmployeeID=empid END RETURN GO 数据库基础 实验7 存储工程与触发器 (3)删除员工记录的存储过程EmployeeDelete: USE YGGL GO CREATE PROCEDURE EmployeeDelete (employeeid char(6) AS BEGIN DELETE FROM Employees WHERE EmployeeID=employeeid END RETURN GO 数据库基础 实验7 存储工程与触发器 3.调用存储过程 USE YGGL EXEC EmployeeAdd 376735,赵伟,1,65841859,1 GO USE YGGL EXEC EmployeeUpdate 376735,376753,赵伟,1,65841859,2 GO USE YGGL EXEC EmployeeDelete 376753 GO 分析一下此段程序执行时可能出现哪几种情况。 数据库基础 实验7 存储工程与触发器 【思考与练习】 编写以下T-SQL程序: (1)自定义一个数据类型,用于描述YGGL数据库中的 DepartmentID字段,然后编写代码重新定义数据库各表。 (2)对于YGGL数据库,表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论