> 技术文档 > 史上超强最常用SQL语句大全 :SQL语句必备基础语法_数据实施常用的sql

史上超强最常用SQL语句大全 :SQL语句必备基础语法_数据实施常用的sql


史上超强最常用SQL语句大全 :SQL语句必备基础语法

本文全面介绍了 SQL 语言的四大分类——DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和 DCL(数据控制语言),涵盖了从数据库和表的管理,到数据的增删改查、排序、聚合、分组、分页、连接查询与子查询,再到用户权限管理的全套常用语句。无论你是数据库新手还是资深 DBA,都能在此快速查找面试高频和日常开发必备的 SQL 语句。
史上超强最常用SQL语句大全 :SQL语句必备基础语法_数据实施常用的sql

文章目录

  • 史上超强最常用SQL语句大全 :SQL语句必备基础语法
    • 一、DDL(Data Definition Language)数据定义语言
      • 1. 操作库(Database)
      • 2. 操作表(Table)
    • 二、DML(Data Manipulation Language)数据操作语言
      • 1. 插入数据(INSERT)
      • 2. 删除数据(DELETE / TRUNCATE)
      • 3. 更新数据(UPDATE)
    • 三、DQL(Data Query Language)数据查询语言
      • 1. 基础关键字
      • 2. 排序查询(ORDER BY)
      • 3. 聚合函数(Aggregate)
      • 4. 分组查询(GROUP BY / HAVING)
      • 5. 分页查询(LIMIT)
      • 6. 内连接查询(INNER JOIN)
      • 7. 外连接查询(LEFT / RIGHT JOIN)
      • 8. 子查询(Subquery)
    • 四、DCL(Data Control Language)数据控制语言
      • 1. 用户管理
      • 2. 权限管理
    • 结语

一、DDL(Data Definition Language)数据定义语言

1. 操作库(Database)

-- 创建数据库CREATE DATABASE db1;-- 如果不存在则创建CREATE DATABASE IF NOT EXISTS db1;-- 查看所有数据库SHOW DATABASES;-- 查看数据库创建语句SHOW CREATE DATABASE db1;-- 修改字符集ALTER DATABASE db1 CHARACTER SET utf8;-- 删除数据库DROP DATABASE db1;

2. 操作表(Table)

-- 创建表CREATE TABLE student ( id  INT, name VARCHAR(32), age INT, score DOUBLE(4,1), birthday DATE, insert_time TIMESTAMP);-- 查看表结构DESC student;-- 查看创建表语句SHOW CREATE TABLE student;-- 重命名表ALTER TABLE student RENAME TO student_old;-- 添加新列ALTER TABLE student ADD email VARCHAR(64);-- 删除列ALTER TABLE student DROP COLUMN email;-- 删除表DROP TABLE student;-- 如果存在则删除DROP TABLE IF EXISTS student;

二、DML(Data Manipulation Language)数据操作语言

1. 插入数据(INSERT)

-- 全列插入INSERT INTO student (id, name, age, score) VALUES (1, \'张三\', 20, 88.5);-- 不列出列名,必须提供所有列值INSERT INTO student VALUES (2, \'李四\', 22, 91.0, \'2003-01-15\', NOW());-- 部分列插入INSERT INTO student (name, age) VALUES (\'王五\', 19);

2. 删除数据(DELETE / TRUNCATE)

-- 删除满足条件的行DELETE FROM student WHERE age < 18;-- 删除全部数据(保留表结构)DELETE FROM student;-- 高效清空表(无法回滚)TRUNCATE TABLE student;

3. 更新数据(UPDATE)

-- 更新所有行UPDATE student SET score = score + 5;-- 带条件更新UPDATE student SET score = 100 WHERE name = \'张三\';

三、DQL(Data Query Language)数据查询语言

1. 基础关键字

-- 范围查询SELECT * FROM student WHERE age BETWEEN 20 AND 30;-- 集合查询SELECT * FROM student WHERE age IN (18, 20, 22);-- 非空查询SELECT * FROM student WHERE score IS NOT NULL;-- 模糊查询SELECT * FROM student WHERE name LIKE \'张%\';-- 去重SELECT DISTINCT age FROM student;

2. 排序查询(ORDER BY)

-- 单列升序SELECT * FROM student ORDER BY score;-- 多列排序:先按 score 降序,再按 age 升序SELECT * FROM student ORDER BY score DESC, age ASC;

3. 聚合函数(Aggregate)

SELECT COUNT(*) AS total_students, AVG(score) AS avg_score, MAX(score) AS max_score, MIN(score) AS min_score, SUM(score) AS sum_scoreFROM student;

4. 分组查询(GROUP BY / HAVING)

-- 按年龄分组,统计平均分SELECT age, AVG(score) AS avg_score FROM student GROUP BY age;-- 带 HAVING 过滤分组SELECT age, COUNT(*) AS cnt FROM student GROUP BY ageHAVING cnt > 2;

5. 分页查询(LIMIT)

-- MySQL 方言:从第 0 条开始,取 5 条SELECT * FROM student LIMIT 0, 5;-- 通常用于 Web 分页:(page-1)*size, size

6. 内连接查询(INNER JOIN)

-- 隐式写法SELECT e.name, d.dept_name FROM emp e, dept d WHERE e.dept_id = d.id;-- 显式写法SELECT e.name, d.dept_name FROM emp AS e JOIN dept AS d ON e.dept_id = d.id;

7. 外连接查询(LEFT / RIGHT JOIN)

-- 左外连接:保留左表所有记录SELECT e.name, d.dept_name FROM emp AS e LEFT JOIN dept AS d ON e.dept_id = d.id;-- 右外连接:保留右表所有记录SELECT e.name, d.dept_name FROM emp AS e RIGHT JOIN dept AS d ON e.dept_id = d.id;

8. 子查询(Subquery)

-- 单行单列:查工资低于平均值的员工SELECT * FROM emp WHERE salary < (SELECT AVG(salary) FROM emp);-- 多行单列:查财务部和市场部员工SELECT * FROM emp WHERE dept_id IN ( SELECT id FROM dept WHERE name IN (\'财务部\',\'市场部\') );-- 多行多列:先过滤后连接SELECT d.*, e.* FROM dept AS d JOIN ( SELECT * FROM emp WHERE join_date > \'2020-01-01\' ) AS e ON d.id = e.dept_id;

四、DCL(Data Control Language)数据控制语言

1. 用户管理

-- 添加用户CREATE USER \'alice\'@\'%\' IDENTIFIED BY \'pwd123\';-- 删除用户DROP USER \'alice\'@\'%\';

2. 权限管理

-- 查询某用户权限SHOW GRANTS FOR \'bob\'@\'%\';-- 授予权限(所有库所有表)GRANT ALL PRIVILEGES ON *.* TO \'bob\'@\'%\';-- 指定库表权限GRANT SELECT, INSERT ON mydb.student TO \'charlie\'@\'localhost\';-- 撤销权限REVOKE INSERT ON mydb.student FROM \'charlie\'@\'localhost\';

结语

通过本文对 DDL、DML、DQL 和 DCL 四大类 100+ 条常用 SQL 语句的系统梳理,希望能帮助你在日常开发、数据分析和面试准备中事半功倍。无论是表结构设计、数据增删改查,还是复杂的连接查询、子查询、权限管理,都能快速找到对应的“万能模板”,助你提升效率、规避低级错误。

⚡ 建议你在实际项目中反复练习,将这些语句融会贯通,并根据业务需求灵活组合、优化索引和执行计划。
🔗 更多实战案例与深度解析,请移步 ==> 全栈Bug解决方案专栏,持续关注,不断进阶!

祝你 SQL 路上越走越稳,早日拿到理想的 offer!