本篇主要介绍了用于管理MySQL数据库的Navicat管理工具,以及MySQL的常用命令。通过本篇的学习,可以达到以下目标。
● 使用Navicat管理MySQL数据库
● 在CentOS系统环境中管理MySQL数据库
1、 Navicat数据库管理工具
Navicat为MySQL提供了可视化的数据库管理,利用Navicat可以完成访问、配置、控制、管理和开发MySQL的所有工作,极大方便了数据库开发人员和数据库管理员对MySQL系统的各种访问。Navicat 10版本启动后主窗口如图1所示。

图1 Navicat主窗口界面
从主窗口界面可以看出,Navicat提供数据库连接、新建数据库、用户、表、数据库视图、查询、数据库备份、函数等功能。
数据库连接可以允许用户远程或本地连接MySQL数据库,连接MySQL数据库成功后,才能对MySQL数据库进行配置和管理。
用户功能可以允许对操作MySQL数据库的用户进行分级授权,当不同数据库用户对数据库有不同的操作权限时,可以应用该功能设置不同用户访问数据库的权限,用以保障数据库的安全。
新建数据库是在已连接成功的MySQL数据库系统中创建一个新的数据库。通过Navicat创建数据库非常简单,只需要输入数据库名称、数据库采用的字符集及排序规则即可。如图2所示。

图2 用Navicat新建数据库
表为数据库开发人员提供了强大的表管理功能,新建数据库后,可以应用表功能设计数据库表、查看表记录、导入或导出表、创建表SQL文件等。如图3所示,右侧窗口显示的为数据库hzkjdxcb拥有的表。

图3 Navicat表页面
视图功能提供了可视化的表操作,可以把几个表中的数据关联起来,对外呈现为一个表。例如,使用查询时,可能会需要多个表联合查询,如果这个查询是频繁操作的,可以通过视图功能创建多表联合查询视图,简化了查询操作。如图4所示。

图4 Navicat新建视图
查询功能为数据库开发人员提供了方便的SQL查询操作,用户通过查询编辑器可直接编辑查询SQL语句,也可以通过查询创建工具可视化创建查询SQL语句。图5所示为可视化查询工具界面,适用于不太懂SQL查询语言的人们使用。

图5 可视化查询工具
数据库备份的重要性不言而喻,Navicat提供了三种种数据库备份方式,第一种方式是直接用Navicat备份,还原备份文件时也需要用Navicat还原;第二种方式是以SQL方式或数据备份方式备份数据库,SQL方式的备份从理论上说可以还原到任何支持SQL语言的数据库系统,但由于数据库管理系统对SQL的支持有所不同,还原也仅限于不同版本的MySQL数据库管理系统;第三种方式是自动备份,在Navicat中建立批处理作业,用于定时备份数据库,如图6所示。

图6 建立批处理备份作业
函数用于创建存储过程和方法,也就是SQL编程。把经常执行的SQL语句封装起来,以命名方式存储到数据库中。当需要执行该封装的SQL语句时,通过名称就可以调用执行。图7给出了一个名称为select product存储过程的内容,执行该存储过程,就会执行里面的查询语句。

图7 创建存储过程
前面大体介绍了Navicat的主要功能,有很多功能可能比较陌生。不过,这没关系,随之数据库的深入学习,Navicat提供的功能会逐步熟悉和掌握。下面给出连接MySQL数据库的操作步骤,其它功能后面的课程会逐步使用。
利用Navicat管理MySQL数据库之前,需要先远程连接到MySQL数据库,连接步骤如下:
(1)用鼠标单击如图8所示的连接图标(红色线框区域),进入数据库连接对话框。

图8 单击连接图标进入数据库连接对话框
(2)进入图9所示的对话框,连接名称随便输入,主机名或IP地址输入MySQL所在服务器的名称或IP地址,这里是192.168.0.112,MySQL默认端口号是3306,端口号无需更改,用户名和密码为登录MySQL的用户名和密码。输入完成后,单击连接测试按钮,如果各项输入正确,会提示连接成功。

图9 新建连接对话框
2、 MySQL数据库常用命令
除了用第三方软件管理MySQL数据库外,MySQL本身也提供了管理数据库的操作命令,可以在CentOS终端直接使用MySQL命令,用于MySQL数据库的创建、表的管理、SQL查询等管理操作。
(1)登录MySQL数据库
用SSH客户端连接CentOS服务器,打开终端命令输入窗口,在终端输入窗口输入命令:
mysql -uroot –p
该命令用root账号以密码方式登录MySQL,回车后提示输入密码,输入MySQL的登录密码。登录成功后,终端窗口会进入MySQL命令方式。如图10所示。
注意:输入MySQL密码时,终端输入窗口不会回显输入的密码,光标也不会移动。

图10 登录MySQL数据库
(2)显示所有的数据库
登录MySQL成功后,如果需要查看MySQL已创建的数据库,可以在终端窗口输入命令:
show databases;
注意:MySQL命令的结束符为;
该命令显示MySQL所有已创建的数据库。从图11可以看出,执行该命令后,终端窗口显示了当前MySQL下有四个数据库,分别是information_schema\mysql\performance_schema\sys\,这四个数据库都是系统数据库。

