當我們需要在Oracle數據庫中創建新的表時,就需要使用CREATE TABLE語句。這個語句可以創建一個新的空表,也可以復制另一個表的結構。
比如說,我們創建了一個新的表mytable,表中包含三個列:id(整數類型,主鍵),name(字符串類型,不允許為空),age(整數類型)。
CREATE TABLE mytable ( id NUMBER PRIMARY KEY, name VARCHAR2(50) NOT NULL, age NUMBER );
在這個例子中,我們使用了CREATE TABLE語句來創建一個名為mytable的新表。表中包含三個列:id、name和age。其中id列是主鍵,即每一行都有一個唯一的id值,用于標識這一行。name列不允許為空,即每一行name列的值都必須存在。age列可以為空,即每一行age列的值可以為空。
在實際使用中,我們除了創建新的表,還可以使用CREATE TABLE AS SELECT語句來復制另一個表的結構。
CREATE TABLE newtable AS SELECT * FROM oldtable;
在這個例子中,我們使用了CREATE TABLE AS SELECT語句來創建一個名為newtable的新表,它的結構和oldtable完全一致。也就是說,newtable包含oldtable中所有的列和數據,但是沒有任何索引或約束。
除了基本的數據類型,Oracle還支持許多高級數據類型,如日期時間、二進制大對象等。在創建表時,我們可以使用以下的數據類型:
- CHAR(size) 定長字符串,占用size個字節
- VARCHAR2(size) 變長字符串,最多占用size個字節
- NUMBER(precision, scale) 數字,最多占用precision位數,其中scale位為小數
- DATE 日期時間
- CLOB 字符串大對象,可以存儲大量的文本數據
- BLOB 二進制大對象,可以存儲大量的二進制數據
除了數據類型外,我們還可以在CREATE TABLE語句中添加各種約束條件,如NOT NULL、UNIQUE、CHECK等,來確保數據的完整性和一致性。
CREATE TABLE mytable ( id NUMBER PRIMARY KEY, name VARCHAR2(50) NOT NULL, age NUMBER, CONSTRAINT age_positive CHECK (age >0) );
在這個例子中,我們使用了CREATE TABLE語句來創建一個名為mytable的新表。表中包含三個列(id、name、age),其中id列是主鍵,name列不允許為空,age列可以為空。我們還添加了一個CHECK約束,確保age列中的值都是正數。
總的來說,CREATE TABLE語句是Oracle數據庫中最常用的語句之一。當我們需要創建新的表時,只需要使用這個語句即可,它可以靈活地滿足各種需求。