//数据类型
 //字符串类型,常用的有
 char,varchar,text
 char(7),varchar(7) //7表示长度为7,char是固定长度7,而varchar是可变长度,根据实际长度存储,最大不超过7
 char //最大可存储1-255个字符,常用于固定长度的手机号,邮政编码等
 varchar //最大可存储1-255个字符,常用于姓名、地址等
 text //最大可存储64K字节字符,常用于大备注、简介等
 enum //最大可接受64K个串组成的一个预定义集合的某个串,常用于姓别、选项
 set //最大可接受64个串组成的一个预定义集合的零个或多个串
 longtext //最大长度为4GB
 mediumtext //最大长度为16K
 tinytexy //最大长度为255字节//数值类型
 tinyint //整数值支持-128到127(如果为unsigned,为0-255)的数
 int(或integer) //整数值,支持-2147483648到2147483647(如果为unsigned,为0-4294967295)的数
 float //单精度浮点数bit //位字段,1-64位。在MySQL1.5之前,BIT等价于tinyint
 bigtnt //整数值支持-9223372036854775808到923372036854775807(如果为unsigned,为0-18446744073709551615)的数
 boolean(或bool) //布尔标志,或都为0或者为1,主要用于开/关,(on/off)标志
 decimal(或dec) //精度可变的浮点数
 double //双精度浮点数
 mediumtnt //整数值支持-8388608到8388607(如果为unsigned,为0-16777215)的数
 real //4字节的浮点值
 smalltnt //整数值支持-32768到32767(如果为unsigned,为0-65535)的数decimal(5,2) //表示数值共5位,小数点2位
 tinyint 1字节(8位)0-255,-128-127
 int 4字节,-21亿-21亿,0-42亿
 floatmysql中没有专门存储货币的数据类型,一般情况下使用decimal(8,2)的数值类型
有符号或无符号
 (除了bit和boolean外)都可以有符号或无符号
 有符号数值类型可存储正数或负数
 无符号数值类型只能存储正数
 默认情况为有符号,但如果不需要储负值,可以使用unsigned关键字//日期和时间类型
 DATE //表示1000-01-01到9999-12-31的日期,格式为YYYY-MM-DD
 TIME //格式为HH:MM:SS
 DATETIME //data和time的组合
 TIMESTAMP //功能和datetime相同,但范围较小
 YEAR //用2位数表示,范围是70(1970)-69(2069)年,用4位数字表示,范围是1901-2155年
 datetime 8字节1000-01-01 00:00:00到9999-12-31 23:59:59//二进制数据类型
 二进制数据类型可存储任何数据(甚至包括二进制信息),如图像、多媒体、字处理文档等
 BLOB //BLOB最大长度为64KB
 MEDIUMBLOB //BLOB最大长度为16MB
 LONGBLOB //BLOB最大长度为4GB
 TINYBLOB //BLOB最大长度为255字节//表的字段约束
 unsigned 无符号(给数值类型使用,表示正数,只能存储正数,不写默认为正负数
 字段后加括号限制宽度
 char(5);varchar(7); //在字符后加限制表示该字符串的长度
 int(4); //没有意义,默认无符号的int为int(11);,有符号的为int(10)。
 int(4)unsigned zerofill //只有当给int类型设置有前导零时,设置int的完度才有意义。
 not null //不能为空,在操作数据库时如果输入该字段的数据为null,就会报错
 default //设置默认值
 primary key //主键不能为空,且唯一,一般和自动递增一起配合使用。
 auto_increment //定义列为自增属性,一般用于主键,数值会自动加1
 unique //唯一索引(数据不能重复:用户名)可以增加查询速度,但是会降低插入和更新速度//主键


1、表中每一行都应该有可以唯一标识自己的一列,用于记录,两条记录不能重复,任意两行都不具有相同的主键值
2、应该总是要定议主键,虽然并不总是需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便以后的数据操纵和管理
要求:
-记录一但插入到表中,主键最好不要再修改
-不允许NULL
-不在主键列中使用可能会更改的值
-(例如:如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)
-自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键
-可以使用多个列作为联合主键,但联合主键并不常用,使用多列作为主键时,所有列值组合必须是唯一的。