校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > oracle SQL命令大全

oracle SQL命令大全

熱門標簽:貴陽智能電銷機器人官網 地圖標注付款了怎么找不到了 沈陽400電話是如何辦理 外呼系統鄭州 北京營銷外呼系統廠家 百度地圖標注員是干什么 溫州人工外呼系統 外呼系統口號 北京外呼系統公司排名
delete 刪除一張大表時空間不釋放,非常慢是因為占用大量的系統資源,支持回退操作,空間還被這張表占用著。
truncate table 表名 (刪除表中記錄時釋放表空間)
DML 語句:
表級共享鎖: 對于操作一張表中的不同記錄時,互不影響
行級排它鎖:對于一行記錄,oracle 會只允許只有一個用戶對它在同一時間進行修改操作
wait() 等到行級鎖被釋放,才進行數據操作
drop一張表時也會對表加鎖,DDL排它鎖,所以在刪除一張表時如果當前還有用戶操作表時不能刪除表
alter table 命令用于修改表的結構(這些命令不會經常用):
增加約束:
alter table 表名 add constraint  約束名 primary key (字段);
解除約束:(刪除約束)
alter table 表名 drop primary key(對于主鍵約束可以直接用此方法,因為一張表中只有一個主鍵約束名, 注意如果主鍵此時還有其它表引用時刪除主鍵時會出錯)
alter tbale father drop primary key cascade ; (如果有子表引用主鍵時,要用此語法來刪除主鍵,這時子表還存在只是子表中的外鍵約束被及聯刪除了)
alter table 表名 drop constraint 約束名;
(怎樣取一個約束名:1、人為的違反約束規定根據錯誤信息獲取!
2、查詢示圖獲取約束名!)
alter table 表名 disable from primary key ; (相當于把一個表的主鍵禁用)
alter table 表名 enable primary key ;(enable 時會自動去檢查表的記錄是不是符合要求,如果有臟數據時必須要先刪除臟數據才可以 enable)

*******************************************************************
增加字段:
alter table   表名   add(字段字 字段類型)
刪除字段:
alter table   表名 drop(字段)
alter tbale 表名 drop column 字段 ; (8i 以后才支持)
給列改名:920才支持
alter table 表名 rename column 舊字段名 to 新字段名;
修改字段
(此時應注意的問題,更改時要看具體值情況之間的轉達換, 改為字符類型時,必須要為空)
alter table  表名 modify( 字段,類型)
更改表中的字段:
update 表名 set 字段 = 值 where 條件
更改表名
rename 舊表名 to    新表名 ;
刪除表:
trucate table 表名:(表結構還在,數據全部刪除,釋放表所占的空間,不支持回退,常用刪除大表)

