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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TABLE】Oracle表資訊收集指令碼Oracle指令碼
- oracle truncate table recover(oracle 如何拯救誤操作truncate的表)Oracle
- Oracle 基礎Oracle
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 【TABLE】Oracle監控異常的表設計Oracle
- 演算法與資料結構基礎 - 雜湊表(Hash Table)演算法資料結構
- Oracle:TABLE MONITORINGOracle
- Oracle table selectOracle
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- Oracle分割槽表基礎運維-08Coalescing PartitionsOracle運維
- oracle表空間不足:ORA-01653: unable to extend tableOracle
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- oracle cache table(轉)Oracle
- Oracle Pipelined Table(轉)Oracle
- Oracle 19C OGG基礎運維-06增加複製表Oracle運維
- ORACLE基礎之oracle鎖(oracle lock mode)詳解Oracle
- 1、Oracle 基礎介紹Oracle
- Lua table(表)
- Oracle Pipelined Table Functions(轉)OracleFunction
- Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表Oracle
- Oracle 19C OGG基礎運維-07減少複製表Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- Oracle開發基礎-遊標Oracle
- JavaScript基礎10JavaScript
- (JS基礎)操作表單JS
- Django框架表單基礎Django框架
- Oracle開發基礎-觸發器Oracle觸發器
- oracle11grac基礎結構Oracle
- 【WEB基礎】HTML & CSS 基礎入門(8)表單WebHTMLCSS
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維
- SQLAlchemy Table(表)類方式 – Table類和Column類SQL
- Oracle Table建立引數說明Oracle