當前位置:首頁 » 編程語言 » sql原版教程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql原版教程

發布時間: 2023-03-04 18:34:05

A. 求《sqlServer2012T-SQL基礎教程》全文免費下載百度網盤資源,謝謝~

《SQL Server 2012 T-SQL基礎教程》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/19-2l5dDJyQ8ct59IqzwTgA?pwd=qjz1 提取碼:qjz1
簡介:《SQL Server 2012 T-SQL基礎教程》全面系統地介紹了SQL Server 2012 T-SQL技術,包括T-SQL查詢和編程的背景、單表查詢、聯接、子查詢、表表達式、集合運算符、查詢、數據修改、事務和並發處理、可編程對象等內容。

B. SQL書籍推薦

1、《SQL必知必會》
福達著, 鍾鳴、劉曉霞譯
這本書由淺入深地講解了SQL的基本概念和語法,涉及數據的排序、過濾和分組,以及表、視圖、聯結、子查詢、游標、存儲過程和觸發器等內容,實例豐富,便於查閱。新版增加了針對ApacheOpenOfficeBase、MariaDB、SQlite等DBMS的描述,並根據新版本的Oracle、SQLServer、MySQL和PostgreSQL更新了相關示例,非常適合初學者。

2、《SQL基礎教程》
MICK 著, 孫淼、羅勇 譯
這本書豆瓣評分9.0,重印13次,第2版基於新版本RDBMS全面升級,並新增一章介紹從應用程序執行SQL語句的方法。本書從資料庫、表的結構到查詢、更新表的語法,常用的函數,表的聯結等,內容逐步深入。對於初學者常見的疑難點,均通過專欄進行講解。各章節後精心設計了練習題,幫助讀者鞏固理解
3、《SQL Cookbook》
Anthony Molinaro 著
本書是一本指南,其中包含了一系列SQL 的常用問題以及它們的解決方案,希望能對讀者的日常工作有所幫助。有150 多個小節,這還僅僅是SQL 所能做的事情的一鱗半爪,而這本書更主要的是讓讀者看到,SQL 能夠做多少一般認為是SQL 問題范圍之外的事情。
4、《深入淺出SQL(中文版)》
貝里 著,O『Reilly Taiwan 譯
這本對所有沒SQL基礎的人來說都是本好書,幽默的語言,緊湊的內容,而且還有生動的圖畫,這無非給了初學者一個很好的開始,不僅會信心大增,也會提高學習興趣,同時對後續的提高也打下了基礎。著重基本語法的理解和基本概念的闡述,穿插在各個章節的練習題恰好提供了鞏固作用,如果你正苦於尋找一本SQL入門書籍,那麼它一定是不二之選
5、《SQL 反模式》
Bill Karwin 著,譚振林 / Push Chen 譯
《SQL反模式》是一本廣受好評的SQL圖書。它介紹了如何避免在SQL的使用和開發中陷入一些常見卻經常被忽略的誤區。它通過講述各種具體的案例,以及開發人員和使用人員在面對這些案例時經常採用的錯誤解決方案,來介紹如何識別、利用這些陷阱,以及面對問題時正確的解決手段。另外,《SQL反模式》還涉及了SQL的各級範式和針對它們的正確理解。

C. SQL怎麼用

掌握SQL四條最基本的數據操作語句:Insert,Select,Update和Delete。

練掌握SQL是資料庫用戶的寶貴財 富。掌握四條最基本的數據操作語句—SQL的核心功能—來依次介紹比較操作符、選擇斷言以及三值邏輯。當你完成這些學習後,顯然你已經開始算是精通SQL了。

在我們開始之前,先使用CREATE TABLE語句來創建一個表(如圖1所示)。DDL語句對資料庫對象如表、列和視進行定義。它們並不對表中的行進行處理,這是因為DDL語句並不處理資料庫中實際的數據。這些工作由另一類SQL語句—數據操作語言(DML)語句進行處理。

SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由於這是大多數SQL用戶經常用到的,我們有必要在此對它們進行一一說明。在圖1中我們給出了一個名為EMPLOYEES的表。其中的每一行對應一個特定的雇員記錄。請熟悉這張表,我們在後面的例子中將要用到它。

INSERT語句

