Mysql

一、简介

理论基础:关系代数(关系运算、集合论、一阶谓词逻辑),具体表象:用二维表组织数据。

1
2
3
4
5
6
7
编程语言:SQL ---->Structured Query Language ----> 结构化查询语言
主键(primary key)
外键(foreign key)
数据定义语言:create / drop / alter
数据操作语言:insert / delete / update
数据查询语言:select
数据控制语言:grant / revoke

二、基本语法

1、DDL操作

创建表

1
create table xxx engine=innodb default charset utf8mb4;

删除表

1
drop table xxx;

修改表

1
ALTER TABLE xxx Add COLUMN xx

修改字符集

1
ALTER TABLE  XX CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2、DQL操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
语法:
select ... as ..., ... as ..., ... as ..., ...
---> 窗口函数 over (partition by ... order by ...) ---> 排名 / TopN
---> row_number / rank / dense_rank / lead / first_value / cume_dist
from t1, t2, ...
[from t1 ... join t2 on ...]
where ... and ... or ... ---> like / regexp
group by ..., ... ---> 聚合函数(max / min / avg / sum / count / stddev_pop / var_pop)
having ... and ... or ...
order by ... desc, ... asc
limit ... offset ... ---> MySQL方言
表达式:
+ - * / %
case ... when ... then ... when ... then ... else ... end
函数:
数值函数 --> abs / ceil / floor / round / exp / log / log2 / log10 / rand / sqrt / power
流程控制 --> if / ifnull
其他 ---> md5 / sha1 / aes_encrypt / aes_decrypt / compress / uncompress / uuid
谓词:
= / <> / > / < / >= / <= / between ... and ...
like / regexp ---> % _
in / not in
exists / not exists
is null / is not null
数据筛选
where ---> 分组之前的数据筛选
having ---> 分组以后的数据筛选(这里可以使用分组聚合的结果)
数据透视:
分组聚合(先将数据分成若干组,在组内使用聚合函数)
数据按某个维度拆解 ---> 定位数据异常到底是什么引起的
根据 A 统计 B ---> 根据性别统计男女学生人数 / 根据学号统计每个学生的平均成绩
嵌套查询:
把一个查询的结果作为另外一个查询的一部分来使用
派生表:把查询的结果当做表来使用
连接查询:
如果要查询的字段来自于多张表
如果没有连接数据的条件 ---> 笛卡尔积
内连接
自然连接 ---> 外键 / 同名列 ---> 笛卡尔积
外连接(左外连接 / 右外连接)

三、用户管理

1、创建用户

用户名、密码根据自己定。

1
create user '用户名'@'%' identified by '密码';

2、授予权限

授予用户名,数据库为XX的查询权限。(XX是数据库名称,可指定,需要授权所有数据库使用通配符*即可,%是在同一个网所有的地址都能访问),同时也可以给其它权限。

1
grant select on xx.* to '用户名'@'%';

3、刷新权限

1
flush privileges;

Mysql
http://example.com/2024/02/20/Mysql/
发布于
2024年2月20日
许可协议