1.mysql 体系
名称 | 含义 |
---|
主子系统 | 查询引擎+存储/缓冲/事务/恢复管理器 |
辅助部件 | 过程管理器:支持mysql独有语法 |
函数库 | 支持在sql语句中插入mysql独有函数 |
2.常用术语
1.存储引擎
名称 | 含义 |
---|
MyISAM | 无事务,速度快 |
INNODB | 有事务,功能全,常用 |
Memory | 在内存中处理数据,快 |
MERGE | 多个MyISAM联合 |
2.sql语句分类
名称 | 含义 |
---|
SQL | 结构化查询语言 |
DDL | 数据定义语言 |
DQL | 数据查询语言 |
DML | 数据操作语言 |
DCL | 数据控制语言 |
TPL | 事务处理语言 |
3.网络协议
4.表
5.约束
关键字 | 中文名称 | 用法 |
---|
primary key | 主键 | 唯一,非空,不可重复 |
unique | 唯一键 | 可控,不可重复 |
not null | 非空 | 非空 |
foreign key | 外键 | 3NF,连接外表主 foreign key (本表字段) references 外表名(外表字段) |
default | 默认 | 默认填入统一字段 default ‘0’ |
check | 检查 | 通过and,or,not约束字段 check(字段名>0) |
6.数据类型
数据类型名 | 大小 | 备注 | 是否常用 |
---|
smallint | 2字节 | | |
int | 4字节 | | 常用 |
bigint | 8字节 | | |
float | 4字节 | | 常用 |
double | 8字节 | | |
decimal(m,n) | | m总位数,n小数点后位数 | |
numeric | | 数值型 | |
char | 0-255个字节 | 定长字符 空间占用大,查询速度快 | |
varchar | 0-255个字节 | 变长字符 空间占用小,查询速度慢 | 常用 |
text | 0-65535个字节 | 长文本 | |
blob | | 二进制数据 | |
date | | yyyy-MM-dd 日期 | 常用 |
datetime | | yyyy-MM-dd hh:mm:ss 日期时间 | |
timestamp | | yyyyMMddhhmmss 时间戳(消除重复) | |
enum | | 复合型,枚举 | 常用 |
set | | 复合型 | |
7.比较运算符
语法 | 含义 |
---|
字段 in(子查询) | 与任意返回值相同 |
字段 <或>或= any(子查询) | 比最小返回值大或比最大返回值小或同in |
字段 <或>或= all(子查询) | 比最小返回值小或比最大返回值大或完全相同 |
8.逻辑运算符
not > and > or
9.特殊运算符
语法 | 含义 |
---|
between 数值/日期 and 数值/日期 | 在范围内则为真 |
in (数值/日期/’字符串’,…) | 其中之一则为真 |
like ‘%s%’ or '_s_' | %表零或多字符,_表一个字符,匹配上字符串则为真 |
is [not] null | 不为空则为真 |
[not] exists (子查询) | 子查询返回无记录则返回假,否则都为真 |
10.特别关键字
关键字 | 含义 | 备注 |
---|
distinct | 去除重复记录 | |
concat | 连接字符串,要求字符编码集相同 | concat(a,’和’,b) |
escape | 配合@进行转义%_ | 'a@_%' escape '@' 以a_开头的字符串 |
\ | 转义字符 | '\'' 表示’字符 |
union [all] | 无all表示自动去除重复记录 | |
auto_increment | 自动增长,从1开始,用在主键作为索引,重启mysql服务后清空 | |
engine=INNODB | 设置mysql引擎为innodb | |
11.统计函数
函数名 | 用法 |
---|
min([distinct] 列名) | 支持数值,日期,字符串,字符按A-Z小-大排序,日期按旧-新 |
max([distinct] 列名) | 同上 |
sum([distinct] 列名) | 字符串看作0,日期换算成距离1971-1-1经过的毫秒数 |
avg([distinct] 列名) | 同上 |
count(列名/常量) | 统计单列的非null行数,使用常量可统计该表所有记录行数 |
round(列名,d) | 对单列进行四舍五入,保留小数点后d位,d可以为负数 |
12.SELECT子句
from->join on->where->group by->having->select->order by->limit
查询关键字 | 用法 |
---|
from | 数据来自哪个表 |
join on | 多表按条件连接 |
where | 连接后的表保留哪些记录 |
group by | 按分组列进行分组 |
having | 分组后的表保留哪些记录 |
select | 选择哪些记录 |
order by | 对选择的记录按排序条件排序 |
limit x,d | 从x+1行开始向下显示d行记录,放在select子句最后使用 |
13.事务
关键字 | 含义 | 备注 |
---|
OLTP | 联机事务处理 | 关系型数据库 |
OLAP | 联机分析处理 | 数据仓库系统 |
ACID | 原子性,一致性,隔离性,持久性 | 事务四特性 |
commit | 提交 | |
rollback | 回滚 | |
autocommit | 自动提交,1为真,0为假 set autocommit=0; | 关闭自动提交 |
start transaction | 开始写事务 | |
create procedure 函数名() | 创建函数 | |
begin…end | 函数起始…函数终止 | |