標籤:
表名和列名的命名規則:
必須以字母開頭
必須在1-30個字元之間
只能包含A-Z,a-z,0-9,_,$,#
不能與使用者定義的其它對象重名
不能使用ORACLE的保留字
建立前具備的條件:
CREATE TABLE許可權
建表時必須指定:
表名
列名,列的資料類型,最大長度
資料類型:
varchar2(size) 變長字元型(最大長為4000字元)
char(size) 定長字元型(最大2000字元)
number(p,s) 數值型
date 日期型
long 變長大字元型(最大2G)
CLOG 大字元型(最大4G)
raw 裸位元據(最大2000字元)
long raw 裸位元據(最大2G)
blob 位元據,最大4G
bfile 外部二進位檔案,最大4G
| 類型 |
含義 |
儲存描述 |
備忘 |
| CHAR |
固定長度字串 |
最大長度2000bytes |
|
| VARCHAR2 |
可變長度的字串, |
最大長度4000bytes |
可做索引的最大長度749 |
| NCHAR |
根據字元集而定的固定長度字串 |
最大長度2000bytes |
|
| NVARCHAR2 |
根據字元集而定的可變長度字串 |
最大長度4000bytes |
|
| DATE |
日期(日-月-年) |
DD-MM-YY(HH-MI-SS),經過嚴格測試,無千蟲問題 |
|
| TIMESTAMP |
日期(日-月-年) |
DD-MM-YY(HH-MI-SS:FF3),經過嚴格測試,無千蟲問題 |
與DATE相比較,TIMESTAMP有小數位秒資訊 |
| LONG |
超長字串 |
最大長度2G,足夠儲存大部頭著作 |
|
| RAW |
固定長度的位元據 |
最大長度2000bytes |
可存放多媒體圖象聲音等 |
| LONG RAW |
可變長度的位元據 |
最大長度2G |
可存放多媒體圖象聲音等 |
| BLOB |
位元據 |
最大長度4G |
|
| CLOB |
字元資料 |
最大長度4G |
|
| NCLOB |
根據字元集而定的字元資料 |
最大長度4G |
|
| BFILE |
存放在資料庫外的位元據 |
最大長度4G |
|
| ROWID |
資料表中記錄的唯一行號 |
10bytes |
********.****.****格式,*為0或1 |
| NROWID |
位元據表中記錄的唯一行號 |
最大長度4000bytes |
|
| NUMBER(P,S) |
數字類型 |
P為整數位,S為小數位 |
|
| DECIMAL(P,S) |
數字類型 |
P為整數位,S為小數位 |
|
| INTEGER |
整數類型 |
小的整數 |
|
| FLOAT |
浮點數類型 |
NUMBER(38),雙精確度 |
|
| REAL |
實數類型 |
NUMBER(63),精度更高 |
建立文法:
create table [schema.]tablename
(column datatype [default expr] [constaint],
....)
查看錶結構:
desc tablename
oracle表的類型
使用者自訂表格
資料字典
oracle 自動建立的一組表
包含了資料庫的自身資訊,用於管理和維護資料庫用
關於表的資料字典:
user_catalog,all_catalog,dba_catalog,
user_tables,all_tables,dba_tables,
user_tables 自已建的表
all_tables 自已可以訪問的表
dba_tables 資料庫中所有的表
如何複製一個表
複製整個表:
create table emp as select * from scott.emp;
複製表結構:
create table emp2 as select * from scott.emp where 1=2;
如何查看一個表佔用的磁碟空間:
dba_extents,
dba_segments
insert into emp select * from emp;
select SEGMENT_NAME,SUM(BYTES)/1024/1024
from dba_extents where SEGMENT_NAME=‘EMP‘ AND OWNER=‘SYS‘
GROUP BY SEGMENT_NAME;
SELECTOWNER,SEGMENT_NAME,SEGMENT_TYPE,
TABLESPACE_NAME,bYTES/1024/1024
FROM DBA_SEGMENTS WHERE SEGMENT_NAME=‘EMP‘;
資料字典中更新表資訊
exec dbms_stats.gather_table_stats(‘SCOTT‘,‘TEST‘);
修改表:
添加新列
alter table tablename
add (column datatype [default expr]);
刪除列:
alter table tablename
drop column colname
列改名:
alter table tablename
rename column colname to new_colname
表改名:
alter table tablename rename to new_tablename
rename test2 to test
修改列的資料類型,尺寸和預設值
alter table tablename
modify (column datatype [default values])
將列標記為不可用:
alter table tablename
set unused(column)
刪除表
drop table tablename
截斷表(刪除所有記錄,保留表結構)
truncate table tablename
表加註釋
comment on table tablename is ‘...注釋內容...‘
列加註釋
comment on column tablename.column is ‘......‘
與注釋相關的資料字典
all_col_comments
user_col_comments
all_tab_comments
user_tab_comments
關於表結構的資料字典:
dba_tab_columns
使用空值和預設值
隱式:插入記錄時,不指定欄位,不指定值
顯示:插入記錄時,空值欄位填null,預設值欄位填default
參:http://blog.sina.com.cn/s/blog_690d63f80100jiq4.html
oracle中用SQL語句建立和管理表