找到關於資料儲存的622篇文章

如何在PostgreSQL查詢中對選擇的列應用DISTINCT約束?

Yash Sanghvi
更新於 2021年2月2日 12:57:26

126 次瀏覽

假設您有一個包含 5 列的 exam_scores 表。下面是一個包含一些虛擬資料的示例。nameroll_nosubjecttotal_marksmarks_obtainedAnil1English10056Anil1Math10065Anil1Science10045Roy2English10078Roy2Math10098Roy2Science10067現在,一個學生可能參加了多個科目的考試,因此,一個學生有多行記錄。如果您想找出班級的總學生人數,您可能需要查詢roll_no的不同值的個數。您可以對特定列應用distinct約束,如下所示:SELECT DISTINCT ON (roll_no) name, roll_no FROM exam_scores ORDER BY roll_no DESC 以下是上述查詢的輸出結果:nameroll_noRoy2Anil1您還可以……閱讀更多

PostgreSQL中的CASE WHEN?

Yash Sanghvi
更新於 2021年2月2日 12:55:49

2K+ 次瀏覽

如果您是一位程式設計師,您可能非常熟悉IF-ELSE語句。PostgreSQL中的等效語句是CASE WHEN。讓我們透過一個例子來理解。如果您有一個包含學生百分比分數的marks表,並且您想找出學生是及格還是不及格。下面是一個示例表。nameperc_marksAnil24Joy65Ron42Reena87假設及格分數是40。現在,如果學生的分數高於40分,我們想列印該學生的“PASS”,否則列印“FAIL”。您可以這樣操作:SELECT name, CASE WHEN perc_marks >= 40 THEN 'PASS' ELSE 'FAIL' END status from ... 閱讀更多

如何在PostgreSQL中獲取當前時間戳和相對時間戳?

Yash Sanghvi
更新於 2021年2月2日 12:54:56

2K+ 次瀏覽

通常,您需要PostgreSQL中的當前時間戳。您可以按如下方式執行此操作:SELECT current_timestamp 它將輸出當前時間。輸出將如下所示:2021-01-30 15:52:14.738867+00 現在,如果您想要相對時間而不是當前時間呢?例如,如果您想要當前時間之前的5小時的時間,您可以使用間隔來獲取它。SELECT current_timestamp - interval '5 hours' 輸出每次都會不同。在撰寫本文時,輸出為:2021-01-30 10:57:13.28955+00 您也可以對日期而不是時間戳執行這些操作SELECT current_date 輸出2021-01-30SELECT current_date + ... 閱讀更多

如何在PostgreSQL中將一個表中的值插入另一個表?

Yash Sanghvi
更新於 2021年2月2日 12:30:41

2K+ 次瀏覽

假設您有兩個表:marks 和 student_info。下面分別給出了這兩個表的示例nameroll_noperc_marksAniket1224Siddhi4565Yash2642Isha5687nameroll_noagegenderAniket1226MIsha5625FSiddhi4523FYash2625M現在,假設您工作中的經理檢視這兩個表並告訴您:“為什麼我們有兩個表?簡化一下,將所有內容移到一個表中!”因此,您決定將perc_marks列新增到student_info表中。ALTER TABLE student_info ADD COLUMN perc_marks integer 現在,您將如何填充此列?您會手動為每一列新增分數嗎?這會為很多錯誤留下空間,並且也會非常耗時。相反,您可以這樣做:UPDATE student_info ... 閱讀更多

可以在PostgreSQL表上進行哪種索引?

Yash Sanghvi
更新於 2021年2月2日 12:31:13

105 次瀏覽

索引用於加快PostgreSQL以及一般關係資料庫中的查詢執行速度。PostgreSQL表主要支援幾種索引型別。讓我們簡要討論3種常用的索引型別:雜湊這些索引只能處理相等比較。換句話說,如果我想檢查itemA = itemB,那麼雜湊索引很有用。它不適合其他型別的操作,例如>,=,40,則此索引將無用,並且PostgreSQL將組織查詢計劃,假設索引不存在。B樹這是PostgreSQL使用的預設索引。換句話說,如果... 閱讀更多

