
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 个以上的聚合函数(如
COUNT
、SUM
等)。 - 查询
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 查询技巧,可以显著提升数据处理效率。这亟需掌握的高级查询技巧希望能为你的数据库开发之路提供帮助!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月16日 12时31分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode House Robber
2025-04-05
LeetCode Most Common Word 最常见的词
2025-04-05
Leetcode No.134 **
2025-04-05
LeetCode OJ:Integer to Roman(转换整数到罗马字符)
2025-04-05
LeetCode OJ:Merge k Sorted Lists(归并k个链表)
2025-04-05
leetcode Plus One
2025-04-05
LeetCode shell 题解(全)
2025-04-05
LeetCode Text Justification
2025-04-05
leetcode Valid Parentheses
2025-04-05
Leetcode | Simplify Path
2025-04-05
LeetCode – Refresh – 4sum
2025-04-05
LeetCode – Refresh – Valid Number
2025-04-05
leetcode — edit-distance
2025-04-05
LeetCode 中级 - 有序链表转换二叉搜索树(109)
2025-04-05
leetCode 字符串反转
2025-04-05
LeetCode 无重复字符的最长子串 获取字符串中不重复的子串最大长度
2025-04-05
LeetCode 热题 HOT 100 (java算法)实时更新 未完
2025-04-05
leetCode 给定数组,目标值 计算数组下标
2025-04-05