MySQL 入门 之 数据类型

数据类型主要有三种,数据型变量(int 和 float),字符型变量(char,varchar,blob,text,enum,set),日期和时间变量(date,time,year,datetime,timestamp)。

各数据类型的用法与区别详见下列代码:

-- 整数类型
-- tinyint,smallint,mediumint,int,bigint


create table type_fir_tb(
tint tinyint, -- 1 Byte
sint smallint, -- 2 Byte
mint mediumint, -- 3 Byte
nint int, -- 4 Byte
bint bigint, -- 8 Byte
zint int(6),
zint6 int(6) zerofill);


insert into type_fir_tb values(123456789,123456789,123456789,123456789,123456789,123,123);


select * from type_fir_tb;
-- 可以发现 除了 int 和 bigint 之外 都被截断了
-- int(6) 表示显示位数
-- int(6) fillzero 表示显示为数与补零


drop table type_fir_tb;






-- 浮点数类型
-- float 4 byte
-- double 8 byte
-- float(5,2) 表示 整个数字不超过5位,小数位不超过2位


create table type_sec_tb(
id int(1),
profit float(5,2),
profit4 float(4,2),
profit1 float(5,1)
);


insert into type_sec_tb values(1256,123.45,123.45,123.45);


select * from type_sec_tb;
-- 可以发现 int(1) 不够存储设定的量 则可突破原有设定,这与 tinyint 不同
-- 但是,float 出现不够存储的时候直接就缩减了存储数据的额度
-- 出现溢出,则直接补齐为 数据限制下 最大的数据


drop table type_sec_tb;






-- 字符类型
-- char,varchar,text,blob
-- tiny,long,medium 可以用来修饰 text,blob 之类的变量
-- varbinary 可变长度的区分大小写的字符串
-- text,blob 是用来存储大规模的字符数据的,超出范围同样会被截断
-- text 不区分大小写,可以存储各式各样字符
-- blob 区分大小写,只能存储二进制字符
-- enum 表示 枚举类型,只能选择 列出的变量 对象该列属性为空
-- set 表示可以插入多个枚举类型,枚举一次只能用一个,set可以用多个
-- 多个之中存在符合与不符合情况,因此,只添加符合条件的。


create table type_tri_tb(
strname char(10),
strcont char(15) binary,
strcity varbinary(15),
strsex enum('b','g'),
strcdsex set('b','g','bg','bb','gg')
);


insert into type_tri_tb values('hello world lan !',
'hello world lan !',
'hello world lan !',
'b',
'b,g');


insert into type_tri_tb values('hello world lan !',
'hello world lan !',
'hello world lan !',
'b',
'b,gb');
select * from type_tri_tb;


select * from type_tri_tb where strname = 'Hello Worl'
select * from type_tri_tb where strname = 'Hello World Lan !'
-- 实际检测的是截断之后的结果


select * from type_tri_tb where strcont = 'hello world lan'
select * from type_tri_tb where strcont = 'Hello World Lan'
-- 添加关键字 binary 之后是 所定义的字符串 是区分大小写的


select * from type_tri_tb where strcity = 'hello world lan'
select * from type_tri_tb where strcity = 'Hello World Lan'
-- 添加关键字 binary 之后是 所定义的字符串 是区分大小写的


drop table type_tri_tb;






-- 日期时间类型
-- data time year datatime timestamp
-- data 格式 yyyy-mm-dd 范围是 1000-01-01 ~ 9999-12-31
-- 可以 用字符串也可以用整数表示
-- time 格式 hh:mm:ss 
-- year 范围 1901 ~ 2550
-- datatime 是从年到秒的时间表示 范围也是 1000-01-01 到 9999-12-31
-- datetime(2) 表示精确到秒之后的小数位
-- timestamp 是从年到秒的时间表示 1970 ~ 2037
-- timestamp 第一次默认插入当前时间,第二次则为全零


create table type_for_tb(
birth date,
btime datetime,
stime datetime(2),
stamp1 timestamp,
stamp2 timestamp
);


insert into type_for_tb values
('1990-09-29',19901231,20161111111111,10101010101010,20020202020202);


select * from type_for_tb;


drop table type_for_tb;


你可能感兴趣的:(int,float,char,Data,time)