sql大數(shù)據(jù)庫入門教程_第1頁
sql大數(shù)據(jù)庫入門教程_第2頁
sql大數(shù)據(jù)庫入門教程_第3頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、SQL 是用于訪問和處理數(shù)據(jù)庫的標準的計算機語言。 什么是 SQL ?? SQL 指結構化查詢語言? SQL 使我們有能力訪問數(shù)據(jù)庫? SQL 是一種 ANSI 的標準計算機語言編者注: ANSI ,美國國家標準化組織SQL 能做什么?? SQL 面向數(shù)據(jù)庫執(zhí)行查詢? SQL 可從數(shù)據(jù)庫取回數(shù)據(jù)? SQL 可在數(shù)據(jù)庫中插入新的紀錄? SQL 可更新數(shù)據(jù)庫中的數(shù)據(jù)? SQL 可從數(shù)據(jù)庫刪除記錄? SQL 可創(chuàng)建新數(shù)據(jù)庫? SQL 可在數(shù)據(jù)庫中創(chuàng)建新表? SQL 可在數(shù)據(jù)庫中創(chuàng)建存儲過程? SQL 可在數(shù)據(jù)庫中創(chuàng)建視圖? SQL 可以設置表、存儲過程和視圖的權限SQL 是一種標準 - 但是 .SQ

2、L 是一門 ANSI 的標準計算機語言, 用來訪問和操作數(shù)據(jù)庫系統(tǒng)。 SQL 語句用于取回和更新數(shù)據(jù)庫中 的數(shù)據(jù)。 SQL 可與數(shù)據(jù)庫程序協(xié)同工作, 比如 MS Access 、DB2 、Informix 、MS SQL Server 、Oracle 、 Sybase 以及其他數(shù)據(jù)庫系統(tǒng)。不幸地是, 存在著很多不同版本的 SQL 語言, 但是為了與 ANSI 標準相兼容, 它們必須以相似的方式共 同地來支持一些主要的關鍵詞(比如 SELECT 、UPDATE 、DELETE 、 INSERT 、WHERE 等等)。注釋: 除了 SQL 標準之外,大部分 SQL 數(shù)據(jù)庫程序都擁有它們自己的私有擴

3、展! 在您的中使用 SQL要創(chuàng)建發(fā)布數(shù)據(jù)庫中數(shù)據(jù)的,您需要以下要素:? RDBMS 數(shù)據(jù)庫程序(比如 MS Access, SQL Server, MySQL)? 服務器端腳本語言(比如 PHP 或 ASP )? SQL? HTML / CSSRDBMSRDBMS指的是關系型數(shù)據(jù)庫管理系統(tǒng)。RDBMS 是SQL的基礎,同樣也是所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)的基礎,比如MS SQL Server, IBM DB2,Oracle, MySQL 以及 Microsoft Access 。RDBMS中的數(shù)據(jù)存儲在被稱為表(tables )的數(shù)據(jù)庫對象中。表是相關的數(shù)據(jù)項的集合,它由列和行組成數(shù)據(jù)庫表一個數(shù)據(jù)庫通常

