2.针对实验一中的的商品销售数据库SPXS,完成如下操作: (1)建立表示商店销售商品的视图S_SP(sname,pname,qty,price); (2)以加 “with check option”的方式,将在长春销售的白色商品的商店号,商店名建立视图WCS1; (3)以不加“with check option”方式,将在长春销售的白色商品的商店号,商店名建立视图WCS2 (4)修改商店名为“国贸”商店销售的商品为电脑,并观察结果; (5)在(2)、(3)题所建的两个视图中插入一个在北京销售的商品,观察有什么现象。
时间: 2024-02-22 08:00:57 浏览: 42
1. 建立表示商店销售商品的视图S_SP(sname,pname,qty,price)的SQL语句如下:
```sql
CREATE VIEW S_SP AS
SELECT sname, pname, qty, price
FROM SPXS;
```
2. 以加“with check option”的方式,将在长春销售的白色商品的商店号,商店名建立视图WCS1的SQL语句如下:
```sql
CREATE VIEW WCS1 AS
SELECT sname, pname, qty, price
FROM SPXS
WHERE sname = '长春' AND pname LIKE '%白色%'
WITH CHECK OPTION;
```
加了“with check option”后,如果插入一条不符合条件的记录,就会报错。
3. 以不加“with check option”方式,将在长春销售的白色商品的商店号,商店名建立视图WCS2的SQL语句如下:
```sql
CREATE VIEW WCS2 AS
SELECT sname, pname, qty, price
FROM SPXS
WHERE sname = '长春' AND pname LIKE '%白色%';
```
不加“with check option”时,可以插入任意记录。
4. 修改商店名为“国贸”商店销售的商品为电脑的SQL语句如下:
```sql
UPDATE SPXS
SET pname = '电脑'
WHERE sname = '国贸' AND pname <> '电脑';
```
观察结果时,可以通过查询S_SP视图或SPXS表来验证。
5. 在WCS1、WCS2视图中插入一个在北京销售的商品,观察现象的SQL语句如下:
```sql
INSERT INTO WCS1(sname, pname, qty, price)
VALUES ('北京', '手机', 100, 2000);
INSERT INTO WCS2(sname, pname, qty, price)
VALUES ('北京', '手机', 100, 2000);
```
在插入WCS1时,因为加了“with check option”,所以会提示错误,不允许插入不符合条件的记录,而在插入WCS2时,不会提示错误,允许插入任意记录。