最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

postgreSQL中的內(nèi)連接和外連接實(shí)現(xiàn)操作

 更新時(shí)間:2021年01月27日 09:24:50   作者:安善良民弱女子  
這篇文章主要介紹了postgreSQL中的內(nèi)連接和外連接實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

測試數(shù)據(jù):

city表:

create table city(id int,name text);
insert into city values(0,'北京'),(1,'西安'),(2,'天津'),(3,'上海'),(4,'哈爾濱'),(5,'西藏')

person表:

create table person(id int,lastname char(20));
insert into person values(0,'Tom'),(2,'Lily'),(3,'Mary'),(5,'Coco');
select * from city;

select * from person;

一:內(nèi)連接:

1.inner join

inner join(等值連接) 只返回兩個(gè)表中聯(lián)結(jié)字段相等的行

sql語句:

select * from city inner join person on city.id = person.id;

也可以寫成:

select * from city join person on city.id = person.id;

結(jié)果如下:

從結(jié)果可以看出,表格中顯示出了city.id=person.id的記錄,它顯示出了符合這個(gè)條件的記錄。

二:外連接:

1.full outer join

full outer join(全外連接)返回參與連接的兩個(gè)數(shù)據(jù)集合中的全部數(shù)據(jù)

sql語句:

select * from city full outer join person on city.id = person.id;

也可以寫成:

select * from city full join person on city.id = person.id;

結(jié)果如下:

從結(jié)果可以看出,全外連接得到了city和person表中的全部數(shù)據(jù)

2.left outer join

left outer join(左連接) 返回包括左表中的所有記錄和右表中連接字段相等的記錄

sql語句:

select * from city left outer join person on city.id = person.id;

也可以寫成:

select * from city left join person on city.id = person.id;

結(jié)果如下:

從結(jié)果可以看出,左外連接和全外連接的結(jié)果一模一樣?

我們?cè)诮operson中添加一行數(shù)據(jù):

insert into person values(9,'Kiki');

在重新執(zhí)行:

select * from city full join person on city.id = person.id;

結(jié)果如下:

select * from city left join person on city.id = person.id;

結(jié)果如下:

兩個(gè)結(jié)果對(duì)照著看,left join顯示出了city中的所有記錄和person連接字段相等的記錄

3.right outer join

right outer join(右連接) 返回包括右表中的所有記錄和左表中連接字段相等的記錄

sql語句:

select * from city right outer join person on city.id = person.id;

也可以寫成

select * from city right join person on city.id = person.id;

結(jié)果如下:

從結(jié)果可以看出,person中的記錄被全部顯示出來,而city中的顯示的數(shù)據(jù)是根據(jù)連接字段相等的記錄

補(bǔ)充:PostgreSQL表連接:內(nèi)連接,外連接,自連接,交叉連接

搜了搜,基本上都是寫內(nèi)連接、外連接、交叉連接這三種類型,但我發(fā)現(xiàn)PostgreSQL還有自連接。不妨一并寫來做個(gè)記錄。

先說概念:

內(nèi)連接,就是兩個(gè)表逐行匹配,匹配上的內(nèi)容都顯示,沒有匹配的都不顯示。

外連接有三種,左外連接,右外連接,全外連接。

左外連接是以左表為基礎(chǔ),左表內(nèi)容全部顯示,右表有匹配到左表的則顯示,否則不顯示。

右外連接是以右表為基礎(chǔ),右表內(nèi)容全部顯示,左表有匹配到右表的則顯示,否則不顯示。

全外連接是以兩表為基礎(chǔ),顯示三部分內(nèi)容,一部分是內(nèi)連接的內(nèi)容,即兩表匹配的內(nèi)容,一部分是左表有而右表無的,一部分是左表無右表有的。

自連接是逐行,用當(dāng)前這行數(shù)據(jù)和這個(gè)表中其他行進(jìn)行匹配。

交叉連接最省事,笛卡爾積,左表m行右表n行,則結(jié)果是m*n行。

下面展示具體例子來幫助理解。

下面是兩個(gè)表的內(nèi)容。

mydb=# select * from weather;
   city   | temp_lo | temp_hi | prcp |  date
---------------+---------+---------+------+------------
 San Francisco |   46 |   50 | 0.25 | 1994-11-27
 San Francisco |   43 |   57 |  0 | 1994-11-29
 Hayward    |   37 |   54 |   | 1994-11-29
(3 行記錄)
 
mydb=# select * from cities;
   name   | location
---------------+-----------
 San Francisco | (-194,53)
 London    | (0,51)
(2 行記錄)

內(nèi)連接有兩種寫法:

mydb=# SELECT *
mydb-#   FROM weather, cities
mydb-#   WHERE city = name;
   city   | temp_lo | temp_hi | prcp |  date  |   name   | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
 San Francisco |   43 |   57 |  0 | 1994-11-29 | San Francisco | (-194,53)
(2 行記錄) 
 
mydb=# SELECT *
mydb-#   FROM weather INNER JOIN cities ON (weather.city = cities.name);
   city   | temp_lo | temp_hi | prcp |  date  |   name   | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
 San Francisco |   43 |   57 |  0 | 1994-11-29 | San Francisco | (-194,53)
(2 行記錄)

外連接有三種:左外連接,右外連接,全外連接。

