1. 概念

|

1.1 DBMS: 数据库通过DBMS创建和操作


1. DML: database manipulate language: 增删改查 数据
1. DDL: database defination language: 对表的 创建、修改和删除
1. DCL:database control language: 访问权限和定义安全级别
| | —- | |

1.2 DML


1. insert
1. update
1. delete
1. select
| |

1.3 DDL


1. create table
1. alter table
1. drop table
1. create index
1. drop index
| |

1.4 DCL


1. grant : 授予访问权限
1. revoke: 撤销访问权限
1. commit: 提交事物
1. rollback: 回滚
1. savepoint: 设置保存点
1. lock: 特定部分加锁
|

2. 查询大汇总

|

2.1 基本的查询语句


1. 日期和字符只能在单引号内出现;
1. desc table: 查看表结构
| | —- | |

2.2 过滤和排序数据

where: 过滤掉不满足条件的
1. 比较运算:
=,>, <, >=, <=, <>或 !=
1. 其他比较运算:
1. between … and
1. in (set) ——> in (10,20,50)
1. like
1. is null
1. like:
%: 任意多个字符
_ : 一个字符
1. is (not) null
1. order by: 在句尾, asc; desc
order by 后面有多个字符时,优先级顺序是从前往后 | |

2.3 分组函数

作用于一组数据,并对一组数据返回一个数值
1. avg(): 数值型数据
1. sum(): 数值型数据
1. count(): 任意数据类型, 不为空的总数
1. min(): 任意数据类型
1. max(): 任意数据类型
使用规则:
step1: 通过group by 将数据分为多个组
step2: 用分组函数对各个组内数据进行操作
注意:
1. select 列表中所有未包含在分组函数中的列都需要包含在group by子句中
1. 包含在group by子句中的列,不一定都在select列表中
1. 不能在where子句中使用组函数
1. 可以在having中使用组函数
| |

2.4 过滤分组 having

前提要求:
1. 行已经被分组
1. 使用了组函数
1. 满足having条件的将被显示出来
|

3. 多表查询

|

3.1 在where子句中添加连接条件

image.png | | —- | |

3.2 等值连接

image.png | |

3.3 使用on子句创建连接

image.png
image.png
image.pngimage.png
image.png
image.pngimage.png
image.pngimage.png |

4. 常见(非分组)函数

|

4.1 字符函数

image.png
image.png
image.png | | —- | |

4.2 数字函数

image.png | |

4.3 日期函数

image.png | |

4.4 条件表达式

image.png |

5. 数据处理之 增

事务是由完成若干项工作的DML语句组成的

5.1 insert插入1条数据

image.png
image.png | |

5.2 inset空值

image.png | |

5.3 insert 指定的值

image.png | |

5.4 从其他表中拷贝数据

image.png |

6. 数据处理之 改

|

6.1 update语句

image.png
image.png | | —- |

7. 数据处理之 删

image.png

8. 子查询

|

8.1 单行子查询

image.png | | —- | |

8.2 多行子查询

image.png
image.png |

9. /////////////////////////////////////////////////////

10. 创建数据库

|

10.1 创建表

image.png | | —- | |

10.2 as使用子查询创建表

image.png | |

10.3 alter table语句

alter table语句的使用范围:

image.png
image.png
image.png
image.png
image.png | |

10.4 删除表

10.4.1 drop 删除结构和数据

image.png

10.4.2 清空表 truncate VS. delete

image.png | |

10.5 改变表名字 rename

image.png |

11. 数据类型

|

11.1 数值类型


1. 整形 int
1. 小数 float, double
1. 位类型 bit(8)
| | —- | |

11.2 字符类型


1. char(10)
1. varchar(20)
1. enum: 要求插入的值必须是列表中指定的值之一
1. set: 一个或多个成员
| |

11.3 日期类型


1. date
1. datetime
1. datestamp
1. time
1. year
|

12. 约束和分页

image.png
image.png

12.1 not null约束

空字符串””不等于null, 0也不等于null
image.png

image.png | |

12.2 unique约束

唯一约束,允许出现多个空值: NULL
image.png

image.png | |

12.3 primary key 约束

主键约束相当于唯一约束+非空约束的组合
image.png
image.png | |

12.4 foreign key 约束

外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列
image.png
image.png

image.png
image.png |

|

12.5 分页 limit

image.png | | —- |

13. 事物

事务: 事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。 要成功都成功,要失败都失败;各种存储引擎中,innodb支持事务,而myisam、 memory等不支持事务
image.png
image.png
image.png
image.png
设置隔离级别:
image.png

14. 视图 view

image.png
image.png
image.png
image.png
image.png

15. 存储过程和函数

image.png
image.png
image.png
image.png
image.png

image.png
image.png