常用Oracle數據庫SQL語句匯總。
1、常用操作
--清空回收站
purge recyclebin;
--查詢回收站
select * from recyclebin
--查詢Oracle版本信息
select * from v$version
--查詢Oracle數據庫字符集
select userenv('language') from dual
--清除表數據的2種方法
①delete from t
②truncate table t
區別:
①delete是dml操作;truncate是ddl操作,ddl隱式提交不能回滾
②delete from t可以回滾,truncate table t 不可以回滾
③ truncate table t 執行效率更高,會回收表空間,delete from t執行效率慢,不會回收表空間
④truncate table t高水線下降,delete from t高水線不降(這個不太明白...)自增ID,TRUNCATE后從1開始,DELETE后還是接着自增
--刪除表
drop table T; --刪除后會進入回收站
--徹底刪除表
drop table tb_maintence purge;
=====================================================
回收站知識點補充
在oracle中,當刪除一個表時,oracle並沒有真正刪除該表,而是把該表重命名,然后扔到回收站中,使用purge命令來清空回收站,將會釋放表占用的空間,把這些空間返回給表空間,成為表空間中的自由空間。
一旦空間吃緊,oracle會自動清空回收站中的對象。在oracle清空前,可以找回被刪除的對象,就是把被刪除的對象從回收站中撿回來,即所謂的閃回技術
從回收站中還原被刪除的表instructor
flashback table instructor to before drop
還原並重命名該表
1 flashback table instructor to before drop rename to instructor_restore;
使用desc命令查看表instructor_restore是否已經撿回。
============================================================
Oracle 數據庫桌面類與服務器類的區別:
桌面類――這種安裝方式一般適用於台式機和筆記本。它包含一個最小數據庫和最低的配置需求。
服務器類――這種安裝方式適用於服務器,例如,它會向您提供數據中心和用於支持企業級的應用程序。如果您需要使用高級配置選項,請選擇此安裝類型。
在桌面類中,只有基本選擇項。
在服務器類,可以選擇標准安裝(僅讓您作有基本選擇)或高級安裝。
在桌面類或典型安裝中,Oracle數據庫將自動安裝示例庫。
綜上,選擇了桌面類,更適合於個人使用,不能進行不同機器的遠程訪問,也就是別人不能連接你的數據庫。
服務器類當然是提供oracle數據庫服務了,還包括監聽服務,用於接收客戶端的連接。
客戶端提供了一套工具,包括開發使用的庫文件、頭文件,類似於informix里面的client sdk, 還是一些實用工具,如sqlplus。客戶端負責和服務器通訊。
============================================================
關於sql server數據庫與oracle數據庫的區別:
oracle:Oracle Database。甲骨文公司的一套 關系數據庫 管理系統。
優點: 可移植性好,使用方便,適用於大、中、小、微型環境。
sql server: 美國Microsoft公司推出的一種 關系型 數據庫。
兩者的區別:
(1)操作平台不同
Oracle數據庫采用開放的策略目標,它使得客戶可以選擇一種最適合他們特定需要的解決方案。客戶可以利用很多種第三方應用程序、工具。而SQL Server卻只能在Windows上運行了。
但SQL Sever在Window平台上的表現,和Windows操作系統的整體結合程度,使用方便性,和Microsoft開發平台的整合性都比Oracle強的很多。但Windows操作系統的穩定性及可靠性大家是有目共睹的,再說Microsoft公司的策略目標是將客戶都鎖定到Windows平台的環境當中,只有隨着Windows性能的改善,SQL Server才能進一步提高。從操作平台這點上Oracle是完全優勝於SQL Server的了。
也就是說oracle支持多種操作系統,sql server支持windows系統
(2)文件體系結構不同
oracle:
數據文件 .dbf(真實數據)
日志文件 .rdo
控制文件 .ctl
參數文件 .ora
sql server:
.mdf (數據字典)
.ndf (數據文件)
.ldf (日志文件)
(3)存儲結構不同
oracle存儲結構:
在oracle里有兩個塊參數pctfree(填充因子)和pctused(復用因子),可控制塊確定塊本身何時有,何時沒有足夠的空間接受新信息(對塊的存儲情況的分析機制)
這樣可降低數據行連接與行遷移的可能性。塊的大小可設置(oltp塊和dss塊)
在oracle中,將連續的塊組成區,可動態分配區(區的分配可以是等額的也可以是自增長的)可減少空間分配次數
在oraclel里表可以分為多個段,段由多個區組成,每個段可指定分配在哪個表空間里(段的類型分為:數據段、索引段、回滾段、臨時段、cash段。oracle里還可對表進行分區,可按照用戶定義的業務規則、條件或規范,物理的分開磁盤上的數據。
這樣大大降低磁盤爭用的可能性。
oracle有七個基本表空間:
·system表空間(存放數據字典和數據管理自身所需的信息)
·rbs回滾表空間
·temp臨時表空間
·tools交互式表空間
·users用戶默認表空間
·indx索引表空間
·dbsys福數據表空間
不同的數據分別放在不同的表空間(數據字典與真實數據分開存放),在oracle里基表(存儲系統參數信息)是加密存儲,任何人都無法訪問。只能通過用戶可視視圖查看。
sql server 存儲結構:
以頁為最小分配單位,每個頁為8k(不可控制,缺乏對頁的存儲情況的分析機制),可將8個連續的頁的組成一個‘擴展’,以進一步減少分配時所耗用的資源。(分配缺乏靈活性),在sql server里數據以表的方式存放,而表是存放在數據庫里。
sql server有五個基本數據庫:
·master(數據字典)
·mode(存放樣版)
·tempdb(臨時數據庫)
·msdb(存放調度信息和日志信息)
·pubs(示例數據庫)
真實數據與數據字典存放在一起。對系統參數信息無安全機制。
(4)安全性
Oracle的安全認證獲得最高認證級別的ISO標准認證,而SQL Server並沒有獲得什么安全認證。這方面證明了Oracle的安全性是高於SQL Server的。
(5)性能方面
SQL Server 多用戶時性能不佳
Oracle 性能最高, 保持windowsNT下的TPC-D和TPC-C的世界記錄。
(6)開放性
SQL Server 只能在windows 上運行,沒有絲毫的開放性,操作系統的系統的穩定對數據庫是十分重要的。Windows9X系列產品是偏重於桌面應用,NT server只適合中小型企業。而且windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大數據量的關鍵業務時。
Oracle 能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。采用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持。
(7)客戶端支持及應用模式
SQL Server C/S結構,只支持windows客戶,可以用ADO,DAO,OLEDB ,ODBC連接.
Oracle 多層次網絡計算,支持多種工業標准,可以用ODBC, JDBC,OCI等網絡客戶連接
============================================================
PL/SQL Developer導入10萬條以上大量數據技巧:
從開發環境的oracle數據庫給你導出幾十萬條數據,每條數據是insert語句,用於插入到測試環境oracle數據庫,
打開導出的數據文件data.sql,復制到pl/sql中,可能直接就卡死了;
可以通過命令方式執行data.sql文件:在PL/SQL Developer中,文件 -- 新建 -- 命令窗口,
在命令窗口中輸入@,后面接data.sql的絕對路徑,比如:@D:\data.sql,然后回車,然后就開始循環插入了。
但是比較耗時間。