什么是
MySQL?
我们在前一章中介绍了数据库和SQL
。正如所述,数据的所有存储、
检索、管理和处理实际上是由数据库软件——
DBMS
(
数据库管理系统
)
完成的。
MySQL
是一种
DBMS
,即它是一种数据库软件。
MySQL已经存在很久了,它在世界范围内得到了广泛的安装和使用。
为什么有那么多的公司和开发人员使用
MySQL
?
以下列出其原因。
成本——
MySQL
是开放源代码的,一般可以免费使用(甚至可以
免费修改)。
性能——
MySQL
执行很快(非常快)。
可信赖——某些非常重要和声望很高的公司、站点使用
MySQL
,
这些公司和站点都用
MySQL
来处理自己的重要数据。
简单——
MySQL
很容易安装和使用。
事实上,
MySQL
受到的唯一真正的批评是它并不总是支持其他
DBMS
提供的功能和特性。然而,这一点也正在逐步得到改善,
MySQL
的各个新版本正不断增加新特性、新功能。
2.1.1
客户机
—
服务器软件
DBMS可分为两类:一类为基于共享文件系统的
DBMS
,另一类为基
于客户机
—
服务器的
DBMS
。前者(包括诸如
Microsoft Access
和
FileMaker
)
用于桌面用途,通常不用于高端或更关键的应用。
MySQL
、
Oracle
以及
Microsoft SQL Server
等数据库是基于客户机
—
服
务器的数据库。客户机
—
服务器应用分为两个不同的部分。
服务器
部分是
负责所有数据访问和处理的一个软件。这个软件运行在称为
数据库服务
器
的计算机上。
与数据文件打交道的只有服务器软件。关于数据、数据添加、删除
和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行
客户机软件的计算机。
客户机
是与用户打交道的软件。例如,如果你请
求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给
服务器软件。服务器软件处理这个请求,根据需要过滤、丢弃和排序数
据;然后把结果送回到你的客户机软件。
有多少计算机? 客户机和服务器软件可能安装在两台计算
机或一台计算机上。不管它们在不在相同的计算机上,为进行
所有数据库交互,客户机软件都要与服务器软件进行通信。
所有这些活动对用户都是透明的。数据存储在别的地方,或者数据
库服务器为你完成这个处理这一事实是隐藏的。你不需要直接访问数据
文件。事实上,多数网络的建立使用户不具有对数据的访问权,甚至不
具有对存储数据的驱动器的访问权。
这样的意义何在?因为为了使用MySQL
,你需要访问运行
MySQL
服
务器软件的计算机和发布命令到
MySQL
的客户机软件的计算机。
服务器软件为
MySQL DBMS
。你可以在本地安装的副本上运行,
也可以连接到运行在你具有访问权的远程服务器上的一个副本。
客户机可以是
MySQL
提供的工具、脚本语言(如
Perl
)、
Web
应用
开发语言(如
ASP
、
ColdFusion
、
JSP
和
PHP
)、程序设计语言(如
C
、
C++
、
Java
)等。
2.1.2 MySQL
版本
客户机工具稍后介绍。我们先简要介绍
DBMS
版本。
MySQL的当前版本为版本8
(虽然许多公司正在使用
MySQL 4
和5
)。
下面是最近版本中引入的主要更改。
4
——
InnoDB
引擎,增加事务处理(第
26
章)、并(第
17
章)、改
进全文本搜索(第
18
章)等的支持。
4.1
——对函数库、子查询(第
14
章)、集成帮助等的重要增加。
5
——存储过程(第
23
章)、触发器(第
25
章)、游标(第
24
章)、
视图(第
22
章)等
版本4.1
和版本
5
对
MySQL
增加了重要的功能,本书中涵盖了这些功
能的大多数。
使用4.1
或更高版本
MySQL 4.1
对
MySQL
函数库引入了重要
更改,本书是为使用此版本或更高版本而撰写的。多数内容实
际上也适用于
MySQL 3
和
4
,不过许多例子在这两个版本中不
工作。
2.2 MySQL
工具
如前所述,MySQL
是一个客户机
—
服务器
DBMS
,因此,为了使用
MySQL
,需要有一个客户机,即你需要用来与
MySQL
打交道(给
MySQL
提供要执行的命令)的一个应用。
有许多客户机应用可供选择,但在学习MySQL
(确切地说,在编写
和测试
MySQL
脚本时),最好是使用专门用途的实用程序。特别是有
3
个
工具需要提及。
目前最新的稳定版本为5.1
2.2.1
mysql
命令行实用程序
每个
MySQL
安装都有一个名为
mysql
的简单命令行实用程序。这
个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的
东西。
MySQL选项和参数
如果仅输入
mysql
,可能会出现一个错误
消息。因为可能需要安全证书,或者是因为
MySQL
没有运行
在本地或默认端口上。
mysql
接受你可以(和可能需要)使用
的一组命令行参数。例如,为了指定用户登录名
ben
,应该使
用
mysql -u ben
。为了给出用户名、主机名、端口和口令,
应该使用
mysql -u ben -p -h myserver -P 9999
。
完整的命令行选项和参数列表可用mysql --help
获得。
当然,具体的版本和连接信息可能不同,但都可以使用这个实用程
序。请注意:
命令输入在
mysql>
之后;
命令用
;
或
\g
结束,换句话说,仅按
Enter
不执行命令;
输入
help
或
\h
获得帮助,也可以输入更多的文本获得特定命令的
帮助(如,输入
help select
获得使用
SELECT
语句的帮助);
输入
quit
或
exit
退出命令行实用程序。
mysql命令行实用程序是使用最多的实用程序之一,它对于快速测试
和执行脚本(如前一章和附录
B
中的样例表创建和填充脚本)非常有价
值。事实上,本书中使用的所有输出例子都是从
mysql
命令行输出中抓取
的。
熟悉mysql
命令行实用程序
即使你选择使用后面描述的某
个图形工具,也应该保证熟悉
mysql
命令行实用程序,因为它
是你可以安全地依靠的一个总是会被给出的客户机(因为它是
核心
MySQL
安装的一部分)。
2.2.2 MySQL Administrator
MySQL Administrator
(
MySQL
管理器)是一个图形交互客户机,用
来简化
MySQL
服务器的管理。
获得MySQL Administrator
MySQL Administrator
不作为核心
MySQL
的组成部分安装。必须从
http://dev.mysql.com/
downloads/
下载它(可得到用于
Linux
、
Mac OS X
和
Windows
的版本,其源代码也可以下载)。
MySQL Administrator提示输入服务器和登录信息(并且允许你保存
服务器定义供以后选择),然后显示允许选择不同视图的图标。其中:
Server Information
(服务器信息)显示客户机和被连接的服务器的
状态和版本信息;
Service Control
(服务控制)允许停止和启动
MySQL
以及指定服务
器特性;
User Administration
(用户管理)用来定义
MySQL
用户、登录和权
限;
Catalogs
(目录)列出可用的数据库并允许创建数据库和表。
快速访问其他工具
MySQL Administrator
工具菜单包含有启
动
mysql
命令行实用程序(前面描述)和
MySQL Query Browser
(
MySQL
查询浏览器)(下面描述)的选项。
MySQL Query Browser
也包含启动
mysql
命令行实用程序和
MySQL Administrator
的菜单选项。
2.2.3
MySQL Query Browser
MySQL Query Browser为一个图形交互客户机,用来编写和执行
MySQL
命令。
获得MySQL Query Browser
与
MySQL Administrator
一样,
MySQL Query Browser
不作为核心
MySQL
安装的成分。也必须
从
http://dev.mysql.com/downloads/
下载它(可得到用于
Linux
、
Mac OS X
和
Windows
的版本,其源代码也可以下载)
MySQL Query Browser要求输入服务器和登录信息(在
MySQL Query
Browser
和
MySQL Administrator
之间共享保存的定义),然后显示应用界
面。注意下面几点。
输入
MySQL
命令到屏幕顶上的窗口中。在输入语句后,单击
Execute
按钮把它提交给
MySQL
处理。
结果(如果有)显示在屏幕左边的大区域网格中。
多条语句和结果显示在它们自己的标签中,并且允许快速切换。
屏幕右边是一个标签,它列出所有可能的数据源(这里称为
大纲
),
展开任一数据源查看它的表,展开任一个表查看它的列。
你还可以选择表和列让
MySQL Query Browser
为你编写
MySQL
语
句。
Schemata
(大纲)标签的右边是一个
History
(历史)标签,它保
持
MySQL
语句的执行历史。在需要测试不同版本的
MySQL
语句
时,它非常有用。
关于
MySQL
语法、函数等的帮助可在屏幕右下角得到。
执行保存的脚本 可用
MySQL Query Browser
执行保存的脚
本(如用来创建和填充本书中使用的表的脚本)。为执行保存
的脚本,请选择
File
,
Open Script
,选择相应的脚本(它将显
示在一个新标签中),然后单击
Execute
按钮。
2.3
小结
本章介绍了什么是
MySQL
,并引入了几个客户机实用程序(一个命
令行实用程序,两个可选但强烈建议使用的图形实用程序)。