一、什麼是數據庫對象
數據庫對象是數據庫裏定義的、用於存儲或引用數據的對象,比如表、視圖、簇、序列、索引和異名。
二、什麼是規劃
規劃是與數據庫某個用戶名相關聯的數據庫對象集合。相應的用戶名被稱爲規劃所有人,或是關聯對象組的所有人。數據庫裏可以有一個或多個規劃。用戶只與同名規劃相關聯,通常情況下反之亦然。
三、表:數據庫的主要存儲方式
1、列
字段在關係型數據庫也被稱爲列,它是表的組成部分,被設置爲特定的數據類型。
2、行
行是數據庫表裏的一條記錄。
3、CREATE TABLE語句
在創建表時,需要考慮以下一些基本問題。
表裏會包含什麼類型的數據?
表的名稱是什麼?
哪個(或哪些)列組成主鍵?
列(字段)的名稱是什麼?
每一列的數據類型是什麼?
每一列的長度是什麼?
表裏哪些列可以是NULL?
創建表的基本語法:
CREATE TABLE table_name
(
Field1 date_type [not null],
Field2 date_type [not null],
Field3 date_type [not null],
Field4 date_type [not null],
Field5 date_type [not null]
);
4、命名規範
5、ALTER TABLE命令
ALTER TABLE命令的標準:
alter table table_name[modify] [column column_name][datatype]null not null] [restrict | cascade]
[drop] [constraint constraint_name]
[add] [column] column definition
(1) 修改表的元素
列的屬性是其所包含數據的規則和行爲。利用ALTER TABLE命令可以修改列的屬性,在此“屬性”的含義是:
列的數據類型;
列的長度、有效位數或標度;
列值能否爲空。
語法:
ALTER TABLE table_name MODIFY
Field date_type [not null];
(2) 添加列
強行向表添加一列的方法:
添加一列,把它定義爲NULL(這一行不一定要包含數據);
給這條新列在每條記錄裏都插入數據;
把列的定義修改爲NOT NULL。
(3) 添加自動增加的列
格式:
MySQL:
CREATE TABLE table_name
(
Field SERIAL;
…
SQL Server:
CREATE TABLE table_name
(
Field INT IDENTITY(1,1) NOT NULL,
...
Oracle:
可以使用SEQUENCE對象和一個觸發器來實現類似的效果。
(4) 修改列
修改列的通用規則:
列的長度可以增加到特定數據類型所允許的最大長度;
如果想縮短某列的長度,則必須要求這一列在表裏所有數據的長度都小於或等於新長度;
數值數據的位數可以增加;
如果要縮短數值數據的位數,則必須要求這一列在表裏所有數值的位數小於或等於新指定的位數;
數值的小數位數可以增加或減少;
列的數據類型一般是可以改變的。
6、從現有表新建另一個表
MySQL和Oralce:
利用CREATE TABLE語句與SELECT語句組合可以複製現有的表。
create table new_table_name as
select [*|column1, column2]
from table_name
[where]
SQL Server:
利用SELECT…INTO方法來實現相同的效果。
select [*|column1, column2]
into new_table_name
from table_name
[where]
7、刪除表
drop table table_name [restrict | cascade]
四、完整性約束
1、主鍵約束
主鍵是表裏一個或多個用於實現記錄唯一性的字段。
隱含約束:Field date_type [not null] PRIMARY KEY;
明確指定:PRIMARY KEY(Field);
明確指定兩個主鍵:PRIMARY KEY(Field1, Field2);
ALTER TABLE table_name:ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(Field1, Field2);
2、唯一性約束
唯一性約束要求表裏某個字段的值在每條記錄裏都是唯一的。
Field date_type [not null] UNIQUE;
3、外鍵約束
外鍵是子表裏的一個字段,引用父表裏的主鍵。
創建表的同時創建外鍵:
…
CONSTRAINT constraint_name FOREIGN KEY(Field) REFERENCES table_name(Field);
利用ALTER TABLE命令可以向表裏添加外鍵:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY(Field)
REFERENCES table_name(Field);
4、NOT NULL約束
5、檢查約束
檢查(CHK)約束用於檢查輸入到特定字段的數據的有效性。
在檢查約束力可以使用幾乎任何條件,就像在SQL查詢裏一樣。
6、去除約束
利用ALTER TABLE命令的DROP CONSTRAINT選項可以去除已經定義的約束。
ALTER TABLE table_name DROP CONSTRAINT constraint_name;