01.SQL语言概述
SQL 语言概述
SQL (Structured Query Language)结构化査询语言
1. 关系型数据库的常见组件
- 数据库: database 表的集合,物理上表现为一个目录
- 表: table,行: row 列: column
- 索引: index
- 视图: view,虚拟的表
- 存储过程: procedure
- 存储函数: function
- 触发器: trigger
- 事件调度器: event scheduler,任务计划
- 用户: user
- 权限: privilege
2. SQL 语言规范
- 在数据库系统中,SOL 语句不区分大小写,建议用大写
- SQL 语句可单行或多行书写,默认以";"结尾
- 关键词不能跨多行或简写
- 用空格和 TAB 缩进来提高语句的可读性
- 子句通常位于独立行,便于编辑,提高可读性
3. 注释
SQL标准# 单行注释,注意有空格
-- 注释内容# 多行注释/*注释内容注释内容注释内容*/MySQL注释
# 注释内容
4. 数据库对象和命名
数据库的组件(对象):
数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等
命名规则:
- 必须以字母开头,后续可以包括字母,数字和三个特殊字符(#_$)
- 不要使用MySOL的保留字
5. 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
6. SQL语句构成
关健字Keyword组成子句clause,多条clause组成语句
示例:
SELECT * # SELECT子句
FROM products # FROM子句
WHERE price>666 # WHERE子句说明:一组SQL语句由三个子句构成,SELECT,FROM和WHERE是关键字
7. 查看SQL帮助
https://dev.mysql.com/doc/refman/5.7/en/sql-statements.html
mysql> help contentsmysql> help Data Typesmysql> help BIT
8. 字符集和排序
早期MySQL版本默认为 latin1,从MySQL8.0开始默认字符集已经为 utf8mb4
# 查看支持所有字符集:
mysql> show character set;
mysql> show charset;# 查看当前默认字符集
mysql> show variables like 'character%';# 查看支持所有排序规则
mysql> show collation;# 查看当前使用的排序规则
mysql> 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