mysql基础:4、mysql支持的数据类型

来源:互联网 发布:mac命令行创建文件夹 编辑:程序博客网 时间:2024/05/16 04:23

1.数值类型

(1)整数类型

   TINYINT,1个字节,有符号 -128~127,无符号 0~255;

   SMALLINT,2个字节,有符号 -32768~32767,无符号 0~65535;

   MEDIUMINT,3个字节,有符号 -8388608~8388607,无符号 0~16777215;

   INT、INTEGER,4个字节,有符号 -2147483648~2147483647,无符号 0~4294967295;

   BIGINT,8个字节,有符号 -9223372036854775808~9223372036854775807,无符号 0~18446744073709551615;


(2)浮点数类型

   FLOAT,4个字节,最小值+(-)1.175494351E-38,最大值+(-)3.402823466E+38;

   DOUBLE,8个字节,最小值+(-)2.2250738585072014E-308,最大值+(-)1.7976931348623157E+308;


(3)定点数类型

   DEC(M,D)、DECIMAL(M,D),M+2个字节,最大取值范围与DOUBLE相同。


(4)位类型

   BIT(M),1~8字节,最小值BIT(1),最大值BIT(64)。


2.日期和时间类型

   DATE,4个字节,最小值 1000-01-01,最大值 9999-12-31;

   DATETIME,8个字节,最小值 1000-01-01 00:00:00,最大值 9999-12-31 23:59:59;

   TIMESTAMP,4个字节,最小值 197001011080001,最大值 2038年的某个时刻;

   TIME,3个字节,最小值 -838:59:59,最大值 838:59:59;

   YEAR,1个字节,最小值 1901,最大值 2155;

   注:

   a.若用来表示年月日,通常用DATE;

   b.若用来表示年月日时分秒,通常用DATETIME;

   c.若用来表示时分秒,通常用TIME;

   d.若用来表示年份,通常用YEAR,默认是4位格式;


3.字符类型

   CHAR(M),M字节,M为0~255之间的整数;

   VARCHAR(M),M为0~65535之间的整数,值的长度+1个字节,不允许非空字段最大长度只到65533,允许非空字段只到65532;

   TINYBLOB,允许长度0~255字节,值的长度+1个字节;

   BLOB,允许长度0~65535字节,值的长度+2个字节;

   MEDIUMBLOB,允许长度0~167772150字节,值的长度+3个字节;

   LONGTEXT,允许长度0~4294967295字节,值的长度+4个字节;

   VARBINARY(M),允许长度0~M个字节的变长字节字符串,值得长度+1个字节;

   BINARY(M),允许长度0~M个字节的定长字节字符串;


4.ENUM类型

   在创建表时通过枚举方式显示指定,对1~255个成员的枚举需要1个字节存储;对255~65535个成员,需要2个字节存储,最多允许有65535个成员。如创建性别表genderTbl,定义gender字段为枚举类型,成员为“M”和“F”,

   mysql>create table genderTbl(gender enum("M","F"));

   mysql>insert into genderTbl values('M'),('1').('F'),(NULL);


5.SET类型

   是一个字符串对象,可以包含0~64个成员。SET类型允许从值集合中选择任意多个元素进行组合。

   1~8个成员的集合,占1个字节;

   9~16个成员的集合,占2个字节;

   17~24个成员的集合,占3个字节;

   25~32个成员的集合,占4个字节;

   44~64个成员的集合,占8个字节;

   mysql>create table set_test (col set ('a','b','c','d',));

   mysql>insert into set_test values('a,b'),('a,d,a'),('a,c'),('b,c'),('c');



0 0