mysql06 資料表的基本操作
阿新 • • 發佈:2021-08-13
1、建立資料表
- 在資料庫中,資料表是資料庫中最重要、最基本的操作物件,是資料儲存的基本單位。
- 資料表被定義為列的集合,資料在表中是按照行和列的格式來儲存的。
- 每一行代表一條唯一的記錄,每一列代表記錄中的一個域。
1、建立表的語法形式
- 資料表屬於資料庫,在建立資料表之前,應該使用語句“USE <資料庫名>”指定操作是在哪個資料庫,如果沒有選擇資料庫,會丟擲"No database selected"的錯誤。
- 基本語法格式如下:
CREATE TABLE <表名> ( 欄位名1, 資料型別 [列級別約束條件] [預設值], 欄位名2, 資料型別 [列級別約束條件] [預設值], …… [表級別約束條件] );
- 使用CREATE TABLE建立表時,必須指定以下資訊:
- 要建立的表的名稱,不區分大小寫,不能使用SQL語言中的關鍵字,如DROPALTER, INSERT等。
- 資料表中每一個列(欄位)的名稱和資料型別,如果建立多個列,要用逗號隔開。
示例:
mysql> create database db1; #建立資料庫 mysql> use db1; #選擇使用資料庫 mysql> create table tb11 (nid int, name char(10)); #建立資料表 mysql> show tables; #檢視資料表 +---------------+ | Tables_in_db1 | +---------------+ | tb11 | +---------------+
2、主鍵約束
- 主鍵,又稱主碼,是表中一列或多列的組合。
- 主鍵約束(Primary Key Constraint)要求主鍵列的資料唯一,並且不為空。
- 主鍵能夠唯一地標識表中的一條記錄,可以結合外來鍵來定義不同資料表之間的關係,並且可以加快資料庫查詢的速度。
- 主鍵和記錄之間的關係如同身份證和人之間的關係,是一一對應的。
- 主鍵分為兩種型別:單欄位主鍵和多欄位聯合主鍵。
1、單欄位主鍵
- 在定義列的同時指定主鍵,基本語法格式如下:
欄位名 資料型別 PRIMARY KEY [預設值] #使用列級約束
- 在定義完所有列之後指定主鍵,基本語法格式如下:
[CONSTRAINT <約束名>] PRIMARY KEY [欄位名] #使用表級約束
示例1:列級約束
create table tb_test1( nid int(11) primary key, name char(20) );
示例2:表級約束
create table tb_test100( nid int(11), name char(20), primary key(nid) #欄位要使用小括號 );
2、多欄位聯合主鍵
- 主鍵由多個欄位聯合組成。
- 在定義完所有列之後指定聯合主鍵,基本語法格式如下:
PRIMARY KEY [欄位1, 欄位2, ... ,欄位n] #使用表級約束
示例:
create table tb_test3( nid int(11), name char(20), primary key(nid, name) );
3、外來鍵約束
- 外來鍵用來在兩個表的資料之間建立連結,它可以是一列或者多列。
- 一個表可以有一個或多個外來鍵。
- 外來鍵對應的是參照完整性,一個表的外來鍵可以為空值,若不為空值,則每一個外來鍵值必須等於另一個表中主鍵的某個值。
- 外來鍵:首先它是表中的一個欄位,它可以不是本表的主鍵,但對應另外一個表的主鍵。外來鍵主要作用是保證資料引用的完整性,定義外來鍵後,不允許刪除在另一個表(主表)中具有關聯關係的行。外來鍵的作用是保持資料的一致性、完整性。
- 主表(父表):對於兩個具有關聯關係的表而言,相關聯欄位中主鍵所在的那個表即是主表。(被引用的表)
- 從表(子表):對於兩個具有關聯關係的表而言,相關聯欄位中外來鍵所在的那個表即是從表。
- 基本語法格式如下:
[CONSTRAINT <外健名>] PORETGN KEY 欄位名1 [,欄位名2 ...] REFERENCES <主表名> 主健列1, [主健列2,...]
-
- “外來鍵名”為定義的外來鍵約束的名稱,一個表中不能有相同名稱的外來鍵。
- “欄位名”表示子表需要新增外來鍵約束的欄位列。
- “主表名”即被子表外來鍵所依賴的表的名稱。
- “主鍵列”表示主表中定義的主鍵列,或者列組合。
# #