《数据库系统原理》实验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博客

发布了79 篇原创文章 · 获赞 100 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lee1hong/article/details/105762700