sql 使用一个表的两个字段做条件_写给产品运营等非技术同学的SQL教程

本文是为非技术背景的同学准备的SQL入门教程,重点讲解如何使用一个表的两个字段作为条件进行查询。内容涵盖SQL基础语法、执行顺序、条件子句(WHERE)、分组查询(GROUP BY & HAVING)、字段选择(SELECT)和结果呈现(ORDER BY & LIMIT)。通过实例演示,帮助读者理解SQL查询的实际应用。
摘要由CSDN通过智能技术生成

01ef99f75d0e16ea8461649120124ed0.png

前言

本篇文章的主要目的是帮助初学者快速入门SQL查询,从而解决实际业务中80%SQL查询问题。早先时候写给产品经理的女朋友用于取数写用户分析报告的,近期抽空补充了一些用例。

本文主要框架如下:

  • 上篇:介绍SQL的语法顺序和执行顺序
  • 中篇:介绍条件子句、分组查询和排序的细节
  • 下篇:表的连接和其他常用关键字

希望学完这三篇后能助你系统地入门SQL

快速上手SQL的常用语法

1. 通过单表查询逐步理解SQL语法

学生表student结构:

ffb8297407e312448be7e629c64162e3.png

先看一个查询例子:

查询表中所有学号小于 8的男学生的学号和姓名:
select
    sid, sname  # 需要查询出来的字段
from student    # 从哪张表中取数
where ssex = '男' and sid < 8 # 设置查询的条件, 两个条件用and(和)/or(或)连接

暂时我们没有对字段做处理,如果你需要对选择出来的结果进行处理,需要使用函数和order by,再看一个例子:

查询每个男学生的学号、姓名和年龄,并按照学号降序排列
select
    sid, sname
    , (curdate())-year(sage) as age #当前年份减去出生年份得到年龄
from student
where ssex = '男'
order by sid desc # order by表示按照字段排序, desc表示降序

其他常用的函数和where条件:

查询学号非空,姓“张”的学生,按照 sid升序并取前三条
select
    sid, sname
from student
where sname like '张%' # 通过like和通配符%进行模糊匹配
and sid is not null # 学号非空
order by sid
limit 3 # 只取前三条

2.多表查询

学生表student

ffb8297407e312448be7e629c64162e3.png

成绩表sc

0bfe2f85eb26049195867ff81ca0f469.png

通过join连接两张表:

查询赵雷每门课的成绩
select
    sname, cid, score
from student
inner join sc
on student.sid = sc.sid # 两张表的连接条件,满足条件的两行会并为一行
where sc.sname = '赵雷'

本文用到数据库表

为方便学习,我们继续使用之前用到的学生表student和成绩表sc,为了模拟业务中复杂的查询任务,我们再引入课程表course和教师表teacher

笔者寄语:熟练使用 SQL的前提一定是先了解你的数据库表,现在花点时间看看这四张表的字段信息(描述每个字段的意义)和数据样例(给出部分真实数据),关于业务中用到的表结构可以找数据小哥拿。

1.字段信息

学生表:

Student(SId,Sname,Sage,Ssex)
SId 学生编号,Sname 学生姓名
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值