作者:汤海京
第十二章 MySQL
简 介
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。
MySQL的官方发音是"My Ess Que Ell"(不是 MY-SEQUEL )。
第一节 MySQL的安装
1.1 所需资源
MySQL-3.22.32-1.i386.rpm
MySQL-client-3.22.32-1.i386.rpm
1.2 安装方法
第一步:rpm -ivh MySQL-3.22.32-1.i386.rpm
第二步:rpm -ivh MySQL-3.22.32-1.i386.rpm
第三步:执行mysql,启动MySQL monitor就可以使用mysql数据库了。
第二节 MySQL的使用
2.1 启动MySQL守护进程
/etc/rc.d/init.d/mysql start
2.2 关闭MySQL守护进程
/etc/rc.d/init.d/mysql stop
2.3 检查MySQL服务器是否已经运行
2.3.1 检查MySQL的属性
/usr/bin/mysqladmin variables
2.3.2 检查MySQL的版本信息
/usr/bin/mysqladmin version
2.3.3 检查MySQL的运行状态
/usr/bin/mysqladmin status
2.3.4 检查MySQL服务器此时正运行的线程信息
/usr/bin/mysqladmin processlist
2.4 连接和断开服务器
2.4.1 连接服务器
mysql -h host -u user -p
#要求输入口令
2.4.2 断开服务器
quit
#进入MySQL之后可以敲help来获取帮助信息
2.5 MySQL存取权限的控制
MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的加密算法与Unix系统不尽相同,其用户名可以长达16个字符。
先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to thj@localhost identified by 'thj' with grant option; 这样,无论用户thj从什么地方登陆到这台服务器都可以使用MySQL。
第三节 MySQL数据库的简单操作语句
3.1 对数据库的操作
MySQL的数据库实际上对应的是一个目录,它被系统存储在/var/lib/mysql 中。
3.1.1 创建数据库
命令:create database 数据库名;
3.1.2 删除数据库
命令:drop database 数据库名;
3.1.3 查询MySQL中都有什么数据库
命令:show databases;
3.1.4 更改当前使用的数据库
命令:use tbl_name
3.2 对数据表的操作
MySQL中的TABLE才是真正的数据库。
3.2.1 创建数据表
命令:create table tbl_name ( column_specs );
说明:tbl_name 数据表名 column_specs 表中列的说明
3.2.2查询指定的数据表的结构
命令:describe tbl_name;
3.2.3 查询数据库中都有什么数据表
命令:show tables;
3.3 对数据记录的操作
3.3.1 增加新记录
命令:insert into tbl_name (col_name1,col_name2,…) values(values1,values2,….)
说明:insert语句简单易用,但是它也有一个缺陷,就是每次只能插入一条记录。
3.3.2 批量装载数据
命令:load data local infile "filename.txt" into table tbl_name;
说明:MySQl的版本不得低于3.22.15,否则load data local不起作用。该语句实际上是调用了/usr/bin/mysqlimport。
3.3.3 检索信息
命令:select 要选择的东西 from 一个或多个表 where 数据必须满足的条件
注:在MySQL中,每键入一条命令之后,在命令行的结尾都要敲入";",标志是一条命令,或者敲回车之后再敲go,提示系统执行上边的命令;另外,在多数关于MySQL的参考书中,命令都为大写,实际上小写也可以;还有,use语句可以不加";",这是所有MySQL语言中唯一一个不需要加";"就可以执行的语句。