如何在Mysql数据库中使用视图、事务和索引
今天就跟大家聊聊有关如何在Mysql数据库中使用视图、事务和索引,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性。
1.————创建视图:
createview视图名称(一般以v_开头)as查询语句;
2.————查看视图:
select*from视图名称;
3.————删除视图:
dropview视图名称;
事务
1.特性:四大特性ACID
(1)原子性(Atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务 中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作。
(2)一致性(Consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。
(3)隔离性(Isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的。
(4)持久性(Durability):一旦事务提交,则其所做的修改会永久保存到数据库。
2.使用:
(1)开启事务:开启事务后执行修改命令,变更会为护到本地缓存,而不是物理表中。 begin;
或者start transaction;
(2)回滚事务:放弃缓存中变更的数据,表示事务执行失败,回到开始事务的状态。 rollback;
(3)提交事务:将缓存中的数据变更维护到物理表中。 commit;
索引
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的位置信息,更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
1.使用:
(1)————查看索引:
showindexfrom表名;
(2)————创建索引:
createindex索引名称on表名(字段名称(长度));
(3)————删除索引:
dropindex索引名称on表名;
2.验证性能:
(1)开启运行时间检测:
setprofiling=1;
(2)查找第十万条数据:
select*fromtest_indexwheretitle='ha-99999';
(3)为表建立索引:
createindextitle_indexontest_index(title(10));
(4)查找第十万条数据:
select*fromtest_indexwheretitle='ha-99999';
(5)查看执行时间:
showprofiles;
总结:索引可以极大提升查询速度,但是创建索引的时间比查询的速度要慢很多,所以 数据表经常更新时,不适合使用索引,当数据表数据很大时,并且长时间不更新时,建 议使用索引,其他情况不建议使用。
用户管理
1.————查看用户:
selecthost,user,authentication_stringfromuser;
————查看用户权限:
showgrantsfor用户名@主机;
2.————创建用户并赋予权限:'
grant权限名称on数据库名.*to‘用户名'@'主机'identifiedby‘密码';
3.————修改权限:
grant权限名称on数据库名.*to‘用户名'@'主机'wheregrantoption;
刷新权限:
flushprivileges;
4.————修改密码:
updateusersetauthentication_string=password(‘新密码')whereuser='用户名';
5.————删除用户:
卸载:
dropdropuser‘用户名'@'主机';
手动删除:
deletefromuserwhereuser='用户名';
刷新权限:
flushprivileges;
自连接
将多张相似表的数据汇总到一个表中,将自己与自己相连接进行查询。
1.————用法:
select*from表名as别名1innerjoin表名as别名2on条件;
2.————案例:
aid为编号,pid为所属编号
查询山西省的所有城市:
selectcity.*fromareasascityinnerjoinareasasprovinceoncity.pid=province.aidwhereprovince.atitle='山西省';
看完上述内容,你们对如何在Mysql数据库中使用视图、事务和索引有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。