MySQL 数据类型

mysql数值类型
--数值类型 ,字符类型, 日期和时间类型
--数值类型:整数类型 , 浮点类型
--tinyint , smallint mediumint , int , bigint
--float(4字节)  ,double (8字节) ,  decimal  (十进制)
--bool 布尔类型
create table tabledata(
tint tinyint ,
sint smallint ,
mint mediumint ,
mormalint int ,
bint bigint ;
) ;
insert into tabledata values( 111,111,1111,111,111);
alter table tabledata add intsix int(6);
int(6)显示的是6位,多余的是截断
alter table tabledata add intsix2 int(6) zerofill ;
不存在的位,使用0来补齐
float(5, 2)数字能超过5位,小数点不能超过2位 
例如:
123.25--》 123.25
123.256 --》 123.26(四舍五入)
如果位数太多了,获取最大值,只能获取5位,2123.23 -->999.99 
2123.2 --> 999.99一共是5位,小数点后是两位

字符串类型:
--char(定长) varchar(变长) text(大块的,不区分大小写的) blob(大块的区分大小写的) tinytext longblob
--binary(定长区分大小写)
--varbinary(变长区分大小写了)
--复杂的 enum , set
create table table_string (
charstring  char(10)//长度不能超过10位
)
insert into table_string values('sdfsfsdfsfds');
截断了,并且不区分大小写
select * from table_string ;
alter table table_string change charstring charstring char(10) binary ;二进制 区分大小写的了
--枚举类型
alter table table_string add gender enum('M','N');
如果插入非法的,就是现实空的,只能存储M 或者N
--set类型 可以插入一个或者多个都可以的
alter table table_string add setcol set('M' , 'N' , 'C' , 'D');

日期类型和时间类型
--date , time , year , datetime , timestamp
yyyy-mm-dd ,hh:mm:ss , yyyy, yyyy-mm-dd hh:mm:ss
create table tabledate(
birthday date
)
insert into values()   2015-02-03 / 20150201两种形式都是可以的
alter table tabledate add datatimecol datatime ;
insert into values(20150201 ) 结果2015-02-01 00:00:00
alter table tabledate add datatimecol datatime(2) ; 精确到毫秒等
insert into values(20150201 ) 结果2015-02-01 00:00:00.00 多了点00
alter table tabledate add time1 timestamp ; 会插入默认时间, 当前时间
如果再次添加一个timestamp 则会插入 0000-00-00 00:00:00

 

 

 

 

 

 

 

 


 

你可能感兴趣的:(MySQL 数据类型)