一、 什么是事务:简单说,所谓事务就是一组操作,要么操作都成功要么都不成功。

二、事务的使用流程

  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常见操作

  1. 创建用户:Create user ‘用户名’@’允许登录的地址/服务器’ identified by ‘密码’
  2. 删除用户:drop user  ‘用户名’@’服务器地址’;注意:需要管理员才可以删除
  3. 更改密码

1)     用户更改自己的密码:Set password=password(‘密码’);

2)     管理员更改用户密码:Set password for ‘用户名’@’允许登录的地址’=password(‘密码’);

  1. 为用户授予权限

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  但:如果该用户不存储,此时其实就是创建一个新用户;并此时就必须设置其密码了

  1. 剥夺权限:revoke  权限列表  on  某库.某个对象  from  ‘用户名’@’允许登录的位置’

二、忘记登录密码的解决方法

  1. 进入命令行界面,输入net stop mysql
  2. mysqld --skip-grant-tables
  3. 此时可以免密码登录:mysql -u root –p
  4. 登录后设置新密码:update mysql.user set authentication_string=password('msh8888') where user='root' and Host = 'localhost';
  5. 刷新权限表flush privileges;

三、SQL语句的分类

  1. 数据定义语言(DDL):用于创建、修改、和删除数据库内的数据结构,如:

1)     创建和删除数据库(CREATE DATABASE || DROP  DATABASE);

2)     创建、修改、重命名、删除表(CREATE  TABLE || ALTER TABLE|| RENAME TABLE||DROP  TABLE);

3)     创建和删除索引(CREATEINDEX  || DROP INDEX)

  1. 数据查询语言(DQL):从数据库中的一个或多个表中查询数据(SELECT)
  2. 数据操作语言(DML):修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)
  3. 数据控制语言(DCL):用于对数据库的访问,如:

1)     给用户授予访问权限(GRANT);

2)     取消用户访问权限(REMOKE)

  

MYSQL 事务和用户权限的更多相关文章

  1. MySQL学习——管理用户权限

    MySQL学习——管理用户权限 摘要:本文主要学习了使用DCL语句管理用户权限的方法. 了解用户权限 什么是用户 用户,指的就是操作和使用MySQL数据库的人.使用MySQL数据库需要用户先通过用户名 ...

  2. MySQL 数据库赋予用户权限操作表

    MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户  一.grant 普通数 ...

  3. MySQL授权(用户权限)

    一.mysql查询与权限 (二)授权 用户管理: 设置用户密码 前期准备工作: 停止服务 将配置文件当中的skip-grant-tables删除掉 重启服务: 执行修改命令 查看用户状态(如果数据过多 ...

  4. MySQL中导出用户权限设置的脚本

    在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限.对于这个迁移我们可以从mysql.user表来获取用户的相关权限来生成相应的SQL语句,然后在目标服务器上来执行生成的SQL ...

  5. MySQL系列(十)--用户权限及远程访问

    本文基于MySQL8.0,记录一下完整的远程访问的过程,以及这个过程中可能遇到的问题,MySQL运行在阿里云服务器,操作系统:CentOS 7.6 64位 顺便说下,买服务器还是要双十二这种拉新活动再 ...

  6. mysql给其他用户权限访问我的数据库

    先执行这条语句,给用户权限 grant all privileges on *.* to root@"221.221.185.23" identified by "gyr ...

  7. mysql学习(用户权限管理)

    1. 添加数据库用户 create user 'username'@'host' identified by 'password'; 提示: 如果想让该用户可以从其他主机登陆,host可以设置为'%' ...

  8. Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】

    前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了-那么本篇主要总结关于Oralce视图.序列.事务的一些内容- 在数据库中,我们可以把各种的SQL语句分为四大类- (1 ...

  9. Oracle总结【视图、索引、事务、用户权限、批量操作】

    前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了...那么本篇主要总结关于Oralce视图.序列.事务的一些内容... 在数据库中,我们可以把各种的SQL语句分为四大类 ...

随机推荐

  1. Django组件-分页器

    Django的分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views here ...

  2. Django模型层-多表操作

    多表操作 一.创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是 ...

  3. Bootstrap modal常用参数、方法和事件

    Bootstrap modal(模态窗)常用参数.方法和事件: 参数: 名称 类型 默认值 描述 Backdrop Boolean或字符串“static” True True:有背景,点击modal外 ...

  4. [C]关于函数指针参数的赋值

    问题 在有一次尝试用stat()函数获取文件属性的时候,发现如果直接声明一个指针,然后把这个指针作为参数传给函数,会导致函数执行失败,原代码: #include <sys/stat.h> ...

  5. poj3126 Prime Path 广搜bfs

    题目: The ministers of the cabinet were quite upset by the message from the Chief of Security stating ...

  6. Make Eudict for reviewing example sentences

    Recently, I've started an activity of recording typical and nice English sentences from dictionaries ...

  7. xmind-postman

    参考: https://www.jianshu.com/p/61cfcb436ee4 https://www.jellythink.com/archives/category/tool-tutoria ...

  8. Python学习(三十四)—— Django之ORM之单表、联表操作

    一.单表查询API汇总 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kw ...

  9. spark actions 算子

    package action; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; imp ...

  10. aspnet mvc 中 跨域请求的处理方法

    ASP.NET 处理跨域的两种方式    方式1,后端程序处理.原理:给响应头加上允许的域即可,*表示允许所有的域                 定义一个cors的过滤器 加在在action或者co ...