Oracle資料庫之建立表結構

2022-09-14 08:09:07 字數 4185 閱讀 8921

主鍵與外來鍵

主鍵:關係型資料庫中的一條記錄中有若干個屬性,若其中的某乙個屬性組(可以是乙個屬性,也可以是多個)能唯一標識一條記錄,那麼該屬性組就是主鍵。

外來鍵:關係型資料庫表中的一列或者某幾列的組合,它的值與另外一張表的某一列或者某幾列相匹配,且為另一張表的主鍵(即這張表的某一列或某幾列是另外一張表的主鍵,稱這一列或幾列為另外一張表的外來鍵)。

注意:一張表主鍵只能有乙個,可以有多個外來鍵以及唯一索引

oracle資料庫共有5個約束:主鍵、外來鍵、非空、唯

一、條件 

主鍵和唯一約束的區別:主鍵是列的值為表中的唯一標識,不能為空值(null),而唯一約束是列的值在表中唯一存在,可以為空值(null)。

表的建立

語法結構:

create

table

[schema.

]table_name

(column datatype [

constraint-clause

][, column datatype [constraint-clause

]] … )

[tablespace tablespace][

pctfree integer][

pctused integer][

initrans integer][

maxtrans integer][

storage storage-clause][

logging|nologging][

cache|nocache

] ];

說明:常用建表示例:

--

無約束create

table

items(

itemno

number(2

), itemname

varchar2(20

));

--

主鍵約束

create

table

items(

itemno

number(2) constraint pk_items primary

key,

itemname

varchar2(20) not

null

);

--

外來鍵約束

create

table

business(

busino

number(2) constraint pk_business primary

key,

businame

varchar2(32) not

null

, itemno

number(2

), starttime date,

constraint fk_business foreign

key(itemno) references

items(itemno)

);

--

「唯一」和「條件」約束

create

table

computers(

compno

number(4) constraint pk_comp primary

key,

compmodel

varchar2(64) unique

, buytime date,

price

number(7,2) constraint ch_price check(price>

0and price<=

30000

), owner

varchar2(32));

注意:constraint:定義表中約束所必須的關鍵字

primary key:主鍵約束關鍵字

foreign key…references…:建立表的外來鍵關鍵字

unique:為唯一約束關鍵字

constraint…check…:為條件約束的關鍵字

乙個完整的示例:

create

table

employee(

id

number(5) constraint pk_employee_id primary

key,

last_name

varchar2(10) constraint employee_last_name_nn not

null

, first_name

varchar2(10) not

null

unique

, userid

varchar2(8) constraint un_employee_userid unique

, start_date date

default

sysdate,

title

varchar2(10

), dept_id

number(7) constraint fk_employee_dept_id references

dept(id),

salary

number(11,2

), user_type

varchar2(4) constraint ck_employee_user_type check (user_type in('

in','

out'

)),

constraint employee_uq_title unique

(title,salary)

)tablespace tsb_01

initrans

1maxtrans

255pctfree

20pctused

50storage (initial 1024k

next 1024k pctincrease 0 minextents 1 maxextents 5)

刪除表

drop

table employee;

修改表

--

修改表的名稱

rename items to orderitems;

--

顯示表結構

desc orderitems;

--

增加列alter

table test add address varchar2(40);

--

刪除列alter

table test drop

column address;

--

修改列的名稱

alter

table test modify address addresses varchar(40);

--

修改列的屬性

alter

table emp modify score not

null;

新增約束,語法如下:

alter

table 表名稱 add

constraint 約束名稱 約束型別(約束字段)

--

示例alter

table dept add

constraint pk_dept primary

key(id);

alter

table dept add

constraint fk_dept_comp foreign

key(companyid) references company;

刪除約束,語法:

alter

table 表名稱 drop

constraint 約束名稱;

--

示例alter

table book drop

constraint fk_book_pid;

oracle資料庫建立表

實際工作中,在資料庫中建立表是經常會用到的。我們今天呢?主要給大家來分享一下在資料庫如何通過sql語句去建立表。其實,建立表很簡單,只需要把資料庫的資料型別和約束搞清楚就可以了,其他的就好說了。接下來呢,開始我的表演。首先,先使用plsql連線到oracle資料庫,先保證下面的服務是開啟的。我們本次...

oracle初學之建立資料庫和表

先建立資料庫 通過enterprise login assistant 按嚮導一步一步建立下去就ok.影象介面建立 第一步 建立使用者 用控制台登入資料庫 安全性 使用者 新建 第二步 賦予使用者相應的許可權 賦予dba許可權 據說是建立表的時候要用的許可權 第三步 以該使用者在控制台中登入 第四步...

資料庫 oracle資料庫建立表空間

上學的時候就裝過兩次oracle資料庫,但是一直沒有學會使用,缺少的是建立使用者表空間。臨時表空間 資料表空間 給使用者授權 sid 表空間 使用者 表 oracle11g伺服器安裝詳細步驟 教程 源文件 1 sqlplus登入 as sysdba2 建立臨時表空間 createtemporary ...