有意義的表創建
在前面的課程中,我們已經對創建表的查詢有了一些了解,現在是時候深入研究一下了。
創建表與在 Java 中聲明類非常相似,並且具有以下模式:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
例如,讓我們編寫一個查詢來創建一個包含用戶的表:
CREATE TABLE user (
id INT,
name VARCHAR(100),
level INT,
created_date DATE,
);
它看起來很簡單,因為這裡沒有指出很多細微差別。
首先,表格可能有額外的設置。
其次,每一列都可以有額外的設置。
我們將從創建列的設置開始。
表中的鍵
除了名稱和數據類型之外,表列還可以具有以下設置:
首要的關鍵 | 列是表的鍵 |
唯一鍵 | 所有列值必須是唯一的。 |
默認值 | 默認值 |
不為空 | 禁止接受值NULL |
自動遞增 | 當新記錄添加到表中時,SQL Server 將自動增加該值 |
生成的 | 計算字段 |
貯存 | 數據存儲在哪裡:在磁盤上還是在內存中 |
評論 | 列註釋,例如當地語言的標題 |
下面我們將看看其中的一些。
首先,它是PRIMARY KEY。
大多數情況下,這是一個單獨的列,名稱為 id,類型為 INT。這就是所謂的表的“主鍵”,它的所有行都有這個鍵的唯一值。主要用來讓其他表可以引用我們表的記錄,指向它的具體記錄。
其次是UNIQUE KEY。
在某些方面,它類似於 PRIMARY KEY,儘管它的語義負載完全不同。如果一列具有 UNIQUE 屬性,那麼該列中的所有值都必須是唯一的。UNIQUE KEY 和 PRIMARY KEY 之間區別的一個很好的例子是護照辦公室的人員名單。
稅號是一個 PRIMARY KEY,用於方便地從其他表中引用正確的人。
護照號碼是唯一的鑰匙。沒有兩個人可以擁有相同的護照號碼。但是,護照號碼可以更改。比如改姓的時候。稅號將永遠留在您身邊。這是PRIMARY KEY的主要任務。指定 PRIMARY KEY 的查詢示例:
CREATE TABLE user (
id INT PRIMARY KEY,
name VARCHAR(100),
level INT,
created_date DATE,
);
數據類型設置
還有一些不太重要但有用的屬性。
默認值
在向表中插入數據(添加新行)時,如果某些列有默認值,則可以省略它們的值。在這種情況下,SQL 服務器將簡單地設置列本身的值。
從 MySQL 版本 8 開始,您可以將表達式指定為值。
不為空
如果你在創建表時為一列指定了NOT NULL屬性,那麼SQL Server將確保不可能在該列中存儲NULL值。默認情況下,任何列都可以有 NULL 值,即使是 INT 列。這對於 Java 程序員來說有點不明顯。
自動遞增
它通常用於列 ID。當您向表中添加新行時,您確實希望 SQL 服務器為該條目分配一個 ID。誰比服務器更清楚他在表中有多少行。特別是如果來自不同客戶端的請求轉到同一個 SQL 服務器。
這正是 AUTO_INCREMENT 屬性的作用。添加新行時,我們不傳遞任何 id,SQL Server 將為該記錄指定正確的 ID:它將簡單地獲取最後一個現有記錄的 ID 並將其增加 1。該屬性只能是與整數和實數類型一起使用。當然,讓我們舉一個創建這樣一個表的例子:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
level INT DEFAULT 1,
created_date DATE NOT NULL,
);
GO TO FULL VERSION