日志

小白级常用 SQL 语法介绍

本介绍主要针对 MySQL 语法初学者,实际上这方面的内容在网络上已经有无数完备介绍,而本文的目的是希望用最简短的文字,最直观的方式帮助初学者或语法速成的用户提供无痛理解。

WHERE 的常用条件语法

sql-1

ORDER BY 排序 与 LIMIT 语法

sql-2

GROUP BY 语法

sql-3

表连接 (INNER JOIN 和 LEFT JOIN) 语法

sql-4

本文介绍了MySQL数据库查询的常用语法使用,通过掌握以上基础语法对于大多数普通使用者而言,相信已经能应对大部分一般性场景。

转载请注明出处:

© http://hejunhao.me

日志

MySQL修改用户密码和重命名用户名

  • 修改用户密码

mysql修改用户密码通过 SET PASSWORD 语句实现

# 修改当前用户的密码

SET PASSWORD = PASSWORD('密码文本') | OLD_PASSWORD('密码文本') | '密码哈希'

注意:OLD_PASSWORD方法使用 mysql 4.1版本以前 的方式对密码进行哈希加密处理,高版本mysql可以通过此方式兼容旧版的用户密码

# 修改用户 alice 的密码为 123456(必须具备 `mysql` 数据库的 UPDATE 权限),host不指定时默认为 '%'

SET PASSWORD FOR 'alice'@'localhost' =  PASSWORD('123456');
  • 重命名用户

mysql修改用户名通过 RENAME USER 语句实现

# 将 alice 用户名修改为 bob,host不指定时默认为 '%'

# 必须要具备`mysql` 数据库的 UPDATE 权限或 CREATE USER 权限,当系统变量 read_only 为 enabled 时还需具备SUPER权限

RENAME USER 'alice'@'localhost' TO 'bob'@'localhost';
转载请注明出处:

© http://hejunhao.me

日志

MySQL添加用户、授权和访问控制

  • 有哪些方式?

你可以通过两种方式创建MySQL用户:

  1. 通过账户管理语句,例如GRANT、CREATE USER等.
  2. 直接用INSERT、UPDATE、DELETE等语句操作MySQL的授权表(mysql.user、mysql.host、mysql.db、mysql.tables_priv、mysql.columns_priv)

显然方式1比方式2更简洁和有助于减少错误

另外你也可以通过GUI工具(如:MySQL WorkBench)或第三方程序(如:phpmyadmin)

  • 通过账户管理语句实现

a) 通过root用户(或具备CREATE USER 权限的用户)连接mysql

mysql -u root -p 你的用户密码

b) CREATE USER 语句用法

# 创建一个名为 alice 密码为 alicepass 的用户,该用户只能从 localhost 连接

CREATE USER 'alice'@'localhost' IDENTIFIED BY 'alicepass';
# 创建一个名为 bob 密码为 bobpass 的用户,允许该用户从任意host连接

CREATE USER 'bob'@'%' IDENTIFIED BY 'bobpass';
# 创建一个名为 chris 密码为 chrispass 的用户,该用户允许从任何 example.com 域名下的host来连接

CREATE USER 'chris'@'%.example.com' IDENTIFIED BY 'chrispass';

c) GRANT 语句用法

# 给 alice 用户分配所有权限,必须要从 localhost 连接

GRANT ALL PRIVILEGES ON *.* TO 'alice'@'localhost' WITH GRANT OPTION;
# 给  bob 用户分配所有数据库的 RELOAD、PROCESS 权限,并且可以把这些权限授权给其他用户(WITH GRANT OPTION的作用)

GRANT RELOAD,PROCESS ON *.* TO 'bob'@'%' WITH GRANT OPTION;
# 给 chris 用户分配 customer 数据库的 SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 权限,必须从任何 example.com 域名下的host来连接

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.* TO 'chris'@'%.example.com';

d) REVOKE 语句用法

# 撤销 david 用户所有数据库的所有权限

REVOKE ALL PRIVILEGES ON *.* FROM 'david'@'%';

e) DROP USER 语句用法

# 删除 alice 用户,不再允许该用户从localhost连接,不指定host时默认为 '%' ,DROP USER不会自动关闭任何已经打开的用户SESSION,一旦SESSION被关闭则该用户即被移除

DROP USER 'alice'@'localhost';
转载请注明出处:

© http://hejunhao.me