常见SQL整理

基础语法

查询

全表查询
sql 复制代码
select * from student
选择查询
sql 复制代码
select name,age from student
别名
sql 复制代码
select name as 学生姓名,age as 学生年龄 from student
常量和运算
sql 复制代码
select name,score,score*2 as double_score from student
条件查询--where
sql 复制代码
select name,score from student where name='鱼皮'
条件查询--运算符
sql 复制代码
select name,age from student where name != '热dog'
条件查询--空值
sql 复制代码
select name,age,score from student where age is not null
条件查询--模糊查询
sql 复制代码
select name,score from student where name not like '%李%'
条件查询--逻辑运算
sql 复制代码
select name,score from student where name like '%李%' or score>500
去重
sql 复制代码
select distinct class_id,exam_num from student
排序
sql 复制代码
select name,age,score from student order by score desc, age asc
截断和便宜
sql 复制代码
select name,age from student order by age limit 1,3
条件分支
sql 复制代码
select name, case when (age>60) then '老同学' when (age>20) then '年轻' else '小同学' end as age_level from student order by name
时间函数
sql 复制代码
select name, date() as 当前日期 from student
字符串处理
sql 复制代码
select id,name,upper(name) as upper_name from student where name='热dog'
聚合函数
sql 复制代码
select sum(score) as total_score,avg(score) as avg_score,max(score) as max_score,min(score) as min_score from student
单字段分组
sql 复制代码
select class_id,avg(score) as avg_score from student group by class_id
多字段分组
sql 复制代码
select class_id,exam_num,count('*') as total_num from student group by class_id,exam_num
having子句
sql 复制代码
select class_id,sum(score) as total_score from student group by class_id having total_score>150
关联查询--cross join
sql 复制代码
select s.name as student_name, s.age as student_age, c.id as class_id, c.name as class_name from student as s cross join class as c
关联查询--inner join
sql 复制代码
select s.name as student_name,s.age as student_age,c.id as class_id,c.name as class_name,c.level as class_level from student as s inner join class as c on s.class_id = c.id
关联查询--outer join
sql 复制代码
select s.name as student_name,s.age as student_age,c.id as class_id,c.name as class_name,c.level as class_level from student as s left join class as c on s.class_id = c.id
子查询
sql 复制代码
select name,score,class_id from student where class_id in (
    select distinct id from class
)
子查询exists
sql 复制代码
select name,age,class_id from student where not exists (
    select 1 from class where student.class_id=class.id
)
聚合查询
sql 复制代码
select name,age,score,class_id from student
union all
select name,age,score,class_id from student_new
相关推荐
云和恩墨14 分钟前
数据库一体机简史:从ODA到zData X,命名之中的玄机
数据库·vr
数据库小学妹1 小时前
KES是什么?国产数据库技术架构、核心能力与选型实战解析
数据库·经验分享·架构·国产数据库·数据库选型·信创数据库
衍生星球2 小时前
SpringBoot3 + Vue3 + 微信小程序如何学习,以及学哪些技术,组件
sql·微信小程序·uni-app·vue·springboot
Database_Cool_2 小时前
向量检索加速首选:阿里云 Tair 内置向量能力毫秒级召回
数据库·阿里云
强健的石头2 小时前
django文件对象是什么?
数据库·django·sqlite
ClouGence3 小时前
保障公共安全,一线治安机构实时数据应用与实践
数据库·mysql·postgresql
烟漠河洛3 小时前
线上事故复盘:Redis幂等性设计边界没覆盖跨状态请求,订单状态机直接崩了
数据库·redis·缓存
Minxinbb4 小时前
TDSQL for MySQL 服务器重启操作
数据库·mysql·dba
SelectDB4 小时前
Doris 实战:用 Colocate Join 消除 Shuffle,AB 指标计算性能提升 145 倍 🚀
数据库·性能优化·ab测试
PawSQL4 小时前
PawSQL 技术月报 | 2026年6月
数据库·sql·tdsql·pawsql·sql审核