约束
对表中字段(值)进行一定的约束限制,以保证数据的完整性、一致性、有效性
约束的分类(2中基本约束)
一、 (NOT NULL):不允许该字段的值有NULL
用法:字段名 数据类型 NOT NULL
二、(DEFAULT):向表中插入记录,不给该字段赋值时,则使用默认值
用法:字段名 数据类型 DEFAULT 默认值
注意:非空约束和默认约束可以混合使用
如:(id不能为空,性别设置默认为s)CREATE TABLE list1( id int NOT NULL, name varchar(15), sex enum('m','f','s') DEFAULT 's' );
索引
对数据库中表的一列或多列的值进行排序的一种结构(排序使用的算反:Btree)
优点:加快数据检索速度
缺点:
· 占用物理的存储空间
· 当表中数据更新时,索引需要动态维护,占用系统资源,降低数据维护速度
索引分类:普通索引、唯一索引、外链索引、主链索引
· 普通索引(INDEX)
使用规则:
- 可设置多个字段(建议设置常用字段)
- 字段值无约束
- key标志:MUL
创建索引:
- 创建表时:
CREATE TABLE 表名(字段名 数据类型,... ...,INDEX(字段名),INDEX(字段名),....); 案例: CREATE TABLE list( id int, name varchar(20), score decimal(5,2), INDEX(id), INDEX(name) );
- 已有表时:
CREATE INDEX 索引名 ON 表名(字段名); 案例: CREATE INDEX number ON userlist(number);
建议:索引名和字段名保持一致
查看索引:
- 简单信息:
DESC 表名;(找key标志为MUL的字段)
- 详细信息
SHOW INDEX FROM 表名;(给出每个字段的详细信息) 参数字段: # Non_unique (0代表唯一索引,1代表普通索引) # Key_name(索引字段名) # Index_type(索引类型) # ...等
删除索引:
DROP INDEX 索引名 ON 表名;
注意:只能每次删除一个索引
· 唯一索引(UNIQUE)
使用规则:
- 可设置多个字段
- 约束:字段值不允许重复,但可为NULL
- key标志:UNI
创建索引:
- 创建表时:
CREATE TABLE 表名 (字段名 数据类型,... ...,UNIQUE(字段名),...);
- 已有表时:(受表中原有数据限制)(值必须具有唯一性,不重复,否则创建失败)
CREATE UNIQUE INDEX 索引名 ON 表名(字段名); /// 案例: /// 给表添加字段 ALTER TABLE userlist ADD number bigint; /// 给字段创建唯一索引 CREATE UNIQUE INDEX number on userlist(number);
查看索引:
删除索引:
· 主键索引
使用规则:
创建索引:
查看索引:
删除索引:
· 外键索引
使用规则:
创建索引:
查看索引:
删除索引: