PostgreSQL快速入門(2019-07-19)

一晒奕、PostgreSQL是什么煮寡?

PostgreSQL是一個(gè)功能強(qiáng)大的開源對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS)妆毕。 用于安全地存儲(chǔ)數(shù)據(jù); 支持最佳做法流强,并允許在處理請(qǐng)求時(shí)檢索它們痹届。

PostgreSQL(也稱為Post-gress-Q-L)由PostgreSQL全球開發(fā)集團(tuán)(全球志愿者團(tuán)隊(duì))開發(fā)。 它不受任何公司或其他私人實(shí)體控制打月。 它是開源的队腐,其源代碼是免費(fèi)提供的。

PostgreSQL是跨平臺(tái)的奏篙,可以在許多操作系統(tǒng)上運(yùn)行柴淘,如Linux迫淹,OS X和Microsoft Windows等。


二为严、PostgreSQL特點(diǎn)

跨平臺(tái)

支持文本敛熬、圖像、視頻第股、聲音等

并提供C/C++应民、Java、Perl夕吻、Python诲锹、Ruby放數(shù)據(jù)庫(kù)連接(ODBC)的編程接口。

支持SQL的許多功能涉馅,例如復(fù)雜的SQL查詢归园,子查詢,外鍵稚矿,觸發(fā)器庸诱,視圖,視圖盐捷,多進(jìn)程并發(fā)控制(MVCC)偶翅、異步復(fù)制。

在PostgreSQL中碉渡,表可以設(shè)置為從“父”表繼承其特征聚谁。

PostgreSQL是第一個(gè)實(shí)現(xiàn)多版本并發(fā)控制(MVCC)功能的數(shù)據(jù)庫(kù)管理系統(tǒng),甚至在Oracle之前滞诺。MVCC功能在Oracle中稱為快照隔離形导。

PostgreSQL是一個(gè)通用的對(duì)象 - 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它允許您添加使用不同編程語(yǔ)言(如C / C ++习霹,Java等)開發(fā)的自定義函數(shù)朵耕。

PostgreSQL旨在實(shí)現(xiàn)可擴(kuò)展性。在PostgreSQL中淋叶,您可以定義自己的數(shù)據(jù)類型阎曹,索引類型,函數(shù)語(yǔ)言等煞檩。如果您不喜歡系統(tǒng)的任何部分处嫌,您可以隨時(shí)開發(fā)自定義插件以增強(qiáng)它以滿足您的要求,例如斟湃,添加新的優(yōu)化熏迹。

如果您需要任何支持,可以使用活躍的社區(qū)來(lái)提供幫助凝赛。您可以隨時(shí)找到PostgreSQL社區(qū)的答案注暗,以了解使用PostgreSQL時(shí)可能遇到的問(wèn)題坛缕。許多公司在您需要時(shí)提供商業(yè)支持服務(wù)。

三捆昏、PostgreSQL工具

psql:命令行工具赚楚,也是管理PostgreSQL的主要工具

pgAdmin:是PostgreSQL免費(fèi)開源的圖形化界面管理工具

四、PostgreSQL安裝

Linux 下安裝屡立、創(chuàng)建用戶和數(shù)據(jù)庫(kù)教程:https://www.cnblogs.com/weihengblog/p/10082570.html

官方下載地址:

1https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

驗(yàn)證安裝

有幾種方法可以驗(yàn)證安裝直晨。您可以嘗試從任何客戶端應(yīng)用程序(例如psql和pgAdmin)連接到PostgreSQL數(shù)據(jù)庫(kù)服務(wù)器?

驗(yàn)證安裝的快速方法是通過(guò)pgAdmin應(yīng)用程序膨俐。

首先勇皇,打開SQL shell(psql)


五、PostgreSQL數(shù)據(jù)庫(kù)命令

1.打開SQL shell(psql)焚刺,執(zhí)行以下創(chuàng)建語(yǔ)句

createdatabasemydb;

2.刪除數(shù)據(jù)庫(kù)命令:

dropdatabasemydb;

這個(gè)動(dòng)作將在物理上把所有與該數(shù)據(jù)庫(kù)相關(guān)的文件都刪除并且不可取消敛摘, 因此做這中操作之前一定要考慮清楚。

4.訪問(wèn)數(shù)據(jù)庫(kù)

運(yùn)行PostgreSQL的交互式終端程序乳愉,它被稱為psql跑慕, 它允許你交互地輸入甲捏、編輯和執(zhí)行SQL命令。

psql mydb;-- 用下面的命令為mydb數(shù)據(jù)庫(kù)激活它

5.查看數(shù)據(jù)庫(kù)

postgres=# \l-- l是L的小寫

6.選擇數(shù)據(jù)庫(kù),如果創(chuàng)建表的話付魔,前提是在哪個(gè)數(shù)據(jù)庫(kù)中:

\c mydb;-- 選擇mydb數(shù)據(jù)庫(kù)诅病,注意\c是小寫

7.如果要退出psql的話司澎,輸入

mydb=>\q

