MySQL数据类型

来源:互联网 发布:乐高ev3机器人编程软件 编辑:程序博客网 时间:2024/05/23 02:00

数据类型:
数值型:
精确数值 int、decimal
近视数值 float、double、real
字符型:
定长 char(N)、binary
变长 varchar(N)、varbinary
text、blob

内置类型 ENUM,SET
日期时间型:
date、time、datetime、timestamp

域属性、域修饰符

数据类型意义:
1、可以存放什么类型的值
2、占用存储的空间是多少
3、是定长的还是不定长
4、如何比较排序
5、是否可以创建索引

数值数据类型:
typename meaning 长度 signed range(有符号范围) unsigned range 无符号范围
TINYINT 微整形 1B -128—127 0-255
SMALLINT 小整形 2B -32768-32767 0-65535
MEDIUMINT 中整形 3B -8388608-8388607 0-1677215
INT 整形 4B -2147483648-2147483647 0-4294967295
BIGINT 大整形 8B
DECIMAL 十进制
FLOAT 单精度 4B
DOUBLE 双精度 8B

字符数据类型
TypeName meaning maximum Length
CHAR 定长字符,不区分大小写 255
VARCHAR 变长字符,不区分大小写 65535 占用空间多1或2个字节(每一个字节需要一个结束符),
BINARY 定长字符,区分大小写
VARBINARY 变长字符,区分大小写
TINYBLOB 微大对象,区分大小写 255
BLOB 标准大对象,区分大小写 64KB +2B结束符
MEDIUMBLOB 中型大对象,区分大小写 16MB +3B结束符
LONGBLOB 大对象,区分大小写 4GB +4B结束符
TINYTEXT 微大对象,不区分大小写 255 多占用1个字节
TEXT 标准大对象,不区分大小写 65535 多占用2个字节
MEDIUMTEXT 中大对象,不区分大小写 16777215 多占用3个字节
LONGTEXT 大对象,不区分大小写 4294967295 多占用4个字节

ENUM 枚举(值的范围限定了) 最多可以存放65535个字符串
SET 集合(给定相应的字符任意组合,但是不能出现其他字符) 1-64字符串可以自己组合

日期时间型
Type Name Meaning rang
DATE 日期 YYYY-MM-DD 1000-01-01 to 9999-12-31
TIME 时间 hh:mm:ss -838:59:59 to 838:59:59
DATETIME 日期时间 YYYY-MM-DD hh:mm:ss 1000-01-01 00:00:00 to 9999-12-31 23:59:59
TIMESTAMP 时间戳 YYYY-MM-DD hh:mm:ss 1970-01-01 00:00:01 to 2038-01-19 03:14:07
(从元年开始到某一时刻所经过的描述)
YEAR(4/2) 年 YYYY或YY

字符型常用修饰符:
NOT NULL:不能为空
NULL:可以为空
DEFAULT:设置的默认值
CHARACTER SET:设置字符集
字段不指定字符集,继承表的字符集;表不指定字符集,继承数据库的字符集;数据库不指定字符集则采用mysql服务器
mysql>SHOW CHARACTER SET; //查看mysql所支持的字符集
COLLATION:设置字符的排序规则
mysql>SHOW COLLATION; //查看mysql所支持的字符集对应的排序规则

AUTO_INCREMENT字段:
1、该字段的数据类型必须为整型
2、不能为空
3、必须创建索引(主键/唯一)

利用LAST_INSERT_ID()函数可以查看上次生成的序列号。
CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20));

Datetime Data Types
Types Supported Range size
DATE ‘1000-01-01’ TO ‘999-12-31’ 3B
DATETIME ‘1000-01-01 00;00;01’To’9999-12-31 23:59:59’ 8B
TIMESTAMP ‘1970-01-01 00:00:00’To’2038-01-18 22:14:08’ 4B
TIME ‘-838:59:59’To’838:59:58’ 3B
YEAR(2) 00 to 99 1B
YEAR(4) 1901 to 2155 1B

mysql模型
ANSI QUOTES:双引号相当于反撇号,字符依然使用单引号
IGNORE_SPACE:忽略空格字符
STRICT_ALL_TABLES:没有设置,允许输入无效的值,输入后提示警告信息;设置后,不允许输入无效的值
STRICT_TRANS_TABLES:无效的值不允许输入到支持事务的表中

原创粉丝点击