2025最新100条常用SQL语句语法案例汇总 面试必备SQL语句大全

2025最新100条常用SQL语句汇总 面试必备SQL语句大全

随着大数据时代的来临,SQL 已成为数据开发、数据分析和数据库运维的核心技能。据智联招聘和拉勾网统计,2025年中国北京、上海、深圳、广州等一线城市的互联网和金融行业,超过80%的数据岗位在面试中都会考察 SQL 能力。无论你身处华北地区的北京CBD,还是华东地区的上海自贸区,掌握一套全面且实用的 SQL 语句库,都是通向高薪数据岗位的“敲门砖”。

本文精心整理了 2025年最新、覆盖 基础查询聚合分组数据操作表管理索引与视图连接查询子查询日期时间处理字符串操作事务管理存储过程与触发器20+ 大类、共 100 条 最常用 MySQL SQL 语句。不仅适用于数据库开发工程师、数据分析师,还能助力求职者在上海、广州、成都、杭州等城市的面试中脱颖而出。



2025最新100条常用SQL语句语法案例汇总 面试必备SQL语句大全

摘要

本文整理了 MySQL 数据库操作中最常用的 100 条 SQL 语句,涵盖基础查询、聚合分组、数据操作、表管理、索引与视图、连接查询、子查询、日期处理、字符串操作、事务管理、存储过程、触发器、系统信息查询、性能优化、错误处理、备份恢复、导入导出、以及常用工具与命令等多个方面。无论是日常开发、数据分析,还是运维管理,都能在此找到快速参考。


一、基本查询

  1. 查询所有数据

    SELECT * FROM 表名;
    
  2. 查询指定列

    SELECT1,2 FROM 表名;
    
  3. 条件查询

    SELECT * FROM 表名 WHERE 条件;
    
  4. 模糊查询

    SELECT * FROM 表名 WHERE 列名 LIKE '模式%';
    
  5. 排序查询

    SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;
    
  6. 限制返回行数

    SELECT * FROM 表名 LIMIT 10;
    
  7. 去重查询

    SELECT DISTINCT 列名 FROM 表名;
    

二、聚合与分组

  1. 计数

    SELECT COUNT(*) FROM 表名;
    
  2. 分组统计

    SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
    
  3. 条件分组

    SELECT 列名, COUNT(*) 
      FROM 表名 
     GROUP BY 列名 
    HAVING COUNT(*) > 1;
    
  4. 求和

    SELECT SUM(列名) FROM 表名;
    
  5. 平均值

    SELECT AVG(列名) FROM 表名;
    
  6. 最大值

    SELECT MAX(列名) FROM 表名;
    
  7. 最小值

    SELECT MIN(列名) FROM 表名;
    

三、数据操作

  1. 插入数据

    INSERT INTO 表名 (1,2) VALUES (1,2);
    
  2. 批量插入

    INSERT INTO 表名 (1,2) VALUES (1,2), (3,4);
    
  3. 更新数据

    UPDATE 表名 SET 列名 = 新值 WHERE 条件;
    
  4. 删除数据

    DELETE FROM 表名 WHERE 条件;
    

四、表操作

  1. 创建表

    CREATE TABLE 表名 (1 数据类型,2 数据类型
    );
    
  2. 删除表

    DROP TABLE 表名;
    
  3. 添加列

    ALTER TABLE 表名 ADD 列名 数据类型;
    
  4. 删除列

    ALTER TABLE 表名 DROP COLUMN 列名;
    
  5. 重命名表

    ALTER TABLE 旧表名 RENAME TO 新表名;
    

五、索引与视图

  1. 创建索引

    CREATE INDEX 索引名 ON 表名 (列名);
    
  2. 删除索引

    DROP INDEX 索引名;
    
  3. 创建视图

    CREATE VIEW 视图名 AS SELECT * FROM 表名;
    
  4. 删除视图

    DROP VIEW 视图名;
    

六、连接查询

  1. 内连接

    SELECT * 
      FROM1 
    

INNER JOIN 表2 ON 表1.列 = 表2.列;

2. **左连接**  
```sql
SELECT * 
  FROM 表1 
LEFT JOIN 表2 ON 表1.列 = 表2.列;
  1. 右连接

    SELECT * 
      FROM1 
    

RIGHT JOIN 表2 ON 表1.列 = 表2.列;

4. **全连接**  
```sql
SELECT * 
  FROM 表1 
FULL OUTER JOIN 表2 ON 表1.列 = 表2.列;

七、子查询与集合

  1. 子查询

    SELECT * 
      FROM 表名 
     WHEREIN (SELECTFROM 其他表);
    
  2. 存在性查询

    SELECT * 
      FROM 表名 
     WHERE EXISTS (SELECT 1 FROM 其他表 WHERE 条件);
    
  3. 联合查询(去重)

    SELECTFROM1 
    UNION 
    SELECTFROM2;
    

八、日期与时间

  1. 当前时间

    SELECT NOW();
    
  2. 当前日期

    SELECT CURDATE();
    
  3. 日期加法

    SELECT DATE_ADD(日期, INTERVAL 1 DAY);
    
  4. 日期减法

    SELECT DATE_SUB(日期, INTERVAL 1 DAY);
    
  5. 格式化日期

    SELECT DATE_FORMAT(日期, '%Y-%m-%d');
    

九、字符串处理

  1. 字符串连接

    SELECT CONCAT(1,2) FROM 表名;
    
  2. 字符串长度

    SELECT LENGTH(列名) FROM 表名;
    
  3. 字符串截取

    SELECT SUBSTRING(列名, 1, 5) FROM 表名;
    
  4. 查找子串位置

    SELECT LOCATE('子串', 列名) FROM 表名;
    
  5. 大小写转换

    SELECT UPPER(列名), LOWER(列名) FROM 表名;
    
  6. 去除空格

    SELECT TRIM(列名) FROM 表名;
    

十、条件与高级函数

  1. CASE 表达式

    SELECT 列名,
           CASE 
             WHEN 条件 THEN '值1'
             ELSE '值2'
           END
      FROM 表名;
    
  2. IF 函数

    SELECT IF(条件, '值1', '值2') FROM 表名;
    
  3. COALESCE

    SELECT COALESCE(列名, '默认值') FROM 表名;
    
  4. NULLIF

    SELECT NULLIF(1,2) FROM 表名;
    
  5. COUNT DISTINCT

    SELECT COUNT(DISTINCT 列名) FROM 表名;
    
  6. GROUP_CONCAT

    SELECT GROUP_CONCAT(列名) 
      FROM 表名 
     GROUP BY 其他列;
    

十一、事务管理

  1. 开启事务

    BEGIN;
    
  2. 提交事务

    COMMIT;
    
  3. 回滚事务

    ROLLBACK;
    

十二、游标与存储过程

  1. 声明游标

    DECLARE 游标名 CURSOR FOR SELECTFROM 表名;
    
  2. 打开游标

    OPEN 游标名;
    
  3. 获取游标数据

    FETCH 游标名 INTO 变量;
    
  4. 关闭游标

    CLOSE 游标名;
    
  5. 创建存储过程

    CREATE PROCEDURE proc_name()
    BEGIN
      -- SQL 语句
    END;
    
  6. 调用存储过程

    CALL proc_name();
    

十三、函数与触发器

  1. 创建函数

    CREATE FUNCTION func_name()
      RETURNS 数据类型
    BEGIN
      -- 返回表达式
    END;
    
  2. 调用函数

    SELECT func_name();
    
  3. 创建触发器

    CREATE TRIGGER trg_name
      BEFORE INSERT ON 表名
    FOR EACH ROW
      SET NEW.= '值';
    
  4. 删除触发器

    DROP TRIGGER trg_name;
    

十四、系统信息查询

  1. 当前用户

    SELECT CURRENT_USER();
    
  2. 当前数据库

    SELECT DATABASE();
    
  3. 表行数与大小

    SELECT TABLE_NAME,
           TABLE_ROWS,
           DATA_LENGTH
      FROM information_schema.TABLES
     WHERE TABLE_SCHEMA = '数据库名';
    
  4. 创建/修改时间

    SELECT CREATE_TIME, UPDATE_TIME
      FROM information_schema.TABLES
     WHERE TABLE_NAME = '表名';
    

