欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle?創(chuàng)建和操作表的示例代碼

 更新時(shí)間:2023年12月14日 09:52:17   作者:zhiyou-rookie  
本節(jié)主要介紹Oracle創(chuàng)建、修改和刪除表的基本操作,對(duì)創(chuàng)建數(shù)據(jù)庫(kù)表一般有兩種方式,文中結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧

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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論