管理資料庫物件
阿新 • • 發佈:2018-12-01
紫色代表一級目錄
粉紅代表二級目錄
藍色代表三級目錄
紅色代表關鍵字
橙色代表說明
資料庫物件:
是資料庫定義的、用於儲存或引用資料的物件(表、檢視、索引等)。
規劃:
規劃是與資料庫某個使用者名稱相關聯的資料庫物件集合。
相應的使用者名稱被稱為規劃所有人(關聯物件組的所有人)。
USER1訪問自己的table1:table1
USER1訪問自己的test:test
USER1訪問USER2的table10:USER2.table10
USER1訪問USER2的test:USER2.test
資料的主要儲存方式:表
簡單說明:table是關係型資料庫裡最主要的資料儲存物件,其簡單形式由行和列組成。表在資料庫中佔用實際的物理空間,可以是永久或者臨時的。
列:
簡單說明:在關係資料庫中列也被稱為欄位,它是表的基本組成部分,被設定為特定的資料型別。資料型別決定了什麼樣的資料可以儲存在相應的列中,從而儲存了資料的完整性。
在給列命名時,採用下劃線_將不同的單詞分開是一個不錯的選擇。
列也可以指定為NULL和NOT NULL。
行:
簡單說明:行(也被稱為元組)是資料庫表中的一條記錄。
CREATE TABLE語句:
SQL中的CREATE TABLE語句用於建立一個表。
在建立表時需要考慮到的問題:
- 表的名字
- 列的名字
- 包含什麼型別的資料
- 每一列的資料型別
- 每一列的長度
- 主鍵
- 哪些欄位的值可以是NULL
建立表的基本語法:
CREATE TABLE table_name
( field1 data_type [ null / not null ],
field2 data_type [ null / not null ],
…
fieldn data_type [ null / not null ];
)
ALTER TABLE
1. 修改表的元素
列的屬性是其所包含資料的規則和行為。利用ALTER TABLE可以修改列的屬性,這裡“屬性”的含義為:
列的資料型別;
列的長度、有效位數或標度;
列值是否為空
例:
name VARCHAR(10); 修改表table1的name屬性的變數型別(如果表已包含資料,這時新增的列就不能定義為NOT NULL。原因是當現有記錄中沒有相關資料時,就會產生自身矛盾的情況。)
2. 新增列
強行向表新增一列的方法:
a. 新增一列,把它定義為NULL(這一行不一定要包含資料)
b. 給這個新列在每條記錄裡都插入資料
c. 把列的定義修改為NOT NULL
3. 新增自動增加的列(有時我們需要一列資料能自動增加,從而讓每一行都具有不同的序號)
多種情況:
MySQL提供SERIAL方法來為表生產真正的唯一值
例:CREATE TABLE TEST(
ID SERIAL,
TEST_NAME VARCHAR(20));
watch out:建立表時使用NULL(列的預設屬性是NULL)。
Microsoft SQL Server中使用IDENTITY型別
例:CREATE TABLE TEST(
ID INT IDENTITY(1,1) NOT NULL,
TEST_NAME VARCHAR(20));
Oracle沒有提供直接的方法來建立自動增加的列,但卻可以用SEQUENCE物件和一個觸發器實現類似的效果。
4. 修改列
從現有的表新建另一個表
格式:CREATE TABLE new_table_name AS //建立一個新的表
SELECT [列名] //選擇被選擇表中的列
FROM table_name //被選擇的表
[WHERE] //條件判斷語句
刪除表
格式:DROP TABLE table_name [ RESTRICT | CASCADE ]
說明:RESTRICT代表如果表被檢視或約束所引用,DROP就會返回一個錯誤。
CASCADE代表全部引用檢視和約束都被刪除。
完整性約束
作用:用於確定關係型資料庫裡資料的準確性和一致性。
主鍵約束
主鍵是表中一個或多個用於實現記錄唯一性的欄位。
實現:在建立表時,在沒建立一列(欄位)時,在變數型別後指定PRIMARY KEY
例:CREATE TABLE table_name
(name CHAR(9) NOT NULL PRIMARY KEY,
…
);
唯一性約束
唯一性約束要求表中某列(欄位)的值在每條記錄裡都是唯一的。
實現:將上例主鍵約束的PRIMARY KEY改為UNIQUE即可。
外來鍵約束
外來鍵是子表裡的一個欄位,引用父表的主鍵。外來鍵約束是確保表與表之間引用完整性的主要機制。
實現:通過CONSTRAINT、FROEIGN KEY、REFERENCES關鍵字實現。
例:CREATE TABLE new_table_name
(
…
CONSTRAINT new_name FOREIGN KEY(name) REFERENCES table_name(name),
…
)
利用ALTER TABLE命令可以向表裡新增外來鍵
例:ALTER TABLE new_table_name
ADD CONSTRAINT new_name FOREIGN KEY (name)
REFERENCES table_name(name);
NOT NULL約束
關鍵字NULL和NOT NULL說明(欄位預設是NULL)。
檢查約束
去除約束