聊聊Oracle資料庫 它能成為你的發展方向嗎?
Oracle資料庫系統是美國oracle公司(甲骨文)提供的以分散式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。比如SilverStream就是基於資料庫的一種中間件。oracle資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關係資料庫,它是一個完備關係的產品;作為分散式資料庫它實現了分散式處理功能。但它的所有知識,只要在一種機型上學習了oracle知識,便能在各種類型的機器上使用它。
Oracle資料庫最新版本為Oracle Database 12c。Oracle資料庫12c 引入了一個新的多承租方架構,使用該架構可輕鬆部署和管理資料庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個資料庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle資料庫12c 成為私有雲和公有雲部署的理想平台。
Oracle10g/11g/12c目前支持以下的操作系統和硬體:
· AppleMac OS X Server:PowerPC
· HPHP-UX:PA-RISC,Itanium
· HPTru64 UNIX:Alpha
· HPOpenVMS: Alpha, Itanium
· IBMAIX5L:IBM POWER
· IBMz/OS:zSeries
· Linux:x86,x86-64, PowerPC, zSeries, Itanium
· MicrosoftWindows: x86, x86-64, Itanium
· SunSolaris:SPARC, x86, x86-64
在了解了ORACLE資料庫後,我們有必要對ORACLE和Sybase SQL Server的比較, Oracle採用的是並行伺服器模式,而Sybase SQL Server採用的是虛擬伺服器模式,它沒有將一個查詢分解成多個子查詢,再在不同的CPU上同時執行這些子查詢。我們可以說在對稱多處理方面Oracle的性能優於Sybase的性能。業務量往往在系統運行後不斷提高,如果資料庫數量達到GB以上時,我們在提高系統的性能方面可以從兩方面入手,一種是提高單台伺服器的性能,還有就是增加伺服器數目。基於此,如果我們是提高單台伺服器的性能,選擇Oracle 資料庫較好,因為它們能在對稱多CPU的系統上提供並行處理。相反,由於Sybase的導航伺服器使網上的所有用戶都註冊到導航伺服器並通過導航服務提出數據訪問請求,導航伺服器則將用戶的請求分解,然後自動導向由它所控制的多台SQL Server,從而在分散數據的基礎上提供並行處理能力,我們可以選擇它。這些都是在其他條件和環境相同的情況下比較的,這樣才有可比性。在數據的分布更新方面,Oracle採用的是基於伺服器的自動的2PC(兩階段提交),而Sybase採用的則是基於客戶機DB-Library或CT-Library的可編程的2PC,因此我們在選擇資料庫方面,必須根據需要進行選擇,比如,從事的社會保險軟體的開發,考慮到數據量大,並發操作比較多,實時性要求高,我們後台基本採取的是ORACLE資料庫。Oracle伺服器由Oracle資料庫和Oracle實例組成。Oracle實例由系統全局區內存結構和用於管理資料庫的後台進程組成。
一、oracle基本常用的數據類型
varchar(長度) 字元串
char(長度) 字元
number(x,y) x表示總位數 y表示保留小數點後幾位數 eg面試題:number(5,3)最大的數是99.999
decimal() 數字
long int integer 整數
date 日期
timestamp 日期
clob blob 特殊文本 二進位
二、DLL操作
create
創建表的前提是:1、具備創建表的條件 2、有可用的存儲空間
創建表的語法是:
create table 表名 (column1 數據類型,column2 數據類型……);
drop table 表名;
表中的所有數據都將刪除、此前未完成的事務都將被提交、所有相關的索引被刪除、DLL語句,一經執行,不可撤銷。
alter
對錶添加欄位
alter table 表名 add (column1 數據類型,column2 數據類型……);
對錶刪除欄位
alter table 表名 drop (column1,column2……);
對表現有欄位進行修改
alter table 表名 modify (column1 數據類型,column2 數據類型……);
truncate table 表名;
清空表中所有記錄、釋放表空間、DLL語句,一經執行,不可撤銷。
三、DML操作
select
select */column1,column2…… from 表名 where ……;
delete from 表名 where 條件……
update 表名 set column = 『欄位』where 條件……
insert into 表名 (column1,column2……)values (值1,值2……);
四、事務控制語言
commit rollback savepoint
五、數據控制語言
grant revoke
算術運算 + - * /
連接運算 || 與concat類似
兩者區別:||可以連接多個字元串 concat只能連接兩個字元串。
別名 AS 關鍵字
空值 --無效值
去重 distinct
排序 order by --永遠存在sql語句的結尾。
分組 group by
--當語句中出現group by分組語句時,select對應的列要麼是group by分組列,要麼是聚合函數列。
--對分組過後的數據進行二次過濾可以使用hiving關鍵字。
--where 後面不能跟聚合函數列
六、函數
字元函數
數值函數
日期函數
轉換函數
通用函數
decode用法:
第一種用法:替換分組
decode(column,"列中可能出現的值","肯定列印出的值","否定列印出的值")
eg:select tname,decode(tname,"小花","本科","中專") from s7 order by tname ;--解釋decode函數中的意思:
tname列中出現『小花』就列印本科,不是小花就列印中專
第二種用法:動態排序
--要求 銷售部拍第一位
select * from dept
order by decode(d_name,"產險系統開發部",1,"銷售部",2,3);--解釋d_name這一列如果是產險系統開發部就顯示1,銷售部就顯示2,其他就顯示3.
第三種用法 :行轉列
select s_years ,
max(decode(s_months , "1季度",s_money)) as 一季度 ,
min(decode(s_months , "2季度",s_money)) as 二季度,
sum(decode(s_months , "3季度",s_money)) as 三季度,
avg(decode(s_months , "4季度",s_money)) as 四季度
from sales group by s_years ;
聚合函數
min(column)求列的最小值
max(column)求列的最大值
sum(column)求和
avg(column)求平均--計算時空值會被除外
count(column)統計有效數據的數量,空值null不會被統計在內。
從就業與擇業的角度來講,計算機相關專業的大學生從事oracle方面的技術是職業發展中很棒的一種選擇。
ORACLE幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業還是電信行業或者政府機構,ORACLE都能夠在你的職業發展中給你最強有力的支撐,成為你最貼身的金飯碗。
如果期望進入IT服務或者產品公司(類似畢博、DELL、IBM等),Oracle技術能夠幫助提高就業的深度。Oracle技術已經成為全球每個IT公司必選的軟體技術之一,熟練掌握Oracle技術能夠為從業人員帶來技術應用上的優勢,同時為IT技術的深入應用起到非常 關鍵的作用。掌握 Oracle技術,是IT從業人員了解全面信息化整體解決方案的基礎。
其三、職業方向多:Oracle資料庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向。


TAG:程序狗 |