mysql创建用户视图 事务存储过程 触发器 约束的打怪

创建用户
create user 用户名@主机名 identified by '密码’
在这里插入图片描述
说明:
1)Create user 关键字
2)用户名 //登录数据库服务器的名称 mysql –h主机名 –u用户名 –p密码
3)主机名 //可以是域名或IP地址或 ‘%’, 代表任意主机名可以登录数据库服务器
4)“@” //用户名与主机名之间分隔符
5)Identified by //在创建用户时候设置的密码 , 注意设置密码时候 必须 加 引号
在这里插入图片描述
查看本机的所有用户

在mysql数据库的user表中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改用户密码
1)自己修改密码
set password = password(‘新密码’)
在这里插入图片描述

1)为普通用户修改密码
Set password for 用户名@主机 = password(‘新密码’);
在这里插入图片描述
4.删除用户
drop user 用户@主机
在这里插入图片描述

二、权限管理

1.分配权限
Grant 权限列表 on 库.表 to 用户@主机
说明:
1)Grant 授权
2)权限列表: 设置用户可以操作数据库或的权限,如select,update,delete…. , 如果all 代表所有权限.
3)On 库.表名; // on 关键字, 库名.表名 : 对哪个数据库下的表进行设置权限.
4)如果库名.* //库中所有的表
5)如果 all //代表数据库服务器中所有的数据库
6)To //为哪个用户授权.
在这里插入图片描述
在这里插入图片描述
使用select 执行查询如下图:
在这里插入图片描述
在这里插入图片描述

2.取消权限
Revoke 权限列表 on 库.表 from 用户@主机

说明:
1)Revoke 关键字 取消授权
2)From 从哪个用户将权限收回.
在这里插入图片描述
在这里插入图片描述

三、数据库备份与恢复

1.为什么要备份
有不可抗拒的因素,导致数据库损坏. 如果有了备份则可以通过备份的数据进行恢复.
2.使用备份与恢复的命令
1)备份: mysqldump
2)恢复: mysql
3)注意: 以上两个命名是 cmd下执行的. (不用登录数据库服务器)
3.mysqldump单表备份与恢复
备份: mysqldump –h主机 –uroot –proot 库名 表名 > 路径.sql
说明:
1)“>” 将备份的数据放到哪个SQL文件中 “*.sql “
2)在备份单表时, 注意写法, 库名 空格 表名; (不是库名.表名)

在这里插入图片描述
恢复:mysql –uroot –proot 库名 < 路径.sql
说明:

  1. 使用 mysql 这个命令行恢复
    2)注意 “<”
    3)注意, 在恢复时, 直接写库名 (在恢复是不加表名);

将tb_stu表删除:
在这里插入图片描述
恢复一下:
在这里插入图片描述
在这里插入图片描述
4.mysqldump整个数据库备份与恢复
备份: mysqldump –uroot –proot 库名 > 路径.sql
在这里插入图片描述
恢复:mysql –uroot –proot 库名 <路径.sql
删除数据库:
在这里插入图片描述
将db_mytest.sql数据库文件中所有数据进行恢复
在恢复时候,要创建一个新空库, 库名自定义;
Create database db_mytest;
在这里插入图片描述
使用mysql进行恢复:
在这里插入图片描述
登录数据库服务器查看所有数据库:
在这里插入图片描述
在这里插入图片描述
四、视图(view)
1.视图的概念
数据库中的视图指的是一个虚拟表,其内容由查询定义。同真实的表一样,视图也是由行与列构成的。视图的数据来源由SQL语句查询得到,不存储数据。
2.视图的创建方法
格式:
Create view 视图的名称 as select 查询 ;
创建一个视图: tb_stu表中 age小于25的所有记录
Create view v_age as select * from tb_stu where age <25;
在这里插入图片描述
在这里插入图片描述
3.查看视图创建语句在这里插入图片描述
4.查看视图结构
Desc 视图名称
在这里插入图片描述
5.显示所有视图
Select * from information_schema.views \G
在这里插入图片描述
6.修改视图
Alter view 视图名称 as select 查询在这里插入图片描述
查询(使用)视图
在这里插入图片描述
7.更新视图中数据
在这里插入图片描述
8.删除视图
Drop view 视图的名称在这里插入图片描述
9.视图算法
概述: 指的是一个视图是在什么时候执行,依据哪些方式执行
1)Merge合并
合并的执行方式,每当执行的时候,先将视图的sql语句与外部查询视图的sql语句,合并在一起再执行;
格式: create ALGORITHM=MERGE view 视图名称 as SQL查询;
说明: Algorithm 视图定义算法的关键字
在这里插入图片描述
2)Temptable临时表
临时表模式,每当查询的时候,将视图所使用的select语句生成一个结果的临时表,再在当前的临时表内进行查询。(先执行视图中的SQL语句虚拟表,然后再从这个虚拟表中再执行查询)

格式: create ALGORITHM= TEMPTABLE view 视图名称 as SQL查询;
在这里插入图片描述
3)Merge, Temptable算法的差异:
实例: 统计表: tb_phone , 同类手机的最高价格的产品?在这里插入图片描述
在这里插入图片描述
10.视图的应用场景
1)应用复杂的SQL语句进行简化语句输入
在这里插入图片描述2)隐藏某些字段,保护数据在这里插入图片描述
五、事务
1.事务的概念
事务(transaction)是一组SQL语句操作,组成这组操作的各个SQL语句,都必须全部执行成功,才有结果. 任意一个SQL语句执行失败,最终结果将不会真正执行.
2.事务与存储引擎在这里插入图片描述
3.事务处理
1)开启事务

式: start transaction ; 或 begin transaction;
Mysql默认SQL语句结束符为 “;”, 由于事务中有多条SQL语句,事务还没有结束,此时不能执行SQL语句. 在事务当中,要修改一个默认的SQL语句的结束符;
修改的方法: delimiter 语句结束符 , 语句结束符,可以自己定义, 如: //, ,,$,??,???
当事务所有SQL语句完成之后,再将结束符修改回来, 再修改结束符为 “;”

Delimiter // 开始
写多条
SQL语句1;
SQL语句2;
……
// 结束

Delimiter ; 再将结束符修改回来

Delimiter //
Sql;
Sql;
//
Delimiter 空格 ;

2)提交事务

 delimiter //
 update icbc set money=money-500 where name = 'tom';
 update icbc set money=money+500 where name = 'jerry';
 //
Delimiter ; 

在这里插入图片描述
在这里插入图片描述
原理: 事务中所有的SQL语句执行成功, 这个修改只是在内存中发生变化 ,而实际数据并没有改变. 对于事务修改原始数据,必须提交的过程, commit ;在这里插入图片描述
再使用另一个窗口查询:在这里插入图片描述
3)回滚事务在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.事务的特点(ACID)
1)原子性(Atomicity):事务是由一个或一组相互关联的SQL语句组成,这些语句被认为是一个不可分割的单元。
2)一致性(Consistency):对于数据库的修改是一致的,数据库从一个状态到另一个状态
3)隔离性(Isolation):每个事务都有自己的空间,一个事务的执行不被其它事务所干扰
4)持久性(Durability):提交了这个事务之后对数据的修改更新就是永久的。

六、MySQL中函数
1)系统函数
函数的调用方法: select 函数名称([参数])
now();

在这里插入图片描述

posted @ 2019-05-08 00:46  liulonglong  阅读(276)  评论(0编辑  收藏  举报