MySQL 程序设计课程复习大纲
作为一门基础的 MySQL 程序设计课程,期末复习的重点应放在常见的数据库操作、基本查询、数据建模、关系型数据库的规范化设计等方面。以下是针对基础课程的 MySQL 期末复习知识点。
1. MySQL 基础概念与数据库操作
-
数据库基础
- 数据库与表的概念
- 数据库管理系统(DBMS)的作用与功能
- MySQL 与其他数据库的区别
- MySQL 的安装与配置
-
基本的数据库操作
- 创建数据库:
CREATE DATABASE
- 删除数据库:
DROP DATABASE
- 查看当前数据库:
SHOW DATABASES
- 选择数据库:
USE
- 创建数据库:
-
表的创建与管理
- 创建表:
CREATE TABLE
- 删除表:
DROP TABLE
- 修改表结构:
ALTER TABLE
- 查看表结构:
DESCRIBE
或SHOW COLUMNS
- 表的约束:
PRIMARY KEY
、NOT NULL
、UNIQUE
、FOREIGN KEY
、CHECK
(根据 MySQL 版本)
- 创建表:
2. 数据类型与表设计
-
常用数据类型
- 整数类型:
INT
,TINYINT
,BIGINT
- 浮点类型:
FLOAT
,DOUBLE
,DECIMAL
- 字符类型:
CHAR
,VARCHAR
,TEXT
- 日期和时间类型:
DATE
,DATETIME
,TIMESTAMP
,TIME
- 布尔类型:
BOOLEAN
(实际上是TINYINT(1)
) - 枚举类型:
ENUM
、SET
- 整数类型:
-
字段约束
- 主键(Primary Key):唯一且不能为空,自动索引
- 外键(Foreign Key):与其他表的字段建立关联,维护参照完整性
- 唯一约束(Unique):保证字段值唯一
- 非空约束(NOT NULL):字段不能为空
- 默认值(DEFAULT):指定默认值
-
表的设计规范
- 数据库范式:第一范式 (1NF)、第二范式 (2NF)、第三范式 (3NF) 的概念与应用
- 如何避免冗余数据,设计合适的主外键关系
- 规范化与反规范化的选择
3. SQL 查询语言
-
基本查询
SELECT
查询:选择指定的列FROM
子句:指定查询的表WHERE
条件:筛选满足条件的记录ORDER BY
排序:根据一个或多个字段排序,ASC
(升序)、DESC
(降序)LIMIT
限制返回的记录数
-
常见的查询操作
- 使用
AND
,OR
,NOT
来组合多个条件 - 模糊查询:
LIKE
与通配符(%
,_
) IN
:指定多个可能的值BETWEEN
:范围查询NULL
判断:IS NULL
,IS NOT NULL
- 使用
-
聚合函数
- 常见聚合函数:
COUNT()
,SUM()
,AVG()
,MIN()
,MAX()
GROUP BY
:分组查询HAVING
:对分组结果进行筛选(与WHERE
的区别)
- 常见聚合函数:
4. 多表查询
-
连接查询
- 内连接(INNER JOIN):返回两个表中匹配的记录
- 左连接(LEFT JOIN):返回左表所有记录以及右表中匹配的记录
- 右连接(RIGHT JOIN):返回右表所有记录以及左表中匹配的记录
- 全连接(FULL JOIN):返回左右表所有记录(MySQL 不直接支持,需要使用
UNION
) - 自连接:同一个表进行连接查询
-
子查询
- 单行子查询:返回单行单列的结果
- 多行子查询:使用
IN
、ANY
、ALL
等关键字 - 关联子查询:在子查询中使用外部查询的字段
5. 数据操作语言(DML)
-
数据插入(INSERT)
- 插入单行数据:
INSERT INTO table (columns) VALUES (values)
- 插入多行数据:
INSERT INTO table (columns) VALUES (value1), (value2)
- 插入时使用默认值:
INSERT INTO table DEFAULT VALUES
- 插入单行数据:
-
数据更新(UPDATE)
- 更新指定字段的值:
UPDATE table SET column = value WHERE condition
- 多行更新:一次更新多条记录
- 更新指定字段的值:
-
数据删除(DELETE)
- 删除指定记录:
DELETE FROM table WHERE condition
- 删除所有记录:
DELETE FROM table
(不删除表结构)
- 删除指定记录:
6. 数据控制语言(DCL)
-
权限控制
- 用户管理:
CREATE USER
,DROP USER
,GRANT
,REVOKE
- 用户权限分配:授予、撤销权限,例如:
GRANT SELECT, INSERT ON database TO 'user'@'host'
- 用户管理:
-
事务控制
- 事务的概念:ACID(原子性、一致性、隔离性、持久性)
- 事务命令:
START TRANSACTION
,COMMIT
,ROLLBACK
- 锁机制:行级锁、表级锁
7. 索引与优化
-
索引的基本概念
- 索引的作用:提高查询效率
- 常见索引类型:单列索引、多列索引、唯一索引、全文索引
- 创建索引:
CREATE INDEX
- 删除索引:
DROP INDEX
-
查询优化
- 使用
EXPLAIN
查看查询执行计划 - 常见的查询优化技巧:避免全表扫描、减少子查询使用、合理设计索引
- 使用
8. 视图与存储过程
-
视图(View)
- 视图的概念与创建:
CREATE VIEW
- 查询视图与删除视图:
SELECT FROM view
、DROP VIEW
- 视图的概念与创建:
-
存储过程(Stored Procedures)
- 存储过程的创建与调用:
CREATE PROCEDURE
和CALL
- 参数:输入参数、输出参数、IN/OUT 参数
- 存储过程的使用场景与优化
- 存储过程的创建与调用:
9. 常见的错误与调试
- 常见的 SQL 错误
- 语法错误、数据类型错误、主外键约束错误
- 查询返回空结果或无匹配数据时的调试技巧
- 调试技巧
- 使用
SHOW ERRORS
查看错误信息 - 分析查询的执行计划
- 使用
复习建议:
- 重点掌握:SELECT 查询、JOIN 操作、数据的增删改查、表结构设计、索引与优化。
- 多做练习:通过大量的 SQL 练习来巩固知识点,尤其是多表查询、嵌套查询和子查询。