Oracle?創(chuàng)建和操作表的示例代碼
Oracle 創(chuàng)建和操作表
本節(jié)主要介紹創(chuàng)建、修改和刪除表的基本操作
1、創(chuàng)建表
創(chuàng)建數(shù)據(jù)庫(kù)表一般有兩種方式:
- 使用一個(gè)數(shù)據(jù)庫(kù)客戶端??捎糜诮换サ膭?chuàng)建和管理數(shù)據(jù)庫(kù)表;
- 直接利用ORACLE PL/SQL語(yǔ)句操作表
注意:當(dāng)使用交互式工具時(shí),實(shí)際上使用的是ORACLE SQL語(yǔ)句。不過(guò),無(wú)需編寫(xiě)這些語(yǔ)句,界面將為你無(wú)縫的生成和執(zhí)行SQL。
1.1、創(chuàng)建表的基礎(chǔ)知識(shí)
要使用CREATE TABLE創(chuàng)建表,必須指定以下信息:
- 在關(guān)鍵字CREATE TABLE后面指定的新表的名稱(chēng)
- 用逗號(hào)隔開(kāi)的表列的名稱(chēng)和定義
創(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 );
際的表定義(所有的列)用圓括號(hào)括住。列本身用逗號(hào)隔開(kāi)。這個(gè)特定的表由9列組成,每個(gè)列定義都以列名(它在表內(nèi)必須是唯一的)開(kāi)始,其后接著列的數(shù)據(jù)類(lèi)型。
1.2、處理NULL值
NULL值代表沒(méi)有值或者缺少值。每個(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,這將阻止插入沒(méi)有值的列。如果某人嘗試插入沒(méi)有值的列,將返回一個(gè)錯(cuò)誤,并且插入操作將會(huì)失敗。
示例:
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è)單引號(hào)之間沒(méi)有任何內(nèi)容),這在NOT NULL列中是允許的??兆址且粋€(gè)有效值,它不是沒(méi)有值。
1.3、指定默認(rèn)值
在插入行時(shí),如果沒(méi)有指定值,Oracle允許指定默認(rèn)值。默認(rèn)值是在CREATE TABLE語(yǔ)句中的列定義中使用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ù)庫(kù)開(kāi)發(fā)人員都使用DEFAULT值代替NULL列,尤其是將在計(jì)算或數(shù)據(jù)分組中使用的列中。
2、更新表
要更新表定義,可以使用ALTER TABLE語(yǔ)句,但是理想情況下,在表包含數(shù)據(jù)之后永遠(yuǎn)也不應(yīng)該改變它們。
要使用ALTER TABLE更改表,必須指定以下信息:
- 在關(guān)鍵字ALTER TABLE后面指定要改變的表的名稱(chēng)(表必須存在,否則將會(huì)生成一個(gè)錯(cuò)誤);
- 要執(zhí)行的更改列表。
使用示例:
ALTER TABLE vendors ADD vend_phone CHAR(20);
2.1 主鍵
主鍵值必須是唯一的。也就是說(shuō),表中的每一行都必須具有唯一的主鍵值。如果把單獨(dú)一列用于主鍵,那么它必須是唯一的。如果使用多個(gè)列,那么它們的組合必須是唯一的。
可以在CREATE TABLE語(yǔ)句內(nèi)定義主鍵。不過(guò),許多開(kā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ù)庫(kù)表的改變不能被撤銷(xiāo)——如果添加了不需要的列,也許不能移除它們。類(lèi)似地,如果刪除了需要的列,也許就會(huì)丟失該列中所有的數(shù)據(jù)。
3、刪除表
刪除表(實(shí)際上是指刪除整個(gè)表,而不僅僅是內(nèi)容)。
DROP TABLE customers2;
4、重命名表
要重命名表,可以使用ALTER TABLE語(yǔ)句,如下:
ALTER TABLE customers2 RENAME TO customers;
到此這篇關(guān)于Oracle 創(chuàng)建和操作表的文章就介紹到這了,更多相關(guān)Oracle 創(chuàng)建和操作表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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ù)庫(kù)如何創(chuàng)建第一張表
- oracle創(chuàng)建表的方法和一些常用命令
- shell腳本操作oracle刪除表空間、創(chuàng)建表空間、刪除用戶
相關(guān)文章
oracle存儲(chǔ)過(guò)程中return和exit區(qū)別概述及測(cè)試
至于return和exit在oracle存儲(chǔ)過(guò)程中的應(yīng)用,有些新手朋友們還是比較容易混淆的,本文將針對(duì)這兩個(gè)關(guān)鍵字進(jìn)行詳細(xì)對(duì)比下,感興趣的你可以參考下,希望可以幫助到你2013-02-02oracle數(shù)據(jù)庫(kù)慢查詢SQL實(shí)例詳解
一般的業(yè)務(wù)系統(tǒng)如果遇到性能問(wèn)題,絕大部分都是來(lái)自數(shù)據(jù)庫(kù)的,有的業(yè)務(wù)一個(gè)查詢執(zhí)行時(shí)間好幾秒,這就是我們說(shuō)說(shuō)的SQL慢查詢,這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫(kù)慢查詢SQL的相關(guān)資料,需要的朋友可以參考下2024-06-06在Tomcat服務(wù)器下使用連接池連接Oracle數(shù)據(jù)庫(kù)
本文為大家介紹下在Tomcat服務(wù)器下使用連接池來(lái)連接數(shù)據(jù)庫(kù)的操作,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-01-01Oracle報(bào)存儲(chǔ)過(guò)程中調(diào)用DBLink同義詞出現(xiàn)錯(cuò)誤:PLS-00201: 必須聲明標(biāo)識(shí)符
這篇文章主要介紹了Oracle報(bào)存儲(chǔ)過(guò)程中調(diào)用DBLink同義詞出現(xiàn)錯(cuò)誤:PLS-00201: 必須聲明標(biāo)識(shí)符的相關(guān)資料,需要的朋友可以參考下2018-03-03Oracle字段根據(jù)逗號(hào)分割查詢數(shù)據(jù)的方法
項(xiàng)目需求是這樣的表里的某個(gè)字段存儲(chǔ)的值是以逗號(hào)分隔開(kāi)來(lái)的,要求根據(jù)分隔的每一個(gè)值都能查出來(lái)數(shù)據(jù),但是不能使用like查詢。這篇文章主要介紹了Oracle字段根據(jù)逗號(hào)分割查詢數(shù)據(jù),需要的朋友可以參考下2018-08-08Oracle數(shù)據(jù)庫(kù)聚合函數(shù)XMLAGG詳解(全網(wǎng)最全)
在SQL中,合函數(shù)用于對(duì)一組值進(jìn)行計(jì)算并返回單一的值,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)聚合函數(shù)XMLAGG的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06