SQL堂上作業四

等值連接

所有值相等的,都會被進行一次連接

SELECT employees.employee_id, employees.last_name, 
employees.department_id, departments.department_id,
departments.location_id
FROM employees, departments
WHERE employees.department_id = departments.department_id;

輸出如下

EMPLOYEE_ID LAST_NAME                                          DEPARTMENT_ID DEPARTMENT_ID LOCATION_ID
----------- -------------------------------------------------- ------------- ------------- -----------
        100 King                                                          90            90        1700
        101 Kochhar                                                       90            90        1700
        102 De Haan                                                       90            90        1700
        103 Hunold                                                        60            60        1400
        104 Ernst                                                         60            60        1400
        105 Austin                                                        60            60        1400
        106 Pataballa                                                     60            60        1400
        107 Lorentz                                                       60            60        1400
        108 Greenberg                                                    100           100        1700
        109 Faviet                                                       100           100        1700
        110 Chen                                                         100           100        1700
        111 Sciarra                                                      100           100        1700
        112 Urman                                                        100           100        1700
        113 Popp                                                         100           100        1700
        114 Raphaely                                                      30            30        1700
        115 Khoo                                                          30            30        1700
        116 Baida                                                         30            30        1700
        117 Tobias                                                        30            30        1700
        118 Himuro                                                        30            30        1700
        119 Colmenares                                                    30            30        1700
        120 Weiss                                                         50            50        1500
        121 Fripp                                                         50            50        1500
        122 Kaufling                                                      50            50        1500
        123 Vollman                                                       50            50        1500
        124 Mourgos                                                       50            50        1500
        125 Nayer                                                         50            50        1500
        126 Mikkilineni                                                   50            50        1500
        127 Landry                                                        50            50        1500
        128 Markle                                                        50            50        1500
        129 Bissot                                                        50            50        1500
        130 Atkinson                                                      50            50        1500
        131 Marlow                                                        50            50        1500
        132 Olson                                                         50            50        1500
        133 Mallin                                                        50            50        1500
        134 Rogers                                                        50            50        1500
        135 Gee                                                           50            50        1500
        136 Philtanker                                                    50            50        1500
        137 Ladwig                                                        50            50        1500
        138 Stiles                                                        50            50        1500
        139 Seo                                                           50            50        1500
        140 Patel                                                         50            50        1500
        141 Rajs                                                          50            50        1500
        142 Davies                                                        50            50        1500
        143 Matos                                                         50            50        1500
        144 Vargas                                                        50            50        1500
        145 Russell                                                       80            80        2500
        146 Partners                                                      80            80        2500
        147 Errazuriz                                                     80            80        2500
        148 Cambrault                                                     80            80        2500
        149 Zlotkey                                                       80            80        2500
        150 Tucker                                                        80            80        2500
        151 Bernstein                                                     80            80        2500
        152 Hall                                                          80            80        2500
        153 Olsen                                                         80            80        2500
        154 Cambrault                                                     80            80        2500
        155 Tuvault                                                       80            80        2500
        156 King                                                          80            80        2500
        157 Sully                                                         80            80        2500
        158 McEwen                                                        80            80        2500
        159 Smith                                                         80            80        2500
        160 Doran                                                         80            80        2500
        161 Sewall                                                        80            80        2500
        162 Vishney                                                       80            80        2500
        163 Greene                                                        80            80        2500
        164 Marvins                                                       80            80        2500
        165 Lee                                                           80            80        2500
        166 Ande                                                          80            80        2500
        167 Banda                                                         80            80        2500
        168 Ozer                                                          80            80        2500
        169 Bloom                                                         80            80        2500
        170 Fox                                                           80            80        2500
        171 Smith                                                         80            80        2500
        172 Bates                                                         80            80        2500
        173 Kumar                                                         80            80        2500
        174 Abel                                                          80            80        2500
        175 Hutton                                                        80            80        2500
        176 Taylor                                                        80            80        2500
        177 Livingston                                                    80            80        2500
        179 Johnson                                                       80            80        2500
        180 Taylor                                                        50            50        1500
        181 Fleaur                                                        50            50        1500
        182 Sullivan                                                      50            50        1500
        183 Geoni                                                         50            50        1500
        184 Sarchand                                                      50            50        1500
        185 Bull                                                          50            50        1500
        186 Dellinger                                                     50            50        1500
        187 Cabrio                                                        50            50        1500
        188 Chung                                                         50            50        1500
        189 Dilly                                                         50            50        1500
        190 Gates                                                         50            50        1500
        191 Perkins                                                       50            50        1500
        192 Bell                                                          50            50        1500
        193 Everett                                                       50            50        1500
        194 McCain                                                        50            50        1500
        195 Jones                                                         50            50        1500
        196 Walsh                                                         50            50        1500
        197 Feeney                                                        50            50        1500
        198 OConnell                                                      50            50        1500
        199 Grant                                                         50            50        1500
        200 Whalen                                                        10            10        1700
        201 Hartstein                                                     20            20        1800
        202 Fay                                                           20            20        1800
        203 Mavris                                                        40            40        2400
        204 Baer                                                          70            70        2700
        205 Higgins                                                      110           110        1700
        206 Gietz                                                        110           110        1700

