news 2026/8/16 6:58:34

从 SQL 语句到数据库操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 SQL 语句到数据库操作
1. SQL 语句分类
  • 数据定义语言DDL: 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。createdropalter

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

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

2. 存储引擎

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

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

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

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

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

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

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

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

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

查看系统默认字符集:

show variables like 'character_set_database';

查看系统默认校验规则:

show variables like 'collation_database';

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

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

show charset; # 查看数据库支持的字符集 show collation; # 查看数据库支持的字符集校验规则
3.3 校验规则对数据库的影响
  • 不区分大小写

    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’);

  • 区分大小写

    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 修改数据库
show create database temp2; # 查看数据库`temp2`是如何创建的

alter database temp2 charset=gbk; # 修改数据库`temp2`字符集为 gbk show create database temp2;

4.2 备份数据库
mysqldump -P3306 -uroot -p -Btemp2 > /home/ZhengTongren/MySQL/temp2.bak
  • mysqldump是一个命令行工具,而不是 SQL 语句,不能在 MySQL 客户端中直接运行。
  • mysqldump需要指定一个具体的文件路径来保存文件;如果想备份保存到/home/ZhengTongren/MySQL/路径下,需要确保该目录存在,并提供一个具体的文件名。

4.3 恢复数据库

登入 MySQL 客户端。

source /home/ZhengTongren/MySQL/temp2.bak;
5. 修改表
desc person; # 查看表`person`的结构信息 # 插入两条数据 insert into person values (1, '张三'); insert into person values (2, '李四');

5.1 在 person 表中添加一个字段,保存 ‘年龄’
alter table person add age int comment '年龄' after name; # 在 name 后加入 age 列 select * from person;

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

update person set age = 18 where name='张三'; update person set age = 21 where name='李四';

5.2 修改 name 字段长度,修改表名
# 修改 name 字段长度为 30 alter table person modify name varchar(30); desc person; # 修改表名 alter table person rename employee; select * from employee;

5.3 删除 id 列

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

alter table employee drop id; # 前面修改过表名 select * from employee;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 16:05:53

vLLM部署大模型时,FP16和AWQ量化到底该怎么选?实测对比告诉你答案

vLLM部署大模型:FP16与AWQ量化的实战选择指南 当你在深夜的办公室里盯着服务器监控面板,发现显存占用即将爆表而推理请求还在不断涌入时,选择正确的模型量化策略就成了生死攸关的决定。作为经历过数十次大模型部署的老兵,我清楚地…

作者头像 李华
网站建设 2026/7/14 16:05:57

SSH 与 SSL

SSH 与 SSL 的核心联系与区别 SSH 和 SSL 都是网络安全通信协议,核心目标是为网络传输提供加密与身份验证。尽管两者在设计定位、应用场景和底层机制上有所不同,但从技术原理和应用角度来看,它们有着紧密的联系。一、核心共性 1. 加密与安全…

作者头像 李华
网站建设 2026/7/14 16:06:12

Unity:利用In-game Debug Console插件高效调试与日志管理

1. 为什么你需要In-game Debug Console插件 如果你正在用Unity开发游戏或应用,肯定遇到过这样的场景:测试时突然出现一个Bug,但传统调试方式要么要反复切回编辑器看Console窗口,要么得手动添加Debug.Log把日志打印得到处都是。这…

作者头像 李华
网站建设 2026/7/14 16:05:58

解决Qt中C语言printf输出中文乱码的编码冲突问题

1. 为什么Qt中printf输出中文会乱码? 第一次在Qt项目里用C语言的printf打印中文时,看到控制台输出一堆问号或乱码,我整个人都是懵的。后来才发现这是编码格式在"打架"——就像两个说不同语言的人试图交流,结果谁也听不懂…

作者头像 李华
网站建设 2026/7/14 16:06:09

5分钟实现语音转文字?AsrTools让音频处理效率提升10倍的秘密

5分钟实现语音转文字?AsrTools让音频处理效率提升10倍的秘密 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into acc…

作者头像 李华