1.表名和列的命令規則:
必須以字母開頭,長度不能超過30個字元。不能使用Oracle保留字。只能使用A-Za-z0-9$#等。
表 TABLE包括:分區表,TABLE PARTITION 簇CLUSTER 索引表INDEX-ORGANIZED TABLE(IOTs)
2.支援的資料類型:
純量資料型別:
varchar2 最大值4000字元 變長字元型資料
char 最大值2000字元,定長字元型資料
date 日期型資料,取值範圍從公元前4712.1.1到9999.12.31 timestamp 精確到毫秒
number 數字型資料,
clob 用於在資料庫中儲存定長位元組的大資料對象,如WORD檔案。字元型大對象最大4G
blob 儲存大的無結構二進位對象,如照片或投影片。
bfile 用於在資料庫外的作業系統檔案中儲存大的無結構的二進位對象,如電影
raw 在資料庫直接儲存位元據。最大長度2000個位元組
LOGN LONG RAW,ORACLE 8 劈頭蓋臉資料庫中儲存二進位映像文本等。
3.關於ROWID
在使用者向表中插入一行資料時,ORACLE會自動在這一行資料加上一個ROWID,每行都有一個唯一ROWID,ORACLE利用ROWID定位元據行。並不顯式儲存為一列的值,是訪問一個表中行的最快機制。
000000 FFF BBBBBB RRR
資料對象號 相應檔案號塊號 行號
資料對象號,被賦予每一個對象,在一個資料庫中是唯一的。相對檔案號,對同一個資料表空間中每一個檔案是唯一的。塊號,為相對檔案中包含資料行的塊的位置。行號,標識塊頭中行目錄位置。
SQL> select ename,rowid from scott.emp;
ENAME ROWID
---------- ------------------
SMITH AAAR3sAAEAAAACXAAA
ALLEN AAAR3sAAEAAAACXAAB
WARD AAAR3sAAEAAAACXAAC
JONES AAAR3sAAEAAAACXAAD
SMITH行的資料對象號為AAAR3s,相對檔案號AAE,塊號AAAACX,行號AAA
#############################
ORACLE資料行結構
行頭 row header,儲存行中列數,遷移資訊,行鎖狀態。
行資料,一系列列長和列值組成
列長 columnlength,一般需要一個位元組,列長度超過250位元組,列長為3個位元組
列值 columnvalue,列的實際值緊接列長位元組後存放。
建立表時,應將不同表放在不同資料表空間中。
使用本地管理資料表空間以避免片段,在表中使用若干標準EXTENT尺寸減少資料表空間片段。
4.建表的幾種方式
create table語句建表 要指明表名,列名,列資料類型,列寬度,是否有預設值
用查詢語句做子句建表。此時建立表的內容將是所查詢表的相應列的內容。
create table t2 as select ename name,salsalary from emp;
create table t2 as select * from emp;
用假條件,只對立表結構,不要資料
create table t3(c1,c2,c3) as selectename,empno,sal from emp where 9=1;
手動建立一個表,有五個列,資料類型4位元字,20個變長,2位定長,生日資料類型為日期,獎金最多7位,有兩位小數,即最多9999.99
create table student(xh number(4),xmvarchar2(20),sex char(2),birthday date,sal number(7,2));
5.修改表
修改列的資料類型、字長
alter table t2 modify(name char(4));
修改表的名稱,表的OWNER或SYSDBA修改
rename t2 to t_2;
修改列名稱
alter table t3 rename column c1 to name;
表注釋和列注釋
修改一列:
alter table emp4 modify test varchar2(20);
刪除一列:
alter table emp4 drop column test;
更多詳情見請繼續閱讀下一頁的精彩內容:
Oracle DML流程
PL/SQL“ ORA-14551: 無法在查詢中執行 DML 操作”解決
MySQL常用DDL、DML、DCL語言整理(附範例)
Oracle基本事務和ForAll執行批量DML練習
Oracle DML語句(insert,update,delete) 復原開銷估算