前段時間,因為要給自己開發的搜易站內搜索引擎增加Oracle數據庫的支持,所以學習了下Oracle的基礎知識,發現使用方式跟MYSQL,MSSQL等數據庫的思維有很大的不同,總結一下幾點不同,希望給初學者一點經驗,減少學習的時間:
一,Oracle數據沒有數據庫的概念
我們使用MSSQL等數據,習慣的思維是先有數據庫,然後有表,然後有個用戶可以訪問這個數據庫,但是Oracle是沒有數據庫這個概念的,他的用戶就等於數據庫,用戶下面有表,這個是很大的不同,這個思維習慣要轉變,要不然無法理解。
二,鏈接字符串和鏈接方式也有些不同
我摸索了一下,發現Oracle的鏈接字符串呢,寫法有兩種:
2.1,簡潔模式
Data Source=XE;User ID=user;Password=pwd;
這種字符串很簡介,但先需要在tnsnames.ora(在Oracle安裝目錄搜索一下可以找到)文件裡配置如下:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mypc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
這種鏈接方式,對本地和遠程數據庫都有用,假如我有一個遠程Oracle數據庫,基本信息如下:
IP : 33.33.33.33
端口:1521
服務名orcl
賬號:u
密碼:p
那麼先在tnsnames.ora裡增加一段代碼如下:
ycdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 33.33.33.33)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
然後,鏈接字符串就可以寫成:
Data Source=ycdb;User ID=u;Password=p;
對比一下,應該很好理解。
2.2,長模式
沿用上面的遠程數據庫例子,只是這種情況無需配置tnsnames.ora了,鏈接字符串就如下:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=33.33.33.33)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));Password=p;User ID=u;
對比一下,其實就是把tnsnames.ora的裡代碼全部寫入到鏈接字符串了。
至於那種方式比較方便,因人而已吧。我個人比較喜歡第一種寫法,簡潔,看著舒服。
感覺Oracle也沒那麼難,當然要精通估計會遇到不少坑。