文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL基础之使用集合运算符进行多表查询(十二)

2024-04-02 19:55

关注

集合操作:类型和注意事项


 SQL基础之使用集合运算符进行多表查询(十二)



集合操作注意事项

–  只能在语句的最后出现

–  可以使用第一个查询中的列名,别名或相对位置


Oracle 服务器和集合操作符


 SQL基础之使用集合运算符进行多表查询(十二)

使用 UNION  操作符

1、显示当前和以前的工作的所有员工的详细信息。每个雇员只显示一次。

select employee_id, job_id

from employees

union

select employee_id, job_id

from job_history;

 SQL基础之使用集合运算符进行多表查询(十二)


使用 UNION ALL  操作符

 SQL基础之使用集合运算符进行多表查询(十二)

1、显示当前和以前的员工的所有部门。

select employee_id, job_id, department_id

from employees

union all

select employee_id, job_id, department_id

from job_history

order by employee_id;

 SQL基础之使用集合运算符进行多表查询(十二)


使用 INTERSECT  操作符

 SQL基础之使用集合运算符进行多表查询(十二)


显示员工ID和工作ID,当前的职称相同(也就是说,他们换工作但是现在已经回到以前同样的工作)。

select employee_id, job_id

from employees

intersect

select employee_id, job_id

from job_history;

 SQL基础之使用集合运算符进行多表查询(十二)



使用 MINUS  操作符 SQL基础之使用集合运算符进行多表查询(十二)

1、显示员工表中一次都没有改变过工作的的员工ID

select employee_id

from employees

minus

select employee_id

from job_history;

 SQL基础之使用集合运算符进行多表查询(十二)


相匹配的 SELECT  语句


select location_id, department_name "Department",

to_char(null) "warehouse location"

from departments

union

select location_id, to_char(null) "Department",

state_province

from locations;


使用UNION操作符,显示雇员的ID,工作ID,和所有员工的工资

select employee_id, job_id,salary

from employees

union

select employee_id, job_id,0

from job_history;

 SQL基础之使用集合运算符进行多表查询(十二)


集合操作中使用 ORDER BY  子句的注意事项


请查询出所有的部门下没有 ST_CLERK 工种的 department_id,要求使用集合操作符

select department_id

from departments

minus

select department_id

from employees

where job_id not like 'ST_CLERK';

 SQL基础之使用集合运算符进行多表查询(十二)


2、请使用集合操作符写一条 SQL,查出所有的没有部门坐落的国家的 country_id,country_name

select country_id,country_name

from countries

minus

select l.country_id,c.country_name

from locations l join countries c

on (l.country_id=c.country_id)

join departments d

on d.location_id=l.location_id;

 SQL基础之使用集合运算符进行多表查询(十二)


3、请使用集合操作符写一条 SQL,查出部门号在 10,50,20 中的所有的 job_id,department_id,

并以 10,50,20 的排列顺序显示。

select distinct job_id,department_id

from employees

where department_id = 10

union all

select distinct job_id,department_id

from employees

where department_id= 50

union all

select distinct job_id,department_id

from employees

where department_id= 20;

 SQL基础之使用集合运算符进行多表查询(十二)


4、请查出所有工作发生过变动,但是多次变动后现在的工作是做的以前做过的工作的员工的employee_id 和 job_id


select employee_id,job_id

from employees

intersect

select employee_id,job_id

from job_history;

 SQL基础之使用集合运算符进行多表查询(十二)


5、HR 部门的同事希望你能够帮助他们生成一个报告,要求满足以下 2 点:

a)从 EMPLOYEES 表中获得所有员工的 last_name 和 department_id(不管是否属于同一个部门)

b)从 DEPARTMENTS 表中获得所有的 department_id 和 department_name(不管是否该部门有员工)

select last_name,department_id,to_char(null) dept_name

from employees

union

select to_char(null),department_id,department_name

from departments;


LAST_NAME  DEPARTMENT_ID DEPT_NAME

------------------------- ------------- ------------------------------

Abel     80

Ande     80

Atkinson     50

Austin     60

Baer     70

Baida     30

Banda     80

Bates     80

Bell     50

Bernstein     80

Bissot     50

Bloom     80

Bull     50

Cabrio     50

Cambrault     80

Chen    100

Chung     50

Colmenares     30

Davies     50

De Haan     90

Dellinger     50

Dilly     50

Doran     80

Ernst     60

Errazuriz     80

Everett     50

Faviet    100

Fay     20

Feeney     50

Fleaur     50

Fox     80

Fripp     50

Gates     50

Gee     50

Geoni     50

Gietz    110

Grant     50

Grant

Greenberg    100

Greene     80

Hall     80

Hartstein     20

Higgins    110

Himuro     30

Hunold     60

Hutton     80

Johnson     80

Jones     50

Kaufling     50

Khoo     30

King     80

King     90

Kochhar     90

Kumar     80

Ladwig     50

Landry     50

Lee     80

Livingston     80

Lorentz     60

Mallin     50

Markle     50

Marlow     50

Marvins     80

Matos     50

Mavris     40

McCain     50

McEwen     80

Mikkilineni     50

Mourgos     50

Nayer     50

OConnell     50

Olsen     80

Olson     50

Ozer     80

Partners     80

Pataballa     60

Patel     50

Perkins     50

Philtanker     50

Popp    100

Rajs     50

Raphaely     30

Rogers     50

Russell     80

Sarchand     50

Sciarra    100

Seo     50

Sewall     80

Smith     80

Stiles     50

Sullivan     50

Sully     80

Taylor     50

Taylor     80

Tobias     30

Tucker     80

Tuvault     80


LAST_NAME  DEPARTMENT_ID DEPT_NAME

------------------------- ------------- ------------------------------

Urman    100

Vargas     50

Vishney     80

Vollman     50

Walsh     50

Weiss     50

Whalen     10

Zlotkey     80

    10 Administration

    20 Marketing

    30 Purchasing

    40 Human Resources

    50 Shipping

    60 IT

    70 Public Relations

    80 Sales

    90 Executive

   100 Finance

   110 Accounting

   120 Treasury

   130 Corporate Tax

   140 Control And Credit

   150 Shareholder Services

   160 Benefits

   170 Manufacturing

   180 Construction

   190 Contracting

   200 Operations

   210 IT Support

   220 NOC

   230 IT Helpdesk

   240 Government Sales

   250 Retail Sales

   260 Recruiting

   270 Payroll

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