
3.1 数据库和表概述
首先要了解什么是数据库和表。虽然通过本书的前两章,读者对数据库有了一些了解,本章将补充介绍数据库和表的概念。
3.1.1 数据库概述
本书前两章已经介绍了数据库系统。而MySQL数据库有着一套字符集和字符校对规则,不同的字符集用于处理不同的数据。
一个数据库服务器可以有多个数据库,不同的是可以具有不同的字符集和校对规则。因此在创建数据库时,需要为数据库选择字符集和校对规则。
字符集是一套符号和编码,校对规则是在字符集内用于比较字符的一套规则。MySQL能够支持多种字符集,可以通过执行如下语句查看可用的字符集:
SHOW CHARACTER SET;
上述代码的执行效果如图3-1所示。

图3-1 当前可用的字符集
在图3-1中,Charset表示字符集,Description表示描述内容,Default collation表示默认的校对规则。任何一个给定的字符集至少有一个校对规则,它还可能有几个校对规则。可以使用以下语句查看校对规则,语句如下:
SHOW COLLATION [LIKE 'pattern'];
直接使用上述语句SHOW COLLATION时查看校对规则列表,如果想要查看latin1(西欧ISO-8859-1)字符集的校对规则,可以在SHOW COLLATION后添加LIKE查询。查看校对规则列表的效果如图3-2所示。

图3-2 校对规则列表
校对规则不同,它所代表的含义也有所不同。所有的校对规则都有一些共同的特征,如下所示。
(1)两个不同的字符集不能有相同的校对规则。
(2)每个字符集有一个默认校对规则。
存在校对规则命名约定,它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
3.1.2 表概述
表是数据库最基本的组成对象,是数据库的实体,用来组织和存储数据。生活中人们接触到的有各种表,如面试时填写的基本信息表,在考勤时候有考勤表,在发工资时有工资表等。
数据库中的表与生活中的表是一样的,有着表头和数据。不过数据库中的表,表头被定义为字段,是表的列;每一行存储一条记录。如学生信息表如表3-1所示。
表3-1 学生信息表

如表3-1所示,这是生活中常见的表,有着表头和数据。而将其定义为数据库中的表,那么表头的姓名、性别、年龄和籍贯将用作表的列(字段);两个学生的信息是表的行,该表中有两条数据。
列也叫作表的字段,每个字段都有着指定的数据类型。在对数据进行操作时,数据库系统将根据字段的数据类型对数据进行操作。数据类型在本书的第2章中已介绍过。
MySQL数据库在安装后有着系统自带的表,如查询系统数据库sakila中actor表的数据,其效果如图3-3所示。

图3-3 sakila数据库中的actor表