图11 显示所有已创建的数据库
(3)创建数据库
我们安装使用MySQL,一般都要创建自己的数据库,为编写的应用系统提供数据库支撑。创建数据库的命令为:
create database <数据库名>
例如,在终端窗口输入命令:
create database mydatabase;
该命令用于创建新的数据库,命令中的mydatabase为新创建数据库的名称。执行该命令后,可以用show databases命令查看mydatabase数据库是否已存在。从图12可以看出,mydatabase数据库已创建成功。

图12 创建数据库
(4)删除数据库
删除数据库是一个谨慎操作,有可能造成重要数据的丢失。如果确实需要删除已经存在的数据库,删除数据库的命令为:
drop database <数据库名>
例如,在终端窗口输入命令:
drop database mydatabase;
该命令删除数据库名称为mydatabase的数据库,执行命令后,mydatabase数据库被删除。可以用show databases命令查看mydatabase数据库是否被删除。从图13可以看出,mydatabase数据库已被删除。

图13 删除数据库
(5)打开数据库
登录MySQL后,如果要对某一具体的数据库进行操作,例如查询、创建表等。需要先用use命令打开该数据库,数据库打开成功后,才能对该数据库进行后续操作。
在终端窗口输入如下命令:
create database mydatabase;
创建一个新的数据库,然后在终端窗口输入如下命令:
use mydatabase;
使用use命令打开mydatabase数据库,终端窗口输出“Database changed”,说明打开成功。如图14所示。

图14 打开mydatabase数据库
(6)创建数据库表
打开数据库后,可以使用创建数据表命令,在已打开的数据库中创建一个新表。创建一个新表的命令为:
create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
例如,建立一个名为student的学生表,表结构信息如下:
在终端窗口输入如下命令:
因命令字符比较长,用截图给出。其中语句Query OK, 0 rows affected (0.02 sec)为执行命令后,MySQL给出的反馈消息,具体意思是执行成功,0行被影响。如图15所示。

图15 创建一个新表
(7)查看数据库表结构
打开数据库后,可以查看指定表的结构。查看指定表结构的命令为:
desc <表名>;
例如,查看前面创建的student表结构,在终端窗口输入命令:
desc student;
使用desc命令打开student表,终端窗口显示student表结构。如图16所示。

图16 查看数据库表结构
(8)在表中插入记录
打开数据库后,可以使用插入记录命令在指定表中插入记录,插入记录命令为:
insert into <表名> [( <字段名1>[,..<字段名n > ])] values (值1 )[, (值n )];
例如,在student表中插入一条记录,其中字段id的值为,字段name的值为’joan’,字段sex的值为0,字段degree的值为89.2,在终端窗口输入命令:
insert into student values(1,' joan ',0, 89.2);
该命令将一条记录插入student表中,若记录插入成功,终端窗口输出“Query OK, 1 row affected (0.00 sec)”信息。若记录插入失败,则输出错误信息。如图17所示。

图17 在表中插入记录
(9)查询表中的记录
打开数据库后,可以查询指定表中记录,查询表所有记录的命令为:
select <字段1,字段2,...> from <表名> where <表达式>;
例如,查询student表中所有的记录,在终端窗口输入命令:
select id,name,sex,degree from student;
命令执行成功后,在终端窗口输出student表中的所有记录,如图18所示。

图18 查询表中记录
也可以查询限定的记录,输入如下命令,可以限定查询结果为第0条到第1条记录,也就是返回第一条记录:
select id,name,sex,degree from student limit 0,1;
执行命令后,只返回第一条记录,如图19所示。

图19 查询限定记录
(10)删除数据库表
当数据库表不再使用时,可以删除数据库表。删除数据库表的命令为:
drop table <表名>;
例如,删除student表,可以输入如下命令:
drop table student;
drop table命令用于删除一个或多个表,删除前您必须拥有每个表的DROP权限。执行该命令后,所有的表数据和表定义会被删除,因此本命令要谨慎使用。
(11)导出数据库文件
数据库备份和转移都要用到导出数据库命令,导出数据库命令将整个数据库文件转储为SQL文件,导出命令为:
mysqldump -u 用户名 –p 数据库名 > 导出的文件名;
例如,将mydatabase数据导出为mydatabase_out.sql文件,在终端窗口输入命令:
mysqldump –u root –p mydatabase > mydatabase_out.sql;
注意:该命令不能在MySQL内执行,要退出MySQL,在终端窗口命令行下执行。
执行命令后,mydatabase_out.sql文件被默认存储在根目录下,在终端窗口输入ls命令可以查看到输出的文件。如图20所示。

图20 导出数据库文件
本篇主要介绍了常用的MySQL命令,还有很多命令没有介绍到,同学们可以查阅相关资料了解更多MySQL命令。