MYSQL 事务和用户权限
一、 什么是事务:简单说,所谓事务就是一组操作,要么操作都成功要么都不成功。
二、事务的使用流程
1. 第一步:开启一个事务,start transaction;
2. 第二步:正常的SQL语句操作,但是这些SQL语句并没有真正的更改数据库信息
3.第三步:提交事务,commit,当提交事务后,SQL语句才会被真正的执行,数据库中的信息会被改变如果,如果要取消第二步的操作可以用 rollback(回滚)语句;
三、事务的特性:原子性(Atomicity)一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
1.原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间的某个环节。如果事务执行的过程中发生错误会 回滚到事务开始之前的状态,就像这个事务从来没有被执行过一样。
2.一致性:数据在事务前后保持一致
3.隔离线:某个事务的操作对其他事务不可见
4.持久性:当事务完成后,其影响会被保留下来,不能撤销。
四、事务使用的注意事项:存储引擎必须是innodb,因为myisam不支持事务。
五、视图
1.定义:视图是由查询结果形成的一张虚拟表
2.格式:create view 视图名称 as select 语句
3.什么时候用视图:如果某个查询结果频繁的出现并需要使用这个做子查询,则创建这个视图。
4.视图的作用:
1)简化操作不用进行多表查询
2)可以进行权限控制把表的权限封闭,但是开放相对应的视图权限,视图里只开放部分数据,比如goods商品表,如果我们不想让别人看到我们的销售价格,这时候我们就可以把查看商品的权限封闭,创建一张视图 create view showGoods as select goods_id,goods_name from goods;不出现销售价格列表就可以了。
5.视图的修改:alter view 视图名 as select 语句;
6.删除视图:drop view 视图1,视图2;
7.视图与基本表的关系
1)视图是表的查询结果,基本表变了,会影响视图表的结果
2)从单表中获取的视图增改山会影响基本表
3)多表视图时,可以通过 视图给某个表插入数据
4)多表视图时不可以通过视图删除数据
5)多表视图时,可以通过视图更改数据,注意:在更改时,被更改的数据必须是在视图中有所体现的,如果在视图中没有体现出来,语法没有错误,那么真实的表也不会被改变
6)注意:包含distinct,group by ,having, union,union all , 聚合函数等 视图是不可更新的。
一、MySQL常见操作
- 创建用户:Create user ‘用户名’@’允许登录的地址/服务器’ identified by ‘密码’
- 删除用户:drop user ‘用户名’@’服务器地址’;注意:需要管理员才可以删除
- 更改密码
1) 用户更改自己的密码:Set password=password(‘密码’);
2) 管理员更改用户密码:Set password for ‘用户名’@’允许登录的地址’=password(‘密码’);
- 为用户授予权限
1) 格式:grant 权限1,权限2.. on 某库.某个对象 to ‘用户名’@’允许登录的位置’ 【identified by ‘密码’】;
2) 说明:
l 权限列表,就是,多个权限的名词,相互之间用逗号分开,比如: select, insert, update
l 也可以写:all
l 某库.某个对象,表示,给指定的某个数据库中的某个“下级单位”赋权;
l 下级单位有:表名,视图名等
l 其中,有2个特殊的语法:
l *.*: 代表所有数据库中的所有下级单位;
l 某库.* :代表指定的该库中的所有下级单位;
l 3,【identified by ‘密码’】是可省略部分,如果不省略,就表示赋权的同时,也去修改它的密码;
l 但:如果该用户不存储,此时其实就是创建一个新用户;并此时就必须设置其密码了
- 剥夺权限:revoke 权限列表 on 某库.某个对象 from ‘用户名’@’允许登录的位置’
二、忘记登录密码的解决方法
- 进入命令行界面,输入net stop mysql
- mysqld --skip-grant-tables
- 此时可以免密码登录:mysql -u root –p
- 登录后设置新密码:update mysql.user set authentication_string=password('msh8888') where user='root' and Host = 'localhost';
- 刷新权限表flush privileges;
三、SQL语句的分类
- 数据定义语言(DDL):用于创建、修改、和删除数据库内的数据结构,如:
1) 创建和删除数据库(CREATE DATABASE || DROP DATABASE);
2) 创建、修改、重命名、删除表(CREATE TABLE || ALTER TABLE|| RENAME TABLE||DROP TABLE);
3) 创建和删除索引(CREATEINDEX || DROP INDEX)
- 数据查询语言(DQL):从数据库中的一个或多个表中查询数据(SELECT)
- 数据操作语言(DML):修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)
- 数据控制语言(DCL):用于对数据库的访问,如:
1) 给用户授予访问权限(GRANT);
2) 取消用户访问权限(REMOKE)
MYSQL 事务和用户权限的更多相关文章
- MySQL学习——管理用户权限
MySQL学习——管理用户权限 摘要:本文主要学习了使用DCL语句管理用户权限的方法. 了解用户权限 什么是用户 用户,指的就是操作和使用MySQL数据库的人.使用MySQL数据库需要用户先通过用户名 ...
- MySQL 数据库赋予用户权限操作表
MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数 ...
- MySQL授权(用户权限)
一.mysql查询与权限 (二)授权 用户管理: 设置用户密码 前期准备工作: 停止服务 将配置文件当中的skip-grant-tables删除掉 重启服务: 执行修改命令 查看用户状态(如果数据过多 ...
- MySQL中导出用户权限设置的脚本
在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限.对于这个迁移我们可以从mysql.user表来获取用户的相关权限来生成相应的SQL语句,然后在目标服务器上来执行生成的SQL ...
- MySQL系列(十)--用户权限及远程访问
本文基于MySQL8.0,记录一下完整的远程访问的过程,以及这个过程中可能遇到的问题,MySQL运行在阿里云服务器,操作系统:CentOS 7.6 64位 顺便说下,买服务器还是要双十二这种拉新活动再 ...
- mysql给其他用户权限访问我的数据库
先执行这条语句,给用户权限 grant all privileges on *.* to root@"221.221.185.23" identified by "gyr ...
- mysql学习(用户权限管理)
1. 添加数据库用户 create user 'username'@'host' identified by 'password'; 提示: 如果想让该用户可以从其他主机登陆,host可以设置为'%' ...
- Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】
前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了-那么本篇主要总结关于Oralce视图.序列.事务的一些内容- 在数据库中,我们可以把各种的SQL语句分为四大类- (1 ...
- Oracle总结【视图、索引、事务、用户权限、批量操作】
前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了...那么本篇主要总结关于Oralce视图.序列.事务的一些内容... 在数据库中,我们可以把各种的SQL语句分为四大类 ...
随机推荐
- Visual Studio Code(VSCODE)语言设置
Visual Studio Code(VSCODE)语言设置 语言设置 1.快捷键 Windows.Linux 快捷键是:ctrl+shift+p macOS 快捷键是:command + shift ...
- 第一周——数据分析之表示 —— Numpy入门
数据的维度 从一个数据到一组数据 一个数据:表达一个含义 一组数据:表达一个或者多个含义 维度:一组数据的组织形式 一维数据 由对等关系的有序或者无序数据构成,采用线性方式组织,对应列表.数组和集合等 ...
- 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess
hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...
- ==、Equals 、ReferenceEquals它们的异同
链接 string foobar = "foobar"; string foobar2 = new StringBuilder().Append("foo"). ...
- 会跳高的字体插件jquery.beattext.js
插件描述:字体特效,会弹跳的字体插件jquery.beattext.js,兼容性如下: 使用方法 导入如下3个js文件: <script type="text/javascript&q ...
- [转] 从零构建 vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能
这是一个创建于 738 天前的主题,其中的信息可能已经有所发展或是发生改变. 前言 vue2 正式版已经发布将近一个月了, 国庆过后就用在了公司的两个正式项目上, 还有一个项目下个月也会采用 vue2 ...
- ionic 3 icon和splash screen生成和设置
官方文档中介绍 ionic cordova resources命令可以生成应用的图标和启动画面图片(前提是你必须在resources 目录下放icon源文件和splash源文件,格式可以为png, p ...
- 使用navicat连接 mysql时出现client does not support auth...upgrading Mysql Client
问题报错:使用navicat时发现出现如下情况: 原因:发现是由于navicat版本的问题,出现连接失败的原因:mysql8 之前的版本中加密规则是mysql_native_password,而在my ...
- Ios还是安卓的判断
最近在做app的h5页面,涉及到一些小知识点 记录一下 1.微信屏蔽了下载的链接,所以在网页中添加的下载链接都要在浏览器中打开,这里需要一个提示用户在浏览器打开的提示弹框 //判断是否在微信终端打开 ...
- IntelliJ IDEA 中 Web项目 目录结构
--src 应用程序源代码和测试程序代码的根目录 --main --java 应用程序源代码目录 --resources 应用程序用到的资源文件(一般都是配置文件) --webapp web项 ...