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

Xandy ·
更新时间:2024-09-21
· 517 次阅读

一、实验目的

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

二、实验内容

在数据库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博客


作者:哆啦一泓



数据 视图 系统 数据库系统 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号