更新 upstream

This commit is contained in:
xiongraorao
2018-08-08 08:41:05 +08:00
64 changed files with 2406 additions and 1143 deletions

View File

@ -19,7 +19,7 @@
* [十八、存储过程](#十八存储过程)
* [十九、游标](#十九游标)
* [二十、触发器](#二十触发器)
* [二十一、事务](#二十一事务)
* [二十一、事务](#二十一事务)
* [二十二、字符集](#二十二字符集)
* [二十三、权限管理](#二十三权限管理)
* [参考资料](#参考资料)
@ -559,7 +559,7 @@ WHERE col5 = val;
# 十八、存储过程
存储过程可以看成是对一系列 SQL 操作的批处理
存储过程可以看成是对一系列 SQL 操作的批处理
使用存储过程的好处:
@ -648,11 +648,11 @@ SELECT @result; -- 获取结果
DELETE 触发器包含一个名为 OLD 的虚拟表,并且是只读的。
UPDATE 触发器包含一个名为 NEW 和一个名为 OLD 的虚拟表,其中 NEW 是可以被修改,而 OLD 是只读的。
UPDATE 触发器包含一个名为 NEW 和一个名为 OLD 的虚拟表,其中 NEW 是可以被修改,而 OLD 是只读的。
MySQL 不允许在触发器中使用 CALL 语句,也就是不能调用存储过程。
# 二十一、事务
# 二十一、事务
基本术语:
@ -714,12 +714,12 @@ SELECT user FROM user;
**创建账户**
新创建的账户没有任何权限。
```sql
CREATE USER myuser IDENTIFIED BY 'mypassword';
```
新创建的账户没有任何权限。
**修改账户名**
```sql
@ -740,18 +740,14 @@ SHOW GRANTS FOR myuser;
**授予权限**
账户用 username@host 的形式定义username@% 使用的是默认主机名。
```sql
GRANT SELECT, INSERT ON mydatabase.* TO myuser;
```
账户用 username@host 的形式定义username@% 使用的是默认主机名。
**删除权限**
```sql
REVOKE SELECT, INSERT ON mydatabase.* FROM myuser;
```
GRANT 和 REVOKE 可在几个层次上控制访问权限:
- 整个服务器,使用 GRANT ALL 和 REVOKE ALL
@ -760,6 +756,10 @@ GRANT 和 REVOKE 可在几个层次上控制访问权限:
- 特定的列;
- 特定的存储过程。
```sql
REVOKE SELECT, INSERT ON mydatabase.* FROM myuser;
```
**更改密码**
必须使用 Password() 函数