六物独、創(chuàng)建一個(gè)新表

?通過(guò)指定表的名字、所有列的名字以及其數(shù)據(jù)類型來(lái)創(chuàng)建新的表:

CREATETABLE weather (

? ? city? ? ? ? ? ? varchar(80),

? ? temp_lo? ? ? ? int,-- 最低溫度temp_hiint,-- 最高溫度prcpreal,-- 濕度? ? date? ? ? ? ? ? date

);

和mysql命令終端類似备闲,psql可以識(shí)別該命令直到分號(hào)結(jié)束晌端。SQL 是對(duì)關(guān)鍵字和標(biāo)識(shí)符大小寫不敏感的語(yǔ)言,只有在標(biāo)識(shí)符用雙引號(hào)包圍時(shí)才能保留它們的大小寫恬砂。兩個(gè)中橫線(--)表示注釋咧纠。

PostgreSQL支持標(biāo)準(zhǔn)的SQL類型int、smallint泻骤、real漆羔、double precision、char(N)狱掂、varchar(N)演痒、date、time符欠、timestamp和interval嫡霞,還支持其他的通用功能的類型和豐富的幾何類型瓶埋。PostgreSQL中可以定制任意數(shù)量的用戶定義數(shù)據(jù)類型希柿。因而類型名并不是語(yǔ)法關(guān)鍵字诊沪,除了SQL標(biāo)準(zhǔn)要求支持的特例外。

第二個(gè)例子將保存城市和它們相關(guān)的地理位置:

CREATETABLE cities (

? ? name? ? ? ? ? ? varchar(80),

? ? location? ? ? ? point

);

類型point就是一種PostgreSQL特有數(shù)據(jù)類型的例子曾撤。

刪除一張表:

droptabletablename;-- 刪除數(shù)據(jù)表

七端姚、添加記錄

insert語(yǔ)句用于向表中添加行:

INSERTINTOweatherVALUES('San Francisco',46,50,0.25,'1994-11-27');

需要注意的是:那些不是簡(jiǎn)單數(shù)字的值,通常使用單引號(hào)包裹挤悉,date類型實(shí)際上對(duì)可接收的格式相當(dāng)靈活渐裸,不過(guò)我們應(yīng)該堅(jiān)持使用這種清晰的格式。

point類型要求一個(gè)座標(biāo)對(duì)作為輸入装悲,如下:

INSERTINTOcitiesVALUES('San Francisco','(-194.0, 53.0)');

另一種方式是列出所有的列昏鹃,一個(gè)可選的語(yǔ)法允許你明確地列出列:

INSERTINTOweather (city, temp_lo, temp_hi, prcp, date)VALUES('San Francisco',43,57,0.0,'1994-11-29');

你可以用另外一個(gè)順序列出列或者是忽略某些列, 比如說(shuō)诀诊,我們不知道降水量:

INSERTINTOweather (date, city, temp_hi, temp_lo)VALUES('1994-11-29','Hayward',54,37);

你還可以使用COPY從文本文件中裝載大量數(shù)據(jù)洞渤。這種方式通常更快,因?yàn)镃OPY命令就是為這類應(yīng)用優(yōu)化的属瓣, 只是比INSERT少一些靈活性载迄。比如:

COPY weatherFROM'/home/user/weather.txt';

八、查詢數(shù)據(jù)

?使用DISTINCT運(yùn)算符選擇不同的行

使用where進(jìn)行過(guò)濾

使用order by進(jìn)行排序

根據(jù)between,in,like選擇不同的行

使用group by進(jìn)行分組

使用hving子句為 組應(yīng)用條件

使用inner join抡蛙、left join护昧、full outer join、cross join進(jìn)行連表查詢

postgresql的select例子

SELECT語(yǔ)法:

SELECT column_1,

column_2,

...FROM table_name;

首先粗截,指定要在select子句中查詢數(shù)據(jù)表的列惋耙,多個(gè)列使用逗號(hào)分隔,如果要查詢所有列慈格,使用星號(hào)(*)作為簡(jiǎn)寫怠晴;其次,在From之后指出表名浴捆。

使用星號(hào)(*)不是一個(gè)好習(xí)慣:

?使用星號(hào)(*)不是一個(gè)好習(xí)慣

LIMIT:PostgreSQL 中l(wèi)imit是select語(yǔ)句可選的子句蒜田,它獲取查詢返回的所有行的子集。

LIMIT語(yǔ)法:

SELECT* FROM table_name LIMIT n;

如果要在返回行之前跳過(guò)m行选泻,請(qǐng)使用offset子句:

SELECT*FROMtable LIMIT n OFFSET m;

由于數(shù)據(jù)庫(kù)表行的順序是不可預(yù)測(cè)的冲粤,因此在使用limit子句的時(shí)候,應(yīng)始終使用該order by子句來(lái)控制行的順序页眯。

我們經(jīng)常使用LIMIT子句來(lái)獲取表中最高或最低項(xiàng)的數(shù)據(jù)梯捕,例如,要獲得最貴的前十名電影窝撵,您可以按照售價(jià)按降序排序傀顾,并使用LIMIT條款獲得前10部電影:

