原生 SQL 常用核心语句基础语法

原生 SQL 语句虽然看起来很多,但其实只要按照功能划分,核心语法非常好记。我们可以把它们分为四大类(常说的 CRUD),外加一个控制权限的类别。

为了让你更直观地掌握,我为你整理了一份最常用的核心语句速查表:

分类 核心关键字 作用说明
DQL (数据查询) SELECT 从数据库中提取你需要的数据
DML (数据操作) INSERT, UPDATE, DELETE 对表里的数据进行增、改、删
DDL (数据定义) CREATE, ALTER, DROP 搭建或修改数据库和表的"骨架"结构
DCL (数据控制) GRANT, REVOKE 管理数据库的用户账号和操作权限

下面为你详细介绍每一类的常用基础语法:

🔍 DQL:数据查询语言 (Data Query Language)

这是日常开发中使用频率最高的部分,核心就是 SELECT 语句。

1. 基础查询

  • 查询表中所有字段(生产环境慎用):SELECT * FROM 表名;
  • 查询指定字段:SELECT 字段1, 字段2 FROM 表名;
  • 给字段起别名(方便阅读):SELECT 字段1 AS 别名 FROM 表名;
  • 去重查询:SELECT DISTINCT 字段名 FROM 表名;

2. 条件过滤与排序

  • 带条件的查询:SELECT * FROM 表名 WHERE 字段 = 值;
  • 模糊查询(比如查名字带"张"的):WHERE 姓名 LIKE '张%'; (%代表任意字符)
  • 范围查询:WHERE 年龄 BETWEEN 18 AND 25; 或 WHERE id IN (1, 2, 3);
  • 排序:ORDER BY 字段名 DESC; (DESC为降序,ASC或不写默认为升序)
  • 分页限制:LIMIT 10; (只返回前10条数据)

3. 聚合统计

  • 配合 COUNT、SUM、AVG 等函数使用:SELECT COUNT(*) FROM 表名;
  • 分组统计:SELECT 部门, COUNT(*) FROM 员工表 GROUP BY 部门;

🛠️ DML:数据操作语言 (Data Manipulation Language)

用来对表里的具体记录进行"增删改"。

1. 插入数据 (INSERT)

  • 插入单条:INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2);
  • 插入多条:INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2), (值3, 值4);

2. 更新数据 (UPDATE)

  • 基础语法:**一定要带 WHERE 条件!**否则会把整张表的数据都改掉。
    UPDATE 表名 SET 字段1 = 新值 WHERE 条件;

3. 删除数据 (DELETE)

  • 基础语法:同样必须带 WHERE 条件 。
    DELETE FROM 表名 WHERE 条件;

🏗️ DDL:数据定义语言 (Data Definition Language)

用来搭建和修改数据库的"容器"结构。

1. 操作库和表

  • 创建数据库:CREATE DATABASE 数据库名;
  • 创建表:CREATE TABLE 表名 (字段1 类型, 字段2 类型);
  • 删除表/库:DROP TABLE 表名; / DROP DATABASE 数据库名;

2. 修改表结构 (ALTER)

  • 添加字段:ALTER TABLE 表名 ADD COLUMN 新字段 类型;
  • 修改字段类型:ALTER TABLE 表名 MODIFY COLUMN 字段 新类型;
  • 删除字段:ALTER TABLE 表名 DROP COLUMN 字段名;

🔐 DCL:数据控制语言 (Data Control Language)

主要用于运维场景,管理谁能访问数据库。

  • 创建用户:CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';
  • 授权:GRANT SELECT, INSERT ON 数据库名.* TO '用户名'@'localhost'; (赋予查询和插入权限)
  • 回收权限:REVOKE INSERT ON 数据库名.* FROM '用户名'@'localhost';

💡 新手避坑小贴士

  1. 标点符号 :SQL 语句通常以英文分号 ; 结尾。
  2. 高危操作 :执行 UPDATE 和 DELETE 之前,建议先用同样的条件写个 SELECT 查一下,看看筛选出来的数据是不是你想操作的,确认无误后再执行修改或删除。
  3. 大小写 :SQL 关键字不区分大小写(写 select 或 SELECT 都可以),但为了代码可读性,行业惯例是将关键字全部大写。
相关推荐
IT19954 小时前
Fail2Ban 防护 MySQL 实战|登录失败 3 次,IP 封禁 24 小时
数据库·mysql
夕除4 小时前
redis--IO 多路复用(select + poll)
数据库·sql
lzhdim8 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
天河归来8 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
数据库小学妹9 小时前
金融数据库成本怎么算?五笔钱加一张TCO表
数据库·金融行业·数据库选型·国产化替代·tco·金融数据库
KaiwuDB9 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
auspicious航9 小时前
PostgreSQL的备份与恢复
数据库·postgresql
这个DBA有点耶10 小时前
从 MySQL 到时序数据库:我帮朋友做迁移的完整记录
数据库·架构·dba
泡海椒10 小时前
深度解析JQuick-SQL AST到逻辑计划转换机制|分布式SQL原理
数据库·分布式·sql
心静财富之门10 小时前
Python 数据共享四种方案完整实例(同进程 / JSON / Redis / HTTP)
数据库·python·oracle