服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

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

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

2020-12-18 16:40HMMHMH Mysql

这篇文章主要介绍了Mysql数据库高级用法之视图、事务、索引、自连接、用户管理,结合实例形式分析了MySQL数据库视图、事务、索引、自连接、用户管理常见用法及操作注意事项,需要的朋友可以参考下

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

视图

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

1.————创建视图:

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

2.————查看视图:

?
1
select * from 视图名称;

3.————删除视图:

?
1
drop view 视图名称;

事务

1.特性:四大特性ACID

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

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

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

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

2.使用:

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

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

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

索引

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

1.使用:

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

?
1
show index from 表名;

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

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

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

?
1
drop index 索引名称 on 表名;

2.验证性能:

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

?
1
set profiling=1;

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

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

(3)为表建立索引:

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

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

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

(5)查看执行时间:

?
1
show profiles;

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

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

用户管理

1.————查看用户: 

?
1
select host,user,authentication_string from user;

 ————查看用户权限:

?
1
show grants for 用户名@主机;

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

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

3.————修改权限: 

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

 刷新权限:

?
1
flush privileges;

4.————修改密码:

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

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

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

 手动删除:

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

 刷新权限:

?
1
flush privileges;

自连接

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

1.————用法:

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

2.————案例:

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

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

?
1
2
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浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6402020-03-13
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5432020-06-03
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2962019-06-23