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 ...