select*fromfilmorderbyrental_ratedesclimit10;

ORDER BY:如何對(duì)查詢返回的結(jié)果集進(jìn)行排序

當(dāng)你從表中查詢數(shù)據(jù),PostgreSQL按照他們插入的順序返回行碌奉,需要對(duì)結(jié)果集進(jìn)行排序短曾,需要使用select的order by子句

select column_1,column_2fromtable_nameorderbycolumn_1ASC,column_2DESC;

首先寒砖,在order by子句中指定要排序的列,如果基于多個(gè)列對(duì)結(jié)果集進(jìn)行排序嫉拐,使用逗號(hào)分隔哩都。

使用ASC表示升序,DESC按照降序婉徘,如果省略漠嵌,默認(rèn)按照ASC。

DISTINCT:刪除結(jié)果集中重復(fù)行的子句

使用distinct語(yǔ)句可以從結(jié)果集中刪除重復(fù)的行盖呼,該distinct子句為每組重復(fù)項(xiàng)保留一行

selectdistinctcolumn_1fromtable_name;-- column_1列中的值用于評(píng)估重復(fù)項(xiàng)

selectdistinctcolumn_1,column_2fromtable_name;-- column_1列和column_2兩者的結(jié)合用于評(píng)估重復(fù)項(xiàng)

九儒鹿、過(guò)濾數(shù)據(jù)

where:根據(jù)指定的條件過(guò)濾行

limit:從查詢結(jié)果集中獲取子集

fetch:限制返回的行數(shù)

in:選擇與值列表中的任何值匹配的數(shù)據(jù)。

between:選擇一系列值的數(shù)據(jù)

like:根據(jù)模式匹配過(guò)濾結(jié)果集

is null:檢查值是否為null



https://www.cnblogs.com/weihengblog/p/9307666.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末几晤,一起剝皮案震驚了整個(gè)濱河市挺身,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锌仅,老刑警劉巖章钾,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異热芹,居然都是意外死亡贱傀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門伊脓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)府寒,“玉大人,你說(shuō)我怎么就攤上這事报腔≈晟Γ” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵纯蛾,是天一觀的道長(zhǎng)纤房。 經(jīng)常有香客問(wèn)我,道長(zhǎng)翻诉,這世上最難降的妖魔是什么炮姨? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮碰煌,結(jié)果婚禮上舒岸,老公的妹妹穿的比我還像新娘。我一直安慰自己芦圾,他們只是感情好蛾派,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般洪乍。 火紅的嫁衣襯著肌膚如雪梭依。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天典尾,我揣著相機(jī)與錄音,去河邊找鬼糊探。 笑死钾埂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的科平。 我是一名探鬼主播褥紫,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瞪慧!你這毒婦竟也來(lái)了髓考?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弃酌,失蹤者是張志新(化名)和其女友劉穎氨菇,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妓湘,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡查蓉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榜贴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豌研。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖唬党,靈堂內(nèi)的尸體忽然破棺而出鹃共,到底是詐尸還是另有隱情,我是刑警寧澤驶拱,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布霜浴,位于F島的核電站,受9級(jí)特大地震影響蓝纲,放射性物質(zhì)發(fā)生泄漏坷随。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一驻龟、第九天 我趴在偏房一處隱蔽的房頂上張望温眉。 院中可真熱鬧,春花似錦翁狐、人聲如沸类溢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)闯冷。三九已至砂心,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛇耀,已是汗流浹背辩诞。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纺涤,地道東北人译暂。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像撩炊,于是被迫代替她去往敵國(guó)和親外永。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)拧咳,會(huì)觸發(fā)此異常伯顶。 O...
    我想起個(gè)好名字閱讀 5,256評(píng)論 0 9
  • 轉(zhuǎn)載,覺得這篇寫 SQLAlchemy Core骆膝,寫得非常不錯(cuò)祭衩。不過(guò)后續(xù)他沒(méi)寫SQLAlchemy ORM... ...
    非夢(mèng)nj閱讀 5,379評(píng)論 1 14
  • 前言 讀《sql必知必會(huì) 第四版》隨手做的筆記,寫的比較亂阅签,可讀性并不好汪厨,讀的是中文版,翻譯過(guò)來(lái)的感覺有點(diǎn)怪怪的愉择。...
    _老徐_閱讀 626評(píng)論 0 0
  • 關(guān)系型數(shù)據(jù)庫(kù)和SQL SQL語(yǔ)言的三個(gè)部分DML:Data Manipulation Language劫乱,數(shù)據(jù)操縱語(yǔ)...
    Awey閱讀 1,941評(píng)論 0 13
  • 中午花了一個(gè)午休的時(shí)間层坠,看了馬克已久的文章《張卓:寫作不崩潰幾次殖妇,完全寫不出東西 | 寫作干貨》 對(duì)記者(非官方)...
    Aglaia橙酒閱讀 382評(píng)論 0 0