一、数据库基本概念
-
数据库(DB):有组织存储数据的仓库。
-
数据库管理系统(DBMS):管理数据库的大型软件(如MySQL、Oracle)。
-
SQL:操作关系型数据库的标准编程语言。
-
关系型数据库特点:
-
基于二维表结构存储数据。
-
支持SQL统一操作。
-
数据一致性和完整性高。
-
二、SQL分类
| 分类 | 功能 | 常用命令 |
|---|---|---|
| DDL | 定义数据库对象(库、表、字段) | CREATE, ALTER, DROP, SHOW |
| DML | 操作数据增删改 | INSERT, UPDATE, DELETE |
| DQL | 数据查询 | SELECT(支持条件、聚合、分组、排序、分页) |
| DCL | 控制用户权限 | GRANT, REVOKE, CREATE USER |
三、DDL(数据定义语言)
-
数据库操作:
-
创建:
CREATE DATABASE [IF NOT EXISTS] 数据库名 -
删除:
DROP DATABASE [IF EXISTS] 数据库名 -
切换:
USE 数据库名
-
-
表操作:
-
创建表:
CREATE TABLE 表名 (字段名 类型 [约束]) -
修改表:
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP 字段 -
删除表:
DROP TABLE [IF EXISTS] 表名
-
-
数据类型:
-
数值类型:
INT,TINYINT,DECIMAL -
字符串类型:
CHAR(定长),VARCHAR(变长) -
日期时间:
DATE,DATETIME,TIMESTAMP
-
四、DML(数据操作语言)
-
插入数据:
-
INSERT INTO 表名 (字段) VALUES (值) -
批量插入:
VALUES (值1), (值2)
-
-
更新数据:
-
UPDATE 表名 SET 字段=值 [WHERE 条件]
-
-
删除数据:
-
DELETE FROM 表名 [WHERE 条件]
-
五、DQL(数据查询语言)
-
基础查询:
-
SELECT 字段列表 FROM 表名 -
别名:
字段 AS 别名 -
去重:
DISTINCT
-
-
条件查询:
-
比较运算符:
>,=,BETWEEN,IN -
逻辑运算符:
AND,OR,NOT -
模糊查询:
LIKE(%匹配任意字符,_匹配单个字符)
-
-
聚合函数:
-
COUNT,MAX,MIN,AVG,SUM
-
-
分组与排序:
-
分组:
GROUP BY 字段 [HAVING 条件] -
排序:
ORDER BY 字段 [ASC/DESC]
-
-
分页查询:
-
LIMIT 起始索引, 查询条数
-
六、DCL(数据控制语言)
-
用户管理:
-
创建用户:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码' -
删除用户:
DROP USER '用户名'@'主机名'
-
-
权限控制:
-
授权:
GRANT 权限 ON 数据库.表 TO '用户'@'主机名' -
撤销权限:
REVOKE 权限 ON 数据库.表 FROM '用户'@'主机名'
-
七、函数
-
字符串函数:
CONCAT,LOWER,UPPER,SUBSTRING,LPAD/RPAD -
数值函数:
CEIL,FLOOR,ROUND,RAND -
日期函数:
CURDATE,NOW,DATE_ADD,DATEDIFF -
流程函数:
IF,CASE ... WHEN ... THEN ... ELSE ... END
八、约束
| 约束类型 | 作用 | 关键字 |
|---|---|---|
| 主键 | 唯一标识,非空 | PRIMARY KEY |
| 外键 | 关联其他表的主键 | FOREIGN KEY |
| 唯一 | 字段值唯一 | UNIQUE |
| 非空 | 字段不能为NULL | NOT NULL |
| 默认值 | 未赋值时使用默认值 | DEFAULT |
| 检查约束 | 字段值满足条件 | CHECK(MySQL 8.0+) |
九、多表查询
-
连接查询:
-
内连接:
INNER JOIN(查询交集数据) -
左外连接:
LEFT JOIN(左表全部 + 右表匹配) -
右外连接:
RIGHT JOIN(右表全部 + 左表匹配)
-
-
自连接:同一表内连接,需起别名。
-
子查询:
-
标量子查询:返回单个值(如
SELECT MAX(salary))。 -
列/行子查询:返回一列或一行(配合
IN,ANY,ALL)。 -
表子查询:返回多行多列(用于
FROM后的临时表)。
-
十、事务
-
四大特性(ACID):
-
原子性:事务不可分割,全部成功或失败。
-
一致性:事务前后数据状态一致。
-
隔离性:事务间操作互不干扰。
-
持久性:事务提交后数据永久保存。
-
-
并发问题:
-
脏读:读到未提交的数据。
-
不可重复读:同一事务内多次读取结果不同。
-
幻读:查询无数据,插入时发现数据已存在。
-
-
隔离级别:
-
READ UNCOMMITTED:可能脏读、不可重复读、幻读。 -
READ COMMITTED:避免脏读。 -
REPEATABLE READ(默认):避免脏读、不可重复读。 -
SERIALIZABLE:完全隔离,避免所有问题。
-
-
事务控制:
-
开启事务:
START TRANSACTION -
提交事务:
COMMIT -
回滚事务:
ROLLBACK
-
总结:MySQL基础涵盖数据库概念、SQL语法分类(DDL/DML/DQL/DCL)、函数、约束、多表查询及事务管理。掌握这些内容可进行基本的数据库设计、数据操作与查询,并确保数据安全性和一致性。
