1. 项目概述
作为一名数据库工程师,我经常需要整理MySQL的学习笔记。2026年3月4日上午的34节课,主要聚焦在数据库创建和SQL语句执行这两个核心技能点上。这节课的内容看似基础,但却是每个数据库从业者必须扎实掌握的看家本领。
在实际工作中,我发现很多初级开发者虽然能写出复杂的SQL查询,却经常在基础的数据库创建环节犯错。这节课的笔记详细记录了从零开始创建数据库,到执行各类SQL语句的全过程,包括DDL、DML、DQL等不同类型的SQL语句操作。这些内容不仅适用于MySQL初学者,对有经验的开发者来说也是一次很好的知识梳理机会。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心概念解析
2.1 数据库创建基础
创建数据库是使用MySQL的第一步,也是最容易被忽视的环节。很多人直接使用默认配置创建数据库,这在实际生产环境中是非常危险的做法。正确的数据库创建需要考虑字符集、排序规则、存储引擎等多个关键参数。
字符集的选择直接影响数据的存储和检索。我推荐使用utf8mb4而不是老旧的utf8,因为utf8mb4支持完整的Unicode字符集,包括emoji表情符号。排序规则则决定了字符串比较和排序的方式,常用的有utf8mb4_general_ci(不区分大小写)和utf8mb4_bin(二进制比较)。
2.2 SQL语句分类
SQL语句主要分为以下几类:
- DDL(数据定义语言):用于定义数据库对象,如CREATE、ALTER、DROP等
- DML(数据操作语言):用于操作数据,如INSERT、UPDATE、DELETE等
- DQL(数据查询语言):主要是SELECT查询语句
- DCL(数据控制语言):如GRANT、REVOKE等权限控制语句
- TCL(事务控制语言):如COMMIT、ROLLBACK等事务相关语句
理解这些分类有助于我们更好地组织SQL语句,并在适当的场景使用正确的语句类型。
3. 实操步骤详解
3.1 数据库创建实操
让我们从最基础的数据库创建开始。以下是一个完整的数据库创建语句:
sql复制CREATE DATABASE `company_db`
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
这个语句创建了一个名为company_db的数据库,使用utf8mb4字符集和utf8mb4_unicode_ci排序规则。我特意使用了反引号(`)包裹数据库名,这是一种良好的习惯,可以避免使用MySQL保留关键字作为名称时出现问题。
创建数据库后,我们需要确认数据库是否创建成功:
sql复制SHOW DATABASES;
这个命令会列出当前MySQL实例中的所有数据库,我们可以检查company_db是否在列表中。
3.2 表创建与结构设计
有了数据库后,下一步是创建表。表的设计是数据库应用的核心,需要考虑字段类型、主键、索引等多个因素。以下是一个员工表的创建示例:
sql复制CREATE TABLE `employees` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`email` VARCHAR(100) UNIQUE,
`department_id` INT,
`salary` DECIMAL(10,2),
`hire_date` DATE,
PRIMARY KEY (`id`),
INDEX `idx_department` (`department_id`),
CONSTRAINT `fk_department`
FOREIGN KEY (`department_id`)
REFERENCES `departments` (`id`)
) ENGINE=InnoDB;
这个表定义包含了多个重要元素:
- 自增主键id
- 非空的name字段
- 唯一的email字段
- 外键关联到departments表
- 适当的索引
- 明确指定使用InnoDB引擎
注意:在生产环境中,表设计需要更详细的规划,包括字段注释、更精确的数据类型选择等。
3.3 数据操作语言(DML)实践
3.3.1 插入数据
插入数据是最基本的DML操作。以下是几种不同的INSERT语句写法:
