MySQL 第一节课笔记梳理
第一章
一、数据库理论基础
- 数据:描述事物的符号记录,形式多样(数字、文字、图形等 ),经数字化可存于计算机。
- 数据库特性:
- 数据结构化,共享性、冗余性可控(低冗余易扩充 ),独立性高(物理、逻辑独立 )。
- 由 DBMS 统一管理,保障安全性、完整性,处理并发与故障恢复。
- 数据库管理系统(DBMS):实现数据快速检索、维护,为数据安全、完整、并发控制和恢复兜底,核心用于存储海量数据。
- 元数据 vs 数据:元数据是属性描述,数据指内容本身。
二、DBMS 支持的模型
- 层次模型:树形结构,单根节点(无父节点),其他节点仅一个父节点。
- 优点:结构直观,契合层级关系,父节点快速定位子节点,查询高效。
- 缺点:灵活性差、数据冗余、维护难,早期 IBM IMS 用于简单层级场景。
- 网状模型:非层级关系,节点多父节点,支持“多对多/多对一”关联。
- 优点:比层次模型灵活,直表多对多、降冗余,“系”关联查询快。
- 缺点:结构复杂难设计维护,数据独立性低,物理结构变易致程序修改。
- 关系模型:以二维表组织数据(后续重点,如 MySQL 核心模型 )。
- 面向对象模型:结合面向对象思想,用对象封装数据与操作(拓展方向 )。
三、MySQL 特性
- 多编译器保障源码可靠,提供多语言 API 适配开发。
- 多语言支持、多连接方式(TCP/IP、ODBC、JDBC )。
- 配套管理工具,覆盖数据管理、检查、优化全流程。
- 支撑千万级记录大型数据库,应对业务数据存储需求。
四、MySQL 架构分层
1.网络连接层:处理客户端连接、通信,接收/转发请求。
2.数据库服务层:核心业务逻辑,SQL 解析、优化,执行查询、事务处理。
3.存储引擎层:负责物理存储、读写,不同引擎(InnoDB、MyISAM )特性适配场景。
4.系统文件层:管理物理文件,含数据文件、日志文件,落地存储数据与操作记录。
第二章
一、SQL 类别划分
1.DDL(数据定义语言):用于定义数据库结构,常用命令包括 create
(创建)、drop
(删除)、alter
(修改)、show
(查看)。
2.DML(数据操作语言):用于操作表中的数据,包括 insert
(插入)、delete
(删除)、update
(更新)。
3.DQL(数据查询语言):属于 DML 的子集,专门用于查询数据,核心命令为 select
。
4.DCL(数据控制语言):用于管理数据库权限,例如 create user
(创建用户)
二、SQL 语句书写规范
1.大小写规则:SQL 语句不区分大小写(建议关键字用大写),但字符串常量区分大小写。
2.语句格式:可单行或多行书写,必须以 ;
结尾。
3.关键词要求:不能跨多行或简写。
4.可读性优化**:用空格和缩进分隔,子句通常单独成行。**
5.注释方式:1.多行注释:/**/。
2.单行注释:-- 或# 。
三、MySQL 内置指令 :指令可不带分号结尾
常用指令如下:
\?:查看帮助。use 库名或 \u 库名:切换数据库。system 命令或 \\! 命令:执行系统命令。delimiter 符号 或 \d 符号:自定义 SQL 语句终止符。clear 或 \c:清空当前命令行语句。exit`/quit或 \q:退出 MySQL 终端。
四、数据库操作语句
1.创建数据库:
sql create database 数据库名; -- 直接创建(若已存在会报错) create database if not exists 数据库名; -- 不存在时才创建
2.查看数据库:
sql show databases; -- 列出所有数据库 show create database 数据库名; -- 查看完整建库语句
3.删除数据库:
sql drop database 库名;
4.使用与验证数据库:
sql use 库名; -- 切换到目标数据库 select database(); -- 查看当前使用的数据库
五、字符集相关
1.常见字符集分类:
ASCII 及扩展:仅支持英文及基础符号,扩展版支持部分欧洲语言,兼容性差。
2.查看字符集相关信息:
sql show character set; 等同于 show charset; 列出所有支持的字符集 show collation; -- 查看排序规则 show variables like '%character%'; 查看数据库字符集相关配置
七、表操作语句
1.创建表:
sql 基础语法
create table 表名 (字段名1 数据类型, 字段名2 数据类型, ...); -- 指定字符集和排序规则 create table 表名 (字段名1 数据类型, ...) character set 字符集 collate 字符集_ci;
2.删除表:
sql drop table 表名;
3.查看表:
sql show tables; -- 查看当前库的所有表 show tables from 库名; -- 查看指定库的表 show tables like 'stu%'; -- 模糊查询(%:任意长度字符;_:单个字符) show create table 表名; -- 查看完整建表语句
4.修改表名:sql
alter table 表名 rename 新表名; -- 等同于 rename table 表名 to 新表名;
5.查看表结构:
sql desc 表名; -- 等同于 explain 表名; 或 describe 表名; show columns from 表名;
6.修改表字段:
1.添加字段:alter table 表名 add 字段名 数据类型 [after|first 字段名];
2.删除字段:alter table 表名 drop 字段名;
3.修改字段名/类型:alter table 表名 change 旧字段名 新字段名 数据类型;
4.仅修改类型:alter table 表名 modify 字段名 新数据类型;