MySQL数据库的基本用法(四)-约束和索引
2019-05-20 21:22
92 查看
约束
约束:约束就是给字段添加的限制条件
非空约束 not null
字段的值不能为null
create table 表名(字段名 字段类型,字段名 字段类型not null);
唯一约束 unique
字段的值不能重复
create table 表名(字段名 字段类型,字段名 字段类型 unique);
数据重复则插入失败
默认约束 default
给字段设置默认值
触发默认值生效
主键约束 primary key
主键约束: 插入数据必须是唯一且非空的
主键:用于表示数据唯一性的字段称为主键
约束: 就是创建表的时候给字段添加的限制条件
主键约束+自增 primary key auto_increment
自增数值只增不减
从历史最大值基础上+1
外键约束
外键:用于建立关系的字段
外键约束: 为了保证两张表之间建立正确的关系,外键字段的值可以为null,可以重复,不能是另外一张表中不存在的数据,建立好关系后被依赖的数据不能先删除,被依赖的表不能先删除
- 如何使用外键约束
- constraint 约束名称 foreign key(外键字段名) references 被依赖的表名(被依赖的字段名) ;
- 例:
- 先创建部门表
create table dept(id int primary key auto_increment,name varchar(10)); - 创建员工表
create table emp(id int primary key auto_increment,name varchar(10),deptid int,constraint fk_dept foreign key(deptid) references dept(id));
索引
1.索引:索引是数据库中用于提高查询效率的技术,工作原理类似于目录
2.为什么使用索引:如果不使用索引,数据会零散的保存到每一个磁盘块中,查找数据时需要逐个遍历每一个磁盘块 直到找到数据为止,使用索引后磁盘块会以树桩结构保存,查找数据时可以大大减低磁盘块的访问量,从而提高查询效率
3.有索引就一定好吗?
不是,如果数据量比较小,有索引反而会降低查询效率
创建索引
1.创建索引
create index 索引名 on 表名(字段名(?字段长度));
例:create index i_item_title on item2(title);
2.索引是越多越好吗?
不是,只针对常用的查询字段创建索引,因为索引会占磁盘空间
查看索引
show index from 表名;
删除索引
drop index 索引名 on 表名;
复合索引
通过多个字段创建的索引称为复合索引
例:create index i_item_title_price on item2(title,price);
事务
1.数据库中执行同一业务多条SQL语句的工作单元,可以保证多条SQL全部执行成功或全部执行失败
2.事务的ACID特性,此特性是保证事务正确执行的四大基本要素
Atomicity:原子性,最小不可拆分,保证全部成功或全部失败
Consistency:一致性,保证从一个一致状态到另一个一致状态
Isolation:隔离性,多个事务直接互不影响
Durability:持久性,事务提交后数据持久保存到磁盘中
事务相关指令:
1 开启事务 begin;
2 提交事务 commit;
3 回滚事务 rollback; rollback to xxx;
4savepoint; 保存回滚点 savepoint xxx;
SQL分类
DDL: Data Definition Language
数据定义语言,包括:create 、drop 、alter、 truncate ,不支持事务
truncate table 表名:删除表并创建新表 自增数值清零
DML: Data Manipulation Language
数据操作语言,包括:insert、delete、update、select(DQL),支持事务
DQL: Data Query Language
数据查询语言,包括:select
TCL: Transaction Control Language
事务控制语言,包括:begin、commit、rollback、savepoint xxx、rollback to xxx
DCL: Data Control Language
数据控制语言,分配用户权限相关SQL
相关文章推荐
- elasticsearch③基本用法-索引创建
- 【从零开始学习MySql数据库】(5)约束视图与索引
- mysql数据库FULLTEXT索引的用法和作用
- oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
- MySql数据库的基本操作-修改表-添加/修改约束(默认值)
- MySql数据库的基本操作-表数据中的 设置外键约束
- MySql数据库约束视图与索引(5)
- MySQL数据库——创建约束基本操作
- MySql数据库的基本操作-表数据中的 唯一约束 & 默认约束
- MySQL数据库——修改约束基本操作
- Hive环境搭建以及基本操作和运维(详细),如内置函数,Join和GroupBy以及where用法 和JDBC 的java代码操作(Mysql数据库)
- 使用Dos操作MySQL数据库的基本用法
- MySQL数据库的基本用法
- mysql数据库FULLTEXT索引的用法和作用
- MySql数据库的基本操作-外键约束的参照操作-父表变化,子表的动作
- numpy的基本用法(三)——numpy的索引
- 数据库------》MYSQL数据库---》查询编-》in+order by的基本用法
- MySql数据库的基本操作-修改表-删除约束
- mysql数据库的基本用法
- MySQL数据库表约束、索引、表操作及部分常见条件运算符