mysql之建表
建表其实就是声明列的过程,建表语句:create table 表名称 (列名称1 列类型 列属性 默认值,列名称2 列类型 列属性 默认值,index xx (xx))engine=储存引擎 charset=字符集;比如,create table stu (id int primary key auto_increment,name varchar(20) not null default ‘‘,age tinyint unsigned not null default 0,index id (id))engine=innodb charset=utf8;注意,primary key和auto_increment一张表只能有一列,且primary列的值不能重复,auto_increment此列必须加索引(index/key)。
数据类型
数值型 字节 无符号范围
tinyint 1Byte 0-255
smallint 2Byte 0-65535
mediumint 3Byte 0-16777215
int 4Byte 0-9223372036854775807
bigint 8Byte 0-18446744073709551615
整型列的可选参数,unsigned(无符号),zerofill(0填充,zerofill默认属性决定列为unsigned),M(显示宽度)。比如,create table t1 (id tinyint(5) zerofill);注意,M参数只有和zerofill一起使用才有意义。
浮点型
float (M,D) unsigned zerofill,float范围是-3.402823466E+38到-1.175494351E-38,0,1.175494351E-38到3.402823466E+38,M是精度总位数,D是小数点后的位数,如果M,D都不写,float(单精度)精确到大约7位小数,double(双精度)精确到大约15为小数,float/double会有精度损失,decimal(定点型)会更精确。
字符型
char,定长,char(10)可存空间是10个字符,每一行的实际占用空间都是10个字符的长度,不管写入的是1个还是2个或者8个。
varchar,变长,varchar(10)可存空间是10个字符,每一行的实际占用空间要看写入的字符,另加1-2个字节来储存字符结束的标志。
一般来说,20个字符以内的用char,20个字符以上的用varchar,速度上char快一点。
text最多能存65535个字符,用来储存大段文本。
blod储存2进制信息,用来存图片,音频等2进制信息,不会丢失信息。
enum枚举型,定义好,值就在某几个枚举范围内,比如,create table t1 (gender enum(‘男‘,‘女‘));注意,这时就只能插入男或女这2个值。
set和enum区别在于,enum只能插入枚举范围的一个值,set可以插入几个值。
日期时间型
year 年(1字节),范围1901-2155。
date 日期,范围1000-01-01到9999-12-31,注意date必须是字符型。
time时间,范围-838:59:59到838:59:59,注意time必须是字符型。
datetime日期时间,范围1000-01-01 0:00:00到9999-12-31 23:59:59,注意datetime必须是字符型。
timestamp时间戳,范围1970-01-01 0:00:00到现在的秒数,默认自动更新。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。