Oracle資料表結構操作

2021-10-06 12:06:31 字數 3846 閱讀 4571

create

table stu(

sno varchar2(10)

notnull

,sname varchar2(10)

,sgentle varchar2(2)

,sbirth date

,sdept varchar2(20)

);--同乙個建立基本表的命令只能成功執行一次,一旦成功執行再執行會錯誤提示ora-0955:名稱已由現有物件使用--可以先drop table stu再create table stu...

alter

table stu

add smajor vachar2(20)

default

'電腦科學與技術'

notnull

;

alter

table stu

modify sname varchar2(15)

default

'無'not

null

;

alter

table stu

drop

column sbirth;

rename stu to stu1;

--or

alter

table stu1

rename

to stu;

--重新命名欄位名alter table stu rename column sname to re_sname;

create

table stu1

asselect

*from stu where1=

2;--or

create

table stu2

asselect

*from stu where rownum <1;

--不新增where語句則建立相同表結構並複製所有資料

create

table stu3

asselect

*from stu;

drop

table stu1;

drop

table stu2;

drop

table stu3;

--基於表的索引,觸發器等資料物件也同時被刪除;但是並沒有完全消失,

--而是重新命名為乙個由系統定義的名稱,存在同乙個表空間中,可以被恢復。

--建表時建立主鍵約束

create

table stu(

sno varchar2(10)

primary

key,

--主鍵約束

sname varchar2(10)

,sgentle varchar2(2)

,sage number(2)

,sbirth date

,sdept varchar2(20)

);--追加主鍵約束

alter

table stu

addconstraint pk_stu

primary

key(sno)

;--ora-02268:表只能具有乙個主鍵

--建表時建立唯一約束

create

table stu(

sno varchar2(10)

primary

key,

--主鍵約束

sname varchar2(10)

unique

,--唯一約束,

sgentle varchar2(2)

,sage number(2)

,sbirth date

,sdept varchar2(20)

);--追加唯一約束

alter

table stu

addconstraint un_sdept

unique

(sdept)

;--引數unique約束的任何值一起使用時,每個欄位只允許乙個空值(null),即空值必須是該字段值中唯一的

--建表時建立唯一約束

create

table stu(

sno varchar2(10)

primary

key,

--主鍵約束

sname varchar2(10)

,sgentle varchar2(2)

check

(sgentle =

'男'or sgentle =

'女')

,--check約束

sage number(2)

,sbirth date

,sdept varchar2(20)

);--追加check約束

alter

table stu

addconstraint ck_stu

check

(sno >

='1000'

and sno <=

'9999'

);

create

table class(

classname varchar2(20)

primary

key)

;create

table stu(

sno varchar2(20)

primary

key,

classname foreign

key(classname)

,--外來鍵約束

references class(classname)

,--關聯

sname varchar2(10)

,sage number(2)

,sbirth date);

--追加外來鍵約束

alter

table stu

addconstraint fk_stu

foreign

key(classname)

references class(classname)

;--外來鍵約束可以包含空值(null),但是如果任何組合外來鍵約束的列包含空值,則將跳過組合外來鍵約束的所有值的驗證。

alter

table tablename

drop

constraint constraintname;

--刪除的約束只能是與其他表無關聯的約束,如果該約束同時作為其他表的外來鍵,則不能刪除(應該先刪除關聯表的外來鍵約束)。

create

table stu(

sno varchar2(10)

notnull

,sname varchar2(10)

,sgentle varchar2(2)

default

'男',

sbirth date

,sdept varchar2(20)

);--追加修改預設值

alter

table stu

modify smajor default

null

;

comment

ontable stu is'';

comment

oncolumn stu.sname is'';

--刪除更行增加都是同一種方式,注釋進行覆蓋

oracle 資料表的相關操作 刪除資料表

建立資料表 create table 表名 列明1 資料型別1 約束性條件 列明1 資料型別1 約束性條件 tablespace 表空間 create table student05 student id number notnull student name varchar2 20 student...

資料表結構

修改資料表 alter table 表名sql 的書寫不考慮順序,但是批量執行 需要要考慮好先執行哪些,後執行哪些 在修改資料表結構時,必須要明確 修改的字段中是否存在資料,例如 如果需要更改乙個欄位的約束為非空約束,那麼首先要保證該字段中已有的資料沒有null值。因此在做程式之前資料庫分析,設計是...

資料表操作

1 建立資料表 create table if not exists table name column name data type,2 檢視資料表 show tables show tables from mysql 3 檢視資料表結構 show columns from tbl name 4 ...