实验指导书 (MySQL 5) V5.0_第1页
实验指导书 (MySQL 5) V5.0_第2页
实验指导书 (MySQL 5) V5.0_第3页
实验指导书 (MySQL 5) V5.0_第4页
实验指导书 (MySQL 5) V5.0_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验指导书数据库原理编者:吕泽华华中科技大学 软件学院课程编号课程名称(中文) 数据库原理及应用课程名称(英文) Database Principle and Application课程属性 专业课适用专业 软件工程先修课程要求 计算机导论、程序设计基础、数据结构等总学时 64学时总学分 4分 实验学时 16学时 实验学分 应开实验学期 三年级第一学期教材及实验指导书名称:自编的实验指导书一、课程简介及基本要求本课程从基本原理和应用实例两方面全面地介绍关系型数据库系统,使学生能够在熟悉数据库系统基本操作及应用的同时,具备基本的应用系统开发的技能,为将来从事工作打下良好的基础。二、实验课程目的与要求本实验课程可以使学生在理论学习之后,对课程内容有一个直观的了解;并通过实际操作掌握数据库应用系统开发的各种技能。本实验课程要求学生达到如下基本要求:1、掌握MySQL5.0的基本情况和基本使用方法。2、掌握MySQL5.0中各级基本数据库对象的管理,包括(1) 数据库的创建和各种基本管理操作。(2) 数据表格的创建和各种基本管理操作。(3) 表格数据的编辑和维护。(4) 表格数据的各种查询操作。(5) 有关视图的操作。3、熟悉MySQL5.0中数据库完整性的实现。4、了解MySQL5.0中数据库安全性的实现。5、熟悉MySQL5.0中数据库的备份和恢复。三、主要仪器设备本实验课程要求的主要仪器设备是计算机。四、实验方式与基本要求本实验课程以学生实际上机操作为主,教师在课堂教学时进行演示。五、考核与报告因为本实验课程是非独立设课,故其考核方式与相关课程一样,采用考试的考核方式。实验教学部分的成绩在课程总成绩中占一定的比例。六、实验项目设置与内容序号实验名称内容摘要实验学时每组人数实验属性实验者类别开出要求1熟悉MySQL5的安装、使用环境了解MySQL5的界面环境;熟悉服务管理器、企业管理器和查询分析器的使用方法21验证本科必做2数据库的创建和管理创建一个数据库;并对其进行基本的管理操作21验证本科必做3表的创建和操作创建若干个数据表格;并对它们进行基本的管理操作21验证本科必做4表格数据的基本查询操作对表格数据进行简单的查询操作21设计本科必做5表格数据的编辑和维护对表格数据进行插入、删除和修改操作11验证本科必做6视图管理创建视图;对视图进行基本的管理操作11设计本科必做7数据类型的使用掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除表,掌握管理表的有关系统存储过程11设计本科必做8表格数据的高级查询操作多表连接查询;统计查询;嵌套查询等21设计本科必做9数据库完整性的实现实现关系型数据库的完整性21验证本科必做10数据库安全性的实现实现数据库的安全性11验证本科必做11数据库的备份和恢复实现数据库的备份和恢复11验证本科必做12综合试验23设计本科必做实验一 熟悉MySQL的安装、使用环境及其基本工具的使用实验学时:0.5学时实验类型:验证实验要求:必做一、实验目的熟悉MySQL的安装和用法环境。掌握MySQL管理工具Navicat的使用。了解在Navicat中执行SQL语句的方法。了解数据库及数据库对象。熟悉服务器的管理与使用。二、实验内容序1:完全卸载MySQL本次实验使用Windows 7 32位操作系统,部分机器可能已经安装了mysql。由于版本不同,配置未知,需要将已有的MySQL完全卸载,再统一安装。步骤: 停止MySQL服务。右键点击“计算机选择“管理”,在弹出的对话框中选择“服务和应用程序”“服务”,在打开的本地服务中,选择名为“MySQL”的服务,单击右键,选择“停止”如图所示:图14 卸载MySQL。通过控制面板删除MySQL Server,如图所示:图15 删除残留的安装文件。删除安装路径(默认为“C:Program FilesMySQL”)下的文件夹MySQL。 删除残留的服务配置文件。删除路径“C:ProgramDataMySQLMySQL Server 5.5data”下的所有文件,也可直接删除MySQL文件夹(ProgramData为隐藏文件夹,需要在“工具”“文件夹选项”“查看”中勾选查看隐藏文件。也可以直接通过搜索栏搜索)。如图:图15序2:MySQL安装说明步骤:打开MySQL 5.5的安装包mysql-5.5.28-win32.msiNext,在如图1所示的界面中选择Typical进行默认安装图1安装完成之后,继续进入如图2所示的配置界面:图2选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。图3选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,一般选“Server Machine”,不会太少,也不会占满,实验所用则选择Developer Machine即可图4选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),我这里选择“Multifunctional Database”,按“Next”继续。图5对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这里不详述。我这里没有修改,使用用默认位置,直接按“Next”继续。图6选择一般mysql访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,我这里选“Decision Support(DSS)/OLAP”,按“Next”继续。图7选择是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,Port Number:3306,在这个页面上,我们还可以选择“启用标准模式”(Enable Strict Mode),这样MySQL就不会允许细小的语法错误。熟悉MySQL以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。按“Next”继续。图8选择编码。这里我们选择默认的西文编码“Latin1”。有需要可以选择第三项手动设置默认编码,如需要正常使用汉字则选择第三个,然后在Character Set那里选择或填入“gbk”,当然也可以用“gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字。使用mysql的时候,在执行数据操作命令之前运行一次“SET NAMES GBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字了。按“Next”继续。图9选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我们这里全部打上了勾,Service Name不变。按“Next”继续。图10这一步询问是否要修改默认root用户(超级管理)的密码(默认为空),“New root password”如果要修改,就在此填入新密码(如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“Modify Security Settings”前面的勾去掉,安装配置完成后另行修改密码),“Confirm(再输一遍)”内再填一次,防止输错。我们这里设置密码为“root”。“Enable root access from remote machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。图11确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。图12设置完毕,按“Finish”结束mysql的安装与配置这里有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。序3:Navicat配置本次实验所使用的Navicat for MySQL为免安装版,解压即可使用。可用“key.txt”中的激活码激活。1、打开MySQL服务。右键点击“我的电脑选择“管理”,在弹出的对话框中选择“服务和应用程序”“服务”,如图1.1所示: 图1.1在打开的本地服务中,选择名为“MySQL”的服务,单击右键,选择“开启”(也可以在“属性”中设置为随系统的启动而自动启动),如图1.2所示:图1.2在“开始”菜单所有程序中找到MySQL,点击“MySQL Command Line Client”,将出现如图1.3所示的窗口:图1.3实验所用的MySQL已事先配置好,用户名、密码均为“root”。因此直接输入“root”并回车,若出现如图1.4所示结果,说明MysQL服务已正常启动并且可以通过该窗口用相应语句进行操作:图1.42、学习使用MySQL管理工具Navicat的基本操作,建立连接MySQL并在它左边的树型结构中查看数据库,观察该数据库中的所有数据库对象,如表、视图、存储过程、默认、规则等,学习查询的创建、连接的关闭和删除。新建连接MySQL。打开Navicat,进入主界面后点击“连接”,在弹出的对话框中输入连接名“MySQL”,用户名和密码均为“root”,输入之后点击“确定”(可事先点击“连接测试”),如图2.1所示:图2.1打开连接MySQL,查看默认生成的数据库、表。右键单击新建的连接MySQL,选择“打开连接”,可以看到默认生成的四个数据库,以数据库“mysql”为例,点击打开,如图2.2所示。以数据库“mysql”中的表“help_category”为例,点击打开,如图2.3所示.图2.2图2.3新建查询。打开数据库“mysql”,点击Navicat主界面上方的“查询”,选择“新建查询”,在弹出的查询编辑器中输入如下语句:USE mysql;SELECT * FROM help_category;点击上方的“运行”操作及结果如图2.4所示:图2.4关闭、删除连接。右键点击连接“MySQL”选择“关闭连接”。同样的操作选择“删除连接”,结果如图2.5所示:图2.53、学习在Navicat下用户的管理,包括新建、编辑、删除。新建用户。打开连接“MySQL”,点击Navicat主界面上方的“用户”,在弹出的对话框中填写如下内容:用户名“NewUser”、主机“localhost”、密码“1234”并再次确认,将“服务器权限”全部勾选,点击“保存”。如图3.1所示:图3.1使用新建的用户创建一个新的连接“NewSQL”,操作如图3.2所示:出现如图3.3所示结果,说明用户创建成功。图3.3编辑用户。点击用户“NewUserlocalhost”,再选择“编辑用户”,修改相关信息后点击保存,同样以新建连接的方法检验。如图3.4所示:图3.4删除用户。选择修改后的用户,点击“删除用户”,选择“确定”,如图3.5所示:图3.5三、课后练习题1、分别通过Navicat主界面和在查询编辑器中新建查询查看MySQL数据库中information_schema、performance_schema两个表的所有数据。2、新建一个的用户NewUser并用它创建一个新的连接NewSQL,执行练习题1中的操作。实验二 数据库的创建和管理实验学时:1.5学时实验类型:验证实验要求:必做一、实验目的熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除数据库。学习在Navicat中进行数据库的转储和导入。掌握管理数据库的有关系统存储过程。二、实验内容1、利用Navicat创建满足以下要求的数据库:1)数据库存在于连接MySQL中;2)数据库名称为mydb; 3)字符集选择utf8 - UTF-8 Unicode;4)排序规则选择utf8_general_ci具体步骤如下:新建连接“MySQL”单击选择并右键“新建数据库”输入数据库名“mydb”、字符集“utf8 - UTF-8 Unicode”、排序规则“utf8_general_ci”“确定”。如图1.1所示:右键数据库属性,可以看到如图1.2所示结果:图1.22、利用Transact-SQL语言创建满足以下要求的数据库:1)数据库存在于连接MySQL中;2)数据库名称为mydb;3)字符集选择utf8 - UTF-8 Unicode;4)排序规则选择utf8_general_ci;具体步骤如下:点击“新建查询”,在查询编辑器输入以下代码,点击“运行”,完成后,左侧列表中选中连接“数MySQL”,点击“刷新”按钮,列表即可见到“testdb”。如图2.1、2.2所示:CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 图2.1图2.23、利用Transact-SQL语言查看数据库及表的信息。查看连接中的所有数据库步骤:点击“新建查询”,输入SHOW DATABASES后运行,结果如图3.1所示:图3.1查看数据库mysql中所有的表步骤:点击“新建查询”,输入USE mysql;SHOW TABLES;后运行,(也可以用语句show tables from mysql;)结果如图3.2所示:图3.2查看数据库“mysql”中表“help_keyword”的结构。步骤:点击“新建查询”,输入USE mysql;DESC help_keyword;后运行,(也可以用语句show tables from mysql;)结果如图3.3所示:图3.34、利用Navicat修改数据库mydb,修改其排序方式为utf8_bin。步骤:右键单击数据库“mydb”数据库属性,在排序方式中选择“utf8_bin”“确定”。5、利用Transact-SQL语言修改数据库mydb的字符集为Latin1; 步骤:点击“新建查询”,输入以下代码,点击运行ALTER DATABASE mydb DEFAULT CHARACTER SET = latin1; 如图5.1所示:图5.1关闭数据库“mydb”后重新打开,查看数据库属性,可以看到如图5.2所示结果:图5.26、利用Navicat删除数据库mydb。直接右键点击mydb选择删除即可,注意要关闭当前的SQL语句编写界面。7、利用Transact-SQL语言删除数据库testdb。步骤:点击“新建查询”,输入DROP DATABASE testdb 后运行。刷新连接“MySQL”,查看结果。8、转储MySQL数据库。 步骤:打开连接“MySQL”右键单击数据库“mysql”选择“转储 SQL文件”将文件名改为“sql.sql”后保存在桌面,如图9.1所示:图9.1成功后将出现如图9.2所示情况:图9.29、导入MySQL数据库。在连接“MySQL”中新建数据库“sql”(字符集与排序方式尽量一致)。打开数据库“sql”右键单击运行SQL文件选择桌面的“sql.sql”文件点击“确定”。如图10.1所示:图10.1执行结果如图10.2所示则表示成功。关闭数据库sql后重新打开,对比数据库“sql”与最初的数据库“mysql”,看是否完全相同。图10.2三、课后练习题1、分别用以下几种语句查看数据库“mysql”中任意表的结构或数据(先输入:“USE mysql;”):SHOW COLUMNS FROM 表名;DESCRIBE 表名;DESC 表名SELECT * FROM 表名2、思考以下问题:1)mysql中utf8编码的utf8_bin,utf8_general_cs,utf8_general_cs三者的区别。2)不同编码方式的数据库之间进行转储和导入会不会出现错误。实验三 表的创建和管理实验学时:1.5学时实验类型:验证实验要求:必做一、实验目的熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除表。掌握管理表的有关系统存储过程。二、实验内容1、利用Navicat创建满足以下要求的数据库:数据库存在于连接MySQL中;数据库名称为xsgl; 字符集选择utf8 - UTF-8 Unicode;排序规则选择utf8_general_ci。2、在数据库xsgl中,利用Navicat创建以下表格:1)表格名为xs(学生基本情况表);2)表格中各个属性的定义如下:列名含义数据类型长度能否取空值备注xh学号intno主码xm姓名char8yesxb性别char2yesnl年龄tinyintyeszy专业char16yesjtzz家庭住址char50yes具体步骤如下:打开新建的数据库“xsgl”右键点击“表”-“新建表”。按照上表内容输入个属性的定义,填写“列名”、“数据类型”,并取消或选择“允许NULL值”前的选项,并右键点击“xh”,选择将其设为主键,如图2.1所示:图2.1点击“保存”,输入表名:xs。结果如图2.2所示:图2.23、按照以下步骤向表格xs中添加如下记录:xh(学号)xm(姓名)xb(性别)nl(年龄)zy(专业)jtzz(家庭住址)200809412庄小燕女24计算机上海市中山北路12号200809415洪波男25计算机青岛市解放路105号200109102肖辉男23计算机杭州市凤起路111号200109103柳嫣红女22计算机上海市邯郸路1066号200307121张正正男20应用数学上海市延安路123号200307122李丽女21应用数学杭州市解放路56号1)打开Navicat;2)打开连接MySQL找到数据库xsgl中的表格xs;3)在表格xs上右击鼠标,选择“打开表”; 4)在接着出现的记录录入界面上添加记录。(方向键下增加新纪录)添加完后如图3.1所示:4、向表xs中增加“入学时间”属性列,其列名为rxsj,数据类型为datetime型。步骤:右键单击xs表设计表加入列rxsj,设置数据类型为datetime。如图4.1所示:图4.15、将表xs中nl(年龄)列的数据类型改为int型。步骤:与第4项类似6、在数据库xsgl中,利用Transact-SQL语言创建以下表格:1)表格名为kc(课程情况表);2)表格中各个属性的定义如下:列名含义数据类型长度能否取空值备注kch课程号char4no主码kcm课程名char20yesxss学时数intyesxf学分intyes步骤:点击“新建查询”,输入以下代码,点击运行USE xsgl;create table kc( kch char(4) not null, kcm char(20) null, xss int null,xf int null, primary key(kch)engine=innodb default charset=utf8 auto_increment=1;命令成功完成后,在 “xggl”数据库中右键点击“表”,选择“刷新”,结果如图所示:7、利用Transact-SQL语言修改kc表。增加“成绩”一列cj,int型,允许为空值,默认为0。步骤:点击“新建查询”,输入以下代码,点击运行ALTER TABLE kc ADD COLUMN cj INT DEFAULT 0;修改cj列的类型为char。步骤:点击“新建查询”,输入以下代码,点击运行ALTER TABLE kc CHANGE COLUMN cj cj CHAR(4);修改cj列的列名为mark。步骤:点击“新建查询”,输入以下代码,点击运行ALTER TABLE kc CHANGE cj mark CHAR(4) DEFAULT 0;删除mark列。步骤:点击“新建查询”,输入以下代码,点击运行ALTER TABLE kc DROP COLUMN mark;7、利用Navicat和Transact-SQL语言两种方式删除表kc。步骤:右键点击表“kc”,选择删除。步骤:点击“新建查询”,输入以下代码,点击执行DROP TABLE kc8、利用Transact-SQL将表xs重命名为Students。步骤:点击“新建查询”,输入以下代码,点击执行RENAME TABLE xsgl.xs TO xsgl.Students;三、课后练习题1、创建一个名为cpxs的数据库,在该数据库中分别通过Navicat和查询分析器创建一个名为cp的表(产品表),表格中各个属性的定义如下:列名含义数据类型长度能否取空值备注cpbh产品编号char6no主码cpmc产品名称char30nojg价格moneyyeskcl库存量intyes2、思考以下问题:1)如果要在一个已经存在的表格上删除一列并增加一列,能不能用一个ALTER TABLE语句来完成?实验四 表数据的简单查询实验学时:1学时实验类型:设计实验要求:必做一、实验目的掌握SELECT语句的基本用法。掌握计算列的用法。掌握WHERE子句中各类查询条件的写法。二、实验内容1、在连接“MySQL”中新建数据库“world”,并将数据库文件world_inno.sql导入到该数据库之中2、查询world数据库的country表中的国名(Name)、洲名(Continent)和地区(Region)。步骤:点击“新建查询”,输入以下代码,点击执行USE worldSELECT NAME,Continent,Region FROM country;运行结果如图2.1:图2.13、从world数据库的city表中搜索返回前20条的数据。步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT * FROM city LIMIT 0,20;其中,“LIMIT M,N”中的M表示从第M条(不包括M)开始结果如图3.1:图3.14、使用WHERE 子句从world 数据库的country表中检索出所有领土面积超过一百万平方公里的国家名称(Name)、洲名(Continent)以及领土面积(SurfaceArea)。步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT NAME,Continent,SurfaceArea FROM countryWHERE SurfaceArea 1000000;结果如图4.1:图4.15、查询在world数据库的country表中Name以字母C开头的国家的洲名Continent,地区Region。步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT Name,Continent,RegionFROM countryWHERE NAME like C%;运行结果如图5.1:图5.16、查询world数据库Country表中所有国家的Name和Condinent,并按生日SurfaceArea从小到大进行排列。步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT Name,Continent,SurfaceAreaFROM countryORDER BY SurfaceArea;运行结果如图6.1:图6.1练习巩固7、查询country表中政体(GovernmentForm)属于共和国(Republic)的国家的Name和Population、GovernmentForm。USE world;SELECT NAME,Population,GovernmentFormFROM countryWHERE GovernmentForm = Republic;8、country表中查询前20个非洲国家的名称。USE world;SELECT NAMEFROM countryWHERE Continent= AfricaLIMIT 0,20;9、city表中查询阿富汗(Countrycode为AFG)的所有城市的名称和人口,并要求对查询结果按人口的降序排列。 USE world;SELECT NAME,PopulationFROM cityWHERE CountryCode= AFGORDER BY Population DESC;10、Country表中查询领土面积介于一百万和五百万平方公里之间的国家的名称和领土面积(领土面积以除以一万的结果显示)。USE world;SELECT NAME,SurfaceArea/10000FROM countryWHERE Continent = Africa AND SurfaceArea BETWEEN 1000000 AND 5000000;11、查询名称以“C”开头的亚洲国家或非洲国家的名称和洲名USE world;SELECT Name,ContinentFROM countryWHERE (Continent = Asia OR Continent = Africa)AND Name LIKE C%; 12、country表中查询独立年份为空的国家的名称、国家年份。USE world;SELECT NAME,IndepYear FROM countryWHERE IndepYear is null;三、课后练习题以下题目在数据库world中完成。1、查询country表中所有亚洲国家的名称、地区,要求查询结果按人口的升序排列。2、查询city表中智利(CHL)或保加利亚(BGR)的城市名称。3、查询country表中Region字段包含“Europe”的国家的全部信息。4、查询所有君主立宪制(Constitutional Monarchy)国家的名称和人口,按人口降序排列。实验五 表数据的维护实验学时:1学时实验类型:验证实验要求:必做一、实验目的熟练掌握使用Transact-SQL语言和通过Navicat输入表数据、修改表数据和删除表数据的操作。二、实验内容1、在数据库world中建立一个名为newlanguage的表,其结构与表countrylanguage完全一样(注意各字段的默认值、字符集、排序方式等),如图1.1:图1.12、在表newlanguage中插入中国的客家话,其名称为CountryCode为CHN,language为Kejia,isOfficial为F,percentage为0.3。 USE world;INSERT INTO newlanguageVALUES (CHN,Kejia,F,0.3); 4、试将表countrylanguage中的所有记录插入到表newlanguage中去,其SQL命令为:USE world;INSERT INTO newlanguageSELECT *FROM countrylanguage;5、将表newlanguage中Language为“Kejia”的语言的Percentage改为0.4 USE world;UPDATE newlanguageSET Percentage = 0.4WHERE Language = Kejia;6、将表newlanguage中语言的Percentage均减去0.1。USE world;UPDATE newlanguageSET Percentage = Percentage - 0.1;7、删除表newlanguage中澳大利亚(CountrCode为“AUS”)的英语记录。USE world;DELETE FROM newlanguageWHERE CountryCode=AUSAND Language=English;8、清空表newlanguage中的所有数据。USE world;TRUNCATE TABLE newlanguage;三、课后练习题以下题目在数据库world中完成。1、通过Navicat,在country、countrylanguage、和city三个表中各输入10条记录。2、将一条新的城市记录(Name:Beijing,Country:AFG,District:Beijing,Population:21148000)插入表city中。3、插入一条语言记录(“CHN”,“Minnan”,“F”,0.5)到表countrylanguage。4、删除CountryCode为“ABW”的语言记录。实验六 视图管理实验学时:1学时实验类型:设计实验要求:必做一、实验目的掌握视图的定义与维护操作,加深对视图在关系数据库中作用的理解。二、实验内容在数据库world中完成以下操作:1、 建立亚洲国家的视图asia_country,并要求进行修改和插入操作时仍需保证该视图只有亚洲国家,视图的属性名为Code,Name,Continent,Population,GNP, GovernmentForm. USE world;CREATE VIEW asia_countryASSELECT Code,Name,Continent,Population,GNP,GovernmentFormFROM countryWHERE Continent=Asia;对于视图的使用,将其当做基本表即可,可用下面语句用来显示asia_country表中的所有亚洲国家:USE world;SELECT *FROM asia_country;或者直接在左侧目录【world】下的【视图】下多出的“asia_country”上点击右键,在弹出选项里选择“设计视图”。结果如图1.1所示:图1.12、建立国家简称(country.Code)、城市名(city.Name)、语言名(countrylanguage.Language)的视图cc_language。本视图由三个基本表的连接操作导出,其SQL语句如下:USE world;CREATE VIEW cc_languageASSELECT country.Code,city.Name,countrylanguage.LanguageFROM country,city,countrylanguageWHERE country.Code = city.CountryCodeAND country.Code = countrylanguage.CountryCode; 用以下语句查看:USE world;SELECT *FROM cc_language;结果如图:2.1:图2.13、定义一个反映国家独立年份的视图c_indepyear。USE world;CREATE VIEW c_indepyear(country_code, country_name, country_indepyear)ASSELECT Code, Name, IndepYearFROM country;用以下语句查看:USE world;SELECT *FROM c_indepyear;结果如图3.1所示图3.14、删除视图c_indepyear。USE world;DROP VIEW c_indepyear;5、在亚洲国家视图asia_country中找出国民生产总值GNP大于50000的国家名称和GNP。USE world;SELECT Name,GNPFROM asia_countryWHERE GNP 50000;6、在asia_country视图中人口多于一千万的国家名称、政体。USE world;SELECT Name,GovernmentFormFROM asia_countryWHERE Population 10000000;7、将亚洲国家视图asia_country中Code为“AFG”的政体改为“Republic”。USE world;UPDATE asia_countrySET GovernmentForm = RepublicWHERE Code = AFG;8、向亚洲国家视图asia_countr中插入一个新的国家记录,其中Code为“DMC”、Name为“Demacia”,Cotinent为“Asia”,Population为“10000000”,GNP为“50000”,GovernmentForm为“Monarchy”。USE world;INSERT INTO asia_countryVALUES(DMC,Demacia,Asia,10000000,50000,Monarchy);三、课后练习题1、建立共和国政体的国家的视图。2、建立君主立宪制(Constitutional Monarchy)国家的视图,并要求进行修改和插入操作时仍须保证该视图只有君主立宪制国家。3、建立共和国政体且国名生产总值在10000以上的国家视图。实验七 数据类型的使用实验学时:0.5学时实验类型:设计实验要求:选做一、实验目的熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除表。掌握管理表的有关系统存储过程。二、实验内容1、如果要设计一个表用来存放商品的基本信息,包括商品编号、商品名称、品牌商标、型号、产地、生产厂商、生产日期、保质期、进货价格、销售价格和商品图片等。请设计出这个表的表结构,包括表名、列名、列的数据类型和长度等等。2.将数据库world中country表的capital字段的数据类型改为varchar(20).Navicat设计表查询编辑器,输入以下语句:USE world;alter table country modify column Capital varchar(20);三、课后练习题1、用Navicat和SQL语言两种方式将数据库world中Indepyear字段的数据类型改为 char(5)实验八 表数据的高级查询实验学时:2学时实验类型:设计实验要求:必做一、实验目的本实验的目的是使学生熟练掌握MySQL查询分析器的使用方法,加深SQL语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算和集合的操作方法。二、实验内容在数据库world中完成以下操作。1、 查询所有国家名称及相应的城市、语言。 USE world;SELECT country.Name,city.Name,countrylanguage.LanguageFROM country,city,countrylanguageWHERE country.Code= city.CountryCodeAND city.CountryCode = countrylanguage.CountryCode;2、 查询国家政体为共和国且国家人口在一千万以上的城市的名称和城市人口、所属国家。USE world;SELECT city.Name,city.Population,country.NameFROM country,cityWHERE city.CountryCode = country.CodeAND country.Population 10000000;3、 统计country表中共和国政体的国家数。 USE world;SELECT COUNT(Code)FROM countryWHERE GovernmentForm = Republic;4、 统计country表中共和国政体国家的平均人口。 USE world;SELECT AVG(Population)FROM countryWHERE GovernmentForm = Republic;5、 统计countrylanguage表中官方语言数。 USE world;SELECT COUNT(CountryCode)FROM countrylanguageWHERE IsOfficial = T;6、 分组统计country表中各政体的国家个数。 USE world;SELECT GovernmentForm,count(*) FROM country GROUP BY GovernmentForm;7、 分组统计各大洲平均每国人口数。 USE world;SELECT Continent,AVG(Population) FROM country GROUP BY Continent;8、查询有超过两条城市记录的国家的名称。USE world;SELECT country.Name FROM city,countryWHERE city.CountryCode = country.Code GROUP BY city.CountryCodeHAVING COUNT(c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论