已選擇106行。

表的別名

在上文中,表名太長了,打起來太複雜了,我們可以給表命名一個別名

SELECT e.employee_id, e.last_name, e.department_id,
d.department_id, d.location_id
FROM employees e , departments d
WHERE e.department_id = d.department_id;

輸出與上文的輸出一致

多個條件

我們可以在WHERE後面添加多個條件

SELECT e.last_name, e.salary, j.grade_level
FROM employees e, job_grades j
WHERE e.salary 
BETWEEN j.lowest_sal AND j.highest_sal;

這段語句的意思是:輸出表employees,但是會給employees中的每個人的工資打一個分

輸出如下:

LAST_NAME                                              SALARY GR
-------------------------------------------------- ---------- --
Olson                                                    2100 A
Markle                                                   2200 A
Philtanker                                               2200 A
Landry                                                   2400 A
Gee                                                      2400 A
Colmenares                                               2500 A
Marlow                                                   2500 A
Patel                                                    2500 A
Vargas                                                   2500 A
Sullivan                                                 2500 A
Perkins                                                  2500 A
Himuro                                                   2600 A
Matos                                                    2600 A
OConnell                                                 2600 A
Grant                                                    2600 A
Mikkilineni                                              2700 A
Seo                                                      2700 A
Tobias                                                   2800 A
Atkinson                                                 2800 A
Geoni                                                    2800 A
Jones                                                    2800 A
Baida                                                    2900 A
Rogers                                                   2900 A
Gates                                                    2900 A
Cabrio                                                   3000 B
Feeney                                                   3000 B
Khoo                                                     3100 B
Davies                                                   3100 B
Fleaur                                                   3100 B
Walsh                                                    3100 B
Nayer                                                    3200 B
Stiles                                                   3200 B
Taylor                                                   3200 B
McCain                                                   3200 B
Bissot                                                   3300 B
Mallin                                                   3300 B
Dellinger                                                3400 B
Rajs                                                     3500 B
Ladwig                                                   3600 B
Dilly                                                    3600 B
Chung                                                    3800 B
Everett                                                  3900 B
Bell                                                     4000 B
Bull                                                     4100 B
Lorentz                                                  4200 B
Sarchand                                                 4200 B
Whalen                                                   4400 B
Austin                                                   4800 B
Pataballa                                                4800 B
Mourgos                                                  5800 B
Ernst                                                    6000 C
Fay                                                      6000 C
Kumar                                                    6100 C
Banda                                                    6200 C
Johnson                                                  6200 C
Ande                                                     6400 C
Vollman                                                  6500 C
Mavris                                                   6500 C
Lee                                                      6800 C
Popp                                                     6900 C
Tuvault                                                  7000 C
Sewall                                                   7000 C
Grant                                                    7000 C
Marvins                                                  7200 C
Bates                                                    7300 C
Smith                                                    7400 C
Cambrault                                                7500 C
Doran                                                    7500 C
Sciarra                                                  7700 C
Urman                                                    7800 C
Kaufling                                                 7900 C
Weiss                                                    8000 C
Olsen                                                    8000 C
Smith                                                    8000 C
Chen                                                     8200 C
Fripp                                                    8200 C
Gietz                                                    8300 C
Livingston                                               8400 C
Taylor                                                   8600 C
Hutton                                                   8800 C
Hunold                                                   9000 C
Faviet                                                   9000 C
Hall                                                     9000 C
McEwen                                                   9000 C
Sully                                                    9500 C
Greene                                                   9500 C
Bernstein                                                9500 C
Fox                                                      9600 C
Baer                                                    10000 D
Bloom                                                   10000 D
King                                                    10000 D
Tucker                                                  10000 D
Vishney                                                 10500 D
Zlotkey                                                 10500 D
Cambrault                                               11000 D
Raphaely                                                11000 D
Abel                                                    11000 D
Ozer                                                    11500 D
Higgins                                                 12000 D
Greenberg                                               12000 D
Errazuriz                                               12000 D
Hartstein                                               13000 D
Partners                                                13500 D
Russell                                                 14000 D
De Haan                                                 17000 E
Kochhar                                                 17000 E
King                                                    24000 E