用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語句:

INSERT INTO EMPLOYEES VALUES

('Smith','John','1980-06-10',

'Los Angles',16,45000);

通過這樣的INSERT語句,系統將試著將這些值填入到相應的列中。這些列按照我們創建表時定義的順序排列。在本例中,第一個值「Smith」將填到第一個列LAST_NAME中;第二個值「John」將填到第二列FIRST_NAME中……以此類推。

我們說過系統會「試著」將值填入,除了執行規則之外它還要進行類型檢查。如果類型不符(如將一個字元串填入到類型為數字的列中),系統將拒絕這一次操作並返回一個錯誤信息。

如果SQL拒絕了你所填入的一列值,語句中其他各列的值也不會填入。這是因為SQL提供對事務的支持。一次事務將資料庫從一種一致性轉移到另一種一致性。如果事務的某一部分失敗,則整個事務都會失敗,系統將會被恢復(或稱之為回退)到此事務之前的狀態。

回到原來的INSERT的例子,請注意所有的整形十進制數都不需要用單引號引起來,而字元串和日期類型的值都要用單引號來區別。為了增加可讀性而在數字間插入逗號將會引起錯誤。記住,在SQL中逗號是元素的分隔符。

同樣要注意輸入文字值時要使用單引號。雙引號用來封裝限界標識符。

對於日期類型,我們必須使用SQL標准日期格式(yyyy-mm-dd),但是在系統中可以進行定義,以接受其他的格式。當然,2000年臨近,請你最好還是使用四位來表示年份。

既然你已經理解了INSERT語句是怎樣工作的了,讓我們轉到EMPLOYEES表中的其他部分:

INSERT INTO EMPLOYEES VALUES

('Bunyan','Paul','1970-07-04',

'Boston',12,70000);

INSERT INTO EMPLOYEES VALUES

('John','Adams','1992-01-21',

'Boston',20,100000);

INSERT INTO EMPLOYEES VALUES

('Smith','Pocahontas','1976-04-06',

'Los Angles',12,100000);

INSERT INTO EMPLOYEES VALUES

('Smith','Bessie','1940-05-02',

'Boston',5,200000);

INSERT INTO EMPLOYEES VALUES

('Jones','Davy','1970-10-10',

'Boston',8,45000);

INSERT INTO EMPLOYEES VALUES

('Jones','Indiana','1992-02-01',

'Chicago',NULL,NULL);

在最後一項中,我們不知道Jones先生的工薪級別和年薪,所以我們輸入NULL(不要引號)。NULL是SQL中的一種特殊情況,我們以後將進行詳細的討論。現在我們只需認為NULL表示一種未知的值。

有時,像我們剛才所討論的情況,我們可能希望對某一些而不是全部的列進行賦值。除了對要省略的列輸入NULL外,還可以採用另外一種INSERT語句,如下:

INSERT INTO EMPLOYEES(

FIRST_NAME, LAST_NAME,

HIRE_DATE, BRANCH_OFFICE)

VALUE(

'Indiana','Jones',

'1992-02-01','Indianapolis');

這樣,我們先在表名之後列出一系列列名。未列出的列中將自動填入預設值,如果沒有設置預設值則填入NULL。請注意我們改變了列的順序,而值的順序要對應新的列的順序。如果該語句中省略了FIRST_NAME和LAST_NAME項(這兩項規定不能為空),SQL操作將失敗。

讓我們來看一看上述INSERT語句的語法圖:

INSERT INTO table

[(column { ,column})]

VALUES

(columnvalue [{,columnvalue}]);

和前一篇文章中一樣,我們用方括弧來表示可選項,大括弧表示可以重復任意次數的項(不能在實際的SQL語句中使用這些特殊字元)。VALUE子句和可選的列名列表中必須使用圓括弧。

SELECT語句

SELECT語句可以從一個或多個表中選取特定的行和列。因為查詢和檢索數據是資料庫管理中最重要的功能,所以SELECT語句在SQL中是工作量最大的部分。實際上,僅僅是訪問資料庫來分析數據並生成報表的人可以對其他SQL語句一竅不通。

