当前位置:首页 > 万常选数据库实验参考答案
UPDATE OrderDetail SET price=price*0.9 WHERE orderNo=( SELECT orderNo FROM OrderMaster
WHERE customerNo='c20090001' AND YEAR(orderDate)=2009 AND MONTH(orderDate)=1 )
--4.1.6 根据订单明细表,修改订单主表的订单金额信息。 UPDATE OrderMaster SET orderSum=(
SELECT SUM(price*quantity) FROM OrderDetail
WHERE orderNo=OrderMaster.orderNo )
--4.2 对视图的基本操作有以下内容。
--4.2.1 对视图添加一条记录数据(注意:分别查看Customer表和该视图的结果)。
INSERT view_Customer_shanghai VALUES('C20120001','红三
环卷烟厂', '滁州市')
INSERT view_Customer_shanghai VALUES('C20120002','上海卷烟厂','上海市')
--4.2.2 删除视图中所有姓“王”的客户数据。 DELETE view_Customer_shanghai
WHERE customerName LIKE '王%'
--4.2.3 通过视图修改表内某一客户的姓名。 UPDATE view_Customer_shanghai
SET customerName='上海永久自行车股份有限公司' WHERE customerNo='C20120002'
--4.2.4 对员工表和订单主表创建一个视图,该视图包含相同业务员的编号、姓名、订单号、订单金额。
CREATE VIEW view_Employee_OrderMaster AS
SELECT TOP 100 PERCENT employeeNo,employeeName,orderNo,orderSum FROM Employee,OrderMaster
WHERE Employee.employeeNo=OrderMaster.salerNo ORDER BY employeeNo
--4.2.5 将上述视图中订单号为200808080808的记录的订单金额改为60000。
UPDATE view_Employee_OrderMaster SET orderSum=60000
WHERE orderNo='200808080808'
--4.2.6 给上述视图添加一条记录数据。
INSERT view_Employee_OrderMaster VALUES('E2012001', '任正非', '201201090001', 60000)
--4.2.7 删除上述视图。
DROP VIEW view_Employee_OrderMaster
--实验六:安全性定义与检查 --请完成下面的实验内容。
--(1) 分别创建登录账号和用户账号john,mary(注意服务器角色的设置)。 sp_addlogin 'john' GO
sp_grantdbaccess 'john','john' --sp_revokedbaccess 'john' --sp_droplogin 'john' GO
sp_addlogin 'mary' GO
sp_grantdbaccess 'mary','mary' GO
--(2) 将员工表的所有权限给全部用户。 GRANT ALL ON Employee TO PUBLIC GO
--(3) 创建角色r1,r2,将订单明细表所有列的SELECT权限、UNIT_PRICE列的UPDATE权限给r1。 sp_addrole 'r1' GO
sp_addrole 'r2' GO
GRANT SELECT ON OrderDetail TO r1
共分享92篇相关文档