记录一份
数据库管理系统
数据库管理系统分类
MySQL是什么
什么是数据库
什么是数据表
什么是表记录
什么是字段
什么是数据
MySQL在Windows下的安装
MySQL在Windows下的启动
MySQL在Windows下的服务方式
MySQL在Linux下的安装
MySQL在Linux下的启动
MySQL客户端选项
MySQL设置密码
MySQL数据库导入导出
MySQL注释
Windows下的MySQL命名事项
Linux下的MySQL命名事项
collate校验规则
*_bin
*_cs
*_ci
内置的数据库
SQL的组成部分:
DQL
DDL
DCL
DML
TCL
CCL
MySQL的SQL部分:
公共命令
帮助命令
获取服务器元数据
获取当前用户
获取当前数据库
查看当前服务器版本
查看服务器状态
查看服务器配置信息
防止SQL注入要诀
用户
1. 创建
2. 删除
3. 更改密码
4. 重命名
5. 刷新密码
授权
1. 查看
2. 针对所有库授权
3. 针对某一库授权
4. 针对某一个授权
5. 针对某字段授权
6. 刷新权限
7. 移除权限
数据库操作:
1. 创建
2. 删除
3. 更改
4. 查看数据库创建信息
5. 查看所有的数据库
6. 查看当前所在数据库
7. 切换数据库
存储引擎
1. 什么是存储引擎
2. 存储引擎类别
3. 查看所有的存储引擎
4. 查看当前使用的存储引擎
5. .ibd
6. .frm
7. 指定存储引擎
数据表操作:
1. 创建(注意事项)
2. 删除
3. 复制表(数据 + 结构)
4. 复制表(结构)
5. 重命名
6. 更改存储引擎
7. 更改字符集、校验规则
8. 查看表的字段信息
9. 查看表创建信息
10. 查看表的索引信息
11. 查看指定数据库下所有表的信息
10. 查看所有的表
表字段操作:
1. 重命名表字段
2. 修改字段定义(类型、约束性条件)
3. 更改表字段(名字、类型、约束性条件)
4. 删除字段
5. 插入字段
表记录操作:
1. 插入
2. 删除
3. 更新
4. 查询
设置变量
MySQL常量
位模式字面量
数据类型:
Text
char
varchar
text
mediumtext
longtext
tinyblob
blob
mediumblob
logntext
enum
set
json
Number
bit
tinyint
smallint
mediumint
int / integer
bigint
Date/Time
date
time
year
datetime
timestamp
完整性约束(指定约束:创建表时、创建表后;删除约束)
null
not null
default
unique key
primary key
auto_increment
前提
额外:
1. 更改表的自增值(创建表后)
2. 指定自增值(创建表时)
3. 查看自增列的步长和起始值(session和global)
4. 设置自增列的步长和起始值(session和global)
5. 小坑
foreign key
前提
建议
作用
check
binary
表与表之间的关系
一对多 or 多对一
多对多
一对一
计算字段
子查询
别名
单表查询
语法
优先级
distinct
where子句
运算符
通配符(字段是整型,也能使用like)
Windows下怎么区分大小写
group by子句
单个字段
多个字段
group_concat()
having子句
order by子句
limit子句
连表
优先级
join子句
1. 交叉连接
2. 内连接
3. 外连接之左连接
4. 外连接之右连接
5. 全外连接
6. union 与union all连表
基于《角色》的权限管理
SQL函数
Aggregate函数
avg()
count()
max()
min()
sum()
聚合函数中的distinct
Scalar函数
charset()
bin()
oct()
hex()
binary()
cast()
concat()
concat_ws()
group_concat()
length()
char_length()
soundex()
conv()
format()
ucase()
lcase()
upper()
lower()
ltrim()
rtrim()
trim()
repeat()
space()
reverse()
instr()
locate()
insert()
replace()
left()
right()
mid()
substring()
数值处理函数
sin()
cos()
tan()
abs()
sqrt()
exp()
pow()
log()
log10()
round()
rand()
pi()
加密函数
md5()
password()
时间日期函数
获取
curdate() / current_date()
curtime() / current_time()
current_timestamp()
now()
提取
extract()
year()
month()
day()
hour()
minute()
second()
microsecond()
date()
time()
week()
quarter()
monthname()
dayname()
dayofyear()
dayofweek()
dayofmonth()
增
date_add()
减
date_sub()
获取两个日期间的天数
datediff()
时间格式化
date_format()
执行函数
获取函数返回值
delimiter
流程控制
判断null值
SQL自定义函数
log_bin_trust_function_creators
1. 创建
2. 执行
3. 删除
视图
1. 创建
2. 使用
3. 修改
4. 删除
5. 注意事项
存储过程
1. 创建
2. 使用
3. 删除
4. 存储过程之事务操作
5. 存储过程之游标操作
6. 存储过程之防SQL注入
触发器
1. 创建
2. 删除
索引
为什么需要索引
索引是什么
索引的本质
索引的目的
索引的副作用
索引的多与少?
预读
索引的两大类型
索引的实现方式
b+树索引的分类
聚集索引
非聚集索引(辅助索引)
两者的区别
索引的种类
主键索引
唯一索引
普通索引
额外:
组合索引
覆盖索引
普通索引
1. 创建表时指定
2. 创建表后指定
3. 查看索引
4. 删除索引
唯一索引
1. 创建表时指定
2. 创建表后指定
3. 查看索引
4. 删除索引
主键索引
1. 创建表时指定
2. 创建表后指定
3. 查看索引
4. 删除索引
编写高性能的SQL语句
建表时
连表时
删除表记录
提高SQL查询效率
建索引时:
查询时要正确命中索引:
慢查询优化基本步骤
执行计划
慢日志记录
分页性能相关方案
# =================================================================================
Python3:
1. ORM框架
2. pymysql
3. sqlalchemy