Oracle基礎 10 表 table
--檢視錶的結構
desc ygb;
select * from user_tab_columns
where table_name='YGB';
--新建表ygb
create table ygb(
bh number(3),
eid varchar2(6) constraint eid_p primary key,
ename varchar2(10),
bdate date,
sex char(1),
city varchar2(20)
);
JOHN@ test10g> create table tbstest
2 (id int,
3 dt date
4 )
5 tablespace tbs_test; --指定表存放的表空間
--通過查詢新建表
create table emptest as
select * from emp;
如果此表有幾百萬行,並且你的時間不允許,那麼還有兩種方法可以提高建立含有大量資料的新表的速度。可以使用 parallel 和 nologging 選項來提高裝載大表的速度。parallel 選項允許你用多個程式並行執行資料載入,並且 nologging 選項指示不要把該資訊記錄進重做日誌檔案和回滾段(除了為內務處理目的外)。如下所示:
create table employee_new
as select * from employees
parallel degree 4
nologging;
另一種方法是將一個表簡單的從一個表空間移動到另一個表空間。
alter table employee move new_tablespace;
當移動一個表時,行的 rowid 改變了,因而使該表的索引不可用。你必須重新建立索引或者在你移動該表後重建它們。
--重新命名錶
alter table ygb rename to newname;
--刪除表
drop table emp; --刪除表
drop table emp purge; --刪除表,不放到回收站
drop table emp cascade constraints; --將約束一起刪除
truncate table emp; --截斷表
--修改表的結構
alter table emp add (job_id number); --追加列
alter table emp modify (job_id number(4,0) default 1001); --修改列
alter table emp drop column job_id; --刪除列
alter table emp drop (job_id);
alter table emp rename column job_id to jobid; --重新命名列
income integer generated always as (salary+jiangjin); --虛擬列
如果要刪除列的那個表中包含了大量的資料,你可以將該列標記為未用,而不用完全刪除資料。你在任何查詢或試圖中都不會看到該列,並且所有定義在該列上的所有依賴物件(如約束和索引)都被刪除。事實上,用詞方法可以快速“刪除”一個大資料列。
alter table emp set unused column job_id; --標記未使用列
然後,可以在某個維護時間中使用以下命令永久刪除這兩列。
alter table emp drop unused columns; --刪除未使用列
如果認為表中行太多可能潛在的消耗撤銷空間,可以用可選的 checkpoint 子句刪除一列。通過在一定數目的行後使用檢查點,將在刪除該列的同時減少撤銷資料的產生。參見下面的例子。每當在emp中刪除10000行,資料庫就使用一個檢查點:
alter table emp drop unused columns checkpoint 10000;
alter table emp read write; --讀寫狀態
alter table emp read only; --只讀狀態
可以在只讀表上執行以下操作:
select
create/alter/drop index
alter table add/modify/drop/enable/disable constraint
進行物理特性更改的 alter table
rename table 和 alter table rename to
drop table
--建立會話級臨時表
create global temporary table temp_tb1(col_a varchar2(30))
on commit preserve rows;
--建立事務級臨時表
create global temporary table temp_tb2(col_a varchar2(30))
on commit delete rows
--insert
insert into ygb
values(bhseq.nextval,101,'A','2-3-86','男','西安');
--update
update gzb
set salary=salary*1.1
where eid=108;
--delete
delete from ygb
where eid=108;
--檢視錶的大小
IKKI@ test11g> select segment_name,segment_type,bytes from user_segments
2 where segment_name='EMP';
SEGMENT_NAME SEGMENT_TYPE BYTES
--------------- ---------- ----------
EMP TABLE 65536
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27633655/viewspace-1080348/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Azure 基礎:Table storage
- Oracle 基礎溫習2 查詢預設表空間及其下面的tableOracle
- Oracle 基礎 ----臨時表和物件表Oracle物件
- oracle 外部表 external tableOracle
- Oracle外部表 External TableOracle
- Oracle 10g table monitoring 如何判斷表有10%Oracle 10g
- Oracle基礎100問Oracle
- Oracle基礎 01 表空間 tablespaceOracle
- Oracle分割槽表(Partition Table)Oracle
- oracle 誤刪表 drop tableOracle
- 基礎表-底表-基礎資料
- Oracle基礎結構之表空間Oracle
- 演算法與資料結構基礎 - 雜湊表(Hash Table)演算法資料結構
- oracle 10 g stream tableOracle
- 【TABLE】Oracle表資訊收集指令碼Oracle指令碼
- Oracle臨時表GLOBAL TEMPORARY TABLEOracle
- Oracle10g中FLASHBACK TABLE語句快速恢復表Oracle
- oracle 10046與select table查詢表系列(一)Oracle
- Oracle基礎 02 臨時表空間 tempOracle
- Oracle基礎 03 回滾表空間 undoOracle
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- oracle 10g table streamOracle 10g
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle壓縮黑科技(一)—基礎表壓縮Oracle
- Oracle表空間操作詳解-入門基礎Oracle
- Oracle 基礎Oracle
- PL/SQL表(oracle記憶體表)---table()函式用法SQLOracle記憶體函式
- oracle基礎練習7-10章 儲存結構、回滾段、管理表Oracle
- oracle基礎管理——表空間和資料檔案Oracle
- 華表基礎(轉)
- oracle truncate table recover(oracle 如何拯救誤操作truncate的表)Oracle
- Oracle基礎概念Oracle
- Oracle 基礎 ----packageOraclePackage
- Oracle 基礎--索引Oracle索引
- oracle rman 基礎Oracle
- Oracle批次修改使用者表table的表空間Oracle
- 【TABLE】Oracle監控異常的表設計Oracle