表的约束(5种)
- 检查性约束,如:教室中所有人的性别;工作后薪水满足的条件。
- 非空约束,例如:人的名字,不允许为空。
- 唯一性约束,例如:电子邮件地址,不可以重复。
- 主键约束——通过这个列的值可以唯一的确认一行记录,主键约束隐含Not null + Unique
- 外键约束——一个表想引用另一个表的某一个字段,这种引用关系就是外键
表的约束
约束条件 | 说明 |
PRIMARY KEY | 主键约束,用于唯一标志对应的记录 |
FOREIGN KEY | 外键约束(用于声明表和表之间的关系) |
NOT NULL | 非空约束 |
UNIQUE | 唯一约束 |
DEFAULT | 默认值约束,用于设置字段默认值 |
主键约束
1、单字段主键——在创建表的对应字段后面加上 primary key即可
2、多字段主键——创建表时将主键用PRIMARY KEY括起来即可
非空约束
创建表时,将不允许为空的字段后面加上 not null 关键字即可
唯一约束
创建表时,将字段后面加上 unique 关键字即可
默认约束
创建表时,将字段后面加上 default关键字,然后给一个默认值即可
设置表的字段的自动增加
添加关键字 auto_increment 即可
索引
索引就是把数据库中的某一列或者某几列拿出来进行排序,方便我们快速查找。
索引分类
1、普通索引
由key或index定义的索引,他是mysql中的基本索引类型,可以创建在任何数据类型中,其值是否唯一和非空由字段本身的约束条件决定。
2、唯一索引
由unique定义的索引,该索引所在字段的值必须是唯一的。
3、全文索引
由FULLTEXT定义的索引,他只创建在char、varchar或text类型的字段上。而且,现在只有myisam存储引擎支持全文索引。
4、单列索引
在表中单个字段上创建索引,他可以是普通索引、唯一索引或者全文索引,只要保证该索引只对应表中的一个字段即可。
5、多列索引
在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。
创建索引
创建表的时候创建索引
1、创建普通索引
验证一波
补充:explain 可以用于显示查询语句的执行情况
上图说明查询时,确实用到了id作为索引进行查询。
2、创建唯一索引
创建唯一索引的方法是在创建普通索引的基础上,前面加上关键字unique,给所以起一个别名,这里起的是unique_id,指定按照ASC方式(即升序)进行排列。
3、创建全文索引
由FULLTEXT定义的索引,他只创建在char、varchar或text类型的字段上。而且,现在只有myisam存储引擎支持全文索引。
4、创建多列索引
在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。
5、创建空间索引
在已存在的表上加入索引
1、创建普通索引
2、创建唯一索引
使用alter创建索引
alter table 表名 add index 索引名 (被索引的字段名);
删除索引
方法一——alter
alter table 表名 drop index 索引名;
方法二_drop
drop index 索引名 on 表名;
添加、更新与删除数据
insert
如果某参数设置的是自动增长,在insert的时候,我们可以不用为其赋值。赋值对应位置写null即可。
上面的insert语句可以简化。因为插入的是表中的每个字段,因此字段名可以省略
还可以一次插入多个数据
update
1、修改所有人的薪水为500元
如果不指定,则会修改整张表中被修改字段的值(下图中把所有的998都改成了500)
2、将张飞的薪水修改为5000
3、将关羽的薪水改成3000,将工作改为ccc
4、将刘备的薪水在原有的基础上加100
delete
1、删除张飞的记录
2、删除表中所有记录
3、使用truncate删除表中记录
truncate和delete的区别
- truncate将表摧毁,然后建立一张和原表一样的空表
- delete逐条删除表中数据