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

 更新时间:2019年11月27日 11:52:55   作者:HMMHMH  
这篇文章主要介绍了Mysql数据库高级用法之视图、事务、索引、自连接、用户管理,结合实例形式分析了MySQL数据库视图、事务、索引、自连接、用户管理常见用法及操作注意事项,需要的朋友可以参考下

本文实例讲述了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; 

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

用户管理

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.————案例:


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

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

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总

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

相关文章

  • 老鸟带你开发专业规范的MySQL启动脚本

    老鸟带你开发专业规范的MySQL启动脚本

    这篇文章主要介绍了老鸟带你开发专业规范的MySQL启动脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • MySql如何去除字符串前缀,两边,后缀

    MySql如何去除字符串前缀,两边,后缀

    这篇文章主要介绍了MySql如何去除字符串前缀,两边,后缀,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Mysql  DATEDIFF函数用法总结示例详解

    Mysql  DATEDIFF函数用法总结示例详解

    MySQL DATEDIFF()函数是MySQL中常见的日期函数之一,它主要用于计算两个日期之间的差值,单位可以是天、周、月、季度和年,DATEDIFF函数用于返回两个日期的天数,这篇文章主要介绍了Mysql  DATEDIFF函数,包括语法格式和示例代码讲解,需要的朋友可以参考下
    2023-03-03
  • MySQL笔记之数据类型详解

    MySQL笔记之数据类型详解

    本篇文章对mysql数据类型进行了详细的介绍,需要的朋友参考下
    2013-05-05
  • MySQL insert死锁问题解决详细记录

    MySQL insert死锁问题解决详细记录

    上周遇到一个因insert而引发的死锁问题,其成因比较令人费解,下面这篇文章主要给大家介绍了关于MySQL insert死锁问题解决详细记录的相关资料,需要的朋友可以参考下
    2022-11-11
  • MYSQL必知必会读书笔记第三章之显示数据库

    MYSQL必知必会读书笔记第三章之显示数据库

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。接下来通过本文给大家介绍MYSQL必知必会读书笔记第三章之显示数据库,感兴趣的朋友参考下吧
    2016-05-05
  • 实例详解mysql子查询

    实例详解mysql子查询

    这篇文章主要介绍了mysql子查询的相关资料,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • mysql 主从复制如何跳过报错

    mysql 主从复制如何跳过报错

    这篇文章主要介绍了mysql 主从复制如何跳过报错,帮助大家更好的理解和使用MySQL 数据库,感兴趣的朋友可以了解下
    2020-10-10
  • MySQL server has gone away的问题解决

    MySQL server has gone away的问题解决

    本文主要介绍了MySQL server has gone away的问题解决,意思就是指client和MySQL server之间的链接断开了,下面就来介绍一下几种原因及其解决方法,感兴趣的可以了解一下
    2024-07-07
  • mysql学习笔记之帮助文档

    mysql学习笔记之帮助文档

    本文给大家详细讲述的是mysql的help(帮助)命令的用法,非常细致,有需要的小伙伴可以来参考下
    2017-02-02

最新评论