数据类型
数据类型(列类型):对数据进行统一的分类,从系统的角度出发,为了能够使用统一的方式进行管理,更好地利用有限的空间
SQL中将数据类型分成三类
数值类型
字符串类型
时间日期类型
整数型:存放整型数据
tinyint:迷你整型,使用1个字节存储,表示的状态最多为256种
smallint:小整型,使用2个字节存储,表示的状态最多为65536种
mediumint:中整型,使用3个字节存储
int:标准整型,使用4个字节存储
bigint:大整型,使用8个字节存储
指定显示宽度为1
alter table 表名 add 列名 tinyint(1) unsigned;
显示宽度为2,0填充
alter table 表名 add 列名 tinyint(2) zerofill;
小数型
小数型:带有小数点或者范围超出整型的数值类型
浮点型:小数点浮动,精度有限,而且会丢失精度
定点型:小数点固定,精度固定,不会丢失精度
查看警告
show warnings;
时间日期类型
datetime:时间日期,格式是YYYY-mm-ddHH:ii:ss,表示的范围是从1000到9999年,有0值(0000-00-00 00:00:00)
date:日期,就是datetime中的date部分
time:时间(段),指定的某个区间之间,比如-时间到+时间,或者过去的某个时间到将来的某个时间
timestamp:时间戳,但并不是时间戳,只是从1970年开始的,YYYY-mm-ddHH:ii:ss格式与datetime完全一致
year:年份,有两种形式:year(2)和year(4)
timestamp: 修改记录
update 表名 set 字段名 = 列名 where 字段名 = 列名
字符串类型
字符串类型分为:char、varchar、text、blob、enum、set
char(定长字符串):磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度
char(L):L代表Length,可以存储的长度,单位为字符,最大长度值可以为255
varchar(变长字符串):在分配空间的时候,按照最大的空间分配,但是实际上最终用了多少,是根据具体的数据来确定
varchar(L):L表示字符长度,理论长度是65536个字符,但是会多出1到2个字节,来确定存储的实际长度
文本字符串:如果数据量非常大,通常超过255个字符就会使用文本字符串
文本字符串根据存储的数据的格式分为:
text:存储文字、存储二进制数据的文件路径
blob:存储二进制数据(通常不用)
枚举字符串(enum):事先把所有可能出现的结果都设计好,实际上存储的数据必须是规定好的数据中的一个
节省空间
枚举的使用方式:
enum(可能出现的元素列表);
例如:enum('男','女','不男不女','妖怪','保密');
使用:存储数据,只能存储上面定义好的数据
例:
create table student ( sex enum ('男' , '女' , '保密' ) ) ;