Oracle 数据库查询技巧:从基础到进阶实战
以下是一些使用 Oracle 数据库语言进行数据查询的示例:
基本查询:
- 查询入职满 30 个月的员工信息: 'SELECT * FROM employees WHERE company = 'Oracle' AND months_worked >= 30;'
- 返回当前日期的下一个星期二的日期: 'SELECT NEXT_DAY(SYSDATE, 'TUESDAY') FROM DUAL;'
- 返回指定日期当月的最后一天的日期值: 'SELECT LAST_DAY('指定日期') FROM DUAL;'
高级查询:
- 显示入职满 10 年的员工信息: 'SELECT * FROM employees WHERE company = '指定公司' AND (MONTHS_BETWEEN(SYSDATE, hire_date)/12) >= 10;'
- 显示各月倒数第三天受雇的所有员工: 'SELECT * FROM employees WHERE hire_date = LAST_DAY(hire_date) - 2;'
- 显示员工进入公司的天数: 'SELECT employee_id, hire_date, TRUNC(SYSDATE-hire_date) AS days_worked FROM employees;'
- 查询最高工资和最低工资: 'SELECT MAX(salary), MIN(salary) FROM employees;'
- 查询员工的平均工资和工资总和: 'SELECT AVG(salary), SUM(salary) FROM employees;'
- 查询员工总数: 'SELECT COUNT(*) FROM employees;'
- 查询工资最高的员工的名字、工作岗位: 'SELECT first_name, last_name, job_title FROM employees e JOIN jobs j ON e.job_id = j.job_id WHERE salary = (SELECT MAX(salary) FROM employees);'
- 查询工资高于平均工资的员工信息: 'SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);'
- 查询工资低于平均工资且入职时间在 80 年前的员工,并将其工资涨 10%: 'UPDATE employees SET salary = salary * 1.1 WHERE salary < (SELECT AVG(salary) FROM employees) AND hire_date < ADD_MONTHS(SYSDATE, -960);'
表操作:
- 查询创建表: 'SELECT * FROM user_tables;'
- 修改 remark 列宽为 200 字节: 'ALTER TABLE 表名 MODIFY (remark VARCHAR2(200));'
分组查询:
- 查询每个部门的平均工资和最高工资: 'SELECT department_id, AVG(salary), MAX(salary) FROM employees GROUP BY department_id;'
请注意,以上只是一些基本示例,您可以根据具体需求进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/nXxG 著作权归作者所有。请勿转载和采集!