oraclesql美化
發布時間: 2022-10-16 18:42:41
⑴ 怎麼操作oracle里的sqlpuls來修改用戶的許可權或者角色
(1)介紹資料庫常見分類
(2)關系型資料庫概念
(3)Oracle資料庫基本知識介紹
(4)Oracle資料庫許可權介紹,其中許可權的內容涉及范圍較大,許可權在本文中和用戶、角色練習較為緊密,角色是許可權的集合,屬於Oracle對象,創建用戶需要許可權,而新創建的用戶要賦予許可權,並且還可以給對象賦予許可權。
⑵ 如何把oracle sql參數如何用@參數
參數化SQL語句
避免SQL注入的方法有兩種:
一是所有的SQL語句都存放在存儲過程中,這樣不但可以避免SQL注入,還能提高一些性能,並且存儲過程可以由專門的資料庫管理員(DBA)編寫和集中管理,不過這種做法有時候針對相同的幾個表有不同條件的查詢,SQL語句可能不同,這樣就會編寫大量的存儲過程,所以有人提出了第二種方案:參數化SQL語句。例如我們在本篇中創建的表UserInfo中查找所有女性用戶,那麼通常情況下我們的SQL語句可能是這樣:
1
select * from UserInfo where sex=0
在參數化SQL語句中我們將數值以參數化的形式提供,對於上面的查詢,我們用參數化SQL語句表示為:
1
select * from UserInfo where sex=@sex
再對代碼中對這個SQL語句中的參數進行賦值,假如我們要查找UserInfo表中所有年齡大於30歲的男性用戶,這個參數化SQL語句可以這么寫:
1
select * from UserInfo where sex=@sex and age>@age
下面是執行這個查詢並且將查詢結果集以DataTable的方式返回的代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
//實例化Connection對象
SqlConnection connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");
//實例化Command對象
SqlCommand command = new SqlCommand("select * from UserInfo where sex=@sex and age>@age", connection);
//第一種添加查詢參數的例子
command.Parameters.AddWithValue("@sex", true);
//第二種添加查詢參數的例子
SqlParameter parameter = new SqlParameter("@age", SqlDbType.Int);//注意UserInfo表裡age欄位是int類型的
parameter.Value = 30;
command.Parameters.Add(parameter);//添加參數
//實例化DataAdapter
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable data = new DataTable();
上面的代碼是訪問SQL Server資料庫的代碼。如果本文中提到的數據分別在Access、MySQL、Oracle資料庫,那麼對應的參數化SQL語句及參數分別如下:
資料庫 Access MySQL Oracle
SQL語句 select * from UserInfo
where sex=? and age>? select * from UserInfo
where sex=?sex and age>?age select * from UserInfo
where sex=:sex and age>:age
參數 OleDbParameter MySqlParameter OracleParameter
實例化參數 OleDbParameter p=new OleDbParameter(「?」, OleDbType. Boolean); MySqlParameter p=new MySqlParameter(「?sex」, MySqlDbType.Bit); OracleParameter p=new OracleParameter(「:sex」, OracleType.Byte);
賦值 p.Value=true; p.Value=1; p.Value=1;
通過上面的實例代碼我們可以看出盡管SQL語句大體相似,但是在不同資料庫的特點,可能參數化SQL語句不同,例如在Access中參數化SQL語句是在參數直接以「?」作為參數名,在SQL Server中是參數有「@」前綴,在MySQL中是參數有「?」前綴,在Oracle中參數以「:」為前綴。
注意:因為在Access中參數名都是「?」,所以給參數賦值一定要按照列順序賦值,否則就有可能執行出錯。
Command對象傳參效率測試
在.net平台,普通的insert語句有兩種寫法,不帶參數insert into test(c1,c2) values(var1,var2)和帶參數insert into test(c1,c2) values(:c1,:c2),它們的執行效率如何呢?
做了個試驗,代碼如下:(資料庫是oracle)
+ View Code
執行結果:
10000記錄:
不傳參數?5:46:19 15:46:34 15秒
傳參數:?5:50:51 15:51:01 10秒
50000記錄:
不傳參數 16:09:03 16:10:24 81秒
傳參數::16:15:43 16:16:36 53秒
這只是2個參數的情況,如果參數很多會不會影響更大呢?
10000記錄,7個參數:
不傳參數:17:11:01 17:11:18 17秒
傳參數:17:13:46 17:13:59 13秒
50000記錄:7個參數:
不傳參數:17:19:02 17:20:25 1分23秒
傳參數:17:15:09 17:16:10 1分1秒
需要相差不大,但是向command對象傳遞參數既可以避免sql注入問題,也可以提高性能;
⑶ sqlyog如何格式化SQL語句,如同plsql里的一樣
1、首先打開sqlyog桌面的sqlyog客戶端軟體。

