MySQL -SQL语言1-语法标准
关系型数据库的常见组件
- 数据库:database
- 表:table,行:row 列:column
- 索引:index
- 视图:view
- 存储过程:procedure
- 存储函数:function
- 触发器:trigger
- 事件调度器:event scheduler,任务计划
- 用户:user
- 权限:privilege
SQL 语言规范
- 在数据库系统中,SQL 语句不区分大小写,建议用大写
- SQL语句可单行或多行书写,默认以 " ; " 结尾
- 关键词不能跨多行或简写
- 用空格和TAB 缩进来提高语句的可读性
- 子句通常位于独立行,便于编辑,提高可读性
数据库对象和命名
- 数据库的组件(对象):
- 数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等
- 命名规则:
- 必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)
- 不要使用MySQL的保留字
SQL语句分类
- DDL: Data Defination Language 数据定义语言
- CREATE,DROP,ALTER
- DML: Data Manipulation Language 数据操纵语言
- INSERT,DELETE,UPDATE
- 软件开发:CRUD
- DQL:Data Query Language 数据查询语言
- SELECT
- DCL:Data Control Language 数据控制语言
- GRANT,REVOKE
- TCL:Transaction Control Language 事务控制语言
- COMMIT,ROLLBACK,SAVEPOINT
SQL语句构成
关健字Keyword组成子句clause,多条clause组成语句
示例:
SELECT * #SELECT子句 FROM products #FROM子句 WHERE price>666 #WHERE子句
说明:一组SQL语句由三个子句构成,SELECT,FROM和WHERE是关键字
字符集和排序
早期MySQL版本默认为latin1,从MySQL8.0开始默认字符集已经为 utf8mb4
查看支持所有字符集:
SHOW CHARACTER SET;
SHOW CHARSET;
查看支持所有排序规则:
SHOW COLLATION;
#注意
utf8_general_ci不区分大小写
utf8_bin 区分大小写
查看当前使用的排序规则
SHOW VARIABLES LIKE 'collation%';
设置服务器默认的字符集
vim /etc/my.cnf [mysqld] character-set-server=utf8mb4
设置mysql客户端默认的字符集
vim /etc/my.cnf #针对mysql客户端 [mysql] default-character-set=utf8mb4 #针对所有MySQL客户端 [client] default-character-set=utf8mb4