Oracle单表查询之(select的苦难工作)
发布日期:2021-05-16 13:53:18 浏览次数:18 分类:精选文章

本文共 1495 字,大约阅读时间需要 4 分钟。

SQL 查询技巧指南

作为数据库开发人员,掌握高效利用 SQL 查询技巧是必不可少的。以下是一些实用且高效的 SQL 查询技巧,帮助你更高效地完成数据库任务。

1. 基本查询技巧

使用 * 通配符可以查询表中所有字段,其中 emp 表名即为查询的表名。

SELECT * FROM emp

如果你只想查询特定字段,可使用以下方式指定字段:

SELECT emp_id, emp_name FROM emp

2. 查询结果显示别名

为了让查询结果更易阅读,可以为字段添加别名:

SELECT emp_id "员工编号", emp_name "员工姓名" FROM emp

3. 字符拼接

使用字符拼接符 || 可以将不同字段的值连接起来。例如:

SELECT employee_id || '员工编号:' || employee_name AS 员工信息 FROM emp

结果会输出:员工编号:张三

4. 查询结果去重

为字段 job 添加 DISTINCT 函数,结果将去除重复项:

SELECT DISTINCT job FROM emp

5. 数据排序

正序:

默认排序方式是 升序,可以通过指定字段名标记排序:

SELECT emp_id FROM emp ORDER BY emp_id

倒序:

使用 ORDER BY emp_id DESC 可以实现 降序 排列。

多字段排序:

当第一排序字段值相同时,按第二字段排序:

SELECT emp_id, emp_name FROM emp ORDER BY emp_id, emp_name

6. 字段进行四则运算

SQL 不仅支持加、减、乘、除,还支持取模运算:

SELECT emp_id + 5, emp_name - '张' FROM emp

7.筛选目标

使用 WHERE 进行筛选:

SELECT * FROM emp WHERE emp_name = '张三' AND emp_salary > 10000

常用筛选方式:

  • ** BETWEEN 和 IN**:

    • 使用 BETWEEN 查询两个值之间的所有记录:
    SELECT emp_id FROM emp WHERE emp_salary BETWEEN 8000 AND 12000
    • 使用 IN 查询字段的值在已知集合中的记录:
    SELECT emp_name FROM emp WHERE emp_id IN (1, 2, 3)

8. 模糊查询

使用 LIKE 进行模糊查询,% 表示任意长度,_ 表示单个字符:

SELECT emp_name FROM emp LIKE '%张%', emp_name LIKE '_王%'

9. 分组查询

使用 GROUP BY 将同一字段值归纳为一组:

SELECT dept_no, COUNT(emp_id) AS 总员工数 FROM emp GROUP BY dept_no

注意事项:

  • 分组后只能使用 5 个以上的聚合函数(如 COUNTSUM 等)。
  • 查询 GROUP BY 的字段后不能查询 OTHER FIELDS,否则会报错。

having 条件:

HAVING 用于在分组查询后对结果进行进一步筛选:

SELECT dept_no, COUNT(emp_id) AS 总员工数 FROM emp GROUP BY dept_no HAVING COUNT(emp_id) > 5

总结

掌握以上 SQL 查询技巧,可以显著提升数据处理效率。这亟需掌握的高级查询技巧希望能为你的数据库开发之路提供帮助!

上一篇:Ubuntu18.04安装并配置Hadoop集群
下一篇:Oracle的事务(rollback,commit,savepoint)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月16日 12时31分05秒