.MySQL数据类型
数值类型 语句 大小 范围(有符号) 范围(无符号)
微小整数 tinyint 1k -128~127 0~255
小整数 smallint 2k -32768~32767 0~65535
中整数 mediumint 3k -2(23)~2(23)-1 0~2(24)-1
大整数 int 4k -2(31)~2(31)-1 0~2(32)-1
极大整数 bigint 8k -2(63)~2(63)-1 0~2(64)-1
单数度浮点数 float 4k
双精度浮点数 double 8k
注:使用UNSIGNED修饰时,对应的字段只保存正数
数值不够指定宽度时,在左边填空格补位
宽度仅是显示宽度,存数值的大小由类型决定
使用关键字ZEROFILL时,填0代替空格补位
当字段值与类型不匹配时,字段值作为0处理
数值超出范围时,仅保存最大/最小值
1.数据类型的使用
float(n,m)
N 数字的总位数
M 小数位的位数
create table gz(gz float(7,2));
char(宽度) 定长 (默认宽度是1)
varchar(宽度) 变长 ( 必须指定宽度)
create table stuinfo3 (name varchar(10),
age tinyint unsigned,
gz float(7,2)
);
create table t14(id int);
create table t12(id int(3));
create table t12(id int(3) zerofill);
insert into t12 values(10000);
2.日期/时间类型
年 year 2014 YYYY
20xx 1~69
19xx 70~99
0000 0
日期 date 2014-11-20 YYYY-MM-DD
时间 time 18:30:00 HH:MM:SS
日期时间 datetime/timestamp 2014-12-30 14:50:00
YYYY-MM-DD HH:MM:SS
样例:
create table t15(
name char(10),
birthday date,
s_start year,
up_class time,
meetting datetime
);
insert into t15
values
("jim",20141120,1985,090000,20141005164000);
3:时间函数
(获取系统当前指定年月日)
now() year() month() day() time()
select now();
select year( now() );
insert into t15
values
("jim",now(),now(),now(),now());
datetime/timestamp
create table t16(
time1 datetime,
time2 timestamp //不给字段赋值时,使用系统时间给字段赋值。
);
insert into t16(time1) values (20151104103024);
4.枚举类型
(指字段的值只能在列举范围内选择)
enum("值1",值2,值N) 只能选择1个
set("值1",值2,值N) 可以选择一个到多个
样例:
create table t18(
name char(10),
sex enum( "boy","girl","no"),
likes set("book", "film","music","football","game")
);
insert into t18
values
("tom","boy","book,film,game");
insert into t18 values ("lucy",2,"music,film");
5.约束条件
允许为空: null (默认)
不允许为空:not null
设置默认值:default
样例:1
create table t19(
name char(10) not null,
sex enum( "boy","girl","no"));
样例2:
设置字段的默认值 dealut 值
create table t20(
name char(10) not null,
sex enum( "boy","girl","no") not null default "boy",
age tinyint unsigned not null defalut 23);