1、創建表:用CREATE TABLE 語句,要指明:表名(不能與現有表名重覆)、列名、每列的數據類型 2、約束。資料庫中的表不同於Excel,其表中的數據必須嚴格規範合法,約束就是用來管理如何插入或處理資料庫數據的規則。 1.主鍵約束:主鍵列的每一個數據可以唯一標識其所在的行,任意兩行的主鍵值都不 ...
1、創建表:用CREATE TABLE 語句,要指明:表名(不能與現有表名重覆)、列名、每列的數據類型
CREATE TABLE product ( prod_id char(10), vend_id char(10), prod_name char(254), prod_price number(8,2), prod_desc varchar(1000) );
2、約束。資料庫中的表不同於Excel,其表中的數據必須嚴格規範合法,約束就是用來管理如何插入或處理資料庫數據的規則。
1.主鍵約束:主鍵列的每一個數據可以唯一標識其所在的行,任意兩行的主鍵值都不相同;主鍵值不能為空,因此每行都有一個主鍵值;主鍵列不更新不變化,並且不能重用;主鍵可以創建在一個列或多個列上。關鍵字:PRIMARY KEY
2.外鍵約束:外鍵約束列的數據必須只能是另一個表的主鍵列(也可以是唯一約束列?)中的數據。比如orders表的cust_id必須是customers表的cust_id列裡面的值,不能在orders.cust_id列添加一個在customers.cust_id列裡面沒有的數據。關鍵字:FOREIGN KEY
3.唯一約束:唯一約束列的每個數據都是唯一的,任意兩行都不相同。與主鍵的區別:一個表只有一個主鍵約束,但可以有多個唯一約束;唯一約束可以是NULL值;唯一約束列可以修改更新重覆使用;不能用來定義外鍵。比如身份證號就可以做唯一約束(當然現實中有兩個完全相同的身份證號碼的意外情況)。關鍵字:UNIQUE
4.檢查約束:使得檢查約束列的值符合某個條件,比如購買數量>0;性別為“男”或“女”。關鍵字:CHECK(條件)
5.非空約束:就是NOT NULL,是否允許某一列的值為空,不設置的話,預設是NULL。註意NULL和‘’的區別。
3、在創建表時創建約束:
CREATE TABLE product ( prod_id char(10) NOT NULL PRIMARY KEY, vend_id char(10) NOT NULL, prod_name char(254) NOT NULL, prod_price number(8,2) NOT NULL CHECK(prod_price>0), prod_desc varchar(1000) NOT NULL, CONSTRAINT for_vend_id FOREIGN KEY(vend_id) REFERENCES vendors(vend_id) );
或者:
CREATE TABLE product ( prod_id char(10) NOT NULL, vend_id char(10) NOT NULL, prod_name char(254) NOT NULL, prod_price number(8,2) NOT NULL, prod_desc varchar(1000) NOT NULL, PRIMARY KEY(prod_id), CHECK(prod_price>0), CONSTRAINT for_vend_id FOREIGN KEY(vend_id) REFERENCES vendors(vend_id) );