mysql(视图 事务 索引 外键)
Posted 杨帆,起航!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql(视图 事务 索引 外键)相关的知识,希望对你有一定的参考价值。
视图
视图本质就是对查询的封装
创建视图(定义视图 起名以v_开头)
create view v_students as select classes.name as c_name ,students.* from students inner join classes on students.cls_id=classes.id;
查看视图
select * from v_students;
删除视图
drop view v_students;
事务
事务具有ACID特性:
原子性(A,atomicity)
一致性(C,consistency)
隔离性(I,isolation)
持久性(D,durabulity)
原子性:事务内所有操作要么都执行,要么都不执行,它是一个不可分割的工作单位
例如:
A给B转账,不会因为各种原因A账号已经发生扣款而B账户没有收到加款。
一致性:事务开始和结束前后,数据库的完整性没有被破坏
案例:
对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中aaa和bbb的存款总额为2000元。
隔离性:事务之间不相互影响,多个事务并发访问时,事务之间是隔离的
事务查看数据更新时,数据所处状态要么是另一事务修改之前或者修改之后的状态,不会查看到中间状态的数据。事务1在修改表的时候提交之前事务2不能修改
持久性:事务完成一手,该事务所对数据库所做的更改会持久的存在数据库中
begin; 开启事务
update delete insert 更改删除添加数据
commit;提交事务
rollback; 回滚事务,放弃修改
索引
当数据库中数据量很大时,查找数据会变得很慢,
优化方案:索引
索引缺点:不便于增删改 时间长占用内存大
show index from 表名;#查看表的索引
set profiling=1; #开启时间
索引名字 表名字(字段)
create index title_index on students(id); #创建索引
desc students;#查看索引
show profiles; #查看时间
drop index 索引名称 on 表名; #删除索引
建表时创建索引
create table create_index(
id int primary key,
name varchar(10) unique,
age int,
key (age)
);
外键
-
如果一个实体的某个字段指向另一个实体的主键,就称为外键。被指向的实体,称之为主实体(主表),也叫父实体(父表)。负责指向的实体,称之为从实体(从表),也叫子实体(子表)
-
对关系字段进行约束,当为从表中的关系字段填写值时,会到关联的主表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并报错
-
添加外键
alter table students add constraint fk_students_gid foreign key (gid) references grade(gid) on delete cascade;
alter table students drop foreign key 外键名字; 删除外键
以上是关于mysql(视图 事务 索引 外键)的主要内容,如果未能解决你的问题,请参考以下文章
JavaLearn#(17)MySQL基础知识DML及DDL语句外键及非外键约束外键策略DQL语句(单表多表)连接查询子查询索引事务视图存储过程用户权限及角色管理
JavaLearn#(17)MySQL基础知识DML及DDL语句外键及非外键约束外键策略DQL语句(单表多表)连接查询子查询索引事务视图存储过程用户权限及角色管理