一、数据库基本概念
-
数据库(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)、函数、约束、多表查询及事务管理。掌握这些内容可进行基本的数据库设计、数据操作与查询,并确保数据安全性和一致性。