十五、实用查询技巧

  1. LIMIT + ORDER BY

    SELECT * FROM 表名 ORDER BY 列名 LIMIT 10;
    
  2. 查询外键约束

    SELECT CONSTRAINT_NAME, TABLE_NAME
      FROM information_schema.KEY_COLUMN_USAGE
     WHERE TABLE_SCHEMA = '数据库名';
    
  3. 查询主键约束

    SELECT CONSTRAINT_NAME, TABLE_NAME
      FROM information_schema.TABLE_CONSTRAINTS
     WHERE TABLE_SCHEMA = '数据库名'
       AND CONSTRAINT_TYPE = 'PRIMARY KEY';
    
  4. ROLLUP 汇总

    SELECT, SUM(2)
      FROM 表名
     GROUP BYWITH ROLLUP;
    
  5. 前 N 条/后 N 条

    -- 前 N 条
    SELECT * FROM 表名 LIMIT N;
    -- 后 N 条
    SELECT * FROM 表名 ORDER BYDESC LIMIT N;
    
  6. NOT EXISTS / IN / NOT IN

    SELECT * FROM 表名 WHERE NOT EXISTS (...);
    SELECT * FROM 表名 WHEREIN (1,2);
    SELECT * FROM 表名 WHERENOT IN (1,2);
    
  7. UNION ALL

    SELECTFROM1
    UNION ALL
    SELECTFROM2;
    

十六、性能优化

  1. EXPLAIN 分析

    EXPLAIN SELECT * FROM 表名 WHERE 条件;
    
  2. 创建优化索引

    CREATE INDEX idx_name ON 表名 (列名);
    
  3. 使用临时表

    CREATE TEMPORARY TABLE tmp AS SELECT * FROM 表名;
    
  4. 查看索引

    SHOW INDEX FROM 表名;
    
  5. 查询版本

    SELECT VERSION();
    

十七、错误处理

  1. 捕获异常

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
    BEGIN
      -- 错误处理逻辑
    END;
    
  2. 输出错误信息

    SELECT ERROR_MESSAGE();
    
  3. 事务中处理错误

    BEGIN;
      -- 语句
    -- 错误时 ROLLBACK
    ROLLBACK;
    

十八、数据备份与恢复

  1. 备份数据库

    mysqldump -u 用户名 -p 数据库名 > 备份.sql
    
  2. 恢复数据库

    mysql -u 用户名 -p 数据库名 < 备份.sql
    

十九、数据导入与导出

  1. 导入数据

    LOAD DATA INFILE '路径' INTO TABLE 表名;
    
  2. 导出数据

    SELECT * INTO OUTFILE '路径' FROM 表名;
    

二十、常用工具与命令

  1. 显示当前数据库

    SHOW DATABASES;
    
  2. 显示所有表

    SHOW TABLES;
    
  3. 表结构

    DESCRIBE 表名;
    
  4. 当前连接

    SHOW PROCESSLIST;
    
  5. 库空间使用

    SELECT table_schema AS '数据库',
           SUM(data_length+index_length)/1024/1024 AS '大小(MB)'
      FROM information_schema.TABLES
     GROUP BY table_schema;
    
  6. 表行数

    SELECT COUNT(*) FROM 表名;
    
  7. 用户权限

    SHOW GRANTS FOR '用户名'@'主机';
    

返回🔙

通过上文 100 条常用 SQL 语句的系统汇总,相信你已经对 MySQL 日常操作和面试高频题型有了全面了解。无论是北京、上海的互联网大厂,还是深圳、成都的初创公司,只要灵活运用这些语句,就能在数据处理、报表生成、性能优化等环节游刃有余。

💡 更多高级技巧和实战案例,欢迎访问 ==> 全栈Bug解决方案专栏
如果你在学习或使用过程中遇到任何问题,欢迎在评论区留言交流。祝你在 2025 年的数据库面试中旗开得胜,早日拿到心仪 offer!

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫头虎

一分也是爱,打赏博主成就未来!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值