标签:
文本类型
语法:
enum(值列表);
说明:
示例:
示例:
原理:
????
语法:
????set(值列表);
说明:
示例:
原理:
????MySQL会将集合类型组织一个二进制数,集合中的每一个值,按顺序被组织二进制中的一位
图解:
插入数据:值是red、silver、pink组合
????
date????????日期型????????格式 ‘yyyy-mm-dd‘
time????????时间型????????格式 ‘hh:ii:ss‘
datetime????日期时间型????????格式 ‘yyyy-mm-dd hh:ii:ss‘
year(m)????????年
????m取的是4或2,
????4表示4位的年份,取值????0000至2155
????2表示2位的年份,取值70以上表示19xx,如果是69表示20xx
示例1:
示例2:
timestamp????时间戳类型
说明:
示例:
?
列类型与列属性区别:
列类型针对的是单独的一个个体,是对单独个体的一个限制。
列属性针对列的整体进行约束。列属性也就是约束(constraint)。
示例:
主键:就主要的键,主键是索引中的一种,索引就是唯一标识一条记录,提供用记数据查询,索引就是加快表的查询速度。一般会自定义一个与用户数据无关的字段作为主键字段。
?
方法1:在创建表结构时,在需要定义主键的字段后使用primary key,来定义主键
示例:
方法2:
????在创建表结构时,在所有的字段后,使用primary key(‘字段名‘)
示例:
方法3:
????在表结构好后之后,通过修改表结构来添加主键字段
查看表结构
1、主键一定要唯一
2、主键字段的值不能为null
3、主键字段如果没有使用auto_increment,那么缺省值是0,
4、一个表中的主键字段只能有一个
主键不能修改,只能通过删除的方式,再重新添加主键
语法:
????alter table 表名 drop primary key;
示例:
????就是由两个或多个字段共同组成主键字段
示例:
说明:
????对于复合主键,只要当复合主键中所有的字段都相同时,才算是主键重复。
?
错误示例:
示例:
主键字段数据的插入:
对于自增长字段,可以人为的更改自增长的数据规律
(默认)新记录的自增加字段的值,是表中最大的自增长字段的值+1
自增长的字段的值保存位置:
show create table 表名;
示例:
语法:
show variables like ‘auto_increment_%‘;
示例:
auto_increment_increment????表示步长
auto_increment_offset????表示起始值
示例:
通过修改字段类型的方式
alter table 表名 modify 字段名 字段类型;
示例:
空
????在进行数据插入时,如果没有为具有约束的字段赋值时,那么MySQL默认会以null填充。
????在实际工作中,一般字段都不允许为null,
示例:
缺省值
当插入记录时,如果没有为某些字段赋值,那么可人为指定一个缺省值
示例:
唯一键
????用于约束整个列中的数据不能重复。
唯一键的特点:
????不能重复,但可以是为null(原因null不等于null)
示例1:
示例2:
查看
????由于唯一键就是一个普通索引(index)
语法:
????alter table 表名 drop index 约束名;
示例:
查看约束名:
show create table 表名;
????如果一个表中没有主键(primary key)字段,那么MySQL会将第一个具有not null&&unique约束的字段设置为主键字段。
标签:
原文地址:http://www.cnblogs.com/nyxd/p/5357026.html