Oracle简单查询:过滤行与条件操作

需积分: 10 0 下载量 2 浏览量 更新于2024-08-15 收藏 2.69MB PPT 举报
"Oracle简单查询教程,包括在查询中过滤行、对结果排序及使用单行函数" 在Oracle数据库管理系统中进行数据查询时,我们经常需要根据特定条件过滤行,以便获取我们需要的信息。本教程主要讲解了在查询中过滤行的方法,以及如何对查询结果进行排序和使用单行函数。 首先,过滤行是通过在SELECT语句中使用WHERE子句来实现的。WHERE子句允许我们设定条件,只显示满足这些条件的行。例如,要查询工资高于3000的员工,我们可以使用如下的SQL语句: ```sql SELECT * FROM employees WHERE salary > 3000; ``` 对于日期的过滤,可以查找1982年以后入职的员工: ```sql SELECT * FROM employees WHERE hire_date > '1982-01-01'; ``` 对于特定范围的工资,比如2000到2500之间,我们可以使用BETWEEN操作符: ```sql SELECT * FROM employees WHERE salary BETWEEN 2000 AND 2500; ``` 在查询中,我们还可以使用算术表达式来计算年薪: ```sql SELECT employee_id, first_name, last_name, (salary * 12) AS annual_salary FROM employees; ``` 列的别名(如annual_salary)可以使得结果更易读。处理NULL值时,可以使用IS NULL或IS NOT NULL操作符。例如,显示所有没有分配部门的员工: ```sql SELECT * FROM employees WHERE department_id IS NULL; ``` 连接字符串则可以使用CONCAT函数: ```sql SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees; ``` 比较操作符如=、>、<等用于基本的条件比较,而LIKE操作符则用于模式匹配。例如,显示首字母为"S"的员工姓名和工资: ```sql SELECT first_name, salary FROM employees WHERE first_name LIKE 'S%'; ``` 同时,使用通配符_%可以匹配任意数量的字符,_代表一个具体字符。比如查找第三个字符为大写"O"的员工姓名和工资: ```sql SELECT first_name, salary FROM employees WHERE first_name LIKE '_O%'; ``` 逻辑运算符AND、OR和NOT用于组合多个条件。例如,查找工资高于1000且岗位为MANAGER,同时名字首字母为J的员工: ```sql SELECT * FROM employees WHERE salary > 1000 AND job_title = 'MANAGER' AND first_name LIKE 'J%'; ``` 对查询结果进行排序,使用ORDER BY子句,如按工资升序显示雇员信息: ```sql SELECT * FROM employees ORDER BY salary ASC; ``` 若要降序排序,只需添加DESC关键字: ```sql SELECT * FROM employees ORDER BY salary DESC; ``` 可以按多个列排序,例如部门号升序,工资降序: ```sql SELECT * FROM employees ORDER BY department_id ASC, salary DESC; ``` 此外,还可以使用列的别名进行排序,如按年薪排序: ```sql SELECT employee_id, (salary * 12) AS annual_salary FROM employees ORDER BY annual_salary ASC; ``` 单行函数,也称为标量函数,会在查询的每一行上应用并返回一个值。它们包括字符串函数、数字函数、日期函数等,用于对单个值进行转换或处理。例如,我们可以使用UPPER函数将所有员工的姓氏转为大写: ```sql SELECT first_name, UPPER(last_name) AS upper_last_name FROM employees; ``` 通过这些基础的查询技巧,我们可以更有效地从Oracle数据库中提取所需的数据。