Oracle 之建立和管理表
Oracle 之建立和管理表
常見的資料庫物件:
物件 | 描述 |
表 | 基本的資料儲存集合,由行和列組成 |
檢視 | 重表中抽出的邏輯上相關的資料集合 |
序列 | 提供有規律的資料 |
索引 | 提高查詢的效率 |
同義詞 | 給物件起別名 |
表名和列名的定義規則:
必須以字母開頭
必須在1-30個字元之間
必須只能包含A-Z ,a-z, 0-9, _ ,$ ,#
必須不能和使用者頂一頂額其他物件重名
必須不不能是oracle的保留字;
建立表的許可權:
--create table 許可權
--儲存空間
基本語法:
create table xxx(name varchar(10),age number(2));
常用的資料型別:
資料型別 | 描述 |
varchar2(size) | 可變長字元資料 |
char(size) | 定長的字元資料 |
number(p,s) | 資料型別,p表示數字的位數,s表示小數點後的位數 |
date | 日期型別 |
long | 可變長字元資料,最大可達2g |
clob | 字元資料,最大可達4g |
raw(long raw) | 原始的二進位制資料 |
blob | 二進位制資料,最大可達4g |
bfile | 儲存外部檔案的二進位制資料,最大可達4g |
rowid | 行地址 |
子查詢建立表
使用as subquery 選項,將建立表和插入資料結合起來;
這種方式可以從已知的表中進行獲取資料,然後建立新的表;
例如:表的複製
create table emp1 as select * from employees;
create table emp2 as select * from employees where 1=2; 條件是假的,所以建立的emp2 是空表;
ALTER TABLE 語句
--追加新的列
新列在表的最後一個;
alter table tableName add (job_id varchar(10));
--修改現有的列
可以修改列的資料型別,尺寸,預設值
對預設值的修改隻影響今後對錶的修改;
alter table tableName modify (last_name varchar(20));
--為新追加的列定義預設值
alter table tableName modify(salary number(9,2) default 1000);
--刪除一個列
使用drop column 子句刪除不在需要的列
alter table tableName drop column job_id;
--重命名錶的一個列名;
使用RENAME COLUMN ...to 子句重新命名一個列
alter table tableName rename column job_id to id;
刪除表
資料和結構都會被刪除;
所有正在執行的相關事務被提交
素有相關索引被刪除
drop table 語句不能回滾
drop table tableName;
清空表
--truncate table 語句
刪除表中的所有的資料,釋放表的儲存空間;
truncate table tableName;
--不能回滾;
可以使用delete語句刪除資料,可以回滾;
改變物件的名稱
執行rename語句改變表,檢視,序列,同義詞的名稱
rename dept to hhah_dept;
必須是物件的擁有者;