赞
踩
1. bit(m)
二进制位,m表示二进制的长度,其范围为1-64,默认值为1
2. tinyint(m)
小整数,其相对于int范围较小,可用来保存一些小范围的整数数值
分为有符号和无符号类型,范围如下
signed: -128 -- 127
unsigned: 0 -- 255
注意:tinyint是占一个字节的,其中的m并不表示m个字节或m个tinyint数据,而是表示数据在显示的时候显示的最小长长度。如果字符长度小于m时,会拿某个字符进行填充。例如如果为2的话,插入1时,显示为01,使用0字符进行填充。默认为1
3. int(m)
整型数值,分为有符号和无符号,范围如下
signed: -2147483648 -- 2147483647
unsigned: 0 -- 4294967295
注意:int类型在mysql中占4个字节,其中的m也不表示m个int,而是与tinyint一样,表示最短显示长度,默认为1.
4. bigint(m)
相对于int类型,可以表示更大的范围,分为有符号和无符号类型
signed: -9223372036854775808 -- 9223372036854775807
unsiigned: 0 -- 18446744073709551615
注意: bigint的m与int的用法一致
5. float(m ,d)
单精度浮点数,不能表示精准的小数值。m表示有效数字的总个数,d表示小数点后的个数
分为有符号和无符号类型,范围如下
signed: -3.402823466E+38 -- -1.175494351E-38, 0, 1.175494351E-28 -- 3.402823466E+38
unsigned: 0, 1.175494351E-38 -- 3.402823466E+38
注意: 当数值越大时,越不精准。
6. double(m, d)
双精度浮点数,不能表示精准的小数值。m表示有效数字的总个数,d表示小数点后的个数
分为有符号和无符号两种,范围如下
signed: -1.7976931348623157E+308 -- -2.2250738585072014E-308, 0, 2.2250738585072014E -- 1.7976931348623157E+308
unsigned: 0, 2.2250738585072014E-308 -- 1.7976931348623157E+308
注意: 当数值越大时,越不精准。
7. decilaml(m, d)
能够表示一个精准的小数值。m表示有效数字的总个数,不包括负号。d表示小数点后的个数。
m的范围:1 -- 65
d的范围: 0 -- 30
注意:msql要求d小于等于m。decimal能够存储精确值的原因是因为其内部使用字符串存储该数据
8. char(m)
表示固定长度的字符串,m表示字符串的长度。最大长度为255
注意:如果输入的字符串长度小于m,其大小也是m
9. varchar(m)
表示变长的字符串,m为设置的字符串最大长度,最大为255
注意:虽然varchar是变长的字符串,能够有效节省空间大小,但是char类型的数据处理速度相对来说比varchar更快
10. text
表示用于保存变长的字符串,其范围最多可以达到65535(2^16-1)
11. mediumtext
相对于text,可以保存更长的字符串,其范围可以达到16777215(2^24-1)
13. longtext
相对于mediumtext,能保存更长的字符串,范围可以达到4GB
14. enum
枚举类型,一般是用来作为限定值的取值范围。它是一种单选的类型,必须选定给定的几个值中的某一个,适合存储表中的单选值。
例如:
create table animals( e enum('fish', 'dog', 'cat') not null );insert into animals values('fish'), ('dog'), ('cat');
15. set
集合类型。它是一种多选的数据类型,可以选择给定的几个值中的某几个,适合存储表中的多选值。
例如:
create table person( id int auto_increament primary key, sex enum('man','woman'), hobby set('music','study','movie'));insert into person(id, sex, hobby) values(null, 'man', 'music');insert into person(id, sex, hobby) values(null, 'woman', 'study,movie');
16. time类型
用来存储时间数据。格式为 HH:MM:SS,在mysql中需要3个字节进行存储。
存储范围为: -838:59:59 -- 838:59:59
允许使用字符串或数字为time列赋值。
例如:
create table time( t time);insert into time values('10:55:40');insert into time values(123123);
17. date类型
用来存储日期。格式为yyyy-mm-dd,在mysql中占3个字节
存储范围: 1000-01-01 -- 9999-12-31
例如
create table date_test( d date );insert into date_test values('2019-11-25');insert into date_test values('2019-3-2');insert into date_test values('2019#3#2');insert into date_test values('2019:4:2');insert into date_test values('2019.5.2');
18. datetime类型
用来存储日期和时间。格式为"yyyy-mm-dd hh:mm:ss",在mysq中占8个字节
存储范围: 1000-01-01 00:00:00 -- 9999-12-31 23:59:59
create table datetime_test ( d datetime ); insert into datetime_test values('2019-11-25 11:16:40'); insert into datetime_test values(now());
19. timestamp类型
用来存储时间戳。格式为“yyyymmddhhmmss”,显示为"yyyy-mm-dd hh:mm:ss"。在msql中占4个字节
存储范围为: 1970-01-01 00:00:01 UTC -- 2038-01-19 03:14:07
注意:它存储的是由格林尼治时间1970年1月1日到当前时间的秒数,但是显示为"yyyy-mm-dd hh:mm:ss"。
create table timestamp_test( d timestamp );insert into timestamp_test values('2019-11-12 12:12:12');insert into timestamp_test values('2019/9/12 13:13:13');insert into timestamp_test values(null); //系统自动分配最近的时间,也就是当前时间
20.
用来存储年份数据。格式为“yyyy”,在mysql中占1个字节
存储范围为:1901 -- 2155
create table year_test( y year );insert into year_test values('1979');insert into year_test values('1900');//超出范围
结束
以上简单介绍了mysql中一些基本的数据类型,如有错误,敬请指正,谢谢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。