mysql基础语法包括哪些内容_mysql语法入门解析

来源:这里教程网 时间:2026-02-28 20:47:27 作者:

DDL:建库建表、改结构的底层命令

MySQL基础语法里,DDL(Data Definition Language)是操作数据库和表结构的起点。你每天写的

CREATE DATABASE
ALTER TABLE
DROP TABLE
都属于它——不是“查数据”,而是“搭架子”。

CREATE DATABASE IF NOT EXISTS itheima DEFAULT CHARSET utf8mb4;
:加
IF NOT EXISTS
是防止重复创建报错;
utf8mb4
是必须设的字符集,否则存 emoji 或某些生僻字会丢数据
DESC student;
SHOW CREATE TABLE student;
更快看字段名和类型,但看不到完整建表语句和索引定义
ALTER TABLE student ADD COLUMN phone VARCHAR(11) AFTER name;
:新增字段时用
AFTER
明确位置,避免字段顺序混乱影响应用层映射(尤其 ORM 场景)

DML:增删改数据的实操要点

DML(Data Manipulation Language)负责对表中真实数据下手,

INSERT
UPDATE
DELETE
看似简单,但线上事故八成出在这儿。

INSERT INTO student (id, name) VALUES (1, '张三'), (2, '李四');
:批量插入比单条快 5–10 倍,但要注意 MySQL 默认事务隔离级别下,整批要么全成功,要么全回滚
UPDATE student SET age = 20 WHERE id = 1;
:永远带
WHERE
!不加就是全表更新,没有回收站,执行完就不可逆
DELETE FROM student WHERE create_time :大表删旧数据别直接 <code>DELETE
,容易锁表;应分批加
LIMIT 1000
+ 循环,或改用
TRUNCATE
(但会重置自增ID)

DQL:SELECT 不只是“查”,而是数据提取的第一道过滤器

SELECT
是 MySQL 使用频率最高的语句,占日常操作 70% 以上。新手常以为“能出结果就行”,但字段选错、没加索引、滥用
LIKE '%xxx'
会直接拖垮性能。

别写
SELECT *
:即使开发环境看着快,一旦表加了 TEXT 字段或几十列,网络传输+内存开销翻倍;生产环境务必显式列出所需字段
SELECT name AS username, birthday AS birth_date FROM student ORDER BY id DESC LIMIT 20;
AS
改列名方便程序解析;
LIMIT
必须配合
ORDER BY
,否则分页结果不稳定
条件里慎用函数:
WHERE DATE(create_time) = '2025-01-01'
会让索引失效;应改写为
WHERE create_time >= '2025-01-01' AND create_time 

语法细节:大小写、分号、注释这些“小事”真会卡住你

MySQL 对大小写不敏感,但 Linux 下数据库名、表名默认区分大小写(Windows 不区分),这个差异在迁移或跨平台部署时经常引发

Table doesn't exist
错误。

所有语句结尾必须有分号
;
,否则客户端会一直等待输入,看起来像“卡死”
单行注释用
-- 
(注意空格)或
#
;多行用
/* ... */
;注释里别混用中文标点,某些客户端解析会失败
USE itheima;
后再执行
SHOW TABLES;
才能看到当前库的表;如果忘了
USE
SHOW TABLES;
会返回空,而不是报错——这个静默行为最容易让人误判库是否选对

实际写 SQL 时,最常被忽略的不是高级功能,而是建库时没设

utf8mb4
、删数据前没
SELECT COUNT(*)
预估量、以及
UPDATE
永远不加
WHERE
条件。这些动作本身只多敲几个字符,但漏掉一次,可能就得加班恢复备份。

相关推荐