码迷,mamicode.com
首页 > 其他好文 > 详细

数据表的列类型

时间:2016-04-05 22:58:08      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

列类型

文本类型

enum(枚举类型)

语法:

enum(值列表);

说明:

  • 值是使用逗号分隔多个值
  • 值列表中的值的个数最多是65535个
  • 作用是规范数据,节省空间。
  • 类比于form表单中的单选按钮

示例:

技术分享

示例:

技术分享

原理:

????技术分享

set集合类型

语法:

????set(值列表);

说明:

  • 值是使用逗号分隔多个值
  • 值列表中的值的个数最多是64个
  • 作用是规范数据,节省空间。
  • 类比于form表单中的多选按钮
  • 字段的数据型是一个字符串,相当于将值列表中的多个值拼接成一个字符串,值的顺序可以是任意

示例:

技术分享

原理:

????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????时间戳类型

说明:

  • 格式 ‘yyyy-mm-dd hh:ii:ss‘
  • 缺省值是0000-00-00 00:00:00
  • 只要对具有时间戳字段的表中进行更改,那么被更改的记录第1个时间戳字段会自动使用当前的时间进行填充。

示例:

技术分享

?

列属性

列类型与列属性区别:

列类型针对的是单独的一个个体,是对单独个体的一个限制。

列属性针对列的整体进行约束。列属性也就是约束(constraint)。

示例:

技术分享

primary key????主键

主键:就主要的键,主键是索引中的一种,索引就是唯一标识一条记录,提供用记数据查询,索引就是加快表的查询速度。一般会自定义一个与用户数据无关的字段作为主键字段。

?

创建主键

方法1:在创建表结构时,在需要定义主键的字段后使用primary key,来定义主键

示例:

技术分享

方法2:

????在创建表结构时,在所有的字段后,使用primary key(‘字段名‘)

示例:

技术分享

方法3:

????在表结构好后之后,通过修改表结构来添加主键字段

技术分享

查看表结构

技术分享

主键的特点:

1、主键一定要唯一

技术分享

2、主键字段的值不能为null

技术分享

3、主键字段如果没有使用auto_increment,那么缺省值是0,

技术分享

4、一个表中的主键字段只能有一个

主键的修改

主键不能修改,只能通过删除的方式,再重新添加主键

删除主键

语法:

????alter table 表名 drop primary key;

示例:

技术分享

复合主键

????就是由两个或多个字段共同组成主键字段

示例:

技术分享

说明:

????对于复合主键,只要当复合主键中所有的字段都相同时,才算是主键重复。

?

auto_increment????自增长

  • 自动根据表中的数据进行,新记录字段值的填充。
  • 对于自增长自段,只能是整型
  • 自增长字段,只能是一个索引字段(primary key 或者unique)
  • 主要与primary key配合使用

错误示例:

技术分享

示例:

技术分享

主键字段数据的插入:

技术分享

对于自增长字段,可以人为的更改自增长的数据规律

技术分享

(默认)新记录的自增加字段的值,是表中最大的自增长字段的值+1

技术分享

自增长的字段的值保存位置:

show create table 表名;

示例:

技术分享

自增长变量:

语法:

show variables like ‘auto_increment_%‘;

示例:

技术分享

auto_increment_increment????表示步长

auto_increment_offset????表示起始值

示例:

技术分享

技术分享

自增长的删除

通过修改字段类型的方式

alter table 表名 modify 字段名 字段类型;

示例:

技术分享

null

????在进行数据插入时,如果没有为具有约束的字段赋值时,那么MySQL默认会以null填充。

????在实际工作中,一般字段都不允许为null,

示例:

技术分享

default????

缺省值

当插入记录时,如果没有为某些字段赋值,那么可人为指定一个缺省值

示例:

技术分享

技术分享

unique

唯一键

????用于约束整个列中的数据不能重复。

唯一键的特点:

????不能重复,但可以是为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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!