當前位置:首頁 » 數據倉庫 » oracle資料庫考cop
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫考cop

發布時間: 2022-09-04 05:20:49

① 常用的資料庫有哪些

雖然是cop的,但是是專業的。
1. IBM 的DB2
作為關系資料庫領域的開拓者和領航人,IBM在1997年完成了System R系統的原型,1980年開始提供集成的資料庫伺服器—— System/38,隨後是sql/DSforVSE和VM,其初始版本與SystemR研究原型密切相關。DB2 forMVSV1 在1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,數據不相關性和用戶生產率。1988年DB2 for MVS 提供了強大的在線事務處理(OLTP)支持,1989 年和1993 年分別以遠程工作單元和分布式工作單元實現了分布式資料庫支持。最近推出的DB2 Universal Database 6.1則是通用資料庫的典範,是第一個具備網上功能的多媒體關系資料庫管理系統,支持包括Linux在內的一系列平台。
2. Oracle
Oracle 前身叫SDL,由Larry Ellison 和另兩個編程人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關系資料庫管理系統。Oracle公司是最早開發關系資料庫的廠商之一,其產品支持最廣泛的操作系統平台。目前Oracle關系資料庫產品的市場佔有率名列前茅。
3. Informix
Informix在1980年成立,目的是為Unix等開放操作系統提供專業的關系型資料庫產品。公司的名稱Informix便是取自Information 和Unix的結合。Informix第一個真正支持SQL語言的關系資料庫產品是Informix SE(StandardEngine)。InformixSE是在當時的微機Unix環境下主要的資料庫產品。它也是第一個被移植到Linux上的商業資料庫產品。
4. Sybase
Sybase公司成立於1984年,公司名稱「Sybase」取自「system」和 「database」 相結合的含義。Sybase公司的創始人之一Bob Epstein 是Ingres 大學版(與System/R同時期的關系資料庫模型產品)的主要設計人員。公司的第一個關系資料庫產品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 資料庫體系結構的思想,並率先在Sybase SQLServer 中實現。
5. SQL Server
1987 年,微軟和 IBM合作開發完成OS/2,IBM 在其銷售的OS/2 ExtendedEdition 系統中綁定了OS/2Database Manager,而微軟產品線中尚缺少資料庫產品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平台的關系型資料庫。1989年,微軟發布了SQL Server 1.0 版。
6. PostgreSQL
PostgreSQL 是一種特性非常齊全的自由軟體的對象——關系性資料庫管理系統(ORDBMS),它的很多特性是當今許多商業資料庫的前身。PostgreSQL最早開始於BSD的Ingres項目。PostgreSQL 的特性覆蓋了SQL-2/SQL-92和SQL-3。首先,它包括了可以說是目前世界上最豐富的數據類型的支持;其次,目前PostgreSQL 是唯一支持事務、子查詢、多版本並行控制系統、數據完整性檢查等特性的唯一的一種自由軟體的資料庫管理系統.
7.mySQL
mySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。MySQL的官方網站的網址是: www.mysql.com

② 修改一個數據表的欄位值,可是這個欄位是索引列,修改有錯誤提示

錯誤的大概意思就是,資料庫中你要修改的欄位本來沒有有主鍵約束或唯一約束,而現在你要在這個欄位上加上主鍵或唯一約束,如果資料庫中沒有數據這樣做當然不會有任何問題,可是從你的錯誤來看你的資料庫中已經有了數據,而且在你要修改的欄位上有重復的數據
例如:你的資料庫中有兩個欄位id,name,此時你的資料庫中的數據:001,zhangsan;002,lisi;003,zhangsan,此時你在name欄位上加主鍵約束或唯一約束的話就會出你說的錯誤
解決辦法:
1、如果你的資料庫允許你現有的數據有重復的數據,你可以在可視化界面下建立主鍵或約束,在完成那一步里有個選項會詢問是否檢測現有數據,勾掉就可以了
2、如果你的資料庫不允許你現有的數據有重復的數據,這樣就比較麻煩了,你可以再別的列上加約束,也可以用多列上建立約束

註:其中有些地方說的不一定準確,還請以事實為依據

③ MS SQL和Oracle學習哪一個更好還是兩個都學

