一、Oracle體系結構

二、表空間管理
1.建立表空間
--建立表空間
create tablespace 表空間名稱
datafile '資料檔案名'
size 表空間大小
autoextend on(自動擴充)
next 每次擴充的大小;
2.删除表空間
--删除表空間
drop tablespace 表空間名稱;
3.執行個體
--建立表空間mark
create tablespace mark
datafile 'c:\mark.dbf'
size 100m
autoextend on
next 10m;
--删除表空間mark
delete tablespace mark;
三、使用者管理
1.建立使用者指定預設表空間
--建立一個使用者
create user 使用者名
identified by 密碼
default tablespace 表空間名稱;
2.使用者授權
--使用者授權
grant connect,resource,dba to 使用者名稱;
3.執行個體
--建立一個使用者tom
create user tom
identified by tom
default tablespace mark;
--使用者授權(為使用者賦予角色)
grant connect,resource,dba to tom;
四、表管理
1.建立表
--建立表
create table 表名(
列名 列的類型 [列的限制],
列名 列的類型 [列的限制]
);
字段類型 | 中文說明 | 限制條件 | 其它說明 |
CHAR | 固定長度字元串 | 最大長度2000 bytes | |
VARCHAR2 | 可變長度的字元串 | 最大長度4000 bytes | 可做索引的最大長度749 Byte/char,預設情況用的是Byte |
NCHAR | 根據字元集而定的固定長度字元串 | 最大長度2000 bytes | |
NVARCHAR2 | 根據字元集而定的可變長度字元串 | 最大長度4000 bytes | |
DATE | 日期(日-月-年) | DD-MM-YY(HH-MI-SS) | 經過嚴格測試,無千年蟲問題 |
LONG | 超長字元串 | 最大長度2G(231-1) | 足夠存儲大部頭著作 |
RAW | 固定長度的二進制資料 | 最大長度2000 bytes | 可存放多媒體圖象聲音等 |
LONG RAW | 可變長度的二進制資料 | 最大長度2G | 同上 |
BLOB | 二進制資料 | 最大長度4G | |
CLOB | 字元資料 | 最大長度4G | |
NCLOB | 根據字元集而定的字元資料 | 最大長度4G | |
BFILE | 存放在資料庫外的二進制資料 | 最大長度4G | |
ROWID | 資料表中記錄的唯一行号 | 10 bytes ********.****.****格式,*為0或1 | |
NROWID | 二進制資料表中記錄的唯一行号 | 最大長度4000 bytes | |
NUMBER(P,S) | 數字類型 | P為整數位,S為小數位 | |
DECIMAL(P,S) | 數字類型 | P為整數位,S為小數位 | |
INTEGER | 整數類型 | 小的整數 | |
FLOAT | 浮點數類型 | NUMBER(38),雙精度 | |
REAL | 實數類型 | NUMBER(63),精度更高 |
限制名稱 | 限制描述 |
PRIMARY KEY | 主鍵限制,鍵列必須具有唯一性且非空 |
UNIQUE | 唯一性限制,鍵列必須具有唯一性但允許為空 |
NOT NULL | 非空限制,鍵列中必須有值 |
CHECK | 檢查限制,對鍵列實施一些簡單的規則,如 check(sex in('男','女')); |
FOREIGN KEY | (多表)外鍵限制,從表A中的記錄,必須是存在于主表B中 |
--添加外鍵限制
alter table 從表 add foreign key(從表中某字段) references 主表(主表中某字段);
--強制删除表(不建議使用) : 先删除外鍵關聯表的外鍵限制,然後再删除自己
drop table category cascade constraint;
--級聯删除
----添加外鍵限制,使用級聯限制,在删除的時候,使用級聯删除
alter table 從表 add foreign key(從表某字段) references 主表(主表某字段) on delete cascade;
2.使用子查詢語句建立表
注意:
子查詢語句建立表隻會複制表結構和表中的資料,不會複制列的限制
如果查詢語句有結果, 就是複制 表結構和資料
如果查詢語句沒有結果, 就是複制 表結構
create table 表名 as 查詢語句; --複制表
create table emp as select * from scott.emp;
3.修改表
--修改表名
rename table 舊表名 to 新表名;
--删除表
drop table 表名;
--添加一列
alter table 表名 add 列名 資料類型(長度) [限制];
--添加多列
alter table 表名 add (
列名1 資料類型(長度) [限制],
列名2 資料類型(長度) [限制],
....
);
--修改列名
alter table 表名 rename column 舊列名 to 新列名;
--修改列屬性
alter table 表名 modify 要修改的字段名 類型(長度) [限制];
--删除列
alter table 表名 drop column 列名;