一、实验目的

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

二、实验内容

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

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

2)数据库名称为mydb;

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

4)排序规则选择utf8_general_ci

步骤:

mysql数据库系统原理真题 mysql数据库原理及应用实训_SQL

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_02

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;

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_03

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_04

mysql数据库系统原理真题 mysql数据库原理及应用实训_SQL_05

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

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

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

USE mysql;  
SHOW DATABASES;

运行,结果如下图所示:

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql数据库系统原理真题_06

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

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

USE mysql;  
SHOW DATABASES;

运行,结果如下图所示:

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql_07

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

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

USE mysql;  
SHOW TABLES;

结果如下图所示:

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_08

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

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql_09

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

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

ALTER DATABASE mydb DEFAULT CHARACTER SET = latin1

运行,结果如下图所示:

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql_10

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql数据库系统原理真题_11

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

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_SQL_12

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

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

DROP DATABASE testdb

运行,结果如下图所示:

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql_13

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_14

 8、转储MySQL数据库。

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql数据库系统原理真题_15

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_16

 9、导入MySQL数据库。

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

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql_17

mysql数据库系统原理真题 mysql数据库原理及应用实训_mysql数据库系统原理真题_18

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

mysql数据库系统原理真题 mysql数据库原理及应用实训_SQL_19

 

三、课后练习题

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

①SHOW COLUMNS FROM 表名;

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_20

②DESCRIBE 表名;

mysql数据库系统原理真题 mysql数据库原理及应用实训_SQL_21

③DESC 表名

mysql数据库系统原理真题 mysql数据库原理及应用实训_数据库_22

④SELECT * FROM 表名

mysql数据库系统原理真题 mysql数据库原理及应用实训_SQL_23

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模糊查询等问题