mydb=# SELECT *
mydb-#   FROM weather LEFT OUTER JOIN cities ON (weather.city = cities.name);
   city   | temp_lo | temp_hi | prcp |  date  |   name   | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
 San Francisco |   43 |   57 |  0 | 1994-11-29 | San Francisco | (-194,53)
 Hayward    |   37 |   54 |   | 1994-11-29 |        |
(3 行記錄) 
 
mydb=# select * from weather right outer join cities on(weather.city=cities.name);
   city   | temp_lo | temp_hi | prcp |  date  |   name   | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |   43 |   57 |  0 | 1994-11-29 | San Francisco | (-194,53)
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
        |     |     |   |      | London    | (0,51)
(3 行記錄) 
 
mydb=# select * from weather full outer join cities on(weather.city=cities.name);
   city   | temp_lo | temp_hi | prcp |  date  |   name   | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
 San Francisco |   43 |   57 |  0 | 1994-11-29 | San Francisco | (-194,53)
 Hayward    |   37 |   54 |   | 1994-11-29 |        |
        |     |     |   |      | London    | (0,51)
(4 行記錄)

表交叉連接:

mydb=# SELECT *
mydb-#   FROM weather, cities;
   city   | temp_lo | temp_hi | prcp |  date  |   name   | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
 San Francisco |   46 |   50 | 0.25 | 1994-11-27 | London    | (0,51)
 San Francisco |   43 |   57 |  0 | 1994-11-29 | San Francisco | (-194,53)
 San Francisco |   43 |   57 |  0 | 1994-11-29 | London    | (0,51)
 Hayward    |   37 |   54 |   | 1994-11-29 | San Francisco | (-194,53)
 Hayward    |   37 |   54 |   | 1994-11-29 | London    | (0,51)
(6 行記錄)

表自連接:

mydb=# SELECT W1.city, W1.temp_lo AS low, W1.temp_hi AS high,
mydb-#   W2.city, W2.temp_lo AS low, W2.temp_hi AS high
mydb-#   FROM weather W1, weather W2
mydb-#   WHERE W1.temp_lo < W2.temp_lo
mydb-#   AND W1.temp_hi > W2.temp_hi;
   city   | low | high |   city   | low | high
---------------+-----+------+---------------+-----+------
 San Francisco | 43 |  57 | San Francisco | 46 |  50
 Hayward    | 37 |  54 | San Francisco | 46 |  50
(2 行記錄)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • postgreSQL中的case用法說明

    postgreSQL中的case用法說明

    這篇文章主要介紹了postgreSQL中的case用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • postgresql SQL語句變量的使用說明

    postgresql SQL語句變量的使用說明

    這篇文章主要介紹了postgresql SQL語句變量的使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL之INDEX 索引詳解

    PostgreSQL之INDEX 索引詳解

    這篇文章主要介紹了PostgreSQL之INDEX 索引詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 在postgresql中運(yùn)行sql文件并導(dǎo)出結(jié)果的操作

    在postgresql中運(yùn)行sql文件并導(dǎo)出結(jié)果的操作

    這篇文章主要介紹了在postgresql中運(yùn)行sql文件并導(dǎo)出結(jié)果的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 詳解PostgreSQL?14.4安裝使用及一些安裝的異常問題

    詳解PostgreSQL?14.4安裝使用及一些安裝的異常問題

    這篇文章主要介紹了PostgreSQL?14.4的安裝以及使用以及一些安裝的異常,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • PostgreSql從庫重新配置的詳情

    PostgreSql從庫重新配置的詳情

    這篇文章主要介紹了PostgreSql從庫重新配置的詳情,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • PostgreSQL去掉表中所有不可見字符的操作

    PostgreSQL去掉表中所有不可見字符的操作

    這篇文章主要介紹了PostgreSQL去掉表中所有不可見字符的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL解析URL的方法

    PostgreSQL解析URL的方法

    盡管PostgreSQL中支持大量的數(shù)據(jù)類型,但是對(duì)于URL似乎并沒有一個(gè)相應(yīng)的類型能夠去存儲(chǔ)。那么對(duì)于URL的數(shù)據(jù)我們?cè)跀?shù)據(jù)庫中要怎么去處理呢?今天通過本文給大家介紹下,需要的朋友參考下吧
    2021-07-07
  • postgresql 中的加密擴(kuò)展插件pgcrypto用法說明

    postgresql 中的加密擴(kuò)展插件pgcrypto用法說明

    這篇文章主要介紹了postgresql 中的加密擴(kuò)展插件pgcrypto用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL判斷字符串是否包含目標(biāo)字符串的多種方法

    PostgreSQL判斷字符串是否包含目標(biāo)字符串的多種方法

    這篇文章主要介紹了PostgreSQL判斷字符串是否包含目標(biāo)字符串的多種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02

最新評(píng)論

江阴市| 龙州县| 福州市| 青川县| 东城区| 新河县| 武安市| 横峰县| 三原县| 夹江县| 汝城县| 梓潼县| 平原县| 达拉特旗| 赫章县| 平定县| 崇信县| 河北省| 裕民县| 通渭县| 高州市| 平远县| 沈阳市| 通江县| 奉贤区| 云和县| 息烽县| 运城市| 沽源县| 稷山县| 华池县| 峨山| 天门市| 牙克石市| 漳平市| 嘉义市| 门头沟区| 砚山县| 称多县| 旌德县| 澄江县|