可以向PostgreSQL表新增哪些約束?

Yash Sanghvi
更新於 2021年2月2日 13:13:19

178 次瀏覽

一般來說,可以使用6種類型的約束與PostgreSQL表一起使用。它們列在下面並進行了解釋:NOT NULL約束這是一個非常常見的約束。如果某個特定列不能具有空值,則在建立表時新增此約束。例如,如果我們建立一個marks表,該表不能對name欄位具有NULL值,則表建立命令將如下所示:CREATE TABLE marks(    name VARCHAR NOT NULL,    roll_no INTEGER,    marks_obtained INTEGER );現在,如果我們嘗試在不... 閱讀更多

如何在PostgreSQL中定義和查詢json列?

Yash Sanghvi
更新於 2021年2月2日 12:22:41

1K+ 次瀏覽

能夠在PostgreSQL中定義JSON列使其功能非常強大,並幫助PostgreSQL使用者體驗兩全其美:SQL和NoSQL。建立JSON列非常簡單。您只需像建立任何其他列一樣建立/定義它,並將資料型別用作JSON。讓我們在PostgreSQL中建立一個新表,名為json_test:CREATE TABLE json_test(    serial_no SERIAL PRIMARY KEY,    name VARCHAR,    metadata JSON );現在,讓我們用一些資料填充它:INSERT INTO json_test(name, metadata) VALUES ('Yash', '{"marks_scored":{"science":50, "maths":65}}'), ('Isha', '{"marks_scored":{"science":70, "maths":45}}');如您所見,JSON值是在單個... 閱讀更多

PostgreSQL中的INNER JOIN與FULL OUTER JOIN與LEFT JOIN與RIGHT JOIN?

Yash Sanghvi
更新於 2021年2月2日 12:18:49

734 次瀏覽

為了用示例理解這些概念,我們將考慮兩個表,marks和student_info,分別定義如下:marks:nameroll_noperc_marksSiddhi4565Yash2642Isha5687student_info:nameroll_noagegenderAniket1226MIsha5625FYash2625M如您所見,marks表沒有Aniket的條目,而student_info表沒有Siddhi的條目。換句話說,marks表沒有roll_no 12的條目,而student_info表沒有roll_no 45的條目。現在,讓我們逐一瞭解不同的連線。INNER JOIN它只返回兩個表中都存在條目的行。SELECT marks.name, marks.roll_no, student_info.age FROM marks INNER JOIN student_info on marks.roll_no ... 閱讀更多

如何在PostgreSQL中更改列的型別?

Yash Sanghvi
更新於 2021年2月2日 12:11:32

5K+ 次瀏覽

為了更改列的型別,語法是ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type USING expression; 請注意,一般不建議更改列的型別,尤其是在您的表已經有很多條目時。USING 語法部分是可選的。當您需要使用表示式將該列中現有的條目從當前型別轉換為新型別時,可以使用它。例如,如果您將INTEGER型別的列轉換為BIGINTEGER型別,則不需要使用任何表示式來轉換現有的... 閱讀更多

如何在PostgreSQL中向現有表新增列?

Yash Sanghvi
更新於 2021年2月2日 12:07:55

883 次瀏覽

向現有表中新增新列的語法非常簡單。ALTER TABLE 表名 ADD COLUMN 列名 列型別 列約束;例如,你有一個名為 marks 的現有表。下面給出一個例子:serial_nonameroll_nomarks_obtainedperc_marksmax_marksdate_of_entry1Yash2642421002021-01-302Isha5617587.52002021-01-30現在,假設你想新增一個名為 subject 的列。你可以使用以下命令:ALTER TABLE marks ADD COLUMN subject VARCHAR;現在,如果你再次使用 SELECT * from marks 查詢表,你會看到以下輸出:serial_nonameroll_nomarks_obtainedperc_ marksmax_ marksdate_ of_ entrysubject1Yash2642421002021-01-30[null]2Isha5617587.52002021-01-30[null]請注意,subject 列中的值為空,因為我們只是建立了該列,並沒有填充它。我們可以使用 UPDATE ... 閱讀更多

廣告
© . All rights reserved.