实验二 数据库的创建与管理
实验学时:2学时
实验类型:验证
实验要求:必做
一、实验目的
熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除数据库。学习在Navicat中进行数据库的转储和导入。掌握管理数据库的有关系统存储过程。
二、实验内容
1.基础学习
1、利用Navicat创建满足以下要求的数据库:
1)数据库存在于连接MySQL中;
2)数据库名称为mydb;
3)字符集选择utf8 – UTF-8 Unicode;
4)排序规则选择utf8_general_ci
运行结果如下所示:
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;
运行结果如下所示:
3、利用Transact-SQL语言查看数据库及表的信息。
①查看连接中的所有数据库
步骤:点击“新建查询”,输入
SHOW DATABASES
运行结果如下所示:
②查看数据库mysql中所有的表
步骤:点击“新建查询”,输入
show tables from mysql;
运行结果如下所示:
③查看数据库“mysql”中表“help_keyword”的结构。
步骤:点击“新建查询”,输入以下代码后运行,(也可以用语句show tables from mysql;)
desc help_keyword
运行结果如下所示:
4、利用Navicat修改数据库mydb,修改其排序方式为utf8_bin。
步骤:右键单击数据库“mydb”—数据库属性,在排序方式中选择“utf8_bin”—“确定”。
运行结果如下所示:
5、利用Transact-SQL语言修改数据库mydb的字符集为Latin1;
步骤:点击“新建查询”,输入以下代码,点击运行
alter databases mydb default character set = latin1
运行结果如下所示:
关闭数据库“mydb”后重新打开,查看数据库属性,可以看到运行结果如下所示:
6、利用Navicat删除数据库mydb。
直接右键点击mydb选择删除即可,注意要关闭当前的SQL语句编写界面。
运行结果如下所示:
7、利用Transact-SQL语言删除数据库testdb。
步骤:点击“新建查询”,输入以下代码后运行。
DROP DATABASE testdb
刷新连接“MySQL”,查看结果。
运行结果如下所示:
8、转储MySQL数据库。
步骤:打开连接“MySQL”—右键单击数据库“mysql”—选择“转储
SQL文件”—将文件名改为“sql.sql”后保存在桌面。
运行结果如下所示:
9、导入MySQL数据库。
①在连接“MySQL”中新建数据库“sql”(字符集与排序方式尽量一致)。
②打开数据库“sql”—右键单击—运行SQL文件—选择桌面的“sql.sql”文件—点击“确定”。
③关闭数据库sql后重新打开,对比数据库“sql”与最初的数据库“mysql”,看是否完全相同。
运行结果如下所示:
2.课后练习
1、分别用以下几种语句查看数据库“mysql”中任意表的结构或数据(先输入:“USE mysql;”):
①SHOW COLUMNS FROM 表名;
use mysql;
show columns from db;
②DESCRIBE 表名;
use mysql;
describe db;
③DESC 表名
use mysql;
desc db;
④SELECT * FROM 表名
use mysql;
select * from db;
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)不同编码方式的数据库之间进行转储和导入会不会出现错误。
需要保证导出文件的编码集和要导入的目标库的编码集一致。这里注意,同一服务的不同库可能有不同设置,同一库中可能不同表有不同设置,同一表中可能不同字段有不同设置。不论原始数据、过程中的数据,编码是怎样的,只要保证最终转换后的字符编码、编码命令配置是一致的,就不会出现错误
三、问题解决
-
问题:报错“[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘select * from db’ at line 2”
解决:见过查阅csdn和询问同学可知,第一行代码结束后忘记加上分号,导致出现问题。Mysql语法中规定了每条命令最好用分号隔开。
-
问题:不了解mysql中utf8编码的utf8_bin,utf8_general_cs,utf8_general_ci三者的区别
解决:上网搜查资料,浏览csdn网站,从而查询到这三者的不同(其不同之处已在上述简答题中解释,这里不再赘述)