Mysql的数据类型

来源:互联网 发布:最好的网络金融投资 编辑:程序博客网 时间:2024/04/29 04:48
一:整型数据tinyint:1 bytesmallint 2 bytemediumint: 3 byteint: 4 bytebig: 8 byte这里详解tinyint,其他几种和它的用法类似。tinyint 无符号表示范围:0-255,有符号表示范围:-128-1271、 三个修饰的可选属性:tinyint(M) unsigned zerofill(M):宽度(在0填充时才有意义)unsigned:无符号(要是不写,默认是有符号的)eg:age tinyint unsignedzerofill:0填充(默认无符号)2、当不填充数据时,推荐使用设置默认值。因为不设置时,没数据时会默认null,但null不好   比较(比较null的语句为select x is null。返回值1表示是)。eg:not null default 03、添加一个新列// 添加age列到表msg中,列是tinyint型,5位0填充,默认值为0eg: alter table msg add age tinyint(5) zerofill not null default 0;二:小数型数据float(M, D) 浮点型小数decimal(M, D) 定点型小数M:表示小数的总位数,不包括小数点D:小数的位数eg:float(6, 2) 表示数的范围为:-9999.99 —— +9999.99   float(6, 2) unsigned 表示范围为: 0.00 —— +9999.99(与整型的无符号表示有点区别)float和deciaml的区别在于,后者表示的数据更精确。eg: alter table msg add age float(6, 2) zerofill not null default 0.0;这里要注意一下,0填充为:000.00 加小数点一共6位。三:字符型数据char 定长字符串char(M) 0<= M <=255varchar 变长字符串varchar(M)0<= M <=65535text  文本串text 存2万到6万个字符char与varchar的区别:1、存储范围不同上面的M代表存放字符的个数,如char(8)表示可以存放8个字符(注意:'a','王',前者占一个字节,后者占两个字节,但都只算一个字符)。varchar与char有点区别,它最多存放65535个字节的数据,由于一个utf8数据占3个字节,因此存放utf8的字符大约是两万个,这就是text为什么存放数据为2万到6万。2、空间利用率不同char是定长的:申请M个空间,实存N个空间,当N<M时还是占用M个空间varchar是变长的:申请M个空间,实存N个空间,当N<M时占用N+2byte个空间(2byte用来表示实际存储长度)3、对末尾空格的处理不同我们知道,char当实际存储空间小于申请空间时,剩下的空间用空格填充。因此当数据的末尾是空格时,char型存储会把空格当填充数据处理因此会导致数据的丢失。varchar就不会出现这种情况。4、定长的char型虽然有时候浪费空间,存储、读取速度快。text是文本类型,可以存比较大的文本段,但收索速度较慢,如果文本不是特别长建议用char或者varchar代替还有就是text不用加默认值,加了也没用。四:时间类型:1、year类型:典型格式:1994表示范围:1901——2155 注意:0000表示错误的选择当输入两位数时:00——69表示:2000年到2069年70——99表示:1970年到1999年2、date类型:典型格式:1949-10-01表示范围:1000-01-01——9999-12-313、time类型:典型格式:12:12:12表示范围:-838:59:59——+838:59:594、datetime类型:典型格式:1949-10-01 12:12:12表示范围:1000-01-01 00:00:00 —— 9999-12-31 23:59:59时间戳:表示1970-01-01 00:00:00 到当前时刻的秒数。datetime类型表示时间虽然便于我们观察,但不便于计算机的运算,因此一般存储注册时间、商品发布时间等使用int来记录时间戳,这样既便于计算机运算,又便于转换成易于观察的格式。小知识点:1、在一条语句前面加入#号表示,该行为注释。eg: #时间类型:2、关于enum枚举类型。它是字符类型中的一种,但不太符合数据库的设计原则eg:// 插入时数据要么为'男', 要么为'女'create table gender(gender enum('男', '女'));// 正确(注意插入时不加列选项,表示插入所有列)insert into gendervalues('男');// 错误insert into gendervalues('王');
0 0
原创粉丝点击