1. 数据类型
MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
(1)数值类型:包括整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,
浮点小数类型:FLOAT和DOUBLE,
定点小数类型:DECIMAL。
(2)日期/时间类型:包括 YEAR、TIME、DATE、DATETIME和TIMESTAMP。
(3)字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。
1.1 整数类型
整数类型的字段可以添加AUTO_INCREMENT自增约束条件。
整数类型:
mysql> CREATE TABLEproduct->(-> id INT AUTO_INCREMENT PRIMARY KEY,-> product_name VARCHAR (100) NOT NULL
-> );
mysql> DESC product;
+————–+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————–+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| product_name | varchar(100) | NO | | NULL | |
+————–+————–+——+—–+———+—————-+
整数类型无符号:
mysql> CREATE TABLEproduct->(-> id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,-> product_name VARCHAR (100) NOT NULL
-> );
mysql> DESC product;
+————–+——————+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————–+——————+——+—–+———+—————-+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| product_name | varchar(100) | NO | | NULL | |
+————–+——————+——+—–+———+—————-+
1.2 浮点数类型和定点数类型
MySQL中使用浮点数和定点数来表示小数。
浮点类型包括:单精度浮点类型(FLOAT)和双精度浮点类型(DOUBLE)。
定点类型只有:DECIMAL。
浮点类型和定点类型都可以使用(M, N)来表示,其中M为精度,表示总位数;N为标度,表示小数的位数。
FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度,DECIMAL不指定精度默认为(10,0)。
1.3 日期与时间类型
MySQL中表示日期的数据类型:DATETIME、DATE、TIMESTAMP、TIME和YEAR。
CURRENT_DATE():返回当前日期
NOW():返回当前日期 + 时间
mysql> SELECT CURRENT_DATE(), NOW();
+—————-+———————+
| CURRENT_DATE() | NOW() |
+—————-+———————+
| 2017-11-01 | 2017-11-01 19:40:58 |
+—————-+———————+
1.4 字符串类型
(1)CHAR和VARCHAR类型
CHAR(m):固定长度字符串,m表示列长度,取值范围 0~255(28-1)。
VARCHAR(m):长度可变的字符串,m表示列长度,取值范围 0~65535(216-1)。
(2)ENUM类型
ENUM是一个字符串对象,其值为表创建时在列规定中枚举的一列值。
语法格式:
column