目录

数据库系统原理实验2数据库的创建和管理

《数据库系统原理》实验2:数据库的创建和管理

一、实验目的

熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除数据库。学习在Navicat中进行数据库的转储和导入。掌握管理数据库的有关系统存储过程。

二、实验内容

1、利用Navicat创建满足以下要求的数据库:

1)数据库存在于连接MySQL中;

2)数据库名称为mydb;

3)字符集选择utf8 – UTF-8 Unicode;

4)排序规则选择utf8_general_ci

步骤:

https://i-blog.csdnimg.cn/blog_migrate/2b4923331f9655be392339a67a6031c7.png

右键—数据库属性,可以看到如下图所示结果

https://i-blog.csdnimg.cn/blog_migrate/2b0c6778b1040a982781e79609f56279.png

2、利用Transact-SQL语言创建满足以下要求的数据库:

1)数据库存在于连接MySQL中;

2)数据库名称为mydb;

3)字符集选择utf8 – UTF-8 Unicode;

4)排序规则选择utf8_general_ci;

步骤:

点击“新建查询”,在查询编辑器输入以下代码:

CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  

点击“运行”,结果如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/85a730c769f0f1d6889f8781d6f703cb.png

完成后,左侧列表中选中连接“MySQL”,点击“刷新”按钮,列表即可见到“testdb”

https://i-blog.csdnimg.cn/blog_migrate/b974066642cdc9e10e094dd37274bd1f.png

https://i-blog.csdnimg.cn/blog_migrate/9b71274df70929d38f9a5b80b8732d8a.png

3、利用Transact-SQL语言查看数据库及表的信息。

①查看连接中的所有数据库

步骤:点击“新建查询”,输入以下代码:

USE mysql;  
SHOW DATABASES;  

运行,结果如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/e88a25ffbc0740f6af7cec61166be290.png

②查看数据库mysql中所有的表

步骤:点击“新建查询”,输入以下代码:

USE mysql;  
SHOW DATABASES;  

运行,结果如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/0d0680e9d70ce4b2b850de0545e4c3a8.png

③查看数据库“mysql”中表“help_keyword”的结构

步骤:点击“新建查询”,输入以下代码并运行:

USE mysql;  
SHOW TABLES;  

结果如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/e37633cca0ba5f93f5a4286b5d1d7f2d.png

4、利用Navicat修改数据库mydb,修改其排序方式为utf8_bin。

步骤:右键单击数据库“mydb”—数据库属性,在排序方式中选择“utf8_bin”—“确定”。

https://i-blog.csdnimg.cn/blog_migrate/a280db88ac243efde98088691c5b9d47.png

5、利用Transact-SQL语言修改数据库mydb的字符集为Latin1;

步骤:点击“新建查询”,输入以下代码:

ALTER DATABASE mydb DEFAULT CHARACTER SET = latin1  

运行,结果如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/6e38db7da1a8e90f3662bc3024c4cdd2.png

关闭数据库“mydb”后重新打开,查看数据库属性,可以看到下图结果:

https://i-blog.csdnimg.cn/blog_migrate/12632b248ea676c97be4dbfe5881bdfc.png

6、利用Navicat删除数据库mydb。

直接右键点击mydb选择删除即可,注意要关闭当前的SQL语句编写界面

https://i-blog.csdnimg.cn/blog_migrate/a8ab84121d41c7d466482fd0db027bc3.png

7、利用Transact-SQL语言删除数据库testdb。

步骤:点击“新建查询”,输入以下代码:

DROP DATABASE testdb

运行,结果如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/31e4f9c744eb4640a693ac3f80daaeb4.png

刷新连接“MySQL”,查看结果

https://i-blog.csdnimg.cn/blog_migrate/3e6c2012ee5a2a4683eb603ad8bfe1e3.png

8、转储MySQL数据库。

步骤:打开连接“MySQL”—右键单击数据库“mysql”—选择“转储SQL文件”—将文件名改为“sql.sql”后保存在桌面,如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/f973dcd7b52e7ebd0e2f0c98c99f3ec4.png

成功后将出现如下图所示情况:

https://i-blog.csdnimg.cn/blog_migrate/a8e69ddb4dc53853c4f80711b2f6ae07.png

9、导入MySQL数据库。

①在连接“MySQL”中新建数据库“sql”(字符集与排序方式尽量一致)。

②打开数据库“sql”—右键单击—运行SQL文件—选择桌面的“sql.sql”文件—点击“确定”。如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/d7e5b4ad8686a98e92a1530343ef6784.png

https://i-blog.csdnimg.cn/blog_migrate/ced4fec952375e0fab38de09b0f31293.png

③执行结果如下图所示则表示成功。关闭数据库sql后重新打开,对比数据库“sql”与最初的数据库“mysql”,内容完全相同。

https://i-blog.csdnimg.cn/blog_migrate/9222843c98d3f1a06809c77c2012d184.png

三、课后练习题

1、分别用以下几种语句查看数据库“mysql”中任意表的结构或数据(先输入:“USE mysql;”):

①SHOW COLUMNS FROM 表名;

https://i-blog.csdnimg.cn/blog_migrate/0b8a0af0a1e0492d2571b1cbe7b01622.png

②DESCRIBE 表名;

https://i-blog.csdnimg.cn/blog_migrate/5025015258f9fcb4a2171d599d00dc9c.png

③DESC 表名

https://i-blog.csdnimg.cn/blog_migrate/7d45e3f0b19b192381b7a04de1916a1c.png

④SELECT * FROM 表名

https://i-blog.csdnimg.cn/blog_migrate/0efb2f3ec469401c5d79b4ffad9b803e.png

2、思考以下问题:

1)mysql中utf8编码的utf8_bin,utf8_general_cs,utf8_general_ci三者的区别

答:

utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写

utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感

utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感

2)不同编码方式的数据库之间进行转储和导入会不会出现错误

答:

需要保证导出文件的编码集和要导入的目标库的编码集一致。这里注意,同一服务的不同库可能有不同设置,同一库中可能不同表有不同设置,同一表中可能不同字段有不同设置。不论原始数据、过程中的数据,编码是怎样的,只要保证最终转换后的字符编码、编码命令配置是一致的,就不会出现错误

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

问题:

ORDER BY关键字降序排序问题

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

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

解决方案:

参考《数据库系统概论课本》、菜鸟教程( )和CSDN博客