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;
总结:索引可以极大提升查询速度,但是创建索引的时间比查询的速度要慢很多,所以 数据表经常更新时,不适合使用索引,当数据表数据很大时,并且长时间不更新时,建 议使用索引,其他情况不建议使用。
用户管理
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数据库计有所帮助。
来源:https://blog.csdn.net/zsh142537/article/details/82659409
猜你喜欢
- 在开发 图像 动画 游戏 相关的程序时, 双缓冲( double-buffer )一直是程序员常用(必用)的技巧. 当然 随着各种引擎 框架
- 本文实例讲述了php实现压缩多个CSS与JS文件的方法。分享给大家供大家参考。具体实现方法如下:1. 压缩css<?php
- Filed under 数据库技术Leave a commentSQL Server命令行导数据两种方式bcp和sqlcmd先说一下bcp:
- 在 Python 中,你可以使用 sorted() 方法或 sort() 方法对数据进行排序。在本文中,我将提供 sorted() 和 so
- 1、处理列表的部分元素称之为切片,创建切片,可指定要使用的第一个元素和最后一个元素的索引。2、这让Python创建一个始于第一个元素,终止于
- 环境使用Python 3.8–> 解释器 <执行python代码>Pycharm–
- 本文实例讲述了php延迟静态绑定的方法。分享给大家供大家参考。具体分析如下:php延迟静态绑定:指类的self,不是以定义时为准,而是以计算
- 一、实现创建文件夹和日志#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: nulig
- 列表(List) 的三种遍历(序号和值)方法if __name__ == '__main__':
- 原理:建一个栈,每次碰到一个新标签,就与栈顶的标签配对,如果配对,栈顶的标签就出栈,如果不配对,这个新标签就进栈,最终,栈如果是空的,说明所
- 小编今天教你们python怎么导入坐标点,解决你在生活中遇到的小问题。首先下载安装python,打开文本编辑器,将文件保存成 py格式,如果
- 一,extract方法的使用extract函数主要是对于数据进行提取。场景一般对于DataFrame中的一列中的数据进行提取的场合比较多。例
- Django实现内容缓存:1、内存缓存settings.py文件配置CACHES = { 'default':
- pytorch之添加BN层批标准化模型训练并不容易,特别是一些非常复杂的模型,并不能非常好的训练得到收敛的结果,所以对数据增加一些预处理,同
- 一、开发环境Python版本:3.6.4相关模块:pygame模块;以及一些Python自带的模块。二、环境搭建安装Python并添加到环境
- ASP实现防止网站被采集代码如下:<% Dim AppealNum,AppealCount Appeal
- 学习编写简练、优化的CSS需要大量的实践和一种不自觉的强迫性清洁的渴望。然而让你的CSS保持整洁并不仅仅是你对清洁的疯狂的心理需求,尤其对于
- 1.建立设计规范的意义 建立设计文档的根本目的
- PyTorch中数据读取的一个重要接口是torch.utils.data.DataLoader,该接口定义在dataloader.py脚本中
- 技巧之一:提高使用Request集合的效率 访问一个ASP集合来提取一个值是费时的、占用计算资源的过程。因为这个操作包含了一系列对相关集合的