Mysql数据库高级用法之视图、事务、索引、自连接、用户管理实例分析

作者:HMMHMH 时间:2024-01-15 20:17:00 

本文实例讲述了Mysql数据库高级用法之视图、事务、索引、自连接、用户管理。分享给大家供大家参考,具体如下:

视图

视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性。

1.————创建视图:


create view 视图名称(一般以v_开头) as 查询语句;

2.————查看视图:


select * from 视图名称;

3.————删除视图:


drop view 视图名称;

事务

1.特性:四大特性ACID

(1)原子性(Atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务 中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作。

(2)一致性(Consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。

(3)隔离性(Isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的。

(4)持久性(Durability):一旦事务提交,则其所做的修改会永久保存到数据库。

2.使用:

(1)开启事务:开启事务后执行修改命令,变更会为护到本地缓存,而不是物理表中。
begin;或者start transaction;

(2)回滚事务:放弃缓存中变更的数据,表示事务执行失败,回到开始事务的状态。
rollback;

(3)提交事务:将缓存中的数据变更维护到物理表中。
commit;

索引

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的位置信息,更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

1.使用:

(1)————查看索引:


show index from 表名;

(2)————创建索引:


create index 索引名称 on 表名(字段名称(长度));

(3)————删除索引:


drop index 索引名称 on 表名;

2.验证性能:

(1)开启运行时间检测:


set profiling=1;

(2)查找第十万条数据:


select * from test_index where title='ha-99999';

(3)为表建立索引:


create index title_index on test_index(title(10));

(4)查找第十万条数据:


select * from test_index where title='ha-99999';

(5)查看执行时间:


show profiles;

Mysql数据库高级用法之视图、事务、索引、自连接、用户管理实例分析

总结:索引可以极大提升查询速度,但是创建索引的时间比查询的速度要慢很多,所以 数据表经常更新时,不适合使用索引,当数据表数据很大时,并且长时间不更新时,建 议使用索引,其他情况不建议使用。

用户管理

1.————查看用户: 


select host,user,authentication_string from user;

 ————查看用户权限:


show grants for 用户名@主机;

2.————创建用户并赋予权限:'


grant 权限名称 on 数据库名.* to ‘用户名'@'主机' identified by ‘密码';

3.————修改权限: 


grant 权限名称 on 数据库名.* to ‘用户名'@'主机' where grant option;

 刷新权限:


flush privileges;

4.————修改密码:


update user set authentication_string=password(‘新密码') where user='用户名';

5.————删除用户:
卸载:


drop drop user ‘用户名'@'主机';

 手动删除:


delete from user where user='用户名';

 刷新权限:


flush privileges;

自连接

将多张相似表的数据汇总到一个表中,将自己与自己相连接进行查询。

1.————用法:


select * from 表名 as 别名1 inner join 表名 as 别名2 on 条件;

2.————案例:

Mysql数据库高级用法之视图、事务、索引、自连接、用户管理实例分析

aid为编号,pid为所属编号
查询山西省的所有城市:


select city.* from areas as cityinner join areas as province
on city.pid=province.aidwhere province.atitle='山西省';

Mysql数据库高级用法之视图、事务、索引、自连接、用户管理实例分析

希望本文所述对大家MySQL数据库计有所帮助。

来源:https://blog.csdn.net/zsh142537/article/details/82659409

标签:Mysql,视图,事务,索引
0
投稿

猜你喜欢

  • Python操作mongodb的9个步骤

    2023-03-11 15:37:53
  • Django 多表关联 存储 使用方法详解 ManyToManyField save

    2023-07-10 08:06:55
  • 在JavaScript中对HTML进行反转义详解

    2024-05-02 16:21:19
  • 对django 2.x版本中models.ForeignKey()外键说明介绍

    2022-10-07 18:18:24
  • Python 分享10个PyCharm技巧

    2021-11-18 11:03:41
  • Python脚本在Appium库上对移动应用实现自动化测试

    2021-12-27 12:43:24
  • vue文本识别"\\n"换行问题的解决方式

    2024-05-09 10:51:43
  • 第一篇初识bootstrap

    2024-04-28 09:41:01
  • Python 启动时选择32位 或64位版的操作

    2021-04-29 23:50:43
  • 网页用多宽才更合适?

    2009-04-07 14:07:00
  • Go语言题解LeetCode1260二维网格迁移示例详解

    2024-04-29 13:04:53
  • 2020最新pycharm汉化安装(python工程狮亲测有效)

    2021-08-16 15:41:57
  • asp如何读取注册表的信息?

    2009-11-19 21:18:00
  • Python在字符串中处理html和xml的方法

    2023-09-01 21:19:08
  • Golang 如何解析和生成json

    2024-04-27 15:32:58
  • 基于vue-upload-component封装一个图片上传组件的示例

    2024-05-10 14:14:42
  • three.js中文文档学习之创建场景

    2023-08-22 21:02:00
  • django1.11.1 models 数据库同步方法

    2024-01-19 11:12:47
  • asp是的日期转换为星座的函数

    2011-02-26 11:11:00
  • 使用Pytorch搭建模型的步骤

    2022-03-05 21:28:38
  • asp之家 网络编程 m.aspxhome.com