数据库知识点

一、基础概念

  1. 数据库 (DB):长期存储、有组织、可共享的数据集合。
  2. 数据库管理系统 (DBMS):管理数据库的软件(MySQL、Oracle、SQL Server)。
  3. 数据库系统 (DBS):DB+DBMS + 硬件 + 人员 + 应用程序。
  4. 数据模型 :层次模型、网状模型、关系模型(主流,二维表结构)。

二、关系型数据库核心术语

  • 表 (Table):二维数据表,行 + 列组成。
  • 行 / 记录 (Row/Record):一条完整数据。
  • 列 / 字段 (Column/Field):数据属性。
  • 主键 (Primary Key):唯一标识一行,非空、唯一。
  • 外键 (Foreign Key):关联两张表,保证参照完整性。
  • 唯一键 (Unique):值唯一,允许为空。
  • 非空 (Not Null):字段必须有值。
  • 默认值 (Default):字段未赋值时使用预设值。

三、三大完整性约束

  1. 实体完整性:主键非空、唯一。
  2. 参照完整性:外键取值必须在主表主键中存在,或为空。
  3. 用户自定义完整性:根据业务自定义规则(如年龄范围)。

四、SQL 分类(重点)

1. DDL 数据定义语言(建库、建表、改结构)

  • CREATE:创建库、表、索引
  • ALTER:修改表结构
  • DROP:删除库、表
  • TRUNCATE:清空表数据(不删结构,不可回滚)

2. DML 数据操作语言(增删改查)

  • SELECT:查询(使用频率最高)
  • INSERT:插入数据
  • UPDATE:更新数据
  • DELETE:删除数据

3. DQL 数据查询语言(归属于 SELECT)

查询完整语法顺序

sql

复制代码
SELECT 字段
FROM 表名
WHERE 条件
GROUP BY 分组字段
HAVING 分组后条件
ORDER BY 排序
LIMIT 分页

常用函数:

  • 聚合函数:COUNT计数、SUM求和、AVG平均、MAX最大值、MIN最小值
  • 字符 / 时间函数:CONCAT、SUBSTR、NOW()等

4. DCL 数据控制语言(权限管理)

  • GRANT:授权
  • REVOKE:撤销权限

5. TCL 事务控制语言

  • COMMIT:提交事务
  • ROLLBACK:回滚事务
  • SAVEPOINT:设置保存点

五、事务(ACID 四大特性)

  1. 原子性 (A):事务要么全部执行,要么全部回滚。
  2. 一致性 (C):事务前后数据状态合法。
  3. 隔离性 (I):多个事务互不干扰。
  4. 持久性 (D):事务提交后数据永久保存。

事务隔离级别(由低到高)

读未提交 → 读已提交 → 可重复读(MySQL 默认)→ 串行化 问题:脏读、不可重复读、幻读。

六、表关系

  1. 一对一:一张表一条记录对应另一表一条记录。
  2. 一对多:最常用(如:部门→员工),多方加外键。
  3. 多对多 :需中间表,两张主键作为中间表联合主键。

七、索引(优化查询核心)

  1. 作用 :加快查询速度,降低排序 / 分组开销;副作用:增删改变慢、占用空间。
  2. 分类:
    • 主键索引:默认创建,唯一 + 非空
    • 唯一索引:值唯一
    • 普通索引:最基础索引
    • 联合索引:多个字段组成,遵循最左前缀原则
  3. 索引失效场景:like %xx、字段运算、隐式类型转换、or无索引等。

八、范式(数据库设计规范)

目的:减少冗余、避免插入 / 更新 / 删除异常

  1. 1NF 第一范式:列不可再分(原子性)。
  2. 2NF 第二范式 :满足 1NF,消除部分依赖(非主键字段完全依赖主键)。
  3. 3NF 第三范式 :满足 2NF,消除传递依赖(非主键不依赖其他非主键)。

实际开发常适当反三范式,用冗余换查询效率。

九、连接查询(多表查询)

  • 内连接 (INNER JOIN):只取两表匹配数据
  • 左连接 (LEFT JOIN):左表全部保留,右表匹配显示,无则 null
  • 右连接 (RIGHT JOIN):右表全部保留
  • 全连接:两表数据都保留(MySQL 不支持,可用 union 模拟)

十、视图、存储过程、触发器

  1. 视图 (View):虚拟表,基于查询结果,简化复杂查询,不存真实数据。
  2. 存储过程:封装多条 SQL,预编译,反复调用,减少网络传输。
  3. 触发器:表发生增删改时自动执行指定 SQL。

十一、MySQL 高频补充

  1. 引擎
    • InnoDB:默认,支持事务、外键、行级锁
    • MyISAM:不支持事务,表级锁,查询快
  2. 锁机制
    • 行锁:InnoDB,粒度小,并发高
    • 表锁:MyISAM,粒度大,并发低
  3. 慢查询:记录执行慢的 SQL,用于性能调优。

十二、数据库安全与优化

  • 安全:账号权限、密码加密、备份恢复。
  • 优化方向:SQL 优化、索引优化、表结构优化、服务器配置优化。
相关推荐
IvorySQL3 小时前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)
数据库·postgresql·区块链
贝猫说python5 小时前
大模型比赛2.3智能体开发(工具调用智能问答助手)
数据库·oracle
许彰午6 小时前
28-ORA-01110数据文件读取错误
数据库·oracle
凯凯姜6 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
猫咪很可爱7 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践
数据库·oracle
九零HTTP8 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
Data-Miner8 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南
大数据·数据库·数据分析
袋鼠云数栈9 小时前
让 SQL 解析不再重复造轮子:SqlParserX 正式开源
数据库·人工智能·sql·开源·数据治理
这个DBA有点耶9 小时前
期货 CTP 系统 Oracle RAC 迁移国产库实战:读写分离架构设计与性能对标
数据库·架构·dba
数据库安全9 小时前
AI数据访问安全 |如何控制AI访问权限,防止越权
数据库·安全