- 常见的数据类型
-
数值型:
1. 整型:tinyint 1,smallint 2,mediumint 3,int/integer 4,bigint 8 特点:设置有无符号关键字unsigned,默认无符号; 如果插入值超过限制,则显示临界值; 如果不设置长度,会有默认长度,这里的长度表示字段值的宽度,当输入长度不够时,在有zorefill关键字的情况下,自动在值前补充0,但此时默认都是无符号数;) 2. 小数: 定点数:float(M,D) 4,double(M,D) 8 浮点数: dec(M,D),decimal(M,D) (特点:M代表整数部位和小数部位的长度,D为小数部分长度; M和D可以省略,此时decimal 默认M为10,D为0,float和double随意; 定点数的精度较高;)
-
字符型:
1. 较短的文本:char,varchar (特点:char/varchar(M),M表示字符值最大的字符数; char表示固定长度字符,varchar为可变长度长度; varchar更省内存,char效率更高; char(M),M可以省略默认为1,varchar不能省略; 可以设置枚举类型enum以及set类型,enum只可以从列表中选择一个值插入,set则可以选择多个) 2. 较长的文本: text,blob(较长的二进制数据)
-
日期型:
date, xxxx-xx-xx 4
time, xx-xx-xx 3
year, xxxx 1
datetime, xxxx-xx-xx xx-xx-xx 8 (范围大1000-9999)
timestamp, xxxx|xx|xx|xx|xx|xx 4(范围小1970-2038,与实际时区相关,常使用)## 1. CREATE TABLE tab_int( t1 INT, t2 INT UNSIGNED ); INSERT INTO tab_int VALUES(-123,123); SELECT * FROM tab_int ## 2. CREATE TABLE tab_float( f1 FLOAT, f2 DOUBLE, f3 DECIMAL ) ALTER TABLE tab_float MODIFY COLUMN f1 FLOAT(5,2); DESC tab_float ## 3. DROP TABLE tab_char; CREATE TABLE tab_enum( c1 ENUM('a','b','c') ); SELECT * FROM tab_enum; INSERT INTO tab_enum VALUES('a') INSERT INTO tab_enum VALUES('d')#报错 CREATE TABLE tab_set( c1 SET('a','b','c') ); SELECT * FROM tab_set; INSERT INTO tab_set VALUES('a') INSERT INTO tab_set VALUES('a,c') ## 4. CREATE TABLE tab_date( t1 DATETIME, t2 TIMESTAMP ) INSERT INTO tab_date VALUES(NOW(),NOW()); SELECT * FROM tab_date;