SELECT語句的結果通常是生成另外一個表。在執行過程中系統根據用戶的標准從資料庫中選出匹配的行和列,並將結果放到臨時的表中。在直接SQL(direct SQL)中,它將結果顯示在終端的顯示屏上,或者將結果送到列印機或文件中。也可以結合其他SQL語句來將結果放到一個已知名稱的表中。

SELECT語句功能強大。雖然表面上看來它只用來完成本文第一部分中提到的關系代數運算「選擇」(或稱「限制」),但實際上它也可以完成其他兩種關系運算—「投影」和「連接」,SELECT語句還可以完成聚合計算並對數據進行排序。

SELECT語句最簡單的語法如下:

SELECT columns FROM tables;

當我們以這種形式執行一條SELECT語句時,系統返回由所選擇的列以及用戶選擇的表中所有指定的行組成的一個結果表。這就是實現關系投影運算的一個形式。

讓我們看一下使用圖1中EMPLOYEES表的一些例子(這個表是我們以後所有SELECT語句實例都要使用的。而我們在圖2和圖3中給出了查詢的實際結果。我們將在其他的例子中使用這些結果)。

假設你想查看雇員工作部門的列表。那下面就是你所需要編寫的SQL查詢:

SELECT BRANCH_OFFICE FROM EMPLOYEES;

以上SELECT語句的執行將產生如圖2中表2所示的結果。

由於我們在SELECT語句中只指定了一個列,所以我們的結果表中也只有一個列。注意結果表中具有重復的行,這是因為有多個雇員在同一部門工作(記住SQL從所選的所有行中將值返回)。要消除結果中的重復行,只要在SELECT語句中加上DISTINCT子句:

SELECT DISTINCT BRANCH_OFFICE

FROM EMPLOYEES;

這次查詢的結果如表3所示。

現在已經消除了重復的行,但結果並不是按照順序排列的。如果你希望以字母表順序將結果列出又該怎麼做呢?只要使用ORDER BY子句就可以按照升序或降序來排列結果:

SELECT DISTINCT BRANCH_OFFICE

FROM EMPLOYEES

ORDER BY BRANCH_OFFICE ASC;

這一查詢的結果如表4所示。請注意在ORDER BY之後是如何放置列名BRANCH _OFFICE的,這就是我們想要對其進行排序的列。為什麼即使是結果表中只有一個列時我們也必須指出列名呢?這是因為我們還能夠按照表中其他列進行排序,即使它們並不顯示出來。列名BRANCH_ OFFICE之後的關鍵字ASC表示按照升序排列。如果你希望以降序排列,那麼可以用關鍵字DESC。

同樣我們應該指出ORDER BY子句只將臨時表中的結果進行排序;並不影響原來的表。

假設我們希望得到按部門排序並從工資最高的雇員到工資最低的雇員排列的列表。除了工資括弧中的內容,我們還希望看到按照聘用時間從最近聘用的雇員開始列出的列表。以下是你將要用到的語句:

SELECT BRANCH_OFFICE,FIRST_NAME,

LAST_NAME,SALARY,HIRE_DATE

FROM EMPLOYEES

ORDER BY SALARY DESC,

HIRE_DATE DESC;

這里我們進行了多列的選擇和排序。排序的優先順序由語句中的列名順序所決定。SQL將先對列出的第一個列進行排序。如果在第一個列中出現了重復的行時,這些行將被按照第二列進行排序,如果在第二列中又出現了重復的行時,這些行又將被按照第三列進行排序……如此類推。這次查詢的結果如表5所示。

將一個很長的表中的所有列名寫出來是一件相當麻煩的事,所以SQL允許在選擇表中所有的列時使用*號:

SELECT * FROM EMPLOYEES;

這次查詢返回整個EMPLOYEES表,如表1所示。

下面我們對開始時給出的SELECT語句的語法進行一下更新(豎直線表示一個可選項,允許在其中選擇一項。):

SELECT [DISTINCT]

(column [{, columns}])| *

FROM table [ {, table}]

[ORDER BY column [ASC] | DESC

[ {, column [ASC] | DESC }]];

定義選擇標准

在我們目前所介紹的SELECT語句中,我們對結果表中的列作出了選擇但返回的是表中所有的行。讓我們看一下如何對SELECT語句進行限制使得它只返回希望得到的行:

SELECT columns FROM tables [WHERE predicates];

WHERE子句對條件進行了設置,只有滿足條件的行才被包括到結果表中。這些條件由斷言(predicate)進行指定(斷言指出了關於某件事情的一種可能的事實)。如果該斷言對於某個給定的行成立,該行將被包括到結果表中,否則該行被忽略。在SQL語句中斷言通常通過比較來表示。例如,假如你需要查詢所有姓為Jones的職員,則可以使用以下SELECT語句:

SELECT * FROM EMPLOYEES

WHERE LAST_NAME = 'Jones';

LAST_NAME = 'Jones'部分就是斷言。在執行該語句時,SQL將每一行的LAST_NAME列與「Jones」進行比較。如果某一職員的姓為「Jones」,即斷言成立,該職員的信息將被包括到結果表中(見表6)。

使用最多的六種比較

我們上例中的斷言包括一種基於「等值」的比較(LAST_NAME = 'Jones'),但是SQL斷言還可以包含其他幾種類型的比較。其中最常用的為:

等於 =

不等於 <>

小於 <

大於 >

小於或等於 <=

大於或等於 >=

下面給出了不是基於等值比較的一個例子:

SELECT * FROM EMPLOYEES

WHERE SALARY > 50000;

這一查詢將返回年薪高於$50,000.00的職員(參見表7)。

邏輯連接符

有時我們需要定義一條不止一種斷言的SELECT語句。舉例來說,如果你僅僅想查看Davy Jones的信息的話,表6中的結果將是不正確的。為了進一步定義一個WHERE子句,用戶可以使用邏輯連接符AND,OR和NOT。為了只得到職員Davy Jones的記錄,用戶可以輸入如下語句:

SELECT * FROM EMPLOYEES

WHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';

在本例中,我們通過邏輯連接符AND將兩個斷言連接起來。只有兩個斷言都滿足時整個表達式才會滿足。如果用戶需要定義一個SELECT語句來使得當其中任何一項成立就滿足條件時,可以使用OR連接符:

SELECT * FROM EMPLOYEES

WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';

有時定義一個斷言的最好方法是通過相反的描述來說明。如果你想要查看除了Boston辦事處的職員以外的其他所有職員的信息時,你可以進行如下的查詢:

SELECT * FROM EMPLOYEES

WHERE NOT(BRANCH_OFFICE = 'Boston');

關鍵字NOT後面跟著用圓括弧括起來的比較表達式。其結果是對結果取否定。如果某一職員所在部門的辦事處在Boston,括弧內的表達式返回true,但是NOT操作符將該值取反,所以該行將不被選中。

斷言可以與其他的斷言嵌套使用。為了保證它們以正確的順序進行求值,可以用括弧將它們括起來:

SELECT * FROM EMPLOYEES

WHERE (LAST_NAME = 'Jones'

AND FIRST_NAME = 'Indiana')

OR (LAST_NAME = 'Smith'

AND FIRST_NAME = 'Bessie');

SQL沿用數學上標準的表達式求值的約定—圓括弧內的表達式將最先進行求值,其他表達式將從左到右進行求值。

以上對邏輯連接符進行了說明,在對下面的內容進行說明之前,我們再一次對SELECT語句的語法進行更新:

SELECT [DISTINCT]

(column [{, column } ] )| *

FROM table [ { , table} ]

