任务3 SQL数据更新语句
一、实验目的
? ? ? ?
加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌握 掌握单个元组及多个元组的插入、修改及删除操作的实现过程 加深对更新操作时数据库中数据一致性问题的了解
加深对约束条件在数据更新操作执行中的作用问题的了解
二、实验内容
方法一:在企业管理器中插入、删除及修改数据,
方法二:在查询编辑器中写SQL插入、删除及修改数据
三、实验任务
设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY)
P(PNO,PNAME,COLOR,WEIGHT)
J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商(STATUS)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT) 组成;
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。试完成以下操作:
1.在S表中插入元组“s6,华誉,40,广州” 2.在J表中插入元组“j8,传感器厂”
3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库 4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60 5.将SPJ表中前4个元组的qty属性值统一修改为300
6.将S表中city属性名含有“京”或“津”的相应status属性值增加100 7.将供应商s2为“一汽”工程项目所供应的零件数量修改为2000 8.将全部红色零件的颜色修改为浅红色 9.由s5供给j4的零件p6改为由s3供应
10.在SPJ表中新增一名为SDATE的属性列,对该表中的每一元组在SDATE属性列上填
上实验当时的日期和时间
11.删除所在城市为“广州”的供应商记录
12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录
13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数据信息
四、实验报告要求
1、写出与上述任务相对应的SQL更新语句(实验报告上写出3、5、10的SQL语句) 2、并记录在实验过程中遇到的问题、解决办法及心得体会。
任务4 视图的定义和操作
一、实验目的:
理解视图的概念,掌握视图的使用方法。
二、预计实验时间:上机一次
三、实验过程
1. 参照前面实验中完成的查询,按如下要求自行设计视图:
1)基于单个表按投影操作定义视图。
举例:定义一个视图用以查看所有员工的编号、姓名和出生日期。 2)基于单个表按选择操作定义视图。
举例:定义一个满足sex=1的员工的所有信息的视图。 3)基于单个表按选择和投影操作定义视图。
举例:定义一个视图用以查看部门号码为‘2’的所有员工的姓名、电话和邮件地址。 4)基于多个表根据连接操作定义视图。
举例:定义一个视图用以查看所有员工的姓名、部门名及工资。 5)基于多个表根据嵌套查询定义视图。
举例:定义一个视图用以查看各部门的雇员的平均工资。 Creat view v5(DepartmentID ,EmployeeID, salary) As
select DepartmentID, Employee .EmployeeID ,Income-OutCome as salary from Employee,Salary
where Employee.EmployeeID=Salary.EmployeeID
select DepartmentID,avg(salary) from v5
group by DepartmentID 或者
Create view v5(AvgSalary) As
Select avg(Income-OutCome) From salary
Where DepartmentID in
(select DepartmentID
From Employee
group by DepartmentID)
6)定义含有虚字段(即基本表中原本不存在的字段)的视图。 举例:定义一个视图用以查看所有雇员的编号、姓名、年龄。 Creat view v6(EmployeeID, Name,Age) As
Select EmployeeID, Name, datediff(year, Birthday,getdate()) /* 2009-datepart(yy,birthday)
From Employee
2. 分别在定义的视图上进行查询、插入、更新和删除操作,分情况(查询、更新)讨论哪些操作可以成功完成,哪些不能成功完成,并分析原因。
四、实验报告要求:
1、在实验报告中要给出具体的视图定义要求;
2、分情况讨论那些操作可以成功完成,哪些不能成功完成。 查询操作:举出一个进行查询操作的例子。
更新操作:更新操作包含插入、更新、删除,针对不能成功完成更新操作的情况举出两个例子,并分析原因。
实验3 数据完整性和安全性管理
任务1 数据库完整性管理
一、实验目的
1.掌握域完整性的实现方法。 2.掌握实体完整性的实现方法。 3.掌握参照完整性的方法。 二、实验内容
1.使用界面方式创建规则对象,并绑定到列,实现域完整性。 2.为表添加一个标识列,实现实体完整性。 3.为两表建立关联,实现参照完整性。 三、实验步骤 1.实现域完整性
①启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。
②选择要创建规则对象的数据库文件夹,并在右边的对象窗口中选择其中的“规则”对象。选择“操作”菜单中的“新建规则”命令,打开“规则属性”对话框。 ③设置形如“(区号)电话号码”的联系电话格式检查规则,单击“确定”按钮,完成规则对象的定义。
④打开“规则”对象,并选中刚才定义的规则对象RO_联系电话格式。选择“操作”菜单中的“属性”命令,打开“规则属性”对话框。
⑤单击“绑定列”按钮,打开“将规则绑定到列”对话框,完成到列的绑定,关闭“规则属性”对话框。