PostgreSQL表的基本概念

來源:互聯網
上載者:User

標籤:

關係型資料庫中的表非常類似紙面上的一張表:它由行和列組成。欄位的數目和順序是固定的,每個欄位都有一個名字。行的數目是變化的(它反映了給定時刻儲存的資料量)。 SQL 對錶中行的順序沒有任何承諾。當讀取一個表時,行將會以一個未指定的順序出現,除非你明確地要求排序。這些內容在http://www.infocool.net/PostgreSQL/index.htm裡介紹。另外,SQL 並不給行賦予唯一的標識,因此我們很可能在一個表中有好幾個完全相同的行。這是作為 SQL 基礎的下層數學模型的必然結果,但是這通常是我們不願意看到的。本章稍後的部分將討論如何處理這個問題。

每個欄位都有一個資料類型。資料類型控制著一個欄位所有可能值的集合,並且控制著欄位中資料的語義,這樣它就可以用於計算。比如,一個聲明為數實值型別的欄位不會接受任意文本字串,而儲存在這種欄位裡的資料可以用於數學計算。相比之下,一個聲明為字串類型的欄位接受幾乎任意類型的資料,但是它們不能進行數學計算(不過可以進行像字串串連之類的操作)。

PostgreSQL包含一套可剪裁的內建資料類型,這些類型可以適用於許多應用。使用者也可以定義它們自己的資料類型。常用的資料類型有:用於整數的integer、用於可能為分數的numeric、用於字串的text、用於日期的date、用於時間的time、用於時間戳記的timestamp。

要建立一個表,可用使用CREATE TABLE命令。在這個命令裡,你至少要為新表聲明一個名字,還有各欄位的名字以及其資料類型。比如:

CREATE TABLE my_first_table (    first_column text,    second_column integer);

這樣就建立了一個有兩個欄位的名為my_first_table的表。第一個欄位的名字是first_column,資料類型為text;第二個欄位的名字是second_column,資料類型是integer。類型名通常也是標識符(但是有一些例外)。請注意欄位列表是逗號分隔的,並且用圓括弧包圍。

當然,前面只是一個非常虛構的例子。通常,你會給表和欄位取一個有意義的名字,用以表達他們儲存的什麼類型的資料,所以還是讓我們給一個比較現實的例子:

CREATE TABLE products (    product_no integer,    name text,    price numeric);

numeric類型可以儲存分數部分,金額很可能有這樣的分數部分。

提示: 如果你建立了許多相互關聯的表,那麼最好為表和欄位選擇一致的命名模式。比如,表名字可以統一選擇單數或者複數,兩種選擇都有這樣那樣的理論家支援。

一個表能包含的欄位數目是有限制的。根據欄位類型的不同,這個數目可能在 250 到 1600 之間。不過,不管是哪一端的數字,如果你設計的表包含那麼多的欄位好像都很不可能發生,否則是設計上有問題的表現。

如果你不再需要一個表,那麼可以用DROP TABLE命令刪除它。像這樣:

DROP TABLE my_first_table;DROP TABLE products;

試圖刪除一個不存在的表是一個錯誤。不過,在 SQL 指令檔裡,我們通常在建立表之前無條件刪除它並忽略錯誤訊息,所以無論要刪除的表存不存在,這個指令碼都成功。當然你還可以使用DROP TABLE IF EXISTS來避免錯誤訊息,不過這並不符合 SQL 標準。

 

使用到目前為止討論的工具我們可以建立功能完整的表。本章剩下的部分是有關向表定義中增加特性、保證資料完整性、安全性或便利性的內容。

PostgreSQL表的基本概念

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.