4、包含一個或多個表。每個表由一個名字標識(例如客戶”或者訂單”。表包含帶有數(shù)據(jù)的記錄(行)。下面的例子是一個名為"Persons" 的表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing上面的表包含三條記錄(每一條對應一個人)和五個列(Id、姓、名、地址和城市)SQL語句您需要在數(shù)據(jù)庫上執(zhí)行的大部分工作都由SQL語句完成。下面的語句從表中選取LastName 列的數(shù)據(jù):SELEC

5、T LastName FROM Persons結果集類似這樣:LastNameAdamsBushCarter在本教程中,我們將為您講解各種不同的SQL語句。重要事項一定要記住,SQL對大小寫不敏感!SQL語句后面的分號?某些數(shù)據(jù)庫系統(tǒng)要求在每條SQL命令的末端使用分號。在我們的教程中不使用分號。分號是在數(shù)據(jù)庫系統(tǒng)中分隔每條SQL語句的標準方法,這樣就可以在對服務器的相同請求中執(zhí)行一條以上的語句。如果您使用的是 MS Access 和 SQL Server 2000,則不必在每條 SQL語句之后使用分號,不過某些數(shù)據(jù)庫軟件要求必須使用分號。SQL DML 和 DDLSQL (結構化查詢語言)是用

6、于執(zhí)行查詢的語法??梢园裇QL分為兩個部分:數(shù)據(jù)操作語言(DML)和數(shù)據(jù)定義語言(DDL)但是SQL語言也包含用于更新、插入和刪除記錄的語法查詢和更新指令構成了SQL的 DML部分:SELECTUPDATEDELETE-從數(shù)據(jù)庫表中獲取數(shù)據(jù)-更新數(shù)據(jù)庫表中的數(shù)據(jù)-從數(shù)據(jù)庫表中刪除數(shù)據(jù)INSERT INTO-向數(shù)據(jù)庫表中插入數(shù)據(jù)SQL的數(shù)據(jù)定義語言(DDL)部分使我們有能力創(chuàng)建或刪除表格。我們也可以定義索引(鍵),規(guī)定表之間的,以及施加表間的約束。SQL中最重要的 DDL語句:? CREATE DATABASE創(chuàng)建新數(shù)據(jù)庫? ALTER DATABASE修改數(shù)據(jù)庫? CREATE TABLE創(chuàng)建

7、新表? ALTER TABLE變更(改變)數(shù)據(jù)庫表? DROP TABLE刪除表? CREATE INDEX創(chuàng)建索引(搜索鍵)? DROP INDEX刪除索引本章講解SELECT 和SELECT * 語句SQL SELECT 語句SELECT語句用于從表中選取數(shù)據(jù)。結果被存儲在一個結果表中(稱為結果集)。SQL SELECT 語法SELECT列名稱FROM 表名稱以及::SELECT * FROM 表名稱1注釋:SQL語句對大小寫不敏感。SELECT等效于select。SQL SELECT 實例如需獲取名為"LastName" 和"FirstName"

8、的列的容(從名為 "Persons"的數(shù)據(jù)庫表),請使用類似這樣的SELECT語句:SELECT LastName,FirstName FROM Persons"Persons"表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing結果:LastNameFirstNameAdamsJohnBushGeorgeCarterThomasSQL SELECT * 實

9、例現(xiàn)在我們希望從 "Persons" 表中選取所有的列請使用符號*取代列的名稱,就像這樣:SELECT * FROM Persons提示:星號(*)是選取所有列的快捷方式。結果:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing在結果集(result-set )中導航由SQL查詢程序獲得的結果被存放在一個結果集中。大多數(shù)數(shù)據(jù)庫軟件系統(tǒng)都允許使用編程函數(shù)在結果集中進行導航, 比如:

10、Move-To-First-Record 、Get-Record-Content 、Move-To-Next-Record 等等。本章講解SELECT DISTINCT語句。SQL SELECT DISTINCT語句distinct )的值。在表中,可能會包含重復值。這并不成問題,不過,有時您也許希望僅僅列岀不同(關鍵詞DISTINCT 用于返回唯一不同的值。語法:SELECT DISTINCT歹廿名稱FROM 表名稱|使用 DISTINCT 關鍵詞如果要從"Company"列中選取所有的值,我們需要使用SELECT語句:SELECT Company FROM Orders

11、"Orders"表:CompanyOrderNumber1IBM3532W3School2356Apple4698W3School6953結果:CompanyIBMW3SchoolAppleW3School請注意,在結果集中,W3School被列出了兩次。如需從Company" 列中僅選取唯一不同的值,我們需要使用 SELECT DISTINCT 語句:SELECT DISTINCT Company FROM Orders| _ 結果:現(xiàn)在,在結果集中,"W3School"僅被列出了一次。WHERE 子句用于規(guī)定選擇的標準。WHERE 子句如需

12、有條件地從表中選取數(shù)據(jù),可將WHERE子句添加到SELECT語句語法SELECT列名稱FROM表名稱 WHERE列運算符值下面的運算符可在 WHERE子句中使用:操作符描述=等于<>不等于>大于<小于>=大于等于<=小于等于BETWEEN在某個圍LIKE搜索某種模式注釋:在某些版本的 SQL中,操作符 <> 可以寫為!=。使用WHERE 子句如果只希望選取居住在城市"Beijing"中的人,我們需要向 SELECT語句添加WHERE子句:SELECT * FROM Perso nsWHERE City='Beijing

13、'"Persons"表LastNameFirstNameAddressCityYearAdamsJohnOxford StreetLondon1970BushGeorgeFifth AvenueNew York1975CarterThomasChangan StreetBeijing1980GatesBillXuanwumen 10Beijing1985結果:LastNameFirstNameAddressCityYearCarterThomasChangan StreetBeijing1980GatesBillXuanwumen 10Beijing1985引號的使

14、用請注意,我們在例子中的條件值周圍使用的是單引號。SQL使用單引號來環(huán)繞文本值(大部分數(shù)據(jù)庫系統(tǒng)也接受雙引號)。如果是 數(shù)值,請不要使用引號。文本值:r這是正確的:1SELECT * FROM Persons WHERE這是錯誤的:FSELECT * FROM Persons WHEREFirstName='Bush'FirstName=Bush數(shù)值:這是正確的:SELECT * FROM Persons WHEREYear>1965i這是錯誤的:SELECT * FROM Persons WHEREYear>'1965' AND 和OR運算符用于基

15、于一個以上的條件對記錄進行過濾。AND 和OR運算符AND和OR可在WHERE子語句中把兩個或多個條件結合起來。如果第一個條件和第二個條件都成立,則AND運算符顯示一條記錄。如果第一個條件和第二個條件中只要有一個成立,則OR運算符顯示一條記錄。原始的表(用在例子中的):LastNameFirstNameAddressCityAdamsJohnOxford StreetLondonBushGeorgeFifth AvenueNew YorkCarterThomasChangan StreetBeijingCarterWilliamXuanwumen 10BeijingAND運算符實例AND La

16、stName='Carter'使用AND來顯示所有姓為 "Carter" 并且名為"Thomas" 的人:SELECT * FROM Persons WHERE FirstName='Thomas'結果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingOR運算符實例使用OR來顯示所有姓為"Carter"或者名為"Thomas" 的人:SELECT * FROM Persons WHERE firstname=&

17、#39;Thomas'ORIastname='Carter'結果:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingCarterWilliamXuanwumen 10Beijing結合AND 和OR運算符我們也可以把 AND和OR結合起來(使用圓括號來組成復雜的表達式)SELECT * FROM Persons WHERE ( FirstName='Thomas'ORFirstName='William')AND LastName='Carter'結果

18、:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingCarterWilliamXuanwumen 10BeijingORDER BY 語句用于對結果集進行排序。ORDER BY 語句ORDER BY語句用于根據(jù)指定的列對結果集進行排序。ORDER BY語句默認按照升序對記錄進行排序。如果您希望按照降序對記錄進行排序,可以使用DESC關鍵字原始的表(用在例子中的):Orders 表:CompanyOrderNumberIBM3532W3School2356Apple4698W3School6953實例1以字母順序顯示公司名稱

19、:SELECT Company, OrderNumber FROM OrdersORDER BY Compa ny imuiniBujiiHbuniBJiUiiauuii ijmiiimi «ajimBjiniBaA«* *!laMaiiim jhim jiiiiMuiiiiBiUiiiukuiii i*u huj iaii ilmiii結果:CompanyOrderNumber1Apple4698IBM3532W3School6953W3School2356實例2以字母順序顯示公司名稱(Company ),并以數(shù)字順序顯示順序號( OrderNumber )SELECT

20、Company, OrderNumber FROM OrdersORDER BY Compa ny, OrderNumber結果:CompanyOrderNumberApple4698IBM3532W3School2356W3School6953實例3以逆字母順序顯示公司名稱:SELECT Company, OrderNumber FROM OrdersORDER BY Compa ny DESC結果:CompanyOrderNumberW3School6953W3School2356IBM3532Apple4698實例4以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號:SELECT Comp

21、any, OrderNumber FROM OrdersORDER BY Compa ny DESC,OrderNumber ASC結果:CompanyOrderNumberW3School2356W3School6953IBM3532Apple4698注意:在以上的結果中有兩個相等的公司名稱(W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值為nulls時,情況也是這樣的。INSERT INTO 語句INSERT INTO 語句用于向表格中插入新的行。語法INSERT INTO 表名稱 VALUES ( 值 1,值 2,.)我們也可以指定所要插入

22、數(shù)據(jù)的列:INSERT INTO table_name (歹廿 1,列 2,.) VALUES ( 值 1,值 2,.)插入新的行"Persons" 表:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingSQL語句:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')結果:LastNameFirstNameAddressCityCarterThomas

23、Changan StreetBeijingGatesBillXuanwumen 10Beijing在指定的列中插入數(shù)據(jù)"Persons" 表:LastNameFirstNameAddressCityCarterThomasChangan StreetBeijingGatesBillXuanwumen 10BeijingSQL語句:i '.一 7 ZL.- -INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')結果:LastNameFirs

24、tNameAddressCityCarterThomasChangan StreetBeijingGatesBillXuanwumen 10BeijingWilsonChamps-ElyseesPrevious PageNext PageUpdate 語句Update 語句用于修改表中的數(shù)據(jù)。語法:UPDATE表名稱SET列名稱=新值 WHERE列名稱=某值:Person:LastNameFirstNameAddressCityGatesBillXuanwumen 10BeijingWilsonChamps-Elysees更新某一行中的一個列我們?yōu)?lastname 是"Wilson"的人添加 firstnameUPDATE Person SE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論