> 文档中心 > MySQL中的视图、索引以及事务的简单使用

MySQL中的视图、索引以及事务的简单使用


✅作者简介:C/C++领域新星创作者,为C++和java奋斗中
✨个人社区:微凉秋意社区
🔥系列专栏:MySql一点通
📃推荐一款模拟面试、刷题神器👉注册免费刷题

🔥前言

书接上文,今天补充MySQL基础最后的一部分内容:视图索引事务的使用以及考点。内容不会难,主要是为以后优化以及提高查询效率打基础。

文章目录

  • 一、视图
    • 1、视图的创建使用与销毁
    • 2、视图的面试常考特点
  • 二、索引
    • 1、索引的创建使用与销毁
    • 2、索引的面试常考特点
  • 三、事务
    • 1、事务的开启与结束
    • 2、事务的面试常考特点

一、视图

  • 代表一个查询的SQL,内封装着一条查询SQL,基于视图操作就相当于基于被封装的SQL操作

1、视图的创建使用与销毁

  1. 创建视图

语法:

create view 视图名 as 查询SQL

例:

create view query_emp_dep as-- 写一个表连接:查询员工和其部门的所有信息select e.*,d.department_name,d.location_id -- 多表在视图中不可存在重复列名from employees e LEFT JOIN departments don e.department_id=d.department_id
  1. 视图的使用

语法:

select 列名 from 视图名

例:

select * from query_emp_dep-- 对结果做筛选select * from query_emp_dep where employee_id in(100,101,102,103)
  1. 视图的销毁

语法:

drop view [if exists]视图名

例:

drop view query_emp_dep

2、视图的面试常考特点

  1. 视图不是表,并不会做数据存储
  2. 视图本身无法提高查询的执行效率,只是能提高开发效率
  3. 视图也可以在想屏蔽表中机密列时使用

二、索引

  • 是数据库为了提高查询效率所提供的一种机制

1、索引的创建使用与销毁

  1. 创建索引

语法:

create index 索引名 on 表名(字段名)
  1. 查看索引

语法:

show index from 表名
  1. 销毁索引

语法:

drop index 索引名 on
  1. 索引的使用
-- 查询t_person的索引show index from t_person-- 给t_person添加一个age的索引create index i_p_age on t_person(age)-- 销毁i_p_age索引drop index i_p_age on t_person

tips: 无须手动显式使用索引,当使用索引列作为检索条件时,会自动采用索引

2、索引的面试常考特点

  1. 作用为提高查询效率
  2. 缺点为会占用空间
  3. 使用:
    • 索引并不是越多越好,只需给经常作为检索条件的列添加索引即可
      • 原因:会占用空间,也会影响数据增删改的效率
    • 主键和唯一列会自动添加索引
    • 在检索null值和进行模糊查询时会失效

三、事务

  • 是一种保证SQL执行完整性的机制,可以确保事务中的SQL要么同时成功,要么同时失败

1、事务的开启与结束

  1. 开启事务

语法:

begin | start transation
  1. 结束事务

语法:

提交:commit  -- 真正更改数据库数据回滚:rollback  -- 是数据回到事务开启前的状态
  1. 示例
-- 账户表:id、姓名、余额create table t_account(a_id int PRIMARY KEY auto_increment,-- 主键+自增a_name varchar(20) not null,  balance decimal(20,2) not null)select * from t_accountbegin -- 开启事务-- 1. 小黑子的账户-520update t_account set balance=balance-520 where a_name = '小黑子'-- 2. ikun的账户+520update t_account set balance=balance+520 where a_name = 'ikun'-- 结果:小黑子-80  ikun-920commit -- 提交事务,使事务结束rollback -- 回滚事务,使事务结束-- 整体逻辑if(所有语句执行成功){commit}else{rollback}

2、事务的面试常考特点

  • 记住四个字母:ACID
  1. A:原子性 多条SQL要么同时成功,要么同时失败,不可缺失或更改
  2. C:一致性 事务执行前后,数据状态是一致的
  3. I:隔离性 每个事务都是单独的个体,不会相互影响
  4. D:持久性 事务一旦提交,对数据库中的数据更改将是永久的,不可回滚

写在最后
MySQL基础内容已经完结,以后就更新此专栏的JDBC知识了,感兴趣的伙伴可以订阅专栏喔,期待你的关注与支持