關于oralce中產生序列(sequence):
create sequence 序列名alter system flush shared_pool;
(不帶參數時默認為從1 開始每次遞增 1,oracle中為了提高產生序列的效率一般一次性產生20個序列放入當前會話的序列池中備用以加快效率,序列會出現不連續的動作回退操作不會影響序列取值)
sequence 的參數:
increment by n 起始值, start with n 遞增量, maxvalue n 最大值, minvalue n 最小值,cycle | no cycle 輪回, cache n 綬存(第一次取時會一次取多少個id存起來)
查看 sequence 示圖:
desc user_sequences ;
select sequence_name , cache_size , last_number from user_sequences where sequence_name like 's_';
select 序列名.currval from dual 查看當前的序列數
select 序列名.nextval from dual 查看下一個序列數,它會自動給當前的序列加1
為列:nextval currval
(開另一個session時取當前值不成功時,應該先取下一個值,再取當前值)
清空當前會話的內存:
alter system flush shared_pool;(執行此命令要有DBA權限,一般用戶執行出錯)
修改序列:(此命令不常用,只需了解就行不必深究)
alter sequence 序列名 修改項;
刪除序列sequence
drop sequence 序列名;
創建示圖: creating views(屬于了解知識)
desc user_views;
select text from user_views where view_name='TEST1_V1' ;
示圖就相當于一條select 語句,定義了一個示圖就是定義了一個sql語句,示圖不占空間,使用view 不會提高性能,但是能簡單化sql語句
(擴展知識: oracle 8i 以后的新示圖)MV 物化視圖(占存儲空間,把select 結果存在一個空間,會提高查詢視圖,增強實時性,但是存在刷新問題, 主要應用在數據倉庫中用要用于聚合表)
使用示圖的好處:控制數據訪問權限.
如何創建一個示圖:
create or replace views test_vi as select * from test1 where c1=1;
此時往表test1(base table 基表)中插入數據時:表中沒能變化,示圖中的數據發生改變
從示圖中插數據時相對應的表會發生改變:
往示圖中插數據時,會直接插進基表中,查看示圖中的數據時,相當于就是執行創建時的select語句。
簡單示圖:能進行DML操作。
復雜示圖:來源于多張表,不能執行DML操作。
關于rownum:
rownum 有個特點要么等于1 要么小于某個值, 不能直接等于某個值, 不能大于某個值。rownum常用于分頁顯示。
練習:查詢出第5條數據和第10條數據之間:
select first_name , rnum from ( select rownum rnum , first_name from s_emp where rownum =10 ) where rnum between 5 and 10 ;
分面顯示:
SELECT * FROM (SELECT a.*, rownum r FROM S_EMP a WHERE r between 5 AND 10 );
練習:哪些員工的工資比本部門的平均工資高?
select first_name , salary , avgsal from s_emp e , ( select dept_id , avg (salary ) avgsal from s_emp group by dept_id ) a where e.dept_id =a.dept_id and e.salary > a.avgsal;
在示圖上加一個 with check option 就相當于給示圖加上了約束
create view test_v as select * from test where c =1 with check option ;
同義詞:相當于別名的作用(***只需了解***)系統自建的同義詞: user_tables
create synonym asd_s_emp for asd_0607.s_emp ;
目的就是為了給asd_0607_s_emp表起另一個代替的名稱asd.s_emp;注意這個同義詞只能自己使用;
create public synonym p_s_emp fro asd_0607.s_emp; 創建公共的同義詞,但是要權限.
刪除同義詞:
drop synonym 同義詞名稱
創建索引: Creating indexes(概念很重要對系統的性能影響非常大)
建索引的目的就是為了加快查詢速度。
索引就相于一本的書的目錄。索引點系統空間,屬于表的附屬物。刪除一個表時,相對應的索引也會刪除。truncate 表時索引結構在,但是數據不存在。
full table scan 全表掃描
用索引就是為了快速定位數據:(理解時就以字典的目錄為例)
查看表的rowid:
select rowid , first_name from s_emp;
rowid 定義的信息有: object block table
每條記錄都有自己的rowid
索引由誰創建:用戶,建索引后會使DML操作效率慢,但是對用戶查詢會提高效率,這就是我們建索引的最終目的,
創建一個索引:
create index 索引名 on 表名 ( 字段名);
create insex testindex on test(c1, c2);
哪些字段應該建索引:
經常要用where的子句的地方,所以要用索引.用不用索引,關鍵要看所查詢的數據與所有數據的百分比,表越大,查詢的記錄越少,索引的效率最高.
替換變量:用符號來定義替換變量支持交互性提示,對于字符性的數字,一定要寫在單引號之間
set verify on
set verify off;
相當于開關變量,用于控制是否顯示新舊的sql語句
select id ,last_name ,salary from s_emp where title='job_title';
更改交互的提示信息:
accept p_dname prompt ' 提示信息';
定義變量:
define p_dname='abc';
分頁的實現語句:(可以正常運行)
select * from ( select rownum rnum , a.* from (select * from s_emp) a ) where rnum between 5 and 10 ;


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/andymu077/archive/2009/06/24/4293261.aspx
您可能感興趣的文章:
  • oracle sqlplus 常用命令大全
  • oracle查詢語句大全(oracle 基本命令大全一)
  • Oracle中備份表的簡單sql命令語句
  • oracle創建表的方法和一些常用命令
  • Oracle數據庫執行腳本常用命令小結
  • Oracle常用命令大全集
  • 如何利用Oracle命令解決函數運行錯誤

標簽:衢州 溫州 通遼 潮州 衡水 定西 包頭 淮北

巨人網絡通訊聲明:本文標題《oracle SQL命令大全》,本文關鍵詞  oracle,SQL,命令,大全,oracle,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle SQL命令大全》相關的同類信息!
  • 本頁收集關于oracle SQL命令大全的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 庐江县| 米脂县| 乌恰县| 彰武县| 沅陵县| 海口市| 丰城市| 平阴县| 汾西县| 大方县| 和龙市| 河池市| 襄垣县| 喀什市| 包头市| 沙湾县| 连城县| 延边| 海伦市| 晋中市| 嘉祥县| 夹江县| 叶城县| 宁强县| 西平县| 宁南县| 宣威市| 尚志市| 武义县| 肇庆市| 龙井市| 遂溪县| 攀枝花市| 高陵县| 高要市| 清徐县| 永靖县| 泰来县| 阿拉善左旗| 七台河市| 布尔津县|