一、什么是关系型数据库?
简单来说就是由多张表互相连接组成的数据库。 注意,这里的数据库不是MySQL,MySQL是DBMS,是一种关系型数据库管理系统。数据库是我们用SQL语言CREATE的那个。
二、SQL分类
- DDL(Data Definition Language)定义:定义数据库对象(库、表、字段)
- DML(Manipulation)操作:增删改
- DQL(Query)查询:查
- DCL(Control)控制:用户、访问权限
三、DDL
注:[ ]中括号表示可加可不加的操作
DDL-数据库操作
- SHOW DATABASES; 展示所有数据库
- SELECT DATABASE(); 在当前数据库查询
- CREATE DATABASE + 数据库名; 创库
- DROP DATABASE + 数据库名; 删库
- USE + 数据库名; 用这个库
DDL-表操作
-
SHOW TABLES; 查询当前数据库所有表
-
DESC + 表名; 查询表结构
-
SHOW CREATE TABLE + 表名; 查询指定表的建表语句
-
CREATE TABLE + 表名 (
字段1 字段1类型,
字段2 字段2类型,
);
- ALTER TABLE + 表名 + ADD + 字段名 + 类型(长度); 添加字段
- ALTER TABLE + 表名 + MODIFY + 字段名 + 新数据类型(长度); 修改数据类型;
- ALTER TABLE + 表名 + CHANGE + 旧字段名 + 新字段名 + 类型(长度); 修改字段名和字段类型;
- ALTER TABLE + 表名 + DROP + DROP + 字段名; 删除字段
四、DML
1.插入
- INSERT INTO + 表名(字段名1,字段名2) + VALUES(值1,值2); 给指定字段添加数据
- INSERT INTO + 表名 + VALUES(值1, 值2); 给全部字段添加数据
- INSERT INTO + 表名 + VALUES(值1, 值2),(值1, 值2),(值1, 值2); 批量添加数据
- INSERT INTO + 表名(字段1,字段2) + VALUES(值1, 值2),(值1, 值2),(值1, 值2);另一种批量添加数据方式
2.更新和删除
- UPDATE + 表名 + SET + 字段名1=值1, 字段名2=值2,... [WHERE 条件];修改数据
- DELETE FROM + 表名 [WHERE 条件]; 删除数据
五、DQL
1.DQL语法
- SELECT 查哪个字段
- FROM 从哪个表查
- WHERE 加查询条件
- GROUP BY 分组
- HAVING 对GROUP BY分组后的进行条件查询,类似于对一个组的数据WHERE操作
- ORDER BY 排序
- LIMIT 分页,控制返回多少数据
2.DQL-基本查询
- SELECT + 字段1,字段2 + FROM + 表名;查询多个字段
- SELECT * FROM + 表名; 查询所有
- SELECT 字段1[AS + 别名],字段2[AS + 别名] + FROM + 表名; 查询并设置表名
- SELECT DISTINCT + 字段列表 + FROM + 表名; 去除重复记录
3.DQL-条件查询
- SELECT + 字段 + FROM + 表名 + WHERE + 条件列表;
条件类型如图:
4.DQL-聚合函数
- SELECT + 聚合函数(字段列表) + FROM + 表名;
将一列数据作为整体,进行纵向计算。
常见聚合函数如图:
5.DQL-分组查询
- SELECT + 字段列表 + FROM + 表名 [WHERE + 条件] + GROUP BY + 分组字段名 [HAVING + 分组后过滤条件]
WHERE和HAVING的区别:
- 执行时机:WHERE是分组之前过滤,不满足条件不参与分组。HAVING是分组之后对结果进行过滤。
- 判断条件:WHERE不能对聚合函数进行判断,HAVING可以。
6.DQL-排序查询
- SELECT + 字段列表 + FROM + 表名 + ORDER BY + 字段1 排序方式1, 字段2 排序方式2;
排序方式:
- ASC:升序(默认)
- DESC:降序
7.DQL-分页查询
- SELECT + 字段列表 + FROM + 表名 + LIMIT + 起始索引, 查询记录数;
注意事项:
- 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数
- 如果查询第一页,起始索引可以省略,直接写成LIMIT 10
8.DQL-执行顺序
六、DCL
1.DCL-用户管理
-
USE mysql;
SELECT * FROM USER; 查询用户
-
CREATE USER + '用户名'@'主机名' + IDENTIFIED BY '密码'; 创建用户
-
ALTER USER + '用户名'@'主机名' + IDENTIFIED WITH mysql_native_password BY '新密码'; 修改用户密码
-
DROP USER + '用户名'@'主机名'; 删除用户
2.DCL-权限控制
- SHOW GRANTS FOR '用户名'@'主机名'; 查询权限
- GRANT + 权限列表 + ON + 数据库名.表 + TO + '用户名'@'主机名'; 授予权限
- REVOKE + 权限列表 + ON + 数据库名.表名 + FROM + '用户名'@'主机名'; 撤销权限
常用权限:
七、函数
1.字符串函数
常用字符串函数:
2.数值函数
常用数值函数:
3.日期函数
常用日期函数:
4.流程函数
可以在SQL语句中实现条件筛选,从而提高语句的效率
八、约束
约束是作用于表中字段商店规则,用于限制存储在表中的数据,从而保证数据库中数据的正确性、有效性和完整性。
分类: