Oracle 数据库管理系统是一个广泛使用的数据库系统,用于存储和管理大量数据。在第四讲中,主要讲解了简单查询的相关知识,包括在查询中过滤行、对查询结果进行排序以及使用单行函数来处理数据。
查询中的过滤行是通过 WHERE 子句实现的。WHERE 子句允许我们根据特定条件筛选出所需的数据。例如,要查询工资高于 3000 的员工,可以使用 `WHERE salary > 3000`;要查找 1982 年以后入职的员工,可以使用 `WHERE hire_date > '1982-01-01'`。此外,可以使用比较操作符,如 =、>、<、>=、<=、!= 和 <>,以及 SQL 特殊操作符,如 BETWEEN、NOT BETWEEN、IN、NOT IN、LIKE、NOT LIKE、IS NULL 和 IS NOT NULL。LIKE 关键字常用于模式匹配,其中 `%` 表示任意数量的字符,`_` 表示单个字符。逻辑运算符 AND、OR 和 NOT 可用于组合多个条件。
接着,我们讨论了对查询结果进行排序。ORDER BY 子句用于定义查询结果的排列顺序,可以设置 ASC(升序)或 DESC(降序)。例如,`ORDER BY salary ASC` 将按工资从小到大排序,而 `ORDER BY department_id ASC, salary DESC` 将先按部门号升序排序,然后在相同部门内按工资降序排序。别名可以在 ORDER BY 子句中使用,以便简化代码,如 `ORDER BY annual_salary ASC`。
单行函数是 Oracle 中处理数据的重要工具,它们对每一行数据单独作用并返回一个值。这些函数分为不同的类别,包括字符、数字、日期转换和通用函数。字符函数如 lower()、upper() 和 initcap() 用于大小写转换,concat() 用于连接字符串,substr() 提取字符串的一部分,length() 计算字符串长度,instr() 查找子串位置,lpad() 和 rpad() 在字符串两侧填充字符,以及 trim() 删除指定字符。trim() 函数的用法有 leading(头部)、trailing(尾部)和 both(两侧),默认为 both。
在实际应用中,我们可以结合这些函数和查询技巧来满足各种查询需求。例如,要显示员工名字的小写形式,可以使用 `SELECT lower(employee_name) FROM employees`;要找出名字长度恰好为 5 的员工,可以使用 `WHERE length(employee_name) = 5`;要显示所有员工名字的前三个字符,可以使用 `SELECT substr(employee_name, 1, 3) FROM employees`;以首字母小写显示员工姓名,则可以使用 `SELECT initcap(employee_name) FROM employees`。
总结来说,Oracle 数据库管理系统提供的查询功能强大且灵活,通过 WHERE 子句和 ORDER BY 子句,我们可以精确地获取和组织所需数据。单行函数则极大地增强了数据处理的能力,使得数据格式化和计算变得更加便捷。熟练掌握这些概念和操作,对于有效地管理和操作数据库至关重要。