《数据库系统原理》实验6:视图管理

一、实验目的

掌握视图的定义与维护操作,加深对视图在关系数据库中作用的理解。

二、实验内容

在数据库world中完成以下操作:

1、建立亚洲国家的视图asia_country,并要求进行修改和插入操作时仍需保证该视图只有亚洲国家,视图的属性名为Code,Name,Continent,Population,GNP, GovernmentForm.

输入以下代码并运行:

USE world;  
CREATE VIEW asia_country  
AS  
SELECT Code,Name,Continent,Population,GNP,GovernmentForm  
FROM country  
WHERE Continent='Asia';  

对于视图的使用,将其当做基本表即可,可用下面语句用来显示asia_country表中的所有亚洲国家:

USE world;  
SELECT *  
FROM asia_country;  

或者直接在左侧目录【world】下的【视图】下多出的“asia_country”上点击右键,在弹出选项里选择“设计视图”。

结果如下图所示:

2、建立国家简称(country.Code)、城市名(city.Name)、语言名(countrylanguage.Language)的视图cc_language。本视图由三个基本表的连接操作导出,其SQL语句如下:

USE world;  
CREATE VIEW cc_language  
AS  
SELECT country.Code,city.Name,countrylanguage.Language  
FROM country,city,countrylanguage  
WHERE country.Code=city.CountryCode  
AND country.Code=countrylanguage.CountryCode;  

    用以下语句查看:

USE world;  
SELECT *  
FROM cc_language;   

结果如下图所示:

3、定义一个反映国家独立年份的视图c_indepyear。

输入以下代码并运行:

USE world;  
SELECT *  
FROM c_indepyear;  

结果如下图所示

 

4、删除视图c_indepyear。

输入以下代码并运行:

USE world;  
DROP VIEW c_indepyear  

5、在亚洲国家视图asia_country中找出国民生产总值GNP大于50000的国家名称和GNP。

输入以下代码并运行:

USE world;  
SELECT Name,GNP  
FROM asia_country  
WHERE GNP > 50000;  

6、在asia_country视图中人口多于一千万的国家名称、政体。

输入以下代码并运行:

USE world;  
SELECT Name,GovernmentForm  
FROM asia_country  
WHERE Population > 10000000  

7、将亚洲国家视图asia_country中Code为“AFG”的政体改为“Republic”。

输入以下代码并运行:

USE world;  
UPDATE asia_country  
SET GovernmentForm = 'Republic'  
WHERE 'Code' = 'AFG'  

8、向亚洲国家视图asia_countr中插入一个新的国家记录,其中Code为“DMC”、Name为“Demacia”,Cotinent为“Asia”,Population为“10000000”,GNP为“50000”,GovernmentForm为“Monarchy”。

输入以下代码并运行:

USE world;  
INSERT INTO asia_country  
VALUES('DMC','Demacia','Asia',10000000,50000,'Monarchy')  

三、课后练习题

1、建立共和国政体的国家的视图。

输入以下代码并运行:

USE world;  
CREATE VIEW republic_form(country_code,country_name,country_government_form)  
AS  
SELECT Code,Name,GovernmentForm  
FROM country  
WHERE GovernmentForm = 'Republic';  

2、建立君主立宪制(Constitutional Monarchy)国家的视图,并要求进行修改和插入操作时仍须保证该视图只有君主立宪制国家。

输入以下代码并运行:

USE world;  
CREATE VIEW constitutional_monarchy  
AS  
SELECT *  
FROM country  
WHERE GovernmentForm='Constitutional Monarchy';  

3、建立共和国政体且国名生产总值在10000以上的国家视图。

输入以下代码并运行:

USE world;  
CREATE VIEW test_6_3  
AS  
SELECT *  
FROM country  
WHERE GovernmentForm = 'Republic' AND GNP > 10000  

 

 

四、出现的问题及解决方案

问题:

ORDER BY关键字降序排序问题

SQL AND & OR 运算符与优先级问题

WHERE语句的特殊条件——例如is null、between and、like模糊查询等问题

Enum枚举类型的设定值问题

解决方案:

参考《数据库系统概论课本》、菜鸟教程(https://www.runoob.com/sql)和CSDN博客

  • 0
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值