已選擇107行。

溢出的情況

在上文的BETWEEN AND語句中,需要保證e.salary在j中一直能夠找到與之對應的值域,否則整行都不會輸出出來

爲了讓數據儘可能地可以輸出出來,我們可以用(+)來避免

SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id(+) = d.department_id ;

輸出如下

LAST_NAME                                          DEPARTMENT_ID DEPARTMENT_NAME
-------------------------------------------------- ------------- ------------------------------------------------------------
King                                                          90 Executive
Kochhar                                                       90 Executive
De Haan                                                       90 Executive
Hunold                                                        60 IT
Ernst                                                         60 IT
Austin                                                        60 IT
Pataballa                                                     60 IT
Lorentz                                                       60 IT
Greenberg                                                    100 Finance
Faviet                                                       100 Finance
Chen                                                         100 Finance
Sciarra                                                      100 Finance
Urman                                                        100 Finance
Popp                                                         100 Finance
Raphaely                                                      30 Purchasing
Khoo                                                          30 Purchasing
Baida                                                         30 Purchasing
Tobias                                                        30 Purchasing
Himuro                                                        30 Purchasing
Colmenares                                                    30 Purchasing
Weiss                                                         50 Shipping
Fripp                                                         50 Shipping
Kaufling                                                      50 Shipping
Vollman                                                       50 Shipping
Mourgos                                                       50 Shipping
Nayer                                                         50 Shipping
Mikkilineni                                                   50 Shipping
Landry                                                        50 Shipping
Markle                                                        50 Shipping
Bissot                                                        50 Shipping
Atkinson                                                      50 Shipping
Marlow                                                        50 Shipping
Olson                                                         50 Shipping
Mallin                                                        50 Shipping
Rogers                                                        50 Shipping
Gee                                                           50 Shipping
Philtanker                                                    50 Shipping
Ladwig                                                        50 Shipping
Stiles                                                        50 Shipping
Seo                                                           50 Shipping
Patel                                                         50 Shipping
Rajs                                                          50 Shipping
Davies                                                        50 Shipping
Matos                                                         50 Shipping
Vargas                                                        50 Shipping
Russell                                                       80 Sales
Partners                                                      80 Sales
Errazuriz                                                     80 Sales
Cambrault                                                     80 Sales
Zlotkey                                                       80 Sales
Tucker                                                        80 Sales
Bernstein                                                     80 Sales
Hall                                                          80 Sales
Olsen                                                         80 Sales
Cambrault                                                     80 Sales
Tuvault                                                       80 Sales
King                                                          80 Sales
Sully                                                         80 Sales
McEwen                                                        80 Sales
Smith                                                         80 Sales
Doran                                                         80 Sales
Sewall                                                        80 Sales
Vishney                                                       80 Sales
Greene                                                        80 Sales
Marvins                                                       80 Sales
Lee                                                           80 Sales
Ande                                                          80 Sales
Banda                                                         80 Sales
Ozer                                                          80 Sales
Bloom                                                         80 Sales
Fox                                                           80 Sales
Smith                                                         80 Sales
Bates                                                         80 Sales
Kumar                                                         80 Sales
Abel                                                          80 Sales
Hutton                                                        80 Sales
Taylor                                                        80 Sales
Livingston                                                    80 Sales
Johnson                                                       80 Sales
Taylor                                                        50 Shipping
Fleaur                                                        50 Shipping
Sullivan                                                      50 Shipping
Geoni                                                         50 Shipping
Sarchand                                                      50 Shipping
Bull                                                          50 Shipping
Dellinger                                                     50 Shipping
Cabrio                                                        50 Shipping
Chung                                                         50 Shipping
Dilly                                                         50 Shipping
Gates                                                         50 Shipping
Perkins                                                       50 Shipping
Bell                                                          50 Shipping
Everett                                                       50 Shipping
McCain                                                        50 Shipping
Jones                                                         50 Shipping
Walsh                                                         50 Shipping
Feeney                                                        50 Shipping
OConnell                                                      50 Shipping
Grant                                                         50 Shipping
Whalen                                                        10 Administration
Hartstein                                                     20 Marketing
Fay                                                           20 Marketing
Mavris                                                        40 Human Resources
Baer                                                          70 Public Relations
Higgins                                                      110 Accounting
Gietz                                                        110 Accounting
                                                                 NOC
                                                                 Manufacturing
                                                                 Government Sales
                                                                 IT Support
                                                                 Benefits
                                                                 Shareholder Services
                                                                 Retail Sales
                                                                 Control And Credit
                                                                 Recruiting
                                                                 Operations
                                                                 Treasury
                                                                 Payroll
                                                                 Corporate Tax
                                                                 Construction
                                                                 Contracting
                                                                 IT Helpdesk

