Oracle?創(chuàng)建和操作表的示例代碼
Oracle 創(chuàng)建和操作表
本節(jié)主要介紹創(chuàng)建、修改和刪除表的基本操作
1、創(chuàng)建表
創(chuàng)建數(shù)據(jù)庫表一般有兩種方式:
- 使用一個(gè)數(shù)據(jù)庫客戶端??捎糜诮换サ膭?chuàng)建和管理數(shù)據(jù)庫表;
- 直接利用ORACLE PL/SQL語句操作表
注意:當(dāng)使用交互式工具時(shí),實(shí)際上使用的是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 );
際的表定義(所有的列)用圓括號括住。列本身用逗號隔開。這個(gè)特定的表由9列組成,每個(gè)列定義都以列名(它在表內(nèi)必須是唯一的)開始,其后接著列的數(shù)據(jù)類型。
1.2、處理NULL值
NULL值代表沒有值或者缺少值。每個(gè)表列要么是NULL列,要么是NOT NULL列,并且這個(gè)狀態(tài)是在創(chuàng)建時(shí)在表定義中指定的??纯聪旅娴氖纠?/p>
CREATE TABLE orders ( order_num int NOT NULL , order_date date NOT NULL , cust_id int NOT NULL );
列都是必需的,因此每一列都包含關(guān)鍵字NOT NULL,這將阻止插入沒有值的列。如果某人嘗試插入沒有值的列,將返回一個(gè)錯(cuò)誤,并且插入操作將會失敗。
示例:
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值意指缺少值,它不是空字符串。如果指定“’ '”(兩個(gè)單引號之間沒有任何內(nèi)容),這在NOT NULL列中是允許的??兆址且粋€(gè)有效值,它不是沒有值。
1.3、指定默認(rèn)值
在插入行時(shí),如果沒有指定值,Oracle允許指定默認(rèn)值。默認(rèn)值是在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列,尤其是將在計(jì)算或數(shù)據(jù)分組中使用的列中。
2、更新表
要更新表定義,可以使用ALTER TABLE語句,但是理想情況下,在表包含數(shù)據(jù)之后永遠(yuǎn)也不應(yīng)該改變它們。
要使用ALTER TABLE更改表,必須指定以下信息:
- 在關(guān)鍵字ALTER TABLE后面指定要改變的表的名稱(表必須存在,否則將會生成一個(gè)錯(cuò)誤);
- 要執(zhí)行的更改列表。
使用示例:
ALTER TABLE vendors ADD vend_phone CHAR(20);
2.1 主鍵
主鍵值必須是唯一的。也就是說,表中的每一行都必須具有唯一的主鍵值。如果把單獨(dú)一列用于主鍵,那么它必須是唯一的。如果使用多個(gè)列,那么它們的組合必須是唯一的。
可以在CREATE TABLE語句內(nèi)定義主鍵。不過,許多開發(fā)人員更喜歡先創(chuàng)建表,然后添加所有的鍵。添加鍵就是在進(jìn)行表更新,因此要使用ALTER TABLE命令。
下面給出了一個(gè)示例:
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、刪除表
刪除表(實(shí)際上是指刪除整個(gè)表,而不僅僅是內(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)文章希望大家以后多多支持腳本之家!
- Oracle創(chuàng)建新undo表空間最佳實(shí)踐(包含段檢查)
- 使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
- winserver 2012R2 安裝oracle及創(chuàng)建表流程(推薦)
- oracle創(chuàng)建表空間、授權(quán)、創(chuàng)建用戶、導(dǎo)入dmp文件
- Oracle 創(chuàng)建主鍵自增表示例代碼
- Oracle數(shù)據(jù)庫如何創(chuàng)建第一張表
- oracle創(chuàng)建表的方法和一些常用命令
- shell腳本操作oracle刪除表空間、創(chuàng)建表空間、刪除用戶
相關(guān)文章
Oracle數(shù)據(jù)庫執(zhí)行腳本常用命令小結(jié)
這篇文章主要介紹了Oracle數(shù)據(jù)庫執(zhí)行腳本常用命令小結(jié)的相關(guān)資料,需要的朋友可以參考下2015-12-12
Oracle創(chuàng)建和管理分區(qū)索引的操作方法
創(chuàng)建和管理分區(qū)索引(Partitioned Index)是數(shù)據(jù)庫管理中的重要任務(wù),特別是在處理大規(guī)模數(shù)據(jù)集時(shí),以下是如何在Oracle數(shù)據(jù)庫中創(chuàng)建和管理分區(qū)索引的詳細(xì)步驟和示例代碼,感興趣的朋友一起看看吧2024-08-08
oracle關(guān)聯(lián)查詢報(bào)invalid number錯(cuò)誤的解決方法
這篇文章主要介紹了oracle關(guān)聯(lián)查詢報(bào)invalid number錯(cuò)誤的解決方法,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-09-09
Oracle 閃回技術(shù)詳細(xì)介紹及總結(jié)
這篇文章主要介紹了Oracle 閃回技術(shù)詳細(xì)介紹的相關(guān)資料,這里提供了4種閃回技術(shù),需要的朋友可以參考下2016-11-11
Oracle數(shù)據(jù)庫正則表達(dá)式使用場景代碼實(shí)例
這篇文章主要介紹了Oracle數(shù)據(jù)庫正則表達(dá)式使用場景代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Oracle9i的全文檢索技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle
Oracle9i的全文檢索技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle...2007-03-03
Oracle數(shù)據(jù)庫清理用戶及表空間圖文教程
在Oracle數(shù)據(jù)庫中,刪除用戶和表空間是一個(gè)常見的操作,但需要注意一些步驟和細(xì)節(jié),下面這篇文章主要介紹了Oracle數(shù)據(jù)庫清理用戶及表空間的相關(guān)資料,需要的朋友可以參考下2025-09-09
Oracle利用errorstack追蹤tomcat報(bào)錯(cuò)ORA-00903 無效表名的問題
這篇文章主要介紹了Oracle利用errorstack追蹤tomcat報(bào)錯(cuò)ORA-00903 無效表名,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

