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到现在的秒数,默认自动更新。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。