已選擇122行。

將表與自身鏈接

SELECT worker.last_name || ' works for ' 
|| manager.last_name
FROM employees worker, employees manager
WHERE worker.manager_id = manager.employee_id ;

輸出如下:

WORKER.LAST_NAME||'WORKSFOR'||MANAGER.LAST_NAME
--------------------------------------------------------------------------------------------------------------------------
Hartstein works for King
Zlotkey works for King
Cambrault works for King
Errazuriz works for King
Partners works for King
Russell works for King
Mourgos works for King
Vollman works for King
Kaufling works for King
Fripp works for King
Weiss works for King
Raphaely works for King
De Haan works for King
Kochhar works for King
Higgins works for Kochhar
Baer works for Kochhar
Mavris works for Kochhar
Whalen works for Kochhar
Greenberg works for Kochhar
Hunold works for De Haan
Lorentz works for Hunold
Pataballa works for Hunold
Austin works for Hunold
Ernst works for Hunold
Popp works for Greenberg
Urman works for Greenberg
Sciarra works for Greenberg
Chen works for Greenberg
Faviet works for Greenberg
Colmenares works for Raphaely
Himuro works for Raphaely
Tobias works for Raphaely
Baida works for Raphaely
Khoo works for Raphaely
Geoni works for Weiss
Sullivan works for Weiss
Fleaur works for Weiss
Taylor works for Weiss
Markle works for Weiss
Landry works for Weiss
Mikkilineni works for Weiss
Nayer works for Weiss
Cabrio works for Fripp
Dellinger works for Fripp
Bull works for Fripp
Sarchand works for Fripp
Olson works for Fripp
Marlow works for Fripp
Atkinson works for Fripp
Bissot works for Fripp
Perkins works for Kaufling
Gates works for Kaufling
Dilly works for Kaufling
Chung works for Kaufling
Philtanker works for Kaufling
Gee works for Kaufling
Rogers works for Kaufling
Mallin works for Kaufling
Jones works for Vollman
McCain works for Vollman
Everett works for Vollman
Bell works for Vollman
Patel works for Vollman
Seo works for Vollman
Stiles works for Vollman
Ladwig works for Vollman
Grant works for Mourgos
OConnell works for Mourgos
Feeney works for Mourgos
Walsh works for Mourgos
Vargas works for Mourgos
Matos works for Mourgos
Davies works for Mourgos
Rajs works for Mourgos
Tuvault works for Russell
Cambrault works for Russell
Olsen works for Russell
Hall works for Russell
Bernstein works for Russell
Tucker works for Russell
Sewall works for Partners
Doran works for Partners
Smith works for Partners
McEwen works for Partners
Sully works for Partners
King works for Partners
Banda works for Errazuriz
Ande works for Errazuriz
Lee works for Errazuriz
Marvins works for Errazuriz
Greene works for Errazuriz
Vishney works for Errazuriz
Kumar works for Cambrault
Bates works for Cambrault
Smith works for Cambrault
Fox works for Cambrault
Bloom works for Cambrault
Ozer works for Cambrault
Johnson works for Zlotkey
Grant works for Zlotkey
Livingston works for Zlotkey
Taylor works for Zlotkey
Hutton works for Zlotkey
Abel works for Zlotkey
Fay works for Hartstein
Gietz works for Higgins

已選擇106行。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章