从 SQL 语句到数据库操作

1. SQL 语句分类
  • 数据定义语言 DDL : 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。createdrop alter

  • 数据操作语言 DML : 用于添加、删除、更新数据库中的数据。selectinsert alterdrop

  • 数据控制语言 DCL : 用于控制访问权限和管理数据库的安全性。grantrevokecommit

2. 存储引擎

存储引擎是数据库管理系统中的关键组件,它决定了数据如何被存储、组织以及检索

在 MySQL 中创建一个新的数据库时,会在文件系统上为该数据库创建一个对应的目录。

这个数据库通常包含了与该数据库相关的、所有表的数据文件、索引文件、以及其它文件。

不同的存储引擎可能会以不同的方式组织这些文件。

  • InnoDB : 默认存储引擎,支持事务处理、行级锁定和外键约束。InnoDB 设计用于最大化数据完整性和高并发环境下的性能。

​ 适用于需要频繁写入操作,和事务支持的应用场景。

  • MyISAM : 不支持事务和行级锁定,但提供高速的查询性能和简单的维护管理。MyISAM 使用表级锁定,在执行写操作时,整个表会被锁定。

​ 适合读密集型应用,但在高并发写场景时可能会遇到性能瓶颈。

3. 字符集和校验规则
3.1 数据库默认的字符集和校验规则

查看系统默认字符集:

sql 复制代码
show variables like 'character_set_database';

查看系统默认校验规则:

sql 复制代码
show variables like 'collation_database';
  • utf8mb4 : 字符集名称,表示支持完整的 Unicode 字符集,包括 4 字节的 UTF-8 编码字符。
  • utf8mb4_0900_ai_ci : 一种基于 Unicode 9.0.0 标准、忽略重音和大小写的校验规则,适用于 utf8mb4 字符集。
3.2 数据库支持的字符集和校验规则

查看数据库支持的字符集和字符集校验规则:

sql 复制代码
show charset;    # 查看数据库支持的字符集
show collation;  # 查看数据库支持的字符集校验规则
3.3 校验规则对数据库的影响
  • 不区分大小写
sql 复制代码
create database temp2 charset=utf8mb4; # 使用默认字符串校验规则,不区分大小写
use temp2;
create table person (name varchar(20));

insert into person values('a');
insert into person values('b');
insert into person values('c');
insert into person values('A');
insert into person values('B');
insert into person values('C');
  • 区分大小写
sql 复制代码
create database temp3 charset=utf8mb4 collate=utf8mb4_bin; # utf8mb4_bin 区分大小写
use temp3;
create table person (name varchar(20));

insert into person values('a');
insert into person values('b');
insert into person values('c');
insert into person values('A');
insert into person values('B');
insert into person values('C');
4. 修改、备份和恢复数据库
4.1 修改数据库
sql 复制代码
show create database temp2; # 查看数据库`temp2`是如何创建的
sql 复制代码
alter database temp2 charset=gbk; # 修改数据库`temp2`字符集为 gbk
show create database temp2;
4.2 备份数据库
shell 复制代码
mysqldump -P3306 -uroot -p -Btemp2 > /home/ZhengTongren/MySQL/temp2.bak
  • mysqldump 是一个命令行工具,而不是 SQL 语句,不能在 MySQL 客户端中直接运行。
  • mysqldump 需要指定一个具体的文件路径来保存文件;如果想备份保存到 /home/ZhengTongren/MySQL/ 路径下,需要确保该目录存在,并提供一个具体的文件名。
4.3 恢复数据库

登入 MySQL 客户端。

sql 复制代码
source /home/ZhengTongren/MySQL/temp2.bak;
5. 修改表
sql 复制代码
desc person; # 查看表`person`的结构信息

# 插入两条数据
insert into person values (1, '张三');
insert into person values (2, '李四');
5.1 在 person 表中添加一个字段,保存 '年龄'
sql 复制代码
alter table person add age int comment '年龄' after name; # 在 name 后加入 age 列
select * from person;

插入新字段后,对原来表中的数据没有影响。

sql 复制代码
update person set age = 18 where name='张三';
update person set age = 21 where name='李四';
5.2 修改 name 字段长度,修改表名
sql 复制代码
# 修改 name 字段长度为 30
alter table person modify name varchar(30);
desc person;
# 修改表名
alter table person rename employee;
select * from employee;
5.3 删除 id 列

删除表中的一个字段时,该字段及其对应的所有数据都将被永久删除。

sql 复制代码
alter table employee drop id; # 前面修改过表名
select * from employee;
相关推荐
水龙吟啸几秒前
华为2026.6.24机考选择题+编程题【速刷敲黑板】
人工智能·深度学习·算法·机器学习·华为
花开彼岸天~14 分钟前
01 鸿蒙 NEXT 开发环境搭建完全指南(DevEco Studio 5.0)
华为·harmonyos
三声三视17 分钟前
Electron 鸿蒙 PC 上关了子窗口,主窗口也卡死不动——我翻了 Chromium 源码才找到一行注释
electron·harmonyos·鸿蒙
科技侃谈22 分钟前
鸿蒙升级机型全指南——手机、平板、PC、穿戴全品类支持
智能手机·电脑·harmonyos
Quincy_Freak26 分钟前
银河麒麟 SQLite 实操:Excel 导入与 SQL 语法编辑功能详解摘要
数据库·arm·数据库管理·大数据分析·银河麒麟·aarch64·sqlitego
七夜zippoe31 分钟前
OpenClaw 数据加密:敏感信息保护的完整方案
数据库·mysql·php·openclaw·敏感保护
在书中成长34 分钟前
HarmonyOS 小游戏《对战五子棋》开发第15篇 - Alpha-Beta剪枝优化:让AI思考更快
人工智能·harmonyos
Dovis(誓平步青云)40 分钟前
《C/C+++ Boost 轻量级搜索引擎实战:架构流程、技术栈与工程落地指南——HTML文件的清洗(上篇)》
开发语言·数据库·c++·搜索引擎·开源
蚁库3 小时前
Oracle 12c + ASM + UDEV 实战教程:从磁盘规划到日常管理,10节视频完整通关
数据库·oracle
●VON9 小时前
HarmonyKit | 时间戳转换:自动识别秒/毫秒与双向转换器实现
华为·harmonyos·鸿蒙