MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 特性如下:
1)使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性
2)支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3)为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,)NET和 Tcl 等
4)支持多线程,充分利用 CPU 资源
5)优化的 SQL查询算法,有效地提高查询速度
6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中
7)提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名
8)提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径
9)提供用于管理、检查、优化数据库操作的管理工具
10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库
11)支持多种存储引擎
12)MySQL 是开源的,所以你不需要支付额外的费用
13)MySQL 使用标准的 SQL数据语言形式
14)MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言
15)MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统
16)在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性
17)复制全局事务标识,可支持自我修复式集群
18)复制无崩溃从机,可提高可用性
19)复制多线程从机,可提高性能
串数据类型,具体如下:
CHAR 1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1) VARCHAR 可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串 TINYTEXT 同TEXT,最大长度为255字节 MEDUIMTEXT 同TEXT,最大长度为16K TEXT 最大长度为64K的变长文本 LONGTEXT 同Text,最大长度为4GB(纯文本,一般不会到4G) ENUM 接受最多64K个串组成的预定义集合的某个串 SET 接受最多64K个串组成的预定义集合的零个或多个串
辨別Null与Not Null :Null为允许储存空值(Null)
数值数据类型,具体如下:
TINYINT 1字节,范围(-128~127) SMALLINT 2字节,范围(-32768~32767) MEDIUMINT 3字节,范围(-8388608~8388607) INT 4字节,范围(-2147483648~2147483647) BIGINT 8字节,范围(+-9)22*10的18次方) FLOAT(m, d) 4字节,单精度浮点型,m总个数,d小数位 DOUBLE(m, d) 8字节,双精度浮点型,m总个数,d小数位 DECIMAL(m, d) decimal是存储为字符串的浮点数
日期和时间数据类型,具体如下:
Date 日期(yyyy-mm-dd) Time 时间(hh:mm:ss) DateTime 日期与时间組合(yyyy-mm-dd hh:mm:ss) TimeStamp yyyymmddhhmmss Year 年份yyyy
数据类型使用场景如下:
1)整型:根据要显示的最大值决定;
2)浮点型:要显示小数。如果要精确到小数点后10位,就选择DOUBLE,而不应该选择FLOAT。DECIMAL精度较高,浮点数会出现误差,如果精度较高,则应选择定点数DECIMAL;
3)字符串型:定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快,如果长度变化不大,如身份证号码那种,最好选择CHAR类型。而对于评论字符串,最好选择VARCHAR;
4)时间:根据需要显示的类型咯,特别是TIMESTAMP,如果需要显示的时间与时区对应,就应该选择TIMESTAMP;
5)ENUM类型和SET类型:长度不同,ENUM类型最多可以由65535个成员,而SET类型最多只能包含64个成员。且ENUM只能单选,而SET类型可以多选;
6)TEXT类型和BLOB类型:TEXT只能存储字符数据,而BLOB可以存储二进制数据。如果是纯文本,适合TEXT。如果是图片等适合存二进制。