数据库原理实验报告(6)

2019-03-11 13:48

WHERE 销售日期= '2004-03-18' )

截图如下:

4、查询购买了所有产品的客户的名称。

SELECT 客户名称 FROM XSS

WHERE NOT EXISTS

(SELECT * FROM CP

WHERE NOT EXISTS

(SELECT * FROM CPXSB

WHERE CPXSB.产品编号=CP.产品编号

AND XSS.客户编号=CPXSB.客户编号))

截图如下:

5、查询购买了客户编号为“000001”的客户购买的所有产品的客户的名称。

SELECT 客户名称 FROM XSS

WHERE NOT EXISTS

(SELECT * FROM CP WHERE EXISTS

(SELECT *

FROM CPXSB CPXSB1

WHERE CPXSB1.产品编号=CP.产品编号

AND CPXSB1.客户编号='000001') AND NOT EXISTS

(SELECT *

FROM CPXSB CPXSB2

WHERE CPXSB2.产品编号=CP.产品编号 AND CPXSB2.客户编号=XSS.客户编号 AND XSS.客户编号!='000001') )

截图如下:

四、试验心得

通过本次课程的学习与试验,学会了用IN子查询、EXISTS子查询与集函数进行表的嵌套查询,只是在IN子查询用EXISTS子查询转换的时候脑袋有点转不过来,需要想很久才能想明白这二者之间的关系,很是头痛。只有通过大量的练习与理解才能熟练使用,融会贯通。

试验六 视图与索引的创建与管理

一、试验目的与要求

1、熟练掌握使用界面和T-SQL语句创建、查询、更新和删除视图。 2、进一步掌握视图与基本表的联系与区别。 3、理解索引的概念和作用。 4、熟练掌握索引的创建与删除。

二、试验内容

对于CPXS数据库,完成如下操作: 1、创建视图

(1)在产品销售数据库CPXS中创建价格小于2000的产品视图VIEW_CP_PRICE2000,要求加密并保证对该视图的更新都要符合价格小于2000这个条件,写出利用界面的创建过程和对应的T-SQL语句。

(2)打开查询分析器,用T-SQL语句创建各客户购买产品的情况VIEW_GMQK视图,包括客户编号、客户名称、产品编号、产品名称、价格,购买日期、购买数量。

(3)创建分区视图:在CPXS数据库中创建CP1和CP2两个表,CP1表中为编号小于等于?100010?产品数据,CP2表中为编号大于?100010?产品数据,以分区列为产品编号, 创建可更新的分区视图VIEW_CP12。 2、查询视图

(1)基于VIEW_CP_PRICE2000视图,查询价格在2000以下产品的产品编号、名称和价格。

(2)基于VIEW_GMQK视图,查询各客户在20004年3月18日购买产品的情况。 3、更新视图

利用T-SQL语句对于视图VIEW_CP12进行以下数据更新。 (1)插入一条CP记录(?100042?,?数码相机?,3500,2)。 (2)将产品编号为?100042?的价格改为3000. (3)删除产品编号为?100042?的产品。 4、修改视图

将VIEW_CP_PRICE2000视图不加密。 5、删除视图

将VIEW_GMQK视图删除。 6、索引的创建和删除

(1)对CP表,在产品名称上定义一个唯一非聚簇的索引ind_cp。

(2)先创建各客户购买产品的强情况VIEW1视图,包括客户编号、客户名称、产品编号、产品名称、价格、购买日期、购买数量,然后在客户编号+产品编号+购买日期定义一个唯一聚簇索引ind_view1。

7、索引的删除

删除索引ind_view1。

三、试验步骤

1、创建视图

(1)在产品销售数据库CPXS中创建价格小于2000的产品视图VIEW_CP_PRICE2000,要求加密并保证对该视图的更新都要符合价格小于2000这个条件,写出利用界面的创建过程和对应的T-SQL语句。

CREATE VIEW VIEW_CP_PRICE2000 WITH ENCRYPTION AS SELECT * FROM CP

WHERE 价格<2000 WITH CHECK OPTION

截图如下:

(2)打开查询分析器,用T-SQL语句创建各客户购买产品的情况VIEW_GMQK视图,包括客户编号、客户名称、产品编号、产品名称、价格,购买日期、购买数量。

CREATE VIEW VIEW_GMQK AS

SELECT XSS.客户编号,客户名称,CP.产品编号,产品名称,价格,CPXSB.销售日期,数量 FROM XSS,CP,CPXSB

WHERE XSS.客户编号=CPXSB.客户编号 AND CPXSB.产品编号=CP.产品编号

截图如下:

(3)创建分区视图:在CPXS数据库中创建CP1和CP2两个表,CP1表中为编号小于等于?100010?产品数据,CP2表中为编号大于?100010?产品数据,以分区列为产品编号, 创建可更新的分区视图VIEW_CP12。

//创建表CP1并插入数据 CREATE TABLE CP1

(产品编号char(6) PRIMARY KEY CHECK (产品编号< '100010'), 产品名称char(30), 价格float,

库存量int,

产品简列varchar(50) )

INSERT INTO CP1 SELECT * FROM CP

WHERE 产品编号<'100010' //创建表CP2并插入数据 CREATE TABLE CP2

(产品编号char(6) PRIMARY KEY CHECK (产品编号> '100010'), 产品名称char(30),

价格float, 库存量int,

产品简列varchar(50) )

INSERT INTO CP2 SELECT * FROM CP

WHERE 产品编号>'100010' //创建分区视图

CREATE VIEW VIEW_CP12


数据库原理实验报告(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:详解javamail.api

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: