( 5 )MySQL中的列属性

MySQL中的列属性

列属性
列属性:真正约束字段的是数据类型,但是数据类型的越是很单一,需要一些额外的属性来约束数据的合法性
列属性包括哪些?
NULL , NOTNULL , default , Primary key , auto_increment , comment
 
列描述
列描述:comment 没有实际意义,是专门用来描述字段会根据表创建语句保存,用来给数据库管理员了解.
 
默认值
默认值 : 某一种数据经常性出现某个具体的值,可以一开始就定义好,在需要真实数据的时候,用户可以选择性的使用默认值.
默认值关键字: default
如何使用默认值 :
在插入数据的时候,不给该字段赋值,想使用默认值可以不一定要去指定列表,故意不适用字段列表:可以使用default关键字来代替值.
intsert into my_table values ('老衲',18,default);

主键
主键 : primary key 主要的键,一张表中只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复 ,
一张表中只能有一个主键,主键不能为空.
增加主键:
1,在创建表的时候,直接在字段之后添加primary key.
2,在创建表的时候,在所有字段之后,使primary key (主键字段列表)来创建主键(如果多个字段做为主键,可以使用复合主键)
3,当表已将创建之后,再次额外追加主键,可以修改字段属性,也可以直接追加
alter table 表名 modify 字段列表 primary key ;
alter table 表名 add primary key(字段列表);
主键前提: 表中字段对应的数据本身是独立的(不重复)
 
主键约束:
主键对应得字段中的数据不允许重复,一旦重复,数据操作失败
更新主键 & 删除主键
不能更新主键,只能在删除后才能添加主键
删除主键
alter table 表名 drop primary key ;
主键分类
业务主键 : 在主键创建过程中,很少使用真实业务数据作为主键字段
逻辑主键 : 没有业务含义,无论是什么值都没有关系 (id)

 
自动增长
自动增长 auto_increment :当对应的字段,不给值,或者默认为NULL的时候,会自动的被系统出发,系统会从当前字段中已有的最大值进行+1操作,得到一个新的不同的字段. 自增长通常是作为主键的.
特点:auto_increment
1,任何一个字段要做自增长前提是本身必须是一个索引(key一栏的值)
2,自增长字段必须是数字必须是整型
3,一张表只能有一个自增长字段
自增长为什么是从1开始?为什么每次都增长1?
所有系统的变量(如字符集,校对集)都是有系统变量控制的
查看自增长对应的变量: show variables like 'auto_increment%';
auto _increment_offset 起始值
auto _increment_increment 步长
修改变量实现不同的效果:修改是对整个数据库修改,而不是单张表(一般没有必要修改)
修改自增长步长: set auto _increment_set = 5;
删除自增长
alter table 表名 drop id int ;
注意在删除的时候,不要加主键 primary key
 
唯一键
一张表中很多字段需要具有唯一性,数据不能重复,但是一张表中只能有一个主键.
唯一键(unique key) 就可以解决表中多个字段需要唯一性约束的问题
本质:
唯一键默认允许为空,切可以多个为空(因为空字段不参与唯一性比较)
增加唯一键:
1.创建表的时候,可以在字段后面直接添加unique key 标示
2.在所有的字段之后增加unique key (字段列表),同样支持复合唯一键
3.在创建表之后增加唯一键
alter table 表名 add unique key (字段名);
唯一键约束:
可以为空,可以多个为空.如果唯一键NOT NULL那就和主键约束完全一致
更新唯一键 & 删除唯一键
删除:alter table 表名 drop index 索引名字;
--唯一键默认时候字段名作为索引名.(删除的是唯一键约束而不是字段)
 
索引
几乎所有的索引都建立在字段之上.
索引:
系统根据某种算法.将已有的数据(未来可能新增的数据),单独创建一个文件,
文件能够实现快速匹配数据,并且能够快速找到对应表中的记录.
索引的意义:
1.提升查询的效率
2.约束数据的有效性(唯一性等)
增加索引的前提条件:
1.文件本身会产生索引文件(有时候索引文件会表数据文件大)占用空间
2.如果某个字段需要作为查询的条件经常使用,那么可以使用索引
3.如果某个字段需要进行数据有效性的约束,也可能使用索引

Mysql中提供了多种索引
1.主键索引 : primary key
2.唯一索引 : unique key
3.全文索引 : fulltext index
4.普通索引 : index
全文索引:
针对文章内部的关键字进行索引
 
例 : 
1.添加PRIMARY KEY(主键索引) 
    mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
2.添加UNIQUE(唯一索引) 
    mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column`) 
3.添加INDEX(普通索引) 
    mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
4.添加FULLTEXT(全文索引) 
    mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
5.添加多列索引 
    mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
 
 

 
 
 
 
 
 
posted @ 2017-10-25 22:09  -老衲-  阅读(813)  评论(0编辑  收藏  举报