Oracle?創(chuàng)建和操作表的示例代碼
Oracle 創(chuàng)建和操作表
本節(jié)主要介紹創(chuàng)建、修改和刪除表的基本操作
1、創(chuàng)建表
創(chuàng)建數(shù)據(jù)庫表一般有兩種方式:
- 使用一個數(shù)據(jù)庫客戶端??捎糜诮换サ膭?chuàng)建和管理數(shù)據(jù)庫表;
- 直接利用ORACLE PL/SQL語句操作表
注意:當(dāng)使用交互式工具時,實際上使用的是ORACLE SQL語句。不過,無需編寫這些語句,界面將為你無縫的生成和執(zhí)行SQL。
1.1、創(chuàng)建表的基礎(chǔ)知識
要使用CREATE TABLE創(chuàng)建表,必須指定以下信息:
- 在關(guān)鍵字CREATE TABLE后面指定的新表的名稱
- 用逗號隔開的表列的名稱和定義
創(chuàng)建表示例:
CREATE TABLE customers ( cust_id int NOT NULL , cust_name char(50) NOT NULL , cust_address char(50) NULL , cust_city char(50) NULL , cust_state char(5) NULL , cust_zip char(10) NULL , cust_country char(50) NULL , cust_contact char(50) NULL , cust_email char(255) NULL );
際的表定義(所有的列)用圓括號括住。列本身用逗號隔開。這個特定的表由9列組成,每個列定義都以列名(它在表內(nèi)必須是唯一的)開始,其后接著列的數(shù)據(jù)類型。
1.2、處理NULL值
NULL值代表沒有值或者缺少值。每個表列要么是NULL列,要么是NOT NULL列,并且這個狀態(tài)是在創(chuàng)建時在表定義中指定的??纯聪旅娴氖纠?/p>
CREATE TABLE orders ( order_num int NOT NULL , order_date date NOT NULL , cust_id int NOT NULL );
列都是必需的,因此每一列都包含關(guān)鍵字NOT NULL,這將阻止插入沒有值的列。如果某人嘗試插入沒有值的列,將返回一個錯誤,并且插入操作將會失敗。
示例:
CREATE TABLE vendors ( vend_id int NOT NULL, vend_name char(50) NOT NULL , vend_address char(50) NULL , vend_city char(50) NULL , vend_state char(5) NULL , vend_zip char(10) NULL , vend_country char(50) NULL );
警告:理解NULL
不要把NULL值與空字符串混淆。NULL值意指缺少值,它不是空字符串。如果指定“’ '”(兩個單引號之間沒有任何內(nèi)容),這在NOT NULL列中是允許的??兆址且粋€有效值,它不是沒有值。
1.3、指定默認值
在插入行時,如果沒有指定值,Oracle允許指定默認值。默認值是在CREATE TABLE語句中的列定義中使用DEFAULT關(guān)鍵字指定的。
使用示例:
CREATE TABLE orderitems ( order_num int NOT NULL , order_item int NOT NULL , prod_id char(10) NOT NULL , quantity int DEFAULT 1 NOT NULL , item_price decimal(8,2) NOT NULL );
提示:使用DEFAULT 代替NULL值
許多數(shù)據(jù)庫開發(fā)人員都使用DEFAULT值代替NULL列,尤其是將在計算或數(shù)據(jù)分組中使用的列中。
2、更新表
要更新表定義,可以使用ALTER TABLE語句,但是理想情況下,在表包含數(shù)據(jù)之后永遠也不應(yīng)該改變它們。
要使用ALTER TABLE更改表,必須指定以下信息:
- 在關(guān)鍵字ALTER TABLE后面指定要改變的表的名稱(表必須存在,否則將會生成一個錯誤);
- 要執(zhí)行的更改列表。
使用示例:
ALTER TABLE vendors ADD vend_phone CHAR(20);
2.1 主鍵
主鍵值必須是唯一的。也就是說,表中的每一行都必須具有唯一的主鍵值。如果把單獨一列用于主鍵,那么它必須是唯一的。如果使用多個列,那么它們的組合必須是唯一的。
可以在CREATE TABLE語句內(nèi)定義主鍵。不過,許多開發(fā)人員更喜歡先創(chuàng)建表,然后添加所有的鍵。添加鍵就是在進行表更新,因此要使用ALTER TABLE命令。
下面給出了一個示例:
ALTER TABLE customers ADD CONSTRAINT pk_customers PRIMARY KEY (cust_id);
2.2 定義外鍵
ALTER TABLE也可用于定義外鍵。
LTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num);
警告:小心的使用ALTER TABLE
要極其小心地使用ALTER TABLE,在執(zhí)行該操作前確保具有一組完整的備份(包括模式和數(shù)據(jù))。數(shù)據(jù)庫表的改變不能被撤銷——如果添加了不需要的列,也許不能移除它們。類似地,如果刪除了需要的列,也許就會丟失該列中所有的數(shù)據(jù)。
3、刪除表
刪除表(實際上是指刪除整個表,而不僅僅是內(nèi)容)。
DROP TABLE customers2;
4、重命名表
要重命名表,可以使用ALTER TABLE語句,如下:
ALTER TABLE customers2 RENAME TO customers;
到此這篇關(guān)于Oracle 創(chuàng)建和操作表的文章就介紹到這了,更多相關(guān)Oracle 創(chuàng)建和操作表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle存儲過程中return和exit區(qū)別概述及測試
至于return和exit在oracle存儲過程中的應(yīng)用,有些新手朋友們還是比較容易混淆的,本文將針對這兩個關(guān)鍵字進行詳細對比下,感興趣的你可以參考下,希望可以幫助到你2013-02-02在Tomcat服務(wù)器下使用連接池連接Oracle數(shù)據(jù)庫
本文為大家介紹下在Tomcat服務(wù)器下使用連接池來連接數(shù)據(jù)庫的操作,下面有個不錯的示例,大家可以參考下2014-01-01Oracle報存儲過程中調(diào)用DBLink同義詞出現(xiàn)錯誤:PLS-00201: 必須聲明標(biāo)識符
這篇文章主要介紹了Oracle報存儲過程中調(diào)用DBLink同義詞出現(xiàn)錯誤:PLS-00201: 必須聲明標(biāo)識符的相關(guān)資料,需要的朋友可以參考下2018-03-03Oracle字段根據(jù)逗號分割查詢數(shù)據(jù)的方法
項目需求是這樣的表里的某個字段存儲的值是以逗號分隔開來的,要求根據(jù)分隔的每一個值都能查出來數(shù)據(jù),但是不能使用like查詢。這篇文章主要介紹了Oracle字段根據(jù)逗號分割查詢數(shù)據(jù),需要的朋友可以參考下2018-08-08Oracle數(shù)據(jù)庫聚合函數(shù)XMLAGG詳解(全網(wǎng)最全)
在SQL中,合函數(shù)用于對一組值進行計算并返回單一的值,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫聚合函數(shù)XMLAGG的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06