常见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
相关推荐
l1t8 小时前
DeepSeek总结的将 Rust Delta Kernel 集成到 ClickHouse
数据库·clickhouse·rust
qq_283720058 小时前
万字深度:Chroma 向量数据库全解析 — 核心原理、实战操作、性能优化与工程最佳实践
数据库·性能优化
黄筱筱筱筱筱筱筱8 小时前
二进制包安装MySql服务
数据库
初心未改HD8 小时前
LLM应用开发之向量数据库详解
数据库·人工智能
键盘上的猫头鹰8 小时前
【从零学MySQL(三)】数据增删改(DML)及 SELECT 查询详解
数据库·mysql·数据分析
KaMeidebaby9 小时前
卡梅德生物技术快报|蛋白的过表达质粒构建与生信分析实验全流程复盘
前端·数据库·其他·百度·新浪微博
渣渣盟9 小时前
数据库之两段锁协议相关理论及应用
数据库·关系规范化·两段锁协议
LCG元9 小时前
Istio - 服务网格流量治理深度解析:灰度发布 / 故障注入配置实践
java·数据库·istio
SuniaWang9 小时前
《Agentx专栏》03-架构设计:AgentX的六层架构是如何生长出来的
java·数据库·redis·docker·ai·架构
键盘上的猫头鹰9 小时前
【从零学MySQL(二)】数据库基础操作、数据类型与约束(附Navicat演示)
数据库·mysql·数据分析·数据可视化