Oracle的表建立和約束

2021-08-17 15:16:21 字數 2554 閱讀 2982

oracle建立表同sql server一樣,使用create table命令來完成。建立約束則使用如下命令:

語法格式:altertable命令

alter table 表名add

constraint

[d4]

約束名約束內容。

不論建立表還是約束,與sql server基本相同,注意:

在oracle中default是乙個值,而sql server中default是乙個約束[d5]

,因此oracle的default設定可以在建表的時候建立。

案例1:建立乙個學生資訊(infos)表和約束

**演示:oracle建立表和約束

create table infos

(stuid varchar2(7) not null,    --學號 學號=『s』+班號+2位序號

stuname varchar2(10) not null,  --姓名

gender varchar2(2) not null,    --性別 

age number(2) not null,        --年齡

seat number(2) not null,        --座號

enrolldate date,      --入學時間

stuaddress varchar2(50) default 

'位址不詳

',      --住址

classno varchar2(4) not null    --班號班號=學期序號+班級序號 

)/  ①

alter table infos add constraint pk_infos primary key(stuid)

②[d6]

/alter table infos add constraint ck_infos_gender 

check(gender = '男' or gender = '女') ③[d7]

/alter table infos add constraint ck_infos_seat

check(seat >=0 and seat <=50)  ④

/alter table infos add constraint ck_infos_age 

check(age >=0 and age<=100)  ⑤

/alter table infos add constraint ck_infos_classno 

check((classno >='1001' and classno<='1999') or

(classno >='2001' and classno<='2999'))  ⑥

/alter table infos add constraints un_stuname unique(stuname) ⑦[d8]

/**解析:

①  在oracle**中,「/」執行快取區中的語句,由於緩衝區中只儲存一條剛剛儲存過語句,由於每條語句沒有用分號結尾,只是儲存在緩衝區,因此每條語句後面都有單獨一行「/」。

②  建立乙個主鍵約束

[d9]

。③  與 ④ ⑤ ⑥ ⑦一起建立各種check約束。其中⑦是唯一約束,表示該列值是唯一的,列中的值不能重複。

oracle中建立外來鍵約束與sql server相同。比如:現有成績表定義如下:

案例2:建立乙個成績表(scores)表和約束

**演示:oracle建立表和約束

create table scores

(id number ,                                --id  ①

term varchar2(2),                                   --學期 s1或s2

stuid varchar2(7) not null,                   --學號

examno varchar2(7) not null,               --考號 e+班號+序號     

writtenscore number(4,1) not null,    --筆試成績

labscore number(4,1) not null             --機試成績

)alter table scores

add constraint ck_scores_term check(term = 's1' or term ='s2')

/alter table scores

add constraint fk_scores_infos_stuid foreign key(stuid) references infos(stuid)  ②

/**解析:

①  sql server中可以使用identify建立自動增長列,但是oracle中的自動增長需要借助序列(sequence)完成,在後面章節中講解。

②  oracle中的外來鍵約束定義。

oracle建立表和約束的SQL語句

1 建立模擬的資料表 1.1.建立學生表student create table student stuid number not null,學生id stuname varchar2 10 not null,名稱 gender varchar2 10 not null,性別 age number ...

建立表和約束條件

oracle中建立表主要關注表字段的型別和對應的約束條件。1 建立表語句 create table tname fied1 型別1,fied1 型別2,create table tname as 子查詢 複製現成表 2 字段型別 varchar n 建立可以存放n個字元的字段,資料長度可以自動變長,...

SQL初級 建立表和約束

在自己建立的資料庫中建立表 use sb 使用某個資料庫,格式 ues 資料庫名 create table 123 格式 create table 自定義的表名 欄位名一般為有一定意義的英文 names char 15 格式 欄位名 型別 括號裡面的是允許輸入的長度 age int,int型的後面不...