看你想做什麼了!
DBA(資料庫管理員),那就學oracle吧,企業用mssql的幾乎都是微軟或某軟體供應商直接提供技術支持,而oracle比較嚴格,專職的oracle dba也很少,但國內企業發展前景是必須擁有專職DBA。
developer(開發人員),那還是從ms sql學起吧,入門容易,另外就是ms提供的集成環境也容易使用。(有人學oracle,上來就是cmd窗口操作,竟然認為ms sql沒有cmd模式操作,就知SQLPLUS,不知SQLCMD,微軟提供簡單可視化環境,把操作難度降低了)學好MSSQL後,可以學Oracle,也可不學,微軟會把sql server企業化的,oracle不會是永遠的企業級霸主。

說考OCA、COP、OCM都是DBA方向的。
考證只是在國企事業單位管用,然而,用oracle的企業要是能自己有專職的DBA,大小銀行、移動、電信、石化、聯通,這樣的企業會有,其它的企業,不會有專職的dba,包括聯想。

④ java寫的帶資料庫的程序如何在沒安裝資料庫的系統上運行

你的問題應該從兩個方面進行分析
第一、使用java內嵌式資料庫
在程序中使用 Derby和HSQLDB等java內嵌式資料庫,只需在程序中將資料庫配置好即可,是程序專用的。
可以達到你所說的java資料庫程序不需要配置在任何機器上運行。
但是,內嵌式資料庫的處理能力很低,只適合小數據量的程序使用。
第二、使用Oracle、MSSql、MySql等資料庫
首先這些資料庫軟體需要安裝,即使不在本機安裝也需要在一台可以訪問到的機器上安裝,然後使用jdbc訪問。
如果程序安裝在已經安裝這些資料庫的機器上,你只需要將程序的資料庫訪問指向本機即可。
但是,在本機安裝資料庫的機器很少,大部分都是訪問網路上的資料庫,這就需要你引入配置文件。
在配置文件中進行參數配置。當然,你可以寫一些默認配置,當實際環境與默認配置不同時就需要修改默認配置。

所以說不用配置的程序其實是符合你默認配置的程序,你需要根據不同的系統或環境組織自己的默認配置文件。
沒有萬能的東西,只能是適應大部分,而且需要你在編寫程序時提前考慮針對各種運行環境的變化。

有問題請留言吧

⑤ SQL查詢 數據表中,哪一個欄位是沒有重復值的欄位

select stu from Table1 group by stu having count(1)>1
如果有結果,就證明stu有重復的.
依次查其它欄位即可知道重復情況.
請參考<sql語句操作資料庫重復數據>:http://www.it118.org/specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/35402864-969a-4e7f-b50e-5bc30d4c07d4.htm

⑥ oracle資料庫培訓哪裡有

據說甲骨文(重慶思庄)認證學習中心是西南地區最好的,他們只做Oracle 11g COP認證培訓和企業定製培訓,並且從08年就開始做了,師資是最強的,可以去多了解一下

⑦ Oracle資料庫 和 MySQL, SQL Server ,ACCESS大概需要學多長時間

wcopwzk68fwox92wmxk

⑧ selectCommand 不返回 任何鍵列信息,無法生成updatecommand

我剛才遇到跟你一樣的問題,不過現在解決了.原因就是資料庫中該表沒有PrimaryKey
手上有事,我就不給你分析你的代碼了.我把我的貼出來.僅供參考.(我的只用到更新所以只有UpdateCommand ,其他一樣的.)
using(SqlDataAdapter sda = new SqlDataAdapter("SELECT TD001,TD002,TD003,TD016 FROM COPTD",conn))
{
//SqlCommandBuilder scb = new SqlCommandBuilder(sda);
//sda.UpdateCommand = scb.GetUpdateCommand();出錯,跟你的一樣.
SqlCommand updateCmd = new SqlCommand("UPDATE COPTD SET TD016=@TD016 WHERE TD001=@TD001 AND TD002=@TD002 AND TD003=@TD003",sda.SelectCommand.Connection);
updateCmd.Parameters.Add("@TD016",SqlDbType.NVarChar,1,"TD016");
updateCmd.Parameters.Add("@TD001",SqlDbType.NVarChar,4,"TD001");
updateCmd.Parameters.Add("@TD002",SqlDbType.NVarChar,11,"TD002");
updateCmd.Parameters.Add("@TD003",SqlDbType.NVarChar,4,"TD003");
sda.UpdateCommand = updateCmd;
rtl = sda.Update(dataSet,"COPTD");
}

