mysql 教程

45 阅读2分钟

非常棒 👍
这个问题问得非常实用!
要想真正看懂、写懂 MySQL(包括 NestJS、TypeORM 的底层 SQL),必须先掌握一些「核心 SQL 单词(关键字)」——
这些是数据库的基础语法词汇,就像编程语言的语法关键字一样。

下面我给你整理出 最全、最该理解透的 MySQL 必备单词清单(分模块讲解),每个都配有中文解释 👇


🧱 一、基础操作类(增删改查)

关键字说明
select查询数据
from指定要查询的表
where条件过滤
insert into插入数据
values插入的值
update更新数据
set指定要修改的列
delete删除数据
as别名(字段或表的别名)

✅ 例子:

select name, age from users where age > 18;
insert into users (name, age) values ('Tom', 20);
update users set age = 25 where id = 1;
delete from users where id = 3;

📋 二、表结构类(建表、修改表)

关键字说明
create table创建表
drop table删除表
alter table修改表结构
add添加字段
modify修改字段类型
rename重命名表或字段
truncate清空表数据(比 delete 快)

✅ 例子:

create table users (
  id int primary key auto_increment,
  name varchar(50)
);

alter table users add column age int;
drop table orders;

🔗 三、外键与约束类

关键字说明
primary key主键(唯一标识一条记录)
foreign key外键(关联另一张表)
references外键指向的表与字段
unique唯一约束
not null不允许为空
default默认值
on delete / on update外键行为(级联等)
auto_increment自动递增

✅ 例子:

create table orders (
  id int primary key auto_increment,
  user_id int,
  foreign key (user_id) references users(id) on delete cascade
);

🧩 四、连接查询类(多表)

关键字说明
join连接(通用写法)
inner join内连接(取两表都匹配的)
left join左连接(保留左表全部)
right join右连接(保留右表全部)
on指定连接条件
group by分组
having对分组结果过滤
order by排序
limit限制返回条数
distinct去重

✅ 例子:

select u.name, o.order_no
from users u
left join orders o on u.id = o.user_id
where u.age > 18
order by u.name asc
limit 10;

⚙️ 五、函数与表达式类

关键字说明
count()统计数量
sum()求和
avg()平均值
max() / min()最大 / 最小值
if() / case when条件判断
concat()字符串拼接
substr()截取字符串
now()当前时间
between ... and ...范围查询
in (...)匹配集合
like模糊查询(支持 %

✅ 例子:

select name, age, if(age > 18, '成人', '未成年') as type from users;
select count(*), avg(price) from orders;

🔐 六、权限与管理类(了解即可)

关键字说明
create user创建数据库用户
grant授权
revoke撤销权限
use切换数据库
show databases显示所有数据库
show tables显示当前数据库的表
describe / desc查看表结构

🌟 七、索引与性能类(进阶)

关键字说明
index创建普通索引
unique index唯一索引
primary key主键索引
explain查看 SQL 执行计划(性能分析)
analyze分析表
optimize优化表存储

✅ 例子:

create index idx_name on users(name);
explain select * from users where name='Tom';