⑷ 資料庫性能優化有哪些措施
1、調整數據結構的設計
這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。
2、調整應用程序結構設計
這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的資料庫資源是不同的。
3、調整資料庫SQL語句
應用程序的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE資料庫的性能。ORACLE公司推薦使用ORACLE語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。
4、調整伺服器內存分配
內存分配是在信息系統運行過程中優化配置的,資料庫管理員可以根據資料庫運行狀況調整資料庫系統全局區(SGA區)的數據緩沖區、日誌緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會佔用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。
5、調整硬碟I/O
這一步是在信息系統開發之前完成的。資料庫管理員可以將組成同一個表空間的數據文件放在不同的硬碟上,做到硬碟之間I/O負載均衡。
6、調整操作系統參數
例如:運行在UNIX操作系統上的ORACLE資料庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。
實際上,上述資料庫優化措施之間是相互聯系的。ORACLE資料庫性能惡化表現基本上都是用戶響應時間比較長,需要用戶長時間的等待。但性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要資料庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響資料庫性能的主要原因所在。另外,良好的資料庫管理工具對於優化資料庫性能也是很重要的。
一、ORACLE資料庫性能優化工具
常用的資料庫性能優化工具有:
ORACLE資料庫在線數據字典,ORACLE在線數據字典能夠反映出ORACLE動態運行情況,對於調整資料庫性能是很有幫助的。
操作系統工具,例如UNIX操作系統的vmstat,iostat等命令可以查看到系統系統級內存和硬碟I/O的使用情況,這些工具對於管理員弄清出系統瓶頸出現在什麼地方有時候很有用。
SQL語言跟蹤工具(SQL TRACE FACILITY),SQL語言跟蹤工具可以記錄SQL語句的執行情況,管理員可以使用虛擬表來調整實例,使用SQL語句跟蹤文件調整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統的文件,管理員可以使用TKPROF工具查看這些文件。
ORACLE Enterprise Manager(OEM),這是一個圖形的用戶管理界面,用戶可以使用它方便地進行資料庫管理而不必記住復雜的ORACLE資料庫管理的命令。
EXPLAIN PLAN——SQL語言優化命令,使用這個命令可以幫助程序員寫出高效的SQL語言。
二、ORACLE資料庫的系統性能評估
信息系統的類型不同,需要關注的資料庫參數也是不同的。資料庫管理員需要根據自己的信息系統的類型著重考慮不同的資料庫參數。
1、在線事務處理信息系統(OLTP),這種類型的信息系統一般需要有大量的Insert、Update操作,典型的系統包括民航機票發售系統、銀行儲蓄系統等。OLTP系統需要保證資料庫的並發性、可靠性和最終用戶的速度,這類系統使用的ORACLE資料庫需要主要考慮下述參數:
資料庫回滾段是否足夠?
是否需要建立ORACLE資料庫索引、聚集、散列?
系統全局區(SGA)大小是否足夠?
SQL語句是否高效?
2、數據倉庫系統(Data Warehousing),這種信息系統的主要任務是從ORACLE的海量數據中進行查詢,得到數據之間的某些規律。資料庫管理員需要為這種類型的ORACLE資料庫著重考慮下述參數:
是否採用B*-索引或者bitmap索引?
是否採用並行SQL查詢以提高查詢效率?
是否採用PL/SQL函數編寫存儲過程?
有必要的話,需要建立並行資料庫提高資料庫的查詢效率
三、SQL語句的調整原則
SQL語言是一種靈活的語言,相同的功能可以使用不同的語句來實現,但是語句的執行效率是很不相同的。程序員可以使用EXPLAIN PLAN語句來比較各種實現方案,並選出最優的實現方案。總得來講,程序員寫SQL語句需要滿足考慮如下規則:
1、盡量使用索引。試比較下面兩條SQL語句:
語句A:SELECT dname, deptno FROM dept WHERE deptno NOT IN
(SELECT deptno FROM emp);
語句B:SELECT dname, deptno FROM dept WHERE NOT EXISTS
(SELECT deptno FROM emp WHERE dept.deptno = emp.deptno);
這兩條查詢語句實現的結果是相同的,但是執行語句A的時候,ORACLE會對整個emp表進行掃描,沒有使用建立在emp表上的deptno索引,執行語句B的時候,由於在子查詢中使用了聯合查詢,ORACLE只是對emp表進行的部分數據掃描,並利用了deptno列的索引,所以語句B的效率要比語句A的效率高一些。
2、選擇聯合查詢的聯合次序。考慮下面的例子:
SELECT stuff FROM taba a, tabb b, tabc c
WHERE a.acol between :alow and :ahigh
AND b.bcol between :blow and :bhigh
AND c.ccol between :clow and :chigh
AND a.key1 = b.key1
AMD a.key2 = c.key2;
這個SQL例子中,程序員首先需要選擇要查詢的主表,因為主表要進行整個表數據的掃描,所以主表應該數據量最小,所以例子中表A的acol列的范圍應該比表B和表C相應列的范圍小。
3、在子查詢中慎重使用IN或者NOT IN語句,使用where (NOT) exists的效果要好的多。
4、慎重使用視圖的聯合查詢,尤其是比較復雜的視圖之間的聯合查詢。一般對視圖的查詢最好都分解為對數據表的直接查詢效果要好一些。
5、可以在參數文件中設置SHARED_POOL_RESERVED_SIZE參數,這個參數在SGA共享池中保留一個連續的內存空間,連續的內存空間有益於存放大的SQL程序包。
6、ORACLE公司提供的DBMS_SHARED_POOL程序可以幫助程序員將某些經常使用的存儲過程「釘」在SQL區中而不被換出內存,程序員對於經常使用並且佔用內存很多的存儲過程「釘」到內存中有利於提高最終用戶的響應時間。
四、CPU參數的調整
CPU是伺服器的一項重要資源,伺服器良好的工作狀態是在工作高峰時CPU的使用率在90%以上。如果空閑時間CPU使用率就在90%以上,說明伺服器缺乏CPU資源,如果工作高峰時CPU使用率仍然很低,說明伺服器CPU資源還比較富餘。
使用操作相同命令可以看到CPU的使用情況,一般UNIX操作系統的伺服器,可以使用sar _u命令查看CPU的使用率,NT操作系統的伺服器,可以使用NT的性能管理器來查看CPU的使用率。
資料庫管理員可以通過查看v$sysstat數據字典中「CPU used by this session」統計項得知ORACLE資料庫使用的CPU時間,查看「OS User level CPU time」統計項得知操作系統用戶態下的CPU時間,查看「OS System call CPU time」統計項得知操作系統系統態下的CPU時間,操作系統總的CPU時間就是用戶態和系統態時間之和,如果ORACLE資料庫使用的CPU時間占操作系統總的CPU時間90%以上,說明伺服器CPU基本上被ORACLE資料庫使用著,這是合理,反之,說明伺服器CPU被其它程序佔用過多,ORACLE資料庫無法得到更多的CPU時間。
資料庫管理員還可以通過查看v$sesstat數據字典來獲得當前連接ORACLE資料庫各個會話佔用的CPU時間,從而得知什麼會話耗用伺服器CPU比較多。
出現CPU資源不足的情況是很多的:SQL語句的重解析、低效率的SQL語句、鎖沖突都會引起CPU資源不足。
1、資料庫管理員可以執行下述語句來查看SQL語句的解析情況:
SELECT * FROM V$SYSSTAT WHERE NAME IN
('parse time cpu', 'parse time elapsed', 'parse count (hard)');
這里parse time cpu是系統服務時間,parse time elapsed是響應時間,用戶等待時間,waite time = parse time elapsed _ parse time cpu
由此可以得到用戶SQL語句平均解析等待時間=waite time / parse count。這個平均等待時間應該接近於0,如果平均解析等待時間過長,資料庫管理員可以通過下述語句
SELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA
ORDER BY PARSE_CALLS;
來發現是什麼SQL語句解析效率比較低。程序員可以優化這些語句,或者增加ORACLE參數SESSION_CACHED_CURSORS的值。
2、資料庫管理員還可以通過下述語句:
SELECT BUFFER_GETS, EXECUTIONS, SQL_TEXT FROM V$SQLAREA;
查看低效率的SQL語句,優化這些語句也有助於提高CPU的利用率。
3、資料庫管理員可以通過v$system_event數據字典中的「latch free」統計項查看ORACLE資料庫的沖突情況,如果沒有沖突的話,latch free查詢出來沒有結果。如果沖突太大的話,資料庫管理員可以降低spin_count參數值,來消除高的CPU使用率。
五、內存參數的調整
內存參數的調整主要是指ORACLE資料庫的系統全局區(SGA)的調整。SGA主要由三部分構成:共享池、數據緩沖區、日誌緩沖區。
1、 共享池由兩部分構成:共享SQL區和數據字典緩沖區,共享SQL區是存放用戶SQL命令的區域,數據字典緩沖區存放資料庫運行的動態信息。資料庫管理員通過執行下述語句:
select (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache;
來查看共享SQL區的使用率。這個使用率應該在90%以上,否則需要增加共享池的大小。資料庫管理員還可以執行下述語句:
select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache;
查看數據字典緩沖區的使用率,這個使用率也應該在90%以上,否則需要增加共享池的大小。
2、數據緩沖區。資料庫管理員可以通過下述語句:
SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets','physical reads');
來查看資料庫數據緩沖區的使用情況。查詢出來的結果可以計算出來數據緩沖區的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。
這個命中率應該在90%以上,否則需要增加數據緩沖區的大小。
3、日誌緩沖區。資料庫管理員可以通過執行下述語句:
select name,value from v$sysstat where name in ('redo entries','redo log space requests');
查看日誌緩沖區的使用情況。查詢出的結果可以計算出日誌緩沖區的申請失敗率:
申請失敗率=requests/entries,申請失敗率應該接近於0,否則說明日誌緩沖區開設太小,需要增加ORACLE資料庫的日誌緩沖區。
昆明北大青鳥 java培訓班轉載自網路 如有侵權請聯系我們 感謝您的關注 謝謝支持
⑸ 資料庫軟體的Oracle
Oracle來歷
70年代 一間名為Ampex的軟體公司,正為中央情報局設計一套名叫Oracle的資料庫,Ellison是程序員之一。Oracle是世界領先的信息管理軟體開發商,因其復雜的關系資料庫產品而聞名。Oracle資料庫產品為財富排行榜上的前1000家公司所採用,許多大型網站、銀行、證券、電信等都選用了Oracle系統。
1977年艾利森與女上司Robert Miner創立「軟體開發實驗室」(Software Development Labs),當時IBM發表「關系資料庫」的論文,艾利森以此造出新資料庫,名為甲骨文。
1978年公司遷往矽谷,更名為「關系式軟體公司」 (RSI),兩年後,共有8名員工,年收入少於100萬美金。最先提出「關系資料庫」的IBM採用RSI的資料庫。1982年再更名為甲骨文(Oracle)。
1984年三年內,先後進軍加拿大、荷蘭、英國、奧地利、日本、德國、瑞士、瑞典、澳大利亞、芬蘭、法國、香港、挪威、西班牙。1986年上市時,年收入暴升至5500萬美元,同年3月招股,集資3150萬美元。1987年年收入達到 1.31 億美元,甲骨文一年後成為世界第四大軟體公司。兩年內再進軍墨西哥、巴西、中國、塞普勒斯、馬來西亞、新加坡及紐西蘭。一年後,收入再升一倍至2.82億美元。1990年甲骨文兩年內揮軍進入智利、希臘、韓國、葡萄牙、土耳其、委內瑞拉、台灣、比利時、阿根廷、哥倫比亞、哥斯大黎加及菲律賓等地,但是當年甲骨文的業績首次發生虧損,市值急跌80%,艾利森首次安排資深管理人員參與經營。
1992年旗艦產品Oracle 7面世,使該公司業務重新步上軌道,年收入達到11.79億美元。曾被視為甲骨文接班人、但後來被踼出局的Raymond Lane擔任營運總監。1995年艾利森宣布PC已死,把全數產品推向互聯網發展,並另組「網路計算機公司」(Network Computer),銷售「網路計算機」,最終被淘汰收場。2000年科網接近尾聲時,推出E-Business Suite,搶占應用產品市場,與昔日的生意夥伴構成嚴重利益沖突。同期微軟及IBM數據技術提升,此後Oracle新增訂單數目的佔有率,在兩年內下跌6.6%,業務倒退10%。2003年敵意收購仁科軟體公司,引起業界哄動。兩公司的爭議新聞層出不窮。同年美國司法部落案阻止甲骨文收購。 2009年4月20日,甲骨文公司宣布將以每股9.50美元,總計74億美金收購太陽計算機系統公司。
Oracle發展歷程
Oracle在1979年的夏季發布了可用於DEC公司的PDP-11計算機上的商用ORACLE產品,這個資料庫產品整合了比較完整的SQL實現,其中包括子查詢、連接及其他特性。但不得不說,軟體不是很穩定,並缺少事務處理這樣的重要功能。出於市場策略,公司宣稱這是該產品的第二版,但卻是實際上的第一版。之所以被命名為第2版而不是第1版,是因為Ellison認為潛在的客戶更願意購買第2個版本,而不是初始版本。(雖然這樣做有些不太誠實,還是要承認這是個十分高明的技巧。還有一些公司把自己賣給客戶的版本叫做1.0 ,學學1979年的ORACLE吧!)多年以後的今天,ORACLE公司聲稱是他們第一個提供了第一個SQL關系型資料庫管理系統。
1983年3月,發布了ORACLE第三版。Miner和Scott歷盡艱辛用C語言重新寫就這一版本。C語言當時推出不久,用它來寫ORACLE軟體也是具有一定的風險的,但除此之外,別無他法。很快就證明了這樣做是多麼的正確:C編譯器便宜而又有效,還有很好的移植性。從現在起,ORACLE產品有了一個關鍵的特性:[可移植性]。ORACLE第三版還推出了SQL語句和事務處理的「原子性」--SQL語句要麼全部成功,要麼全部失敗,事務處理要麼全部提交,要麼全部回滾。ORACLE第3版還引入了非阻塞查詢,使用存儲在Before Image File中的數據來查詢和回滾事務,從而避免了讀鎖定(read lock)的使用(雖然通過使用表級鎖定限制了它的吞吐量)。同樣是1983年,IBM發布了姍姍來遲的Database 2(DB2),但只可在MVS上使用。不管怎麼說,ORACLE已經佔取了先機。 在開發第三版還沒有結束的時候,Scott離開了ORACLE。當時用C語言改寫ORACLE的壓力很大,無休止的軟體調試終於讓Scott不堪重負,選擇了一走了之。把剩下的重擔交給了Miner一個人。在出售了自己的4%的股票之後,Scott 後來創建了Gupta公司(現更名為Centura Software)和PointBase公司(提供百分之百純Java嵌入式資料庫),都是開發和資料庫相關的產品。多年後有人問到他的4%的ORACLE股票的時候,Scott,這個曾經給ORACLE寫出第一行代碼的技術高手,也只能報以一笑了。如果能堅持下來,那是一筆幾億美金的財富。不過當時的Scott沒有那麼多的想法,他只是太累了。
1984年10月,ORACLE發布了第四版產品。產品的穩定性總算得到了得到了一定的增強,用Miner的話說,達到了「工業強度」。但是還不夠令人滿意,用戶對產品的抱怨似乎永無休止。這一版增加了讀一致性(Read Consistency),這是資料庫的一個關鍵特性,可以確保用戶在查詢期間看到一致的數據。也就是說,當一個會話正在修改數據時,其他的會話將看不到該會話未提交的修改。可以看到,在ORACLE第四版之前,產品始終是不穩定的,但是ORACLE的這群銷售人員,主要是Ellison,他在宣傳ORACLE的時候總是要誇大其詞,但他就是有能力把軟體賣出去,而且,還賣得很好,不得不承認,這的確有些神奇。讓我們看看1984年軟體市場的情形,在資料庫市場上的霸主是Asnton-Tale公司,他們的拳頭產品是剛推出不久的dBase III(確切的說dBase是PC上的資料庫軟體霸主),剛剛成為全球第三大的獨立軟體公司(第一和第二分別是微軟、Lotus,ORACLE在當時還排不上號),這一年,也是蘋果公司Macintosh誕生的年度,Steven Jobs用這個拳頭產品挑戰老大哥IBM。同樣在這一年中,ORACLE公司的開發人員剛剛把產品移植到PC上。這是最好的年代,也是最壞的年代。數以千計的小公司在軟體領域里爭斗不休,新公司如雨後春筍般成立,ORACLE如何才能於不敗之地?
在1985年,ORACLE發布了5.0版。有用戶說,這個版本算得上是ORACLE資料庫的穩定版本。這也是首批可以在Client/Server模式下運行的的RDBMS產品,在技術趨勢上,ORACLE資料庫始終沒有落後。這意味著運行在桌面PC機(客戶機)上的商務應用程序能夠通過網路訪問資料庫伺服器。1986年發布的5.1版還支持分布式查詢,允許通過一次性查詢訪問存儲在多個位置的數據。
1988年發布第6版,由於過去的版本在性能上屢受詬病,Miner帶領著工程師對資料庫核心進行了重新的改寫。引入了行級鎖(row-level locking)這個重要的特性,也就是說,執行寫入的事務處理只鎖定受影響的行,而不是整個表。這個版本引入了還算不上完善的PL/SQL(Proceral Language extension to SQL)語言。第6版還引入了聯機熱備份功能,使資料庫能夠在使用過程中創建聯機的備份,這極大地增強了可用性。同時在這一年,ORACLE開始研發ERP軟體。
1997年,Oracle推出了面向網路計算的資料庫Oracle8
1999年,Oracle正式提供世界上第一個Internet資料庫Oracle8i。
2001年6月,Oracle又推出了新一代Internet電子商務基礎架構Oracle9i。
2004年,Oracle發布oralce10g。
2007年7月12日,甲骨文公司在美國紐約宣布推出資料庫Oracle 11g,。
2013年7月8日,最新一代的全球領先的資料庫Oracle Database 12c全面上市,這是Oracle資料庫的最新版本。

⑹ plsql developer 怎樣回滾刪除視圖操作
Edit/Undo Ctrl+Z
Edit/Redo Shift+Ctrl+Z
Edit/PL/SQL Beautifier Ctrl+W (自定義)
Shift+Home 選擇游標位置到行首
Shift+End 選擇游標位置到行尾
Ctrl+Shift+Home 選擇游標位置到首行行首
Ctrl+Shift+End 選擇游標位置到尾行行尾
Object:View Shift+Ctrl+V 查看 (自定義)
Object:Describe Shift+Ctrl+D 結構 (自定義)
Object:Properties Shift+Ctrl+P 屬性 (自定義)
Object:Browse Shift+Ctrl+B 瀏覽 (自定義)
Object:Edit Data Shift+Ctrl+E 編輯數據(自定義)
Object:Standard Query Shift+Ctrl+S 標准查詢(自定義)
Edit/Find Replace Ctrl+F
Edit/Find Next Ctrl+L
Edit/Find Previous Shift+Ctrl+L
Edit/Replace Next Ctrl+P
EDIT/Full Screen Ctrl+F11
Edit/Go to Line Ctrl+G
Edit/Next Tab Page Ctrl+H
Edit/Previous Tab Page Shift+Ctrl+H
Session/Execute F8
Session/Break Shift+Esc
Session/Commit F10
Session/Rollback Shift+F10
Debug/Toggle Breakpoint Ctrl+B
Debug/Start F9
Debug/Run Ctrl+R
Debug/Step Into Ctrl+N
Debug/Step Over Ctrl+O
Debug/Step Out Ctrl+T
Tools/Explain Plan F5
Tools/Code Assistant F6
Editor: Start of Document Ctrl+PgUp OR Ctrl+Home
Editor: End of Document Ctrl+PgDn OR Ctrl+End
Editor: Delete Line Ctrl+Y
Editor: Navigate Back Alt+Left
Editor: Navigate Forward Alt+Right
SQL Window: Previous SQL Ctrl+Up
SQL Window: Next SQL Ctrl+Down
1. PL/SQL Developer記住登陸密碼
在使用PL/SQL Developer時,
為了工作方便希望PL/SQL Developer記住登錄Oracle的用戶名和密碼;
設置方法:
PL/SQL Developer->tools->Preferences->Oracle->Logon History,
在右邊界面的"Definition"中,"Store history"是默認勾選的,
再勾選上"Store with password",即可.
上述方法若不好用,使用下面的方式:
在上面所說的界面中的"Fixed Users"中,
添加需要直接選擇後就可登錄的用戶名/密碼@ORACLE_SID,
如:
cbsdb/cbsdb@cbsdb
重新登錄的時候,從Oracle Logon的登錄界面的Username後面的...按鈕處,
選擇需要登錄的用戶即可。
2. 執行單條SQL語句(SQL Window中根據游標位置自動選擇語句)
在使用PL/SQL Developer的SQL Window時,按F8鍵,PL/SQL Developer默認是執行該窗口的所
有SQL語句,需要設置為滑鼠所在的那條SQL語句,即執行當前SQL語句;
設置方法:PL/SQL Developer->tools->Preferences->SQL Window->Window types,
勾上"AutoSelect Statement" 即可。
注意,每條語句後面要加分號。
3. 格式化SQL語句
在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句太長或太亂,
希望能用比較通用的寫法格式話一下,這樣看起來會好看些,也好分析;
使用方法:
選中需要格式化的SQL語句,然後點擊工具欄的PL/SQL beautifier按鈕即可.
4. 查看執行計劃
在使用PL/SQL Developer的SQL Window時,有時候輸入的SQL語句執行的效率,分析下表結構,
如何可以提高查詢的效率,可以通過查看Oracle提供的執行計劃;
使用方法:
選中需要分析的SQL語句,然後點擊工具欄的Explain plan按鈕(即執行計劃),
或者直接按F5即可。
5. 調試存儲過程
在使用PL/SQL Developer操作Oracle時,有時候調用某些存儲過程,或者調試存儲過程;
調用存儲過程的方法:
首先,在PL/SQL Developer左邊的Browser中選擇Proceres,
查找需要調用的存儲過程;然後,選中調試的存儲過程,點擊右鍵,
選擇Test,在彈出來的Test script窗口中,
對於定義為in類型的參數,需要給該參數的Value輸入值;
最後點擊上面的條數按鈕:Start debugger或者按F9;
最後點擊:RUN或者Ctrl+R。
(具體要調式一個存儲過程,請參照操作手冊,這個大概說明下應用)。
6. oralce精簡客戶端的使用
要想PL/SQL連接oracle資料庫,除了PL/SQL Developer 之外還需要Oracle客戶端,
有一個更方便的方法就是使用Oracle精簡客戶端,很多地方可以下載,文件很小,耗資源也少。
安裝完成後修改安裝目錄下的\Oracle\ora90\network\ADMIN\tnsnames.ora文件:
格式如下:
DATABASE_NAME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#(SERVICE_NAME = dealer)
(SID = SID_NAME)
#(SERVER = DEDICATED)
)
)
7. 關鍵字自動大寫:
了解一點編程的常識的人都知道,編碼風格很重要。
在閱讀代碼方面,保持一致的編碼風格,閱讀起來比較容易;
在執行效率方面,保持一致的編碼風格,更有可能被放到共享SQL區中,
這樣就提供了執行的效率。
另外,信息系統的核心是資料庫,系統出問題時最先要查的就是SQL語句,
怎樣在浩瀚的日誌中快速找到那條SQL語句是件比較痛苦的事情。
SQL語句全部大寫並不能徹底解決這一問題,
但在一堆代碼中間找一行全部大寫的字元相對容易些,你的眼睛會感謝你。
設置也很簡單:
Tools->Preferences->Editor,將Keyword case選擇Uppercase。
我一般是讓關鍵字大寫,其他比如表名,欄位名等都是小寫。
大家都應該養成一種自己的編碼習慣,並保持下去。
8. 右鍵菜單
在PL/SQL Developer(下面簡稱PLD)中的每一個文本編輯窗口,
如SQL Window,Command Window和Porgram Window,
右鍵點擊某個對象名稱,會彈出一個包含操作對象命令的菜單,我們這里稱之為右鍵菜單。
對象類型可以是表,視圖,同義詞,存儲過程和函數等。
根據對象類型的不同,彈出的菜單也有區別。
表和視圖有View, Edit, Rename, Drop, Query data 和Edit data等功能。
View和Edit分別是查看和修改表的結構信息,如欄位,主鍵,索引和約束等。
Query data相當於新打開一個窗口,並執行select * from 表。
Edit data相當於新打開一個窗口,並執行select * from 表 for update。
存儲過程和函數有Test功能,選中後可以進入調試狀態。
有時由於PLD識別錯誤,右鍵點擊對象並不能出來正確的菜單,
可以在對象所在的DDL或DML語句的前面,加上分號,這樣PLD就能正確的判斷出對象的類型
9. Select for Update
有時我們需要把一些數據導入資料庫中,如果用UE拼Insert語句,會比較麻煩,而且操作性不強。
PLD的SQL Window可以查詢,新增,修改和刪除表的內容。
查詢自不必說,而新增,刪除和修改,只需在select語句後加入for update,
對表進行行級鎖定,然後點擊窗口的鎖型圖標,即可進入編輯狀態。
下面介紹一下如何從Excel中提取文本插入到資料庫中,
我們的Excel文件中有三列,在資料庫中建立臨時表:
CREATE TABLE t1(
cino varchar2(100),
contno varchar2(100),
loanno varchar2(100)
)
然後在SQL Window中輸入select t1 for update,並點擊鎖型滑鼠,進入編輯狀態,
用滑鼠點擊第一行的輸入窗口,這時PLD會死鎖幾秒鍾,
然後可以見到游標在第一行的輸入框中閃動,
用滑鼠把CINO, CONTNO, LOANNO選中,進入Excel中,把需要插入資料庫的內容選中,
然後切換到PLD,按Ctrl + V,點擊√,然後再點擊Commit按鈕,
則數據提交到表t1中,執行select * from t1可以看到內容.
10. PL/SQL Beautifier(PL/SQL 美化器)
PLD 6以上版本有對DML代碼格式化的功能。
在SQL Window或Program Window中選中部分代碼(如果不選則對整個窗口的代碼操作),
在菜單中選Edit -> PL/SQL Beautifier,得到格式化的代碼。
對於非法的DML語句或DDL語句,PLD將會在下方狀態欄提示:
PL/SQL Beautifier could not parse text。
在預設的狀態下,PLD會把DML語句的每一個欄位都排在單獨的一行,這樣不方便查看。
在菜單中選Edit à PL/SQL Beautifier Options,進入Preferences窗口,
選擇Edit,進入配置文件編輯界面,在標簽欄選DML,
在窗口中部的Select, Insert和Update組框中把Fit選中,然後點擊Save,
把配置文件保存到PLD的安裝目錄下,點擊Close關閉。
在Rules file中輸入配置文件所在位置,點擊OK,完成配置文件切換。
這時再對代碼進行格式化,就可以使每一個欄位盡可能的在一行上了。
11. TNS Names
菜單Help->Support Info->TNS Names,可以查看Oracle的tnsnames.ora。
12. Copy to Excel
在SQL Window中執行Select語句,在結果出來以後,右鍵點擊下面的數據區,
選擇Copy to Excel,可以把數據區的記錄原樣拷貝到Excel中。
但有兩點需要注意:
(1) field中不能以=開始,否則Excel會誤認為是函數;
(2) 數字不要超過17位,否則後面的位數將會置為0,
但可以通過在數字前加'來使Excel認為該field是文本,
同時對於資料庫中Numbe類型的欄位,最好用to_char輸出,不然可能會顯示不正常;
13. 保持上次打開的SQL腳本
重新進入PL/SQL Developer時,Window List能打開上次退出時的文檔:
(1) 將菜單Tools->Window list選項勾上;
(2) Tools->Perferences->User Interface->Options的右邊,
將"Autosave desktop"勾選.
(3) 退出PL/SQL Developer重新進入.
14. 快速找到已知表名的表或其他對象:
在Tools菜單中,勾選上Object Browser,將對象瀏覽器打開,
雙擊對象瀏覽器中的某個對象所處的文件夾,
比如表都是在Tables文件夾中,
然後以盡快的速度輸入表名,即可找到以你輸入的幾個字母開頭的對象了.
15. 快速關閉打開於Windows List中的文檔窗口:
按住Shift鍵,左鍵點擊需要關閉的文檔窗口.
16. PL/SQL DEVELOPER中的專用復制(Special Copy)
如果你正在用 PL/SQL Developer 寫 SQL 和 PL/SQL 代碼,
隨後你又要在其它工具里使用代碼,例如象 3GL 這樣的程序設計語言,
那麼你可能需要把這些代碼轉換為稍微不同的格式。
讓我們假設你已經在 PL/SQL Developer 里寫了並測試了這樣一個SQL 語句:
select deptno, sum(sal) mgr_sal
from emp
where job = 'MANAGER'
group by deptno
order by mgr_sal desc
例如,如果你要在Borland Delphi 里使用這個語句,你可能需要象這樣的格式:
SQL := 'select deptno, sum(sal) mgr_sal from emp' + #13#10 +
'where job = ''MANAGER''' + #13#10 +
'group by deptno' + #13#10 +
'order by mgr_sal desc';
為了這個目的,在PL/SQL DEVELOPER中選中已寫好的SQL語句,滑鼠右鍵,
在彈出的菜單中找到 Special Copy。這個功能有一個子菜單,它顯示了所有被定義的專用復制格式。
在選擇了格式之後,被轉換的代碼就被儲存在剪貼板上了,
這樣你就可以粘貼它到相應工具的編輯器里了。
專用復制格式被定義在 PL/SQL Developer 安裝目錄下的 SpecialCopy 子目錄里。
你可以改變預先確定的復制格式或者添加新的復制格式。
僅僅簡單地添加一個帶有 . 擴展名的文本文件就可以了,
它包含了一個針對 PL/SQL 代碼第一行的變數
(<line_1>)、一個針對 PL/SQL 代碼最後一行的變數(<line_N>)
和一個針對所有其它行的變數(<line_*>)。下面是一個針對 Borland Delphi 的例子:
;PL/SQL Developer SpecialCopy definition for Borland Delphi
;<line_1> for first line
;<line_*> for all other lines
;<line_N> for last line
;
SQL := '<line_1>' + #13#10 +
'<line_*>' + #13#10 +
'<line_n>';
第一行需要為指派到 SQL 的變數加上前言,接下來需要有一個 CR/LF 對。
最後一行不需要有CR/LF 對,但需要用分號來終止。所有其它行僅僅需要 CR/LF 接在後面。
如果 <line_1> 和 <line_n> 都與 <line_*> 一樣,你可以忽略它們。
在一些語言里,你需要對特定的字元使用換碼序列。
例如,在 C++ 里,你要對 tab字元(ASCII 碼為 9)使用 \t 。
要定義這些換碼序列,請使用 #define 關鍵詞:
#define char(9) = \t
#define \ = \\
String("<line_1>\n") +
String("<line_*>\n") +
String("<line_n>");
你還可以使用 "#define compress"來指出你要從結果里移除所有多餘的空字元(空格、製表符和換行)。
注意,. 文件的名字將被包括在菜單里,所以你應該使用描述性的文件名。
17. 在PL/SQL DEVELOPER中復制行記錄的簡便方法
(1) 單擊要拷貝的行記錄左邊的黑色小三角,該行被選中,右鍵復制。
(2) 粘貼至記事本里,然後復制剛才粘貼的內容。(該步驟不知何故不能缺)
(3) 單擊新記錄左邊的黑色小三角,右鍵粘貼即可。
18. 快捷鍵定義的位置:
Tools->Preferences->User Interface->Key configuration
選中需要定義的Item,然後按一個快捷鍵組合即可,
如果所按的快捷鍵已有定義,會有提示,這時候Cancel,另外選擇快捷鍵組合即可;
通常情況下,打開PLSQL Developer後,最經常乾的事就是打開SQL Window和Command Window,
就給這兩個操作定義了快捷鍵, ALT+S 和 ALT + C,這樣拿滑鼠點三下的事情只需要按一下鍵。
設置方法:
菜單Tools -> Preferences -> Key Configuration
注意:
如果設置了快捷鍵不起作用,
回到Tools -> Preferences -> Key Configuration界面,
點擊最上方的"Default Administrator"右邊的"..."按鈕,
在彈出的"Preference Set"界面中,對"Personal Preferences"
以及下面的"Definition"->"Description"進行一下設置.
19. 在窗口標題欄內顯示文件的完全路徑
Tools->Preferences->User Interface->Options
勾選"Show complete file path in windows titles"
20. Object Brower中自定義Object的順序以及登錄後默認自動選中My Objects
默認情況下,PL/SQL Developer登錄後,Brower里會選擇All objects,
如果你登錄的用戶是dba,要展開tables目錄,正常情況都需要Wait幾秒鍾,
而選擇My Objects後響應速率則是以毫秒計算的。
設置方法:
Tools菜單 -> Object Brower Filters,會打開Define Browser Filters界面,
選中"My Objects",並勾選 "Default" 設為默認即可。
Tools菜單 -> Object Brower Folders,會打開Define Browser Folders界面,
這里可以把經常用到的幾個目錄(比如:Tables Views Seq Functions Proceres)
移得靠上一點,並加上顏色區分,這樣你的平均尋表時間會大大縮短,試試看。
21. 雙擊即顯示表數據
滑鼠雙擊表或者視圖時的默認響應實在讓我感到失望,因為我最關心的是表結構和數據,
但是雙擊後這兩件事情都沒有發生,也許默認響應是高手們需要的,
但對我來說查看數據和表結構是最主要的,其他的我不關心。
不過好的是這是可以設置的,你可以給滑鼠雙擊和拖放綁定需要的事件,
比如:雙擊編輯數據,拖放顯示表結構,Yeah!
設置方法:
菜單Tools -> Preferences -> Object Browser,
在右側,為不同的Object Type綁定雙擊和拖放操作。
22. 去掉注釋的斜體樣式:
菜單Tools -> Preferences -> User Interface->Editor
在右邊的界面中"Syntax Highlighting"下,去掉"Comment"右邊的"Italic"的勾選.
⑺ 如何將一個 mysql 風格的 sql 腳本轉換為 oracle 導入的 sql 腳本
用navicat 9.0
1、先新建一個mysql的資料庫,然後把這個腳本導入進去(肯定會成功的)
2、在新建導入的資料庫上,右擊,數據傳輸,右邊的目標選擇文件,然後右邊第二個選擇sql格式,選擇oracle就行了
⑻ plsql 12 怎麼美化sql
