SQL查询基本原理(过程)

本文详细阐述了SQL查询的六大步骤:从获取数据到行过滤,再到GROUP BY分组、HAVING分组过滤,选择指定结果及排序。通过实例演示,帮助读者深入理解SQL语法结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL查询是我们用得最多的语句,掌握其工作原理可以帮助我们理解SQL语法结构。

基本上有6大步骤:

1. 获取数据                                 - FROM, JOIN
2. 行过滤                                     - WHERE
3. 分组                                        - GROUP BY
4. 分组过滤                                 - HAVING
5. 选择数据                                 - SELECT
6. 排序、分页                             - ORDER BY/LIMIT/OFFSET

0. 准备数据

我们用两张表来展示查询工作过程

CREATE DATABASE dbtest;
USE dbtest;
CREATE TABLE employees(employee_name VARCHAR(30) NOT NULL, department_id INT);
CREATE TABLE departments(department_id INT NOT NULL, department_name VARCHAR(30));
INSERT INTO departments VALUES(1, 'HR');
INSERT INTO departments VALUES(2, 'R&D');
INSERT INTO departments VALUES(3, 'Marketing');
INSERT INTO departments VALUES(4, 'Sales');
INSERT INTO employees VALUES('Andy', 1);
INSERT INTO employees VALUES('Bob', 2);
INSERT INTO employees VALUES('Candy',3);
INSERT INTO employees VALUES('David',1);
INSERT INTO employees VALUES('Ella',2);
INSERT INTO employees VALUES('Fann',1);
INSERT INTO employees VALUES('Gary',4);
INSERT INTO employees VALUES('Henry',4);
INSERT INTO employees VALUES('Ivy',4);
INSERT INTO employees VALUES('Jack',4);

用下面查询语句来说明。

SELECT d.department_name AS "Department Name"
FROM employees e
JOIN departments d
ON e.department_id = d.department_id 
WHERE d.department_name != 'Marketing'
GROUP BY d.department_name
HAVING COUNT(*) >= 3
ORDER BY d.department_name DESC
LIMIT 1;

1. 获取数据

第一步FROM和JOIN取数据,这样得到的临时结果是卡迪尔积,共有10*4&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值