数据库:mysql运行时配置和知识点
站内链接:
Encode and Decode
Introduction
emoji 是 unicode 编码,在正常情况 utf8 编码情况下是无法显示 emoji 表情,仅仅在 utf8mb4 编码下才支持,其中 utf8mb4 是 utf8 的超集;
PS: columns/table/database, 都可能因为编码不一致, 导致问题出现.
Show
- 系统默认的字符集:SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;
- Database 的字符编码:SHOW CREATE DATABASE database_name;
- Table 的字符编码:SHOW CREATE TABLE table_name;
- Columns 的字符编码: show full columns from table_name;
- 数据编码: show variables like ‘char%’;
SET
SQL Shell Command:
1 | # 确保编码的一致性 |
Mysql Configure:
1 | # my.cnf文件, 默认配置 |
Information
Table
1 | # 显示当前数据库中所有的表格 |
DB
1 | # 显示所有的数据库 |
procedure
1 | # 显示所有的存储过程 |
Function
1 | # 显示所有的函数 |
Event
1 | # 显示所有的事件(系统,用户) |
CUDS
创建数据库
utf8 basic:CREATE DATABASE base1 DEFAULT character set utf8 COLLATE utf8_general_ci;
utf8mb4: create database xxx CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Authority
用户权限影响到当前用户远程连接的成功与否, 显示权限相关命令如下:
1 | Show: select user,host from mysql.user; |
创建用户并授予相应权限
1 | grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; |
example:
1 | # 设置最新 DB 版本中密码的最低要求 |
Revoke: 权限变动
1 | revoke 权限 on 数据库名.表名 from 用户名@登陆方式; |
Other Example
1 | # 创建只读账户,用于数据库数据的查询操作 |
术语
DML 和 DDL
DDL: data definition language, 数据定义语言, 用于操作数据库对象, 例如表, 视图, 数据库, 相关命令如下:
1 | CREATE -- 创建表 |
DML: data manipulation language, 数据操作语言, 管理和操作数据库中的记录, 相关命令如下:
1 | SELECT -- 查询 |
DCL: data control language, 是一种可对数据访问权进行控制的指令, 控制特定用户账户对数据表, 查看表, 存储程序, 用户自定义函数等数据库对象的控制权, 相关命令如下:
1 | GRANT -- 给特定用户赋予访问指定数据库的指定权限 |
TCL: transaction control, 控制和管理事务以维护 SQL 语句中数据的完整性, 相关命令如下:
1 | BEGIN -- 开始事务 |
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 狂想写作本!
评论