经典查询练手第四篇
本篇数据查询属于复杂业务,难度比较高,请继续努力,通过我为大家设立的这个系列,循序渐进,只要你对每一篇,每一个试题都实践测试,认真练习。我相信你对常用、经典的、复杂的SQL已能熟能生巧,信手拈来!
本文使用ORACLE自带的人力资源(HR)实例数据,本文所用表结构如下:
表名:REGIONS
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 |
1 | REGION_ID | NUMBER | 是 | 否 | |||||
2 | REGION_NAME | VARCHAR2 | 25 | 是 |
表名:COUNTRIES
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 |
1 | COUNTRY_ID | CHAR | 2 | 是 | 否 | ||||
2 | COUNTRY_NAME | VARCHAR2 | 40 | 是 | |||||
3 | REGION_ID | NUMBER | 是 |
表名:LOCATIONS
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 |
1 | LOCATION_ID | NUMBER | 4 | 0 | 是 | 否 | |||
2 | STREET_ADDRESS | VARCHAR2 | 40 | 是 | |||||
3 | POSTAL_CODE | VARCHAR2 | 12 | 是 | |||||
4 | CITY | VARCHAR2 | 30 | 否 | |||||
5 | STATE_PROVINCE | VARCHAR2 | 25 | 是 | |||||
6 | COUNTRY_ID | CHAR | 2 | 是 |
表名:DEPARTMENTS
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 |
1 | DEPARTMENT_ID | NUMBER | 4 | 0 | 是 | 否 | |||
2 | DEPARTMENT_NAME | VARCHAR2 | 30 | 否 | |||||
3 | MANAGER_ID | NUMBER | 6 | 0 | 是 | ||||
4 | LOCATION_ID | NUMBER | 4 | 0 | 是 |
表名:JOBS
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 |
1 | JOB_ID | VARCHAR2 | 10 | 是 | 否 | ||||
2 | JOB_TITLE | VARCHAR2 | 35 | 否 | |||||
3 | MIN_SALARY | NUMBER | 6 | 0 | 是 | ||||
4 | MAX_SALARY | NUMBER | 6 | 0 | 是 |
表名:EMPLOYEES
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 |
1 | EMPLOYEE_ID | NUMBER | 6 | 0 | 是 | 否 | |||
2 | FIRST_NAME | VARCHAR2 | 20 | 是 | |||||
3 | LAST_NAME | VARCHAR2 | 25 | 否 | |||||
4 | EMAIL | VARCHAR2 | 25 | 否 | |||||
5 | PHONE_NUMBER | VARCHAR2 | 20 | 是 | |||||
6 | HIRE_DATE | DATE | 7 | 否 | |||||
7 | JOB_ID | VARCHAR2 | 10 | 否 | |||||
8 | SALARY | NUMBER | 8 | 2 | 是 | ||||
9 | COMMISSION_PCT | NUMBER | 2 | 2 | 是 | ||||
10 | MANAGER_ID | NUMBER | 6 | 0 | 是 | ||||
11 | DEPARTMENT_ID | NUMBER | 4 | 0 | 是 |