❶ 為什麼安裝的sqlServer2008 沒有TSQLFundamentals2008資料庫 要從哪裡下載或者得到求高手解答 急
安裝的時候你沒有選擇!~
❷ SQL 程序如何獲取自增表中的自增列的值
假設表結構如下:
CREATE TABLE TestTable
(
id int identity,
CreatedDate datetime
)
SQL2005獲得新增行的自動增長列的語句如下:
insert into TestTable (CreatedDate) output inserted.id values (getdate())
output 是sql server2005的新特性,可以從數據修改語句中返回輸出,可以看作是「返回結果的DML」
2005之後 Insert,Delete,Update語句 均支持Output語句。
在Output語句中可以引用inserted和deleted。使用方法同觸發器類似。
該方法最大弊端就是需要指定主鍵。output Inserted.要返回的值。
帶有output的insert語句.
@@identity只能返回當前會話最後生產的標識列. 如果一次性插入多條語句的話. 需要返回這些自動生產的標識列. 那麼outpu就派上用場了.
declare @temp table(k int, v nvarchar(200))
insert into t1(datacol)
output inserted.keycol, inserted.datacol
into @temp
select lastname from TSQLFundamentals2008.hr.Employees where country='uk'
select * from @temp
帶有output的delete語句和update語句也大同小異.
delete語句能操作deleted臨時表. 而update的本質是delete和insert一次能操作inserted和updated兩張表.
帶有output的merge子句.
在merge子句的output輸出中可以調用@action函數. 會返回一個代表相應操作的字元串(insert, update, delete)
SQL2000獲得新增行的自動增長列的語句如下:
insert into TestTable (CreatedDate) values (getdate())
select @@IDENTITY
用select @@identity得到上一次插入記錄時自動產生的ID
如果你使用存儲過程的話,將非常簡單,代碼如下:SET @NewID=@@IDENTITY
@@identity使用注意事項:
我們要慎用@@IDENTITY,原因是 @@IDENTITY 它總是獲取最後一條變更數據的自增欄位的值,
而忽略了進行變更操作所在的范圍約束。比如,我有表 A 和表 B 兩個表,現在我在表 A 上定義了一個Insert觸發器,當在表 A 中插入一條數據時,自動在表 B 也插入一條數據。此時,大家注意,有兩個原子操作:在A中插入一條數據, 接著在B中隨後插入一條數據。
現在我們想下,假設上面表 A 和表 B 都有IDENTITY自增域,那麼我們在表 A 插入一條數據後,使用了 SELECT @@IDENTITY 輸出時,輸出的到底是 A 還是 B 的自增域的值呢? 答案很明顯,是誰最後插入就輸出誰,那麼就是 B 了。於是,我本意是想得到 A 的自增域值,結果得到了 B 的自增域值,一隻 BUG 隨之誕生,搞不好還會影響到整個系統數據的混亂。
因此,對於這種情況,建議大家慎用 @@IDENTITY,而盡量採用SCOPE_IDENTITY()函數替換之。SCOPE_IDENTITY() 也是得到最後一條自增域的值,但是它是僅限在一個操作范圍之內,而不@@IDENTITY 是取全局操作的最後一步操作所產生的自增域的值的。
SCOPE_IDENTITY 和 @@IDENTITY 返回在當前會話中的任何錶內所生成的最後一個標識值。但是,SCOPE_IDENTITY 只返回插入到當前作用域中的值;@@IDENTITY 不受限於特定的作用域。
在C#中使用ExecuteScalar()方法獲得第一行第一列的值(即自增id):
object val = cmd.ExecuteScalar();
❸ oracle SQL Fundamentals 10g 教材的中文版哪裡可以下載
我推薦幾本吧,既經典又好用的:
tom的,一個資深的oracle
dba不可能不看tom,都有中文版,網上都可以下載:
《expert
one
on
one》
無論如何必看的東西,編程,調優什麼的。裡面有些東西非常有用,比如外鍵必須建索引的原因、查詢腳本等等。
《oracle
10g
編程藝術》這個和優化很相關,必看,但可以慢慢看。
蓋國強的:
《深入淺出oracle》《循序漸進oracle》,這兩本書都需要有了一定基礎再看才好。
其他的:
《oracle
9i
dba手冊》,我不清楚這書有沒有出10g,11g的版本,我看的是9i的,相當基礎,但隨著工作深入也相當可查。
樓上說的三思筆記的確可看,大部分是入門級就可看懂,而且事後忘了也可查的。還行。
此外必須要做的是,適當的收集一些常用的腳本,或自己編寫的腳本。比如查等待事件啊、表空間使用率啊。
其實操作系統的一些東西也是必須看的。必須要熟悉至少1種unix系統。建議可以看看aix/hp
unix/linux之類的操作系統相關的書。linux的我推薦鳥哥的私房菜。aix我沒什麼可推薦你的。因為光看書實在搞不定那個東西,必須要上機才行。
其他如果有興趣可以看看有關備份恢復的書。data
guard和rac也應該適當的了解一下。
不過我還是那句話,沒實踐一切都等於零。所以光看書沒用的。我見過一無是處的ocp,也見過無所不能的大專生。實踐實踐再實踐,唯一的王道。
❹ 求TSQLFundamentals2008.sql
我有這個.sql,你要嗎?
❺ 如何用SQL遍歷整張表
在資料庫開發過程中,我們經常會碰到要遍歷數據表的情形,一提到遍歷表,我們第一印象可能就想到使用游標,使用游標雖然直觀易懂,但是它不符合面向集合操作的原則,而且性能也比面向集合低。當然,從面向集合操作的角度出發,也有兩種方法可以進行遍歷表的操作,總結起來,遍歷表有下面幾種方法。
使用游標
使用表變數
使用臨時表
-- 需求是,新增一列fullname,取值firstname+lastnameALTER TABLE HR.Employees ADD fullname NVARCHAR(30) NULL;GO
1 -- 方法2:使用表變數
2 -- 聲明表變數
3 DECLARE @temp TABLE
4 (
5 empid INT,
6 firstname NVARCHAR(10),
7 lastname NVARCHAR(20)
8 );
9
10 -- 將源表中的數據插入到表變數中
11 INSERT INTO @temp(empid, firstname, lastname )
12 SELECT empid,firstname,lastname FROM HR.Employees
13 ORDER BY empid;
14
15 -- 聲明變數
16 DECLARE
17 @empid AS INT,
18 @firstname AS NVARCHAR(10),
19 @lastname AS NVARCHAR(20);
20
21 WHILE EXISTS(SELECT empid FROM @temp)
22 BEGIN
23 -- 也可以使用top 1
24 SET ROWCOUNT 1
25 SELECT @empid= empid, @firstname= firstname,@lastname= lastname FROM @temp;
26 UPDATE HR.Employees SET fullname= @firstname+' '+@lastname WHERE empid=@empid;
27 SET ROWCOUNT 0
28
29 DELETE FROM @temp WHERE empid=@empid;
30 END
1 -- 方法3:使用臨時表
2 -- 創建臨時表
3 IF OBJECT_ID('tempdb.dbo.#tempemployees','U') IS NOT NULL DROP TABLE dbo.#tempemployees;
4 GO
5
6 SELECT empid,firstname,lastname
7 INTO dbo.#tempemployees
8 FROM HR.Employees
9 ORDER BY empid;
10
11 --SELECT * FROM dbo.#tempemployees;
12
13 -- 聲明變數
14 DECLARE
15 @empid AS INT,
16 @firstname AS NVARCHAR(10),
17 @lastname AS NVARCHAR(20);
18
19 WHILE EXISTS(SELECT empid FROM dbo.#tempemployees)
20 BEGIN
21 -- 也可以使用top 1
22 SET ROWCOUNT 1
23 SELECT @empid= empid, @firstname= firstname,@lastname= lastname FROM dbo.#tempemployees;
24 UPDATE HR.Employees SET fullname= @firstname+' '+@lastname WHERE empid=@empid;
25 SET ROWCOUNT 0
26
27 DELETE FROM dbo.#tempemployees WHERE empid=@empid;
28 END
我的需求是:針對HR.Employees表,新增一列fullname,並取值firstname+lastname。
原始效果如下圖。
可以看到,已經達到我們想要的效果了。
使用表變數
因為使用游標存在性能和違背面向集合思想的問題,所以我們有必要用面向集合的思想去找到一種更好的解決方案,下面這種方法是使用表變數的方式實現的,代碼如下。
使用臨時表
臨時表也可以實現表變數的功能,所以我們也可以使用臨時表來實現這個需求,代碼如下。
當然,實現的效果都是一樣的。
❻ 求oca..1Z0-051: Oracle Database 11g:SQL Fundamentals 1Z0-042: Oracle Database 10g Administration 題
您可以去CUUG網站問下他們老師有沒,一般培訓機構都有的。。
❼ 哪裡能下載ORACLE 9i/10g/11g ocp sql Fundamentals 教材中文版
我推薦幾本吧,既經典又好用的:
tom的,一個資深的Oracle DBA不可能不看tom,都有中文版,網上都可以下載:
《expert one on one》 無論如何必看的東西,編程,調優什麼的。裡面有些東西非常有用,比如外鍵必須建索引的原因、查詢腳本等等。
《Oracle 10g 編程藝術》這個和優化很相關,必看,但可以慢慢看。
蓋國強的:
《深入淺出Oracle》《循序漸進Oracle》,這兩本書都需要有了一定基礎再看才好。
其他的:
《Oracle 9i DBA手冊》,我不清楚這書有沒有出10g,11g的版本,我看的是9i的,相當基礎,但隨著工作深入也相當可查。
樓上說的三思筆記的確可看,大部分是入門級就可看懂,而且事後忘了也可查的。還行。
此外必須要做的是,適當的收集一些常用的腳本,或自己編寫的腳本。比如查等待事件啊、表空間使用率啊。
其實操作系統的一些東西也是必須看的。必須要熟悉至少1種UNIX系統。建議可以看看AIX/HP UNIX/Linux之類的操作系統相關的書。linux的我推薦鳥哥的私房菜。AIX我沒什麼可推薦你的。因為光看書實在搞不定那個東西,必須要上機才行。
其他如果有興趣可以看看有關備份恢復的書。data guard和RAC也應該適當的了解一下。
不過我還是那句話,沒實踐一切都等於零。所以光看書沒用的。我見過一無是處的OCP,也見過無所不能的大專生。實踐實踐再實踐,唯一的王道。
❽ ORACLE認證的等級有那些要怎麼獲得
Oracle認證分為OCA,OCP,OCM。
OCA:報考OCA的基礎條件是報考OCA不限制考生的文憑,任何人都可以報考並獲得此證書;對OCA有一定的了解。。其證書擁有者在全球各地將享有OCA相關專業免學分的待遇,在北美一些國家還做為移民技術評估標准。獲得任何級別的OCA認證就意味著是IT 界舉足輕重的人物之一。
OCP:培訓課程是SQL Fundamentals I、 Administration Workshop I、Administration Workshop II。通過OCP考試,必須取得經Oracle授權培訓機構的OCP原廠培訓記錄,才能取得OCP證書。
OCM考試先決條件:必須先通過OCA、OCP認證;參加Oracle公司組織的兩天實驗室操作測試;
參加Oracle大學至少兩門的OCM相關原廠培訓課程。OCP證書必須經過ORACLE授權的原廠培訓或者Oracle WDP計劃授權中心的培訓考試,才能獲得OCP證書。
(8)sqlfundamentals擴展閱讀
Oracle認證是由Oracle公司,為能夠滿足對Oracle核心人士需求,Oracle公司頒布並實施的一項權威品的服務與支持。並具有嫻熟的專業技術標准,它是專為認證那些有操作能力與廣泛理論知識的專業人 。Oracle認證證書只是讓僱主了解到來應聘的人通過了Oracle資料庫方面的技術考試。
OCM的含金量比OCA、OCP高很多,而擁有OCP證書的人也越來越多,這就使得OCM認證的含金量呈上升趨勢。Oracle官方規定必須通過OCP才能考OCM,通過WDP也是如此,考生想一勞永逸,恐怕是不大可能。
在考OCP的時候可以不考OCA,是因為OCP的考試科目里就包含了OCA的全部考試科目, OCA和OCP都是選擇題考試,而OCM有兩天的上機考試;在OCP和OCM的考試方式和重視的方面有很大的差別,OCM更注重實際操作、對oracle整體的掌握。
❾ 非計算機專業的想學OCP資料庫,基礎課需要學些什麼
第一門課,Oracle Database 11g:SQL Fundamentals I 學習內容:
1.掌握關系資料庫數據模型;
2.熟練在Linux平台上部署資料庫系統;
3.根據業務需求定製各種類型的資料庫;
4.掌握資料庫中數據結構、數據類型的存儲原理
5.熟練運用SQL語句檢索、操縱、管理資料庫中的數據;
6.MEGER、USING、ROLLUP、CUBE、集合運算符、和分層提取等高級方法來提取數據;
7. 編寫SQL腳本文件,從而生成類似報告的輸出結果;
8.運用開發工具編寫過程、函數、包、觸發器等程序塊;
9. 學會查看數據字典
第二門課,Oracle Database 11g:Administrator I 學習內容:
了解Oracle核心組件Instance結構 掌握Oracle 資料庫邏輯與物理存儲結構 3管理ORACLE的實例、日誌文件、控制文件、表空間、用戶、許可權、角色、表、索引、回滾段
4 Oracle Net Services網路配置,通過網路配置實現資料庫的故障轉移和負載均衡
4 配置應用程序資料庫
5 使用基本監視過程
6 實施備份和恢復策略
7 在資料庫和文件之間移動數據
第三門課,Oracle Database 11g:Administrator II學習內容:
1 創建一個能正常運行的資料庫,以及如何以有效和高效的方式來正確管理各種不同的結構,從而構造出一個設計良好、高效率運行的資料庫
2 如何實施資料庫安全
3 使用資源管理器管理資源、作業調度、安全性和全球化問題
4 根據業務需求,制定與完善資料庫的備份、恢復、和RECOVER等策略
5 執行資料庫備份、恢復策略的計劃與實施等關鍵任務,以及如何進行正確性的驗證
6 根據實際資料庫的十幾種不同的損壞原因,採用不同的恢復方式
7 熟練掌握Recovery Manager工具來執行備份、恢復、執行塊修復
8 使用腳本在內存、性能和存儲方面,進行資料庫監視操作
9 進行操作系統級調優
10 進行SQL語句調優
11 通過使用多種不同的工具,確認、分析、和解決Oracle 資料庫在運行過程中所存在的瓶頸
❿ Oracle 11g的Oracle 11g認證
Oracle認證專員(Oracle Certified Associate,簡稱OCA)
考試課程:
Oracle Database 11g:SQL Fundamentals I 1Z0-051
Oracle Database 11g: Administration I 1Z0-052(EXAM) Oracle認證專家(Oracle Certified Professional,簡稱OCP)
認證課程:
Oracle Database 11g:SQL Fundamentals(同OCA) 1Z0-051(或1Z0-047)
Oracle Database 11g:Administration Workshop I 1Z0-052
Oracle Database 11g:Administration Workshop II 1Z0-053 Oracle認證大師(Oracle Certified Master,簡稱OCM)
認證課程:
首先必須取得OCP認證才能申請OCM認證。
OCP related courses and plus
Oracle Database 11g:SQL Tuning Workshop
Oracle Database 11g:Security
Oracle Database 11g:Backup and Recoverry
Oracle Database 11g:Data Guard Administration
Oracle Database 11g:RAC for Administrators
Oracle Database 11g:Implement Streams
Oracle Database 11g Administrator Certified Master Exam