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)提交事务将缓存中的数据变更维护到物理表中。
mit;
索引
索引是一种特殊的文件(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数据库计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程