[ORDER BY column [ASC] | [DESC

[{ , column [ASC] | [DESC } ] ]

WHERE predicate [ { logical-connector predicate } ];

NULL和三值邏輯

在SQL中NULL是一個復雜的話題,關於NULL的詳細描述更適合於在SQL的高級教程而不是現在的入門教程中進行介紹。但由於NULL需要進行特殊處理,並且你也很可能會遇到它,所以我們還是簡略地進行一下說明。

首先,在斷言中進行NULL判斷時需要特殊的語法。例如,如果用戶需要顯示所有年薪未知的職員的全部信息,用戶可以使用如下SELECT語句:

SELECT * FROM EMPLOYEES

WHERE SALARY IS NULL;

相反,如果用戶需要所有已知年薪數據的職員的信息,你可以使用以下語句:

SELECT * FROM EMPLOYEES

WHERE SALARY IS NOT NULL;

請注意我們在列名之後使用了關鍵字IS NULL或IS NOT NULL,而不是標準的比較形式:COLUMN = NULL、COLUMN <> NULL或是邏輯操作符NOT(NULL)。

這種形式相當簡單。但當你不明確地測試NULL(而它們確實存在)時,事情會變得很混亂。

例如,回過頭來看我們圖1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等級或年薪值都是未知的。這兩個列都包含NULL。可以想像運行如下的查詢:

SELECT * FROM EMPLOYEES

WHERE GRADE <= SALARY;

此時,Indiana Jones應該出現在結果表中。因為NULL都是相等的,所以可以想像它們是能夠通過GRADE小於等於SALARY的檢查的。這其實是一個毫無疑義的查詢,但是並沒有關系。SQL允許進行這樣的比較,只要兩個列都是數字類型的。然而,Indiana Jones並沒有出現在查詢的結果中,為什麼?

正如我們早先提到過的,NULL表示未知的值(而不是象某些人所想像的那樣表示一個為NULL的值)。對於SQL來說意味著這個值是未知的,而只要這個值為未知,就不能將其與其他值比較(即使其他值也是NULL)。所以SQL允許除了在true 和false之外還有第三種類型的真值,稱之為「非確定」(unknown)值。

如果比較的兩邊都是NULL,整個斷言就被認為是非確定的。將一個非確定斷言取反或使用AND或OR與其他斷言進行合並之後,其結果仍是非確定的。由於結果表中只包括斷言值為「真」的行,所以NULL不可能滿足該檢查。從而需要使用特殊的操作符IS NULL和IS NOT NULL。

UPDATE語句

UPDATE語句允許用戶在已知的表中對現有的行進行修改。

例如,我們剛剛發現Indiana Jones的等級為16,工資為$40,000.00,我們可以通過下面的SQL語句對資料庫進行更新(並清除那些煩人的NULL)。

UPDATE EMPLOYEES

SET GRADE = 16, SALARY = 40000

WHERE FIRST_NAME = 'Indiana'

AND LAST_NAME = 'Jones';

上面的例子說明了一個單行更新,但是UPDATE語句可以對多行進行操作。滿足WHERE條件的所有行都將被更新。如果,你想讓Boston辦事處中的所有職員搬到New York,你可以使用如下語句:

UPDATE EMPLOYEES

SET BRANCH_OFFICE = 'New York'

WHERE BRANCH_OFFICE = 'Boston';

如果忽略WHERE子句,表中所有行中的部門值都將被更新為'New York'。

UPDATE語句的語法流圖如下面所示:

UPDATE table

SET column = value [{, column = value}]

[ WHERE predicate [ { logical-connector predicate}]];

DELETE語句

DELETE語句用來刪除已知表中的行。如同UPDATE語句中一樣,所有滿足WHERE子句中條件的行都將被刪除。由於SQL中沒有UNDO語句或是「你確認刪除嗎?」之類的警告,在執行這條語句時千萬要小心。如果決定取消Los Angeles辦事處並解僱辦事處的所有職員,這一卑鄙的工作可以由以下這條語句來實現:

DELETE FROM EMPLOYEES

WHERE BRANCH_OFFICE = 'Los Angeles';

如同UPDATE語句中一樣,省略WHERE子句將使得操作施加到表中所有的行。

DELETE語句的語法流圖如下面所示:

DELETE FROM table

[WHERE predicate [ { logical-connector predicate} ] ];

現在我們完成了數據操作語言(DML)的主要語句的介紹。我們並沒有對SQL能完成的所有功能進行說明。SQL還提供了許多的功能,如求平均值、求和以及其他對表中數據的計算,此外SQL還能完成從多個表中進行查詢(多表查詢,或稱之為連接)的工作。這種語言還允許你使用GRANT和REVOKE命令控制使用者的數據訪問許可權

D. 一文講懂SQL子查詢

大家好,我是寧一。


今天講解SQL教程第18課:子查詢。


SQL語句可以嵌套,最常見的就是查詢語句的嵌套。


基本語法:



我們一般稱外面嵌套的語句為主查詢,裡面被嵌套的語句為子查詢,有時也會叫外查詢、內查詢,大家知道意思就好。


子查詢要用括弧括起來。子查詢不僅可以放在WHERE的後面,還可以放在SELECT、FROM的後面,我們一個個來講解。


1、子查詢+WHERE子句


SQL執行時,會先執行括弧內的子查詢,子查詢最常與WHERE子句結合使用。子查詢的結果作為WHERE子句的篩選條件,完成更復雜的數據檢索。


實例: 在Students表中,找出所有在"寧一"後面出生的學生。



實例解析: 需要先確定"寧一"的生日,再將生日作為WHERE篩選條件,得到最終數據。


第一步:找到"寧一"的生日




第二步:將生日作為WHERE篩選條件,得到最終數據,子查詢語句要用括弧括起來。






SELECT語句的子查詢經常與聚合函數結合使用。因為我們使用聚合函數的時候,記錄會合成一條,其它數據細節就不能顯示了。


比如: 我們想要查看學生表中所有的學生姓名、學生生日、學生的最大生日。


示例結果:



錯誤寫法:



像上面這樣寫是會報錯的,因為聚合函數與其他表中的列(Sname,Sage),同時放在SELECT的後面。需要用GROUP BY語句將這些表中的列(Sname,Sage)分組。


上面的語句後面加上 GROUP BY Sname,Sage 就可以了。


但是這樣寫,會將每組的數據聚合成1條數據,比如每組有3條數據,使用聚合函數MAX()+GROUP BY,最終每組只會顯示1條最大值的數據。


我們需要展現Students表中所有的學生,這樣寫不能滿足我們的需求。


正確寫法: 結合子查詢來實現。




子查詢與FROM子句結合使用,子查詢結果被當成了一個「表」,可以用SELECT語句做進一步的篩查。


比如:我們先寫一個SELECT查詢語句




將上面的查詢語句放在FROM的後面,則上面查詢到的結果,就會被當成一個「表」。



這里有一個特別要注意的地方,放在FROM後面的子查詢,必須要加別名。



復雜的子查詢再嵌套進 FROM 里會讓整個查詢看起來過於復雜,我們一般會將子查詢結果儲存為視圖,然後再直接使用視圖作為來源表,視圖會SQL高階課程中詳細講解。


其實子查詢就是查詢語句嵌套,沒有什麼新的東西,只是多了一個層級,由內向外地一層層梳理就會很清楚了。


作業: 結合Students表,從Teachers表中找出當班主任的老師(通過子查詢實現)。



作業解析: 先從Students表中,找出所有班主任的Tid並去重,將查詢結果作為篩選條件,放在WHERE語句中。



E. 學習SQL從那裡開始 怎麼開始

http://www.w3school.com.cn/sql/index.asp 樓主可以看一下這個,是一個SQL的簡明教程;看完後對SQL大概有一定的了解後,最好再找一本《資料庫系統概論》來看看,能夠加深認識,最後還是要自己多寫一些SQL語句,去找本SQL題集來看,這樣對SQL語言就會掌握的比較扎實了。樓主加油哦^^ 《資料庫系統概論》是現在很多高校都採用的資料庫教材之一,高等教育出版社的;SQL語言的習題集的話,去書店看看吧,或者去圖書館找一下,有很多,或者也可以買計算機等級考試資料庫的那塊的習題集

F. PLSQL基礎教程.pdf

PLSQL是ORACLE公司對標准資料庫語言的擴展,ORACLE公司已經將PL/SQL整合到ORACLE 伺服器和其他工具中了,近幾年中更多的開發人員和DBA開始使用PL/SQL,本文將講述PL/SQL基礎語法,結構和組件、以及如何設計並執行一個PL/SQL程序。

從版本6開始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的優點以及其獨有的數據管理的便利性,那麼很難想像ORACLE缺了PL/SQL的情形。PL/SQL 不是一個獨立的產品,它是一個整合到ORACLE伺服器和ORACLE工具中的技術,可以把PL/SQL看作ORACLE伺服器內的一個引擎,sql語句執行者處理單個的sql語句,PL/SQL引擎處理PL/SQL程序塊。當PL/SQL程序塊在PL/SQL引擎處理時,ORACLE伺服器中的SQL語句執行器處理pl/sql程序塊中的SQL語句。


G. 學習SQL資料庫哪些教材或者視頻好!比較適合菜鳥用!謝謝

不知道你有沒有其他編程的基礎。單資料庫來說,你要是看書來學習的話,可能會一團霧水,為什麼這么說呢,因為好多的專門講資料庫方面的書,講的東西實在是太多了,可如果當你上班或做相關開發時你就會發現,那書上將的東西,也就那麼十分之一是能夠用得到的,其他的東西那全都是高級進階的高級進階,初期根本用不上,所以我建議你最好能夠配合一門編程語言來學習資料庫知識比如 C#+MSSQL,通過一個實際的項目來慢慢體會一下。所以我的建議是

【1】:先學資料庫最基本的幾條語句 Insert into [Table]、 Delete [Table]、Update [Table]、Select [Table] 等等,先能夠熟練掌握這幾條基礎語句。
【2】:結合一門編程語言,來做個小的資料庫相關的項目進一步了解 聯合查詢語句 嵌套查詢等等
【3】:學習資料庫設計,這個就要多看別人優秀的代碼了,這部分學習呢,就是讓你能夠把一個實際的東西,抽象成資料庫的東西,比如要你做個學生選課系統,你就要能夠合力的設計出,資料庫中有幾個表,每個表的關系是怎麼樣的,等等
【4】:學習資料庫優化:這個時候呢,你再返回頭來看書,因為你有了之前的基礎,現在在看書的話,你就能夠明白哪些技術是重點,哪些技術最實際了
【5】:考取相關的證書,這個吧,如果你要是想專門從事這個行業,最好還是要考一個比如DBA,你可以從網上搜搜
就說這么多吧,希望能對你有幫助,如果還有什麼不懂的話,可以給我留言

H. SQL書籍推薦

1、《SQL必知必會》
福達著, 鍾鳴、劉曉霞譯
這本書由淺入深地講解了SQL的基本概念和語法,涉及數據的排序、過濾和分組,以及表、視圖、聯結、子查詢、游標、存儲過程和觸發器等內容,實例豐富,便於查閱。新版增加了針對ApacheOpenOfficeBase、MariaDB、SQlite等DBMS的描述,並根據新版本的Oracle、SQLServer、MySQL和PostgreSQL更新了相關示例,非常適合初學者。

2、《SQL基礎教程》
MICK 著, 孫淼、羅勇 譯
這本書豆瓣評分9.0,重印13次,第2版基於新版本RDBMS全面升級,並新增一章介紹從應用程序執行SQL語句的方法。本書從資料庫、表的結構到查詢、更新表的語法,常用的函數,表的聯結等,內容逐步深入。對於初學者常見的疑難點,均通過專欄進行講解。各章節後精心設計了練習題,幫助讀者鞏固理解
3、《SQL Cookbook》
Anthony Molinaro 著
本書是一本指南,其中包含了一系列SQL 的常用問題以及它們的解決方案,希望能對讀者的日常工作有所幫助。有150 多個小節,這還僅僅是SQL 所能做的事情的一鱗半爪,而這本書更主要的是讓讀者看到,SQL 能夠做多少一般認為是SQL 問題范圍之外的事情。
4、《深入淺出SQL(中文版)》
貝里 著,O『Reilly Taiwan 譯
這本對所有沒SQL基礎的人來說都是本好書,幽默的語言,緊湊的內容,而且還有生動的圖畫,這無非給了初學者一個很好的開始,不僅會信心大增,也會提高學習興趣,同時對後續的提高也打下了基礎。著重基本語法的理解和基本概念的闡述,穿插在各個章節的練習題恰好提供了鞏固作用,如果你正苦於尋找一本SQL入門書籍,那麼它一定是不二之選
5、《SQL 反模式》
Bill Karwin 著,譚振林 / Push Chen 譯
《SQL反模式》是一本廣受好評的SQL圖書。它介紹了如何避免在SQL的使用和開發中陷入一些常見卻經常被忽略的誤區。它通過講述各種具體的案例,以及開發人員和使用人員在面對這些案例時經常採用的錯誤解決方案,來介紹如何識別、利用這些陷阱,以及面對問題時正確的解決手段。另外,《SQL反模式》還涉及了SQL的各級範式和針對它們的正確理解。