MySQL SQL语句详解:从建库建表到增删改查操作

落日邮差
落日邮差
发布时间:2026-10-15 | 3人浏览过
原创

本文介绍MySQL中常用的标准SQL语句,包括创建数据库、表结构管理以及数据的增删改查操作。通过具体语法示例和注意事项,帮助开发者快速掌握数据库基础技能。

MySQL SQL语法基础

MySQL作为广泛使用的关系型数据库,其SQL语言遵循一定规范。在使用时需注意以下几点:

  • 语句结尾:通常以分号;结束。
  • 大小写敏感性:SQL关键字不区分大小写,但建议将关键字大写以提高可读性。
  • 书写格式:支持单行或多行书写,适当使用空格和缩进增强清晰度。

对数据库的基本操作

数据库是存放数据表的容器。创建数据库时建议指定字符集和排序规则,推荐使用 UTF8mb4 字符集以支持emoji等特殊字符,配合 utf8mb4_bin 等排序规则确保数据一致性。

-- 语法:
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARACTER SET 字符集 COLLATE 排序规则];

-- 示例:创建一个名为mydb1的数据库
CREATE DATABASE IF NOT EXISTS mydb1 DEFAULT CHARACTER SET utf8mb4;

注意:IF NOT EXISTS 可防止在数据库已存在时报错;省略该子句且数据库已存在时执行会抛出错误。

对表的操作

表是实际存储数据的对象,日常开发中最频繁的操作多集中在表层面。

第1步:创建表结构与定义列

使用 CREATE TABLE 定义表及其字段。每个字段需指定名称、类型,并可通过 COMMENT 添加注释说明。最后一个字段的定义后不应加逗号。

CREATE TABLE emp (
  eid CHAR(6) COMMENT '编号',
  ename VARCHAR(50) COMMENT '姓名',
  age INT COMMENT '年龄',
  gender VARCHAR(6) COMMENT '性别',
  birthday DATE COMMENT '出生日期',
  hiredate DATE COMMENT '入职日期',
  salary DECIMAL(7, 2) COMMENT '薪水',
  RESUME VARCHAR(1000) COMMENT '简介'
) COMMENT '员工表';

未显式指定字符集时,新表默认继承所在数据库的设置。若表已存在,直接执行上述语句会报错,建议结合业务逻辑判断或使用 IF NOT EXISTS(部分场景下需谨慎验证兼容性)。

第2步:查看与修改表结构

随着需求变化,可能需要查看或调整现有表结构。

-- 查看所有表名
SHOW TABLES;

-- 查看表结构定义
DESC emp;

-- 删除表(慎重执行)
DROP TABLE emp;

警告:DROP TABLE 会永久删除表及其所有数据,不可恢复,请务必确认备份后再操作。

使用 ALTER TABLE 进行结构变更:

-- 1. 添加列:给stu表增加classname字段
ALTER TABLE stu ADD classname varchar(100);

-- 2. 修改列类型:将gender列改为CHAR(2)
ALTER TABLE stu MODIFY gender CHAR(2);

-- 3. 修改列名:将gender重命名为sex
ALTER TABLE stu CHANGE gender sex CHAR(2);

-- 4. 删除列:移除classname字段
ALTER TABLE stu DROP classname;

-- 5. 修改表名:将stu更名为student
ALTER TABLE stu RENAME TO student;

数据的插入与更新

第3步:插入数据 (INSERT)

使用 INSERT INTO 向表中添加记录。字段顺序必须与VALUES中的值一一对应。如果插入全部列且按顺序排列,可省略列名列表。

-- 插入单条记录
INSERT INTO stu VALUES('s_1002', 'liSi', 32, 'female');

-- 插入多条记录(效率更高)
INSERT INTO table_name (col1, col2...) 
VALUES ('val1', 'val2...'), ('val3', 'val4...');

第4步:更新数据 (UPDATE)

修改已有记录时,务必带上 WHERE 条件,否则会导致全表数据被意外覆盖。

-- 更新指定记录
UPDATE stu 
SET sname='zhangSanSan', age=32, gender='female' 
WHERE sid='s_1001';

数据的删除

第5步:安全删除记录 (DELETE)

DELETE FROM 用于删除特定行。同样需要严格的 WHERE 过滤条件。

-- 删除id为s_1001的记录
DELETE FROM stu WHERE sid='s_1001';

风险提示:若遗漏 WHERE 子句,执行结果将是清空整张表的数据。生产环境中严禁随意执行无条件的 DELETE 操作。

数据的查询

查询是获取数据的核心方式,主要依赖 SELECT 语句。

第6步:基本查询

-- 查询所有列
SELECT * FROM stu;

-- 查询指定列
SELECT field1, field2 FROM table_name;

第7步:条件筛选 (WHERE)

通过 WHERE 子句过滤数据,支持多种运算符与逻辑组合:

  • 比较运算符:=, <> (不等于), <, >, <=, >=
  • 范围与集合:BETWEEN...AND, IN(set)
  • 空值检查:IS NULL / IS NOT NULL
  • 逻辑运算符:AND (且), OR (或), NOT (非)
-- 示例:查找女性且年龄小于50岁的学生
SELECT * FROM stu 
WHERE gender = 'female' AND age < 50;

以上就是MySQL中SQL标准语句的详细使用方法,涵盖了从结构创建到数据操作的全流程,更多关于MySQL进阶技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表