⑨ oracle 把一個欄位的值更新另一個欄位。

你報的這個錯,基本就是當a.值1=b.值1時,選出來的值2有兩個或更多的結果,資料庫一蒙圈,就不知道該給你更新哪個了。

如果你更新規則不復雜,可以

updatetab1aset值2=(selectmin(值2)fromtab2bwherea.值1=b.值1)--這個里的值2取最小值,當然也可以max取最大值,如果有其他規則的話就說明
whereexists(select1fromtab2bwherea.值1=b.值1)
anda.值1in(selecta.值1fromtab2a)
andcop_g_noin(select*fromtab3)

⑩ oracle問題。 簡述shareplex工作原理。

1 體系結構, 3 queues and 4 processes
Redo Log/archived log -->Capture process -->capure queue--> Read Process--> Export queue-->NETWORK--

>Import process-->Post queue-->Post Process-->target DB

我的測試環境:ndb1:XE -----> ndb3:DEMO

2 源端進程
sp_cop --> sp_ocap, sp_ordr, sp_xport

Cature Process(sp_ocap)
從redo logs/arch logs中讀取active config中變化的數據,寫到capture queue
每個data source有個capure process

Reader Process(sp_ordr)
從capture queue讀取數據,加上路由信息寫到export queue
每個data source有個read process

Export Process(sp_xport)
跟每個target建立一個TCP/IP連接,並從export queue讀取數據,把數據傳到目的端
每個source-target對都有一個Export Process

3目的端進程
ps -fu qust
sp_cop --> sp_pst_mt, sp_mport 0xc0a86e66+PI+ndb1+sp_mport+0xc0a86e65 R

Import Process(sp_mport)
與每個source建立一個TCP/IP連接,接受數據寫到post queue中
每個source-target對都有一個Import Process

Post Process(sp_post_mt)
從post queue中讀取數據,apply到目標資料庫中
每個post queue都有一個Post Processs

4網路埠
lsof -i :2100

源端:
sp_cop TCP ndb1.test:2100 (LISTEN)
sp_xport TCP ndb1.test:34347->ndb3.test:2100 (ESTABLISHED)

目的端:
sp_cop TCP ndb3.test:2100 (LISTEN)
sp_mport TCP ndb3.test:2100->ndb1.test:34347 (ESTABLISHED)
sp_mport TCP ndb3.test:2100->ndb1.test:34347 (ESTABLISHED)

sp_cop在2端都監聽2100埠
sp_xport連接到源端2100埠,只有一個連接
sp_mport連接到目的端 2100埠, 有2個連接

5 Oracle的連接(正常工作狀態)
SQL> select username,mole from v$session where username is not null order by 1,2;

源端:
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)
QUEST [email protected] (TNS V1-V3)

目的端:
QUEST Post-2100-ndb1-XE
QUEST [email protected] (TNS V1-V3)

6 queue的情況
qview list

源端:
o.XE+C
WRITER +PA+o.XE+sp_ocap+o.XE
READER +PR+o.XE+sp_ordr+o.XE
ndb1+X
WRITER +PR+o.XE+sp_ordr+o.XE
READER +PX+ndb1+sp_xport+0xc0a86e66 (192.168.110.102)

Capture Queue(+C)
用於快速存放捕捉道德變化數據
每個Oracle實例只有一個cature queue,用Oracle_SID命名:O.{ORACLE_SID}

Export Queue(+X)
用於存放加上路由的數據
預設,一個Host/Server只有一個Export queue(多個Oracle實例共用),用hostname命名:{hostname}
用named export queue來實行每個實例用獨立的queue

目的端:
ndb1+P+o.XE-o.DEMO
subqueues range from 0 to 3
WRITER +PI+ndb1+sp_mport+0xc0a86e65 (192.168.110.101)
READER +PP+ndb1+sp_opst_mt+o.XE-o.DEMO

PostQueue(+P)
用於存放收到的數據
每個source-target對都有一個Post Queue,以兩個Oracle實例來命名:O.{SRC_SID}-O.{DEST_SID}

再看目的端post進程的參數
sp_mport 0xc0a86e66+PI+ndb1+sp_mport+0xc0a86e65 R
queue是源端export queue的reader+目的端post queue的writer