资源描述
《数据库应用》实验教学大纲
一、基本信息
课程编码
020215136
课程学时
40
课程类别
专业课
实验总学时
12
开出学期
5
开出单位
计算机系
适用专业
计算机科学与技术
二、实验安排
序号
实 验 项 目
实验学时
每组人数
实验类型
开出要求
1
实验一 创建数据库和表以与表操作
2
1
验证
必做
2
实验二 数据库的查询
2
1
验证
必做
3
实验三视图、存储过程、触发器等的建立与维护
4
1
验证
必做
4
实验四基于SQL Server数据库的学生信息管理系统的建立
4
1
综合
必做
三、实验目的、内容与要求
实验一创建数据库和表以与表操作
(一) 实验目的
1.了解SQL Server数据库的逻辑结构和物理结构,表的结构特点;
2.了解SQL Server的基本数据类型,空值概念;
3.学会在企业管理器中创建数据库和表;
4.学会使用T—SQL语句创建数据库和表;
5.学会在企业管理器中对数据表进行插入、修改、删除数据操作;
6.学会使用T-SQL对数据表进行插入、修改、删除数据操作;
(二) 实验内容
1.企业管理器访问数据库,查询分析器的使用;
2.在企业管理器中创建、删除数据库和表;
3.使用T-SQL语句创建数据库和表;
4.在企业管理器中对数据表进行插入、修改、删除数据操作;
5.使用T-SQL进行上述操作。
(三) 实验要求
1.掌握在企业管理器中创建、修改、删除数据库和表;
2.掌握查询分析器,使用T—SQL语句创建、修改、删除数据库和表。
实验二 数据库的查询
(一) 实验目的
1.掌握SELECT语句的基本语法;
2.掌握子查询的表示;
3.掌握连接查询的表示;
4.掌握数据汇总的方法;
5.掌握SELECT语句的GROUP BY子句的作用和使用方法;
6.掌握SELECT语句的ORDER BY子句的作用和使用方法。
(二) 实验内容
1.SELECT语句的基本使用;
2.子查询的使用,连接查询的使用,数据汇总,Group By、Order By子句的使用。
(三) 实验要求
1.掌握数据库查询的基本的常用语句的使用方法;
2.掌握数据库查询中的分组、排序等语句的使用方法。
实验三视图、存储过程、触发器等的建立与维护
(一) 实验目的
1.学会使用企业管理器建立视图,应用视图插入、删除、修改数据;
2.掌握存储过程的使用方法;
3.掌握触发器的使用方法。
(二) 实验内容
1.视图插入、删除、修改数据;
2.创建存储过程,调用存储过程;
3.创建触发器。
(三) 实验要求
1.利用所创建的数据库和数据表,综合应用视图、存储过程、触发器等知识完善数据库;
2.掌握应用更新视图数据可以修改基本表数据的方法;
3.熟练掌握添加、修改、删除记录的存储过程的定义与调用;
4.掌握通过触发器来实现数据的参照完整性。
实验四 基于SQL Server数据库的学生信息管理系统的建立
四、考核方式
实验的考核方式: 根据实验预习情况、实验出勤情况、原型系统效果验收和实验报告的完成情况确定最终的实验成绩,实验成绩占课程总成绩的20%。实验成绩按百分制。
实验预习情况:A 实验出勤情况:B 原型系统效果验收和实验报告:C
实验成绩=A*20%+B*20%+C*60%
五、建议教材与教学参考书
1、建议教材
[1]X阿奇.SQL Server实用教程.第二版.:电子工业.2005
[2] X丽霞.数据库应用实验指导书.自编.2005
2、教学参考书
[1]李存斌.数据库应用技术--SQL Server 2000简明教程.:中国水利水电.2001
[2]钱雪忠,罗海驰,程建敏.SQL SERVER 2005实用技术与案例系统开发.第一版.:清华大学.2007
[3]李春葆,曾惠.SQL SERVER 2000应用系统开发教程.第一版.:清华大学.2005
[4] 李春葆,曾惠.SQL SERVER 2000学习与上机实验指导.第一版.:清华大学.2005
[5]李存斌.数据库应用技术----SQL Server 2000简明教程.第一版.:中国水利水电.2002
六、编制说明
编制者:数据库课程组 组长:郭琳
执笔人:云静 编制时间:2013年8月
实验一 创建数据库和表以与表操作
一、实验目的
1.了解SQL Server数据库的逻辑结构和物理结构,表的结构特点;
2.了解SQL Server的基本数据类型,空值概念;
3.学会在企业管理器中创建数据库和表;
4.学会使用T—SQL语句创建数据库和表;
5.学会在企业管理器中对数据表进行插入、修改、删除数据操作;
6.学会使用T-SQL对数据表进行插入、修改、删除数据操作;
二、实验内容
1.实验题目(1)
创建用于企业管理的员工管理数据库,数据库名为YGGL,包含员工的信息、部门信息以与员工的薪水信息。数据库YGGL包含下列3个表。
(1)Employees:员工自然信息表。
(2)Departments:部门信息表。
(3)Salary:员工薪水情况表。
各表的结构分别如表T2.1,表T2.2,表T2.3所示。
表T2.1 Employees表结构
列名
数据类型
长度
是否允许为空值
说明
EmployeelD
Char
6
×
员工编号,主键
Name
Char
10
×
XX
Birthday
Datetime
8
×
出生日期
Sex
Bit
1
×
性别
Address
Char
20
√
地址
Zip
Char
6
√
PhoneNumber
Char
12
√
EmailAddress
Char
30
√
电子地址
DepartmentlD
Char
3
×
员工部门号,外键
表T2.2 Departments表结构
列名
数据类型
长度
是否允许为空值
说明
DepartmentlD
字符型(char)
3
×
部门编号,主键
DepartmentName
字符型(char)
20
×
部门名
Note
文本(text)
16
√
备注
表T2.3 Salary表结构
列名
数据类型
长度
是否允许为空值
说明
EmployeeID
字符犁(char)
6
×
员工编号,主键
InCome
浮点型(float)
8
×
收入
OutCome
浮点型(float)
8
×
支出
实验步骤
1.在企业管理器中创建数据库YGGL
要求:数据库YGGL初始大小为10MB,最大大小为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB(默认为不限制),按1MB增长(默认是按5%比例增长)。数据库的逻辑文件名和物理文件名均采用默认值,分别为 YGGL_data和e:\sql\data\MSSQL\Data\YGGL.mdf,其中e:\sql\data\MSSQL为SQL Server的系统安装目录;事务日志的逻辑文件名和物理文件名也均采用默认值分别为YGGL—LOG和 e:\sql\data\MSSQL\Data\YGGL_Log.1df。
以系统管理员Administrator是被授权使用CREATE DATABASE语句的用户登录SQL Server服务器,启动企业管理器一>在服务器上单击鼠标右键一>新建数据库一>输入数据库名“YGGL”一>选择“数据文件”选项卡一>设置增长方式和增长比例一>选择“事务口志”选项卡一设置增长方式和增长比例。
注意:在“数据文件”选项卡和“事务曰志”选项卡中可以分别指定数据库文件和曰志文件的物理路径等特性。
2.在企业管理器中删除创建的YGGL数据库
在企业管理器中选择数据库YGGL一>在YGGL上单击鼠标右键一删除。
3.使用T—SQL语句创建数据库YGGL
按照实验步骤1中的要求创建数据库YGGL。
启动查询分析器一>在“查询”窗口中输入以下T—SQL语句:
CREATE DAIABASE YGGL
ON
( NAME=’YGGL_Data’,
FILENAME=’e:ksql\data\MSSQL\Data\YGGL.mdf,
SIZE=10MB, 、
MAXSIZE=50MB,
FILEGROWTH=5%)
LOGON
( NAME=’YGGL_Log’,
FILENAME=’e:\sql\data\MSSQL\Data\YGGL_Log.1df,
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
G0
单击快捷工具栏的执行图标,执行上述语句,并在企业管理器中查看执行结果。
4.在企业管理器中分别创建表Employees,Departments和Salary
在企业管理器中选择数据库YGGL一>在YGGL上单击鼠标右键一>新建一>表一>输入 Employees表各字段信息一>单击保存图标一>输入表名Employees,即创建厂表Employees。按同样的操作过程创建表Departments和Salary。 、
5.在企业管理器中删除创建的Employees,Departments和Salary表
在企业管理器中选择数据库YGGL的表Employeesà在Employees上单击鼠标右键一>删除,即删除了表Employees。按同样的操作过程删除表Departments和Salary。
6.使用T—SQL语句创建表Employees,Departments和Salary
启动查询分析器一.在“查询”窗口中输入以下T—SQL语句:
USEYGGL
CREATE TABLE Employees
( EmployeeID char(6)NOT NULL,
Name char(10)NOT NULL,
Birthday datetime NOT NULL,
Sex bit NOT NULL,
ddress char(20)NOT NULL,
Zip char(6)NULL,
PhoneNumber char(12)NULL,
EmailAddree char(20)NULL,
DepartmentlD char(3)NOT NULL
)
GO
单击快捷工具栏的执行图标,执行上述语句,即可创建表Employees。按同样的操作过程创建表Departments和Salary,并在企业管理器中查看结果。
2.实验题目(2)
分别使用企业管理器和T—SQL语句,向在以下实验步骤1建立的数据库YGGL的3个表Employees,Departments和Salary中插入多行数据记录,然后修改和删除一些记录。使用 T—SQL进行有限制的修改和删除。
实验准备 、
首先了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以在企业管理器中进行,也可以由T-SQL语句实现。
其次要掌握T-SQL中用于对表数据进行插入、修改和删除的命令分别是INSERT, UPDATE和DELETE(或TRANCATE TABLE)。
要特别注意在执行插入、删除、修改等数据更新操作时,必须保证数据完整性。
此外,还要了解使用T-SQL语句在对表数据进行插入、修改与删除时,比在企业管理器中操作表数据更为灵活,功能更强大。
实验步骤
1. 在企业管理器中向数据库YGGL表加入数据
2. (1)在企业管理器中向表Employees中加入如表T3.1所示的记录。
表T3.1数据记录
在企业管理器中选择表Employeesà在其上单击鼠标右键一>选择“返回所有行”
一>逐字段输入各记录值,输入完后,关闭表窗口。
(2)在企业管理器向表Departments中插入如表T3.2所示的数据记录。
表T3.2数据记录
(3)在企业管理器中向表Salary中插入如表T3.3所示的数据记录。
表T3.3数据记录
2.在企业管理器中修改数据库YGGL表数据
(1)在企业管理器中删除表Employees的第2,8行和Salary的第2,11行。注意进行删除操作时,作为两表主键的EmployeeID的值,以保持数据完整性。
在企业管理器中选择表Employees—>在其上单击鼠标右键一>选择“返回所有行”
一>选择要删除的行一>单击鼠标右键一>删除一>关闭表窗口。
(2)企业管理器中删除表Departments的第2行,同时也要删除表Employees的第
2行。操作方法同(1)。
(3)在企业管理器中将表Employees中编号为020018的记录的部门号改为4。
在企业管理器中选择表Employeesà在其上单击鼠标右键一选择“返回所有行”一>将光标定位至编号为020018的记录的DepartmentID字段,将值1改为4。
3.使用T-SQL命令修改数据库YGGL表数据
(1)使用T-SQL命令分别向YGGL数据库Employees,Departments和Salary表中插入1行记录。
启动查询分析器一>在“查询”窗口中输入以下T—SQL语句:
USEYGGL
INSERT INTO Employees
VALUES(’011112’,’罗林’,’1973-5-3’,1,’解放路100号’,210002,4055663,NULL,5)
GO
INSERT INTO Departments
VALUES(‘2’,’人资源部’,NULL)
Go
INSERT INTO Salary
VALUES(’011112’,1200.09,50)
GO
单击快捷工具栏的执行图标,执行上述语句。
注意:在企业管理器中分别打开YGGL数据库Employees,Departments和Salary表,观察数据变化。
(2)使用T—SQL命令修改表Salary中的某个记录的字段值。
启动查询分析器一》在“查询”窗口中输入以下T—SQL语句:
USEYGGL
UPDATE Salary
SET income=2890
WHERE EmployeelD=t011112’
Go
单击快捷工具栏的执行图标,执行上述语句,将编号为011112的职工收入改为2890。
注意:在企业管理器中分别打开YGGL数据库Salary表,观察数据变化。
(3)修改表Employees和Departments的记录值,仍要注意完整性。
操作过程同(2)。
(4)使用T—SQL命令修改表Salary中的所有记录的字段值。
启动查询分析器一>“查询”窗口中输入以下 T—SQL语句:
USEYGGL
UPDATE Salary
SET InCome=InCome+100
GO
单击快捷工具栏的执行图标,执行上述语句,将所有职工的收入增加100。
可见,使用T—SQL语句操作表数据比在企业管理器中操作表数据更为灵活。
注意:输入以下T—SQL语句,观察数据变化。
SELECT * FROM Salary
(5)使用TRANCATE TABLE语句删除表中所有行。
启动查询分析器一>在“查询”窗口中输入以下 T—SQL语句:
USEYGGL
TRANCATE TABLE Salary
GO
单击快捷工具栏的执行图标,执行上述语句,将删除Salary表中的所有行。
注意:实验时一般不轻易做这个操作,因为后面实验还要用到这些数据。如要试验该命令的效果,可建一个临时表,输入少量数据后进行。
实验二 数据库的查询
一、实验目的
1.掌握SELECT语句的基本语法;
2.掌握子查询的表示;
3.掌握连接查询的表示;
4.掌握数据汇总的方法;
5.掌握SELECT语句的GROUP BY子句的作用和使用方法;
6.掌握SELECT语句的ORDER BY子句的作用和使用方法。
二、实验内容
1.SELECT语句的基本使用
(1)对于实验1给出的数据库表结构,查询每个雇员的所有数据。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SEIECT *
FROM Employees
GO
【思考与练习】
用SELECT语句查询Departments和Salary表的所有记录。
(2)查询每个雇员的地址和 。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Address,PhoneNumber
FROM Employees
GO
【思考与练习】
用SELECT语句查询Departments和Salary表的一列或若干列。
(3)查询EmployeeID为000001的雇员的地址和 。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Address,PhoneNumber 7
FROM Employees
WHERE EmployeelD=’000001’
GO
【思考与练习】
用SELECT语句查询Departments和Salary表中满足指定条件的1列或若干列。
(4)查询Employees表中女雇员的地址和 ,使用AS子句将结果中各列的标题分别指定为地址、 。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Address AS地址.PhoneNumber AS
FROM Employees
WHERE sex=0
Go
注意:使用AS子句可指定目标列的标题。
(1) 计算每个雇员的实际收入。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT EmployeelD,实际收入=InCome—OutCome
FROM Salary
G0
(2) 找出所有姓王的雇员的部门号。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT DepartmentID
FROM Employees
WHERE name LIKE’王%’
Go
【思考与练习】找出所有其地址中含有‘‘XX”的雇员的与部门号。
(3) 找出所有收入在2000~3000元之间的雇员。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT EmployeelD
FROM Salary
WHERE InCome BETWEEN 2000 AND 3000
GO
【思考与练习】
找出所有在部门‘1’或‘2’工作的雇员的。
注意:在SELECT语句中LIKE、BETWEEN…AND,,IN,NOT与CONTAIN谓词的作用。
3. 子查询的使用
(1)查找在财务部工作的雇员的情况。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT *
FROM Employees .
WHERE DepartmentlD= 。
(SELECT DepartmentlD
FROM Departments
WHERE DepartmentName=’财务部’)
GO
【思考与练习】
用子查询的方法查找所有收入在2500元以下的雇员的情况。
(2)查找财务部年龄不低于研发部雇员年龄的雇员的XX。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Name
FROM Employees
WHERE DepartmentID IN
(SELECT DepartmentID
FROM Departments
WHERE DepartmentName’财务部’)
AND
Birthday!>ALL(SELECT Birthday
FROM Employees
WHERE DepartmentlD IN
(SELECT DepartmentlD
FROM Departments
WHERE DepartmentName=’研发部’))
GO
【思考与练习】
用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的XX。
(3)查找比所有财务部的雇员收入都高的雇员的XX。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Name
FROM Employees
WHERE EmployeeID IN
(SELECT EmployeelD
FROM Salary
WHEREInCome> .
ALL ( SELECT InCome
FROM Salary
WHERE EmployeelD IN
(SELECT EmployeelD
FROM Employees
WHERE DepartmentlD=
(SELECT DepartmentlD
FROM Departments
WHERE DepartmentName=’财务部’))))
GO
【思考与练习】
用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的XX。
3.连接查询的使用
(1) 查询每个雇员的情况以与其薪水的情况。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Emploees.*,Salary.*
FROM Employees,Salary
WHERE Elmployees.EmployeelD=Salary.EmployeelD
GO
【思考与练习】查询每个雇员的情况以与其工作部门的情况。
(2) 查找财务部收入在2200元以上的雇员XX与其薪水详情。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Name,InCome,OutCome
FROM Employees,Salary,Departments
WHEREEmployees.EmployeelD=Salary.EmployeelD AND Employees.DepartmentlD
=Departments.DepartmentlD AND DepartmentName=’财务部’AND InCome>2000
GO
【思考与练习】查询研发部在1966年以前出生的雇员XX与其薪水详情。
4. 数据汇总
(1)求财务部雇员的平均收入。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT AVG(InCome)AS’财务部平均收入’
FROM Salary
WHERE EmployeelD IN
(SELECT EmployeelD
FROM Employees
WHERE DepartmentlD=
(SELECT DepartmentlD
FROM Departments
WHERE DepartmentName=’财务部’))
GO
【思考与练习】查询财务部雇员的最高和最低收入。
(3) 求财务部雇员的平均实际收入。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT AVG(1nCome-OutCome)AS‘财务部平均实际收入’
FROM Salary
WHERE EmployeelD IN
(SELECT EmployeeID
FROM Employees
WHERE DepartanentlD =
(SELECT DepartmentlD
FROM Departments
WHERE DepamnentName=’财务部’))
GO
【思考与练习】
查询财务部雇员的最高和最低实际收入。
(4) 求财务部雇员的总人数。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT COUNT(EmployeelD)
FROM Employees
WHERE DepartmentlD=
(SELECT DepartmentlD
FROM Departments
WHERE DepartmentName=’财务部’)
GO
【思考与练习】统计财务部收入在2500元以上雇员的人数。
5. GROUP BY,ORDER BY子句的使用
(1)求各部门的雇员数。
在查询分析器的窗口输入如卜^的语句并执行:
USEYGGL
SELECT COUNT(EmployeelD)
FROM Employees
GROUP BY DepartmentID
Go
【思考与练习】统计各部门收入在2000元以上雇员的人数。
(2)将各雇员的情况按收入由低到高排列。
在查询分析器的窗口输入如下的语句并执行:
USEYGGL
SELECT Employees.*,Salary.*
FROM Employees,Salary
WHERE Employees.EmployeeID=Salary.EmployeeID
ORDER BY InCome
G0
【思考与练习】将各雇员的情况按出生时间先后排列。
实验三视图、存储过程、触发器等的建立与维护
一、实验目的
1.学会使用企业管理器建立视图,应用视图插入、删除、修改数据;
2.掌握存储过程的使用方法;
3.掌握触发器的使用方法。
二、实验内容
此实验是综合视图、存储过程、触发器等知识应用的一个综合性实验。
实验要求:
1.利用所创建的数据库和数据表,综合应用视图、存储过程、触发器等知识完善数据库;
2.掌握应用更新视图数据可以修改基本表数据的方法;
3.熟练掌握添加、修改、删除记录的存储过程的定义与调用;
4.掌握通过触发器来实现数据的参照完整性。
实验内容要求:
利用员工管理数据库YGGL中 3个表:
Employees:员工自然信息表、Departments:部门信息表、Salary:员工薪水情况表。
(1) 利用YGGL各表建立视图实现各种连接查询。建立视图view1,查询所有职工的员工编号、XX、部门名和收入,并按部门名顺序排列。建立视图view2,查询所有职工的员工编号、XX和平均工资。建立视图view3,查询各部门名和该部门的所有职工平均工资。
(2) 编写对YGGL各表进行插入、修改、删除操作的存储过程,然后编写程序,调用这些存储过程。创建一个为Employees表添加员工记录的存储过程addEmployees。创建一个存储过程delEmployees删除Employees表中指定员工编号的记录。
(3) 对于YGGL数据库,请用触发器实现两个表间的参照完整性。在表Departments上创建一个触发器Departments_update,当更改部门编号时同步更改Employees表中对应的部门编号。在表Employees上创建一个触发器Employees_delete,当删除员工记录时同步删除salary表中对应的工资收入记录。
参考实例步骤:
1.创建视图
(1)班级表(U_CLASSES ):ID含义为"班号",CLASS含义为"班名",DEPARTMENT含义为所在 系,各字段类型按需要设置是否允许为空,ID字段被设置为主键。
(2)成绩表(U_SCORES ):STUDENT_ID含义为学号,COURSE_ID含义为课程号,SCORE为成绩,各字段类型按需要设置是否允许为空,STUDENT_ID 、COURSE_ID字段被设置为主键。
(3)课程表(U_COURSES):COURSE含义为课程名称, ID含义为课程编号,CREDIT含义为课程学分。
(4)学生表(U_STUDENTS),表结构如下:
序号
字段
类型(长度)
主键
含义
1
ID
char(10)
是
学号
2
NAME
varchar(16)
XX
3
CLASS_ID
tinyint
所在班级编号
1. 用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、XX、课程、成绩。
1) 启动企业管理器、注册、连接
2) 展开服务器、数据库、在视图上右击,在快捷菜单中执行"新建视图(V)..."
3) 在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B)..."
4) 再在添加表对话框中选择U_SCORES表,再单击添加按钮。
5) 依此操作,分别添加U_STUDENTS、U_COURSES表,单击关闭按钮。
6) 再在关系窗格内,拖动U_STUDENTS表的"ID"至U_SCORES的STUDENT_ID,拖动U_COURSES表的"ID"至U_SCORES的COURSE_ID,再分别选中U_STUDENTS表的"ID","NAME"列(列前的复选框),U_COURSES表的"COURSE"列以与U_SCORES表的"SCORE"列,然后单击"!"按钮,显示视图结果。
7) 单击保存按钮,将视图保存为V_SCORES,单击确定。
2. 用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、XX、班级、系,SQL语句如下:
1) CREATE VIEW dbo.V_STUDENTS
AS
SELECT
FROM dbo.U_STUDENTS INNER JOIN
dbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID
3. 自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号、课程名、学分。
2.创建存储过程
在查询分析器编辑窗口输入各存储过程的代码并执行以下程序。
(1) 添加职员记录的存储过程EmployeeAdd:
USEYGGL
GO
CREATE PROCEDURE Emplo)reeAdd
(@employeeid char6),@name char(10),@birthday datetime,
@sex bit,@address char(20),@zip char(6),@phonenumber char(12),
@emailaddress char(20),@departmenflD char(3))
AS
BEGIN
INSERT INTO Employees
VALUES(@employeeid,@name,@birthday,@sex,@address,
@zip,@phonenumber,@emailaddress,@departmentlD)
END
RETURN
GO
(2) 修改职员记录的存储过程EmployeeUpdate:
USEYGGL
GO
CREATE PROCEDURE EmployeeUpdate
(@empid char(6),@employeeid char(6),@name char(10),@birthday datetime,
@sex bit,@address char(20),@zip chat(6),@phonenumber char(12),
@emailaddress char(20),@departmentlD char(3))
AS
BEGIN
UPDATE Employees ‘
SET Employeeid=@employeeid,
Name=@name.
Birthday=@birthday,
Sex=@sex,
Address=@address.
Zip=@zip,
Phonenumber=-@phonenumber,
Emailaddree=@emailaddress.
DepartmentD=@departmenflD
WHERE Employeeid=@empid
END
RETURN
GO
(3) 删除职员记录的存储过程EmployeeDelete:
USEYGGL
GO
CREATE PROCEDURE EmployeeDelete
(@employeeid char(6))
AS
BEGIN
DELETE FROM Employees
WHERE Employeeid=@employeeid
END
RETURN
G0
3.调用存储过程
USEYGGL
EXEC EmployeeAdd’990230’,’X朝’,’890909’,1,’XX小洪山5号’,”,”,”,’3’
GO
USEYGGL
EXEC Employeeupdate’990230’,’990232’,’X平’,’890909’ ,1,’XX小洪山5号’,”,”,”,’2’
GO
USE YGGI,
EXECEmployeeDelete’990232’
GO
分析一下此段程序执行时可能出现哪几种情况。
【思考与练习】
编写如下T-SQL程序:
(1) 自定义1个数据类型,用于描述YGGL数据库中的DepartmentlD字段,然后编写代码重新定义数据库各表。
(2) 编写对YGGL各表进行插入、修改、删除操作的存储过程,然后,编写l段程序调用这些存储过程。
(3)对于YGGL数据库,表Employees的EmployeelD列与表Salary的EmployeelD列应满足参照完整性规则,请用触发器实现两个表
展开阅读全文