在数字化时代,SQL(结构化查询语言)已成为数据从业者、开发人员乃至业务分析人员必备的核心技能。无论是处理日常数据报表,还是应对复杂的业务逻辑,SQL 都能高效实现数据的查询、操作与分析。本文将通过经典的 SQL 练习例子,并结合 Kooboo平台 的在线数据库工具,进行实践操作。


  • Kooboo 中的【浏览器SQL数据库】在线工具,支持即时运行 SQL 语句,用户能立即看到运行结果。

一、基础查询与过滤

1. 简单查询

  • 场景:查询员工表中所有员工的姓名和薪资
SELECT name, salary FROM employees;

2. 条件过滤

  • 场景:查询薪资大于 5000 的员工信息。
SELECT * FROM employees WHERE salary > 5000;

3. 模糊匹配

  • 场景:查询姓氏为 "张" 的员工。
SELECT * FROM employees WHERE name LIKE '张%';

这里的 LIKE 是模糊查询的关键词,它用于在 WHERE 子句中搜索指定模式的字符串。而 “%” 是占位符,代表任意字符序列(可以是 0 个、1 个或多个字符)

4. 多条件过滤

  • 场景:查询部门为 "技术部" 且薪资大于 8000 的员工。
SELECT * FROM employees 
WHERE department = '技术部' AND salary > 8000;

二、数据排序与分页

1. 排序

  • 场景:按薪资降序排列员工信息。
SELECT * FROM employees ORDER BY salary DESC;

ORDER BY 子句用于对结果集进行排序DESC 表示降序排列( ASC 升序,默认可不写),执行后员工将按照薪资从高到低依次展示。

2. 分页

  • 场景:查询第 2 页(每页 10 条)的员工信息。
SELECT * FROM employees LIMIT 10 OFFSET 10;

在处理大量数据时,分页查询不可或缺。LIMIT 用于指定返回结果的行数OFFSET 则用于指定从哪一行开始返回

三、聚合函数与分组:常用于统计分析。

1. 计算员工总数,使用 COUNT 函数:

SELECT COUNT(*) FROM employees;
  • COUNT (*) 会统计表中的所有行数。

2. 若按部门统计员工人数和平均薪资,可结合 GROUP BY 和聚合函数:

SELECT department, COUNT(*) as employee_count, AVG(salary) as avg_salary
FROM employees
GROUP BY department;
  • GROUP BY 子句用于将结果集按照指定字段(这里是 department)进行分组,然后对每个组分别应用聚合函数

3. 若需对分组结果进一步筛选,使用 HAVING 子句。查询平均薪资大于 6000 的部门:

SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 6000;
  • HAVING 与 WHERE 类似,但 HAVING 是对分组后的结果进行筛选,而 WHERE 是对原始数据进行筛选。

四、表连接(JOIN):处理多表数据的关键操作

1. 通过内连接获取员工及其所属部门名称

SELECT e.name, d.department_name​
FROM employees e​
INNER JOIN departments d ON e.department_id = d.id;​
  • INNER JOIN 用于连接两个或多个表,只返回满足连接条件的行。
  • ON 子句用于指定连接条件。执行后,员工与部门信息将一一对应展示。​

2. 左连接则能查询所有员工及其订单信息,包括无订单的员工:​

SELECT e.name, o.order_id​
FROM employees e​
LEFT JOIN orders o ON e.id = o.employee_id;​
  • LEFT JOIN 会返回左表(这里是 employees)中的所有行,以及右表(orders)中满足连接条件的行。若右表无匹配行,则用 NULL 填充

3. 子查询可嵌套在其他查询中,实现复杂的逻辑。比如查询薪资高于平均薪资的员工:​

SELECT * FROM employees​
WHERE salary > (SELECT AVG(salary) FROM employees);​
  • 括号内的子查询先计算出平均薪资,外层查询再根据这个结果筛选出符合条件的员工。

五、高级功能:窗口函数与事务​

1. 窗口函数用于复杂的分析计算。按部门对员工薪资进行排名,使用 RANK 函数:​

SELECT name, department, salary,​

RANK() OVER (PARTITION BY department ORDER BY salary DESC) as dept_rank​

FROM employees;​
  • ​PARTITION BY 用于将数据按照指定字段(department)进行分区ORDER BY 指定排序规则。每个分区内,员工将按照薪资进行排名。

2. 事务管理则确保数据一致性。模拟银行转账操作:​

BEGIN;​

UPDATE accounts SET balance = balance - 1000 WHERE account_id = 1;​

UPDATE accounts SET balance = balance + 1000 WHERE account_id = 2;​

COMMIT;​
  • ​BEGIN 表示事务开始,COMMIT 表示事务提交,在这期间的所有操作要么全部成功,要么全部失败。以保障数据的准确性和完整性。

六、Kooboo 在线数据库工具的优势

2.1 零安装,即开即用​

Kooboo 工具最大的优势就是无需安装只要有浏览器和网络,无论是 Windows、Mac 还是 Linux 系统,都能随时随地使用。告别繁琐的安装配置过程,大大节省时间和精力,让用户专注于 SQL 学习与数据处理。​

2.2 直观友好的操作界面​

工具提供简洁直观的操作界面,SQL 编辑器支持语法高亮,不同的 SQL 语法元素以鲜明的颜色区分显示,让代码结构一目了然。同时具备字段自动补全、实时错误校验功能,降低编写难度,提高代码质量和效率。​

2.3 丰富的数据支持与导出功能​

支持多种常见数据库类型连接,能快速执行用户输入的 SQL 查询语句,并将结果以直观的表格形式实时展示。查询结果支持一键导出为 JSON 或 CSV 格式,方便用户后续进行数据分析、报表制作或与其他工具协同工作。​

2.4 安全可靠的保障​

在数据安全方面,Kooboo 采用先进的 Token 认证机制,避免密码明文传输风险;支持 IP 白名单设置,限制特定 IP 地址访问;具备完善的操作审计留痕功能,自动记录用户的登录日志、SQL 执行记录等信息,满足企业对数据安全和合规的要求。

练习建议:

  1. 从简单到复杂:先掌握单表查询,再学习多表连接和子查询。
  2. 在线工具实践:通过Kooboo在线工具进行实践,快速验证SQL逻辑,无需本地安装数据库。
  3. 模拟真实场景:尝试解决实际业务问题(如分析销售数据、用户行为等)。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