SQL語言入門教程1.doc_第1頁
SQL語言入門教程1.doc_第2頁
SQL語言入門教程1.doc_第3頁
SQL語言入門教程1.doc_第4頁
SQL語言入門教程1.doc_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SQL數(shù)據(jù)語言的快速入門【簡(jiǎn) 介】SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國國家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫都對(duì)SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select, Insert, Update, Delete, Create, 以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。下面,我們就來詳細(xì)介紹一下SQL語言的基本知識(shí)。 一個(gè)典型的關(guān)系型數(shù)據(jù)庫通常由一個(gè)或多個(gè)被稱作表格的對(duì)象組成。數(shù)據(jù)庫中的所有數(shù)據(jù)或信息都被保存在這些數(shù)據(jù)庫表格中。數(shù)據(jù)庫中的每一個(gè)表格都具有自己唯一的表格名稱,都是由行和列組成,其中每一列包括了該列名稱,數(shù)據(jù)類型,以及列的其它屬性等信息,而行則具體包含某一列的記錄或數(shù)據(jù)。以下,是一個(gè)名為天氣的數(shù)據(jù)庫表格的實(shí)例。QUOTE:城市 最高氣溫 最低氣溫 北京 10 5 上海 15 8 天津 8 2 重慶 20 13 該表格中“城市”, “最高氣溫”和“最低氣溫”就是三個(gè)不同的列,而表格中的每一行則包含了具體的表格數(shù)據(jù)。 數(shù)據(jù)查詢 在眾多的SQL命令中,select語句應(yīng)該算是使用最頻繁的。Select語句主要被用來對(duì)數(shù)據(jù)庫進(jìn)行查詢并返回符合用戶查詢標(biāo)準(zhǔn)的結(jié)果數(shù)據(jù)。Select語句的語法格式如下:QUOTE:select column1 , column2,etc from tablename where condition; ( 表示可選項(xiàng)) select語句中位于select關(guān)鍵詞之后的列名用來決定那些列將作為查詢結(jié)果返回。用戶可以按照自己的需要選擇任意列,還可以使用通配符“*”來設(shè)定返回表格中的所有列。 select語句中位于from關(guān)鍵詞之后的表格名稱用來決定將要進(jìn)行查詢操作的目標(biāo)表格。 Select語句中的where可選從句用來規(guī)定哪些數(shù)據(jù)值或哪些行將被作為查詢結(jié)果返回或顯示。 在where條件從句中可以使用以下一些運(yùn)算符來設(shè)定查詢標(biāo)準(zhǔn):QUOTE:= 等于 大于 小于 = 大于等于 = 小于等于 不等于 除了上面所提到的運(yùn)算符外,LIKE運(yùn)算符在where條件從句中也非常重要。LIKE運(yùn)算符的功能非常強(qiáng)大,通過使用LIKE運(yùn)算符可以設(shè)定只選擇與用戶規(guī)定格式相同的記錄。此外,我們還可以使用通配符“%”用來代替任何字符串。舉例如下:QUOTE:select firstname, lastname, city from employee where firstname LIKE E%; (注意,字符串必須被包含在單括號(hào)內(nèi)) 上述SQL語句將會(huì)查詢所有名稱以E開頭的姓名。或者,通過如下語句:QUOTE:select * from employee where firstname = May; 查詢所有名稱為May的行。SQL語言中的create table語句被用來建立新的數(shù)據(jù)庫表格。Create table語句的使用格式如下:QUOTE:create table tablename (column1 data type, column2 data type, column3 data type); 如果用戶希望在建立新表格時(shí)規(guī)定列的限制條件,可以使用可選的條件選項(xiàng):QUOTE:create table tablename (column1 data type constraint, column2 data type constraint, column3 data type constraint); 舉例如下:QUOTE:create table employee (firstname varchar(15), lastname varchar(20), age number(3), address varchar(30), city varchar(20); 簡(jiǎn)單來說,創(chuàng)建新表格時(shí),在關(guān)鍵詞create table后面加入所要建立的表格的名稱,然后在括號(hào)內(nèi)順次設(shè)定各列的名稱,數(shù)據(jù)類型,以及可選的限制條件等。注意,所有的SQL語句在結(jié)尾處都要使用“;”符號(hào)。 使用SQL語句創(chuàng)建的數(shù)據(jù)庫表格和表格中列的名稱必須以字母開頭,后面可以使用字母,數(shù)字或下劃線,名稱的長度不能超過30個(gè)字符。注意,用戶在選擇表格名稱時(shí)不要使用SQL語言中的保留關(guān)鍵詞,如select, create, insert等,作為表格或列的名稱。 數(shù)據(jù)類型用來設(shè)定某一個(gè)具體列中數(shù)據(jù)的類型。例如,在姓名列中只能采用varchar或char的數(shù)據(jù)類型,而不能使用number的數(shù)據(jù)類型。 SQL語言中較為常用的數(shù)據(jù)類型為:QUOTE:char(size):固定長度字符串,其中括號(hào)中的size用來設(shè)定字符串的最大長度。Char類型的最大長度為255字節(jié)。 varchar(size):可變長度字符串,最大長度由size設(shè)定。 number(size):數(shù)字類型,其中數(shù)字的最大位數(shù)由size設(shè)定。 Date:日期類型。 number(size,d):數(shù)字類型,size決定該數(shù)字總的最大位數(shù),而d則用于設(shè)定該數(shù)字在小數(shù)點(diǎn)后的位數(shù)。 最后,在創(chuàng)建新表格時(shí)需要注意的一點(diǎn)就是表格中列的限制條件。所謂限制條件就是當(dāng)向特定列輸入數(shù)據(jù)時(shí)所必須遵守的規(guī)則。例如,unique這一限制條件要求某一列中不能存在兩個(gè)值相同的記錄,所有記錄的值都必須是唯一的。除unique之外,較為常用的列的限制條件還包括not null和primary key等。Not null用來規(guī)定表格中某一列的值不能為空。Primary key則為表格中的所有記錄規(guī)定了唯一的標(biāo)識(shí)符。 向表格中插入數(shù)據(jù) SQL語言使用insert語句向數(shù)據(jù)庫表格中插入或添加新的數(shù)據(jù)行。Insert語句的使用格式如下:QUOTE:insert into tablename (first_column,.last_column) values (first_value,.last_value); 例如: /quoteinsert into employee (firstname, lastname, age, address, city) values (Li, Ming, 45, No.77 Changan Road, Beijing”); /quote簡(jiǎn)單來說,當(dāng)向數(shù)據(jù)庫表格中添加新記錄時(shí),在關(guān)鍵詞insert into后面輸入所要添加的表格名稱,然后在括號(hào)中列出將要添加新值的列的名稱。最后,在關(guān)鍵詞values的后面按照前面輸入的列的順序?qū)?yīng)的輸入所有要添加的記錄值。 更新記錄 SQL語言使用update語句更新或修改滿足規(guī)定條件的現(xiàn)有記錄。Update語句的格式為:QUOTE:update tablename set columnname = newvalue , nextcolumn = newvalue2. where columnname OPERATOR value andor column OPERATOR value; 例如:QUOTE:update employee set age = age+1 where first_name= Maryand last_name= Williams; 使用update語句時(shí),關(guān)鍵一點(diǎn)就是要設(shè)定好用于進(jìn)行判斷的where條件從句。 刪除記錄 SQL語言使用delete語句刪除數(shù)據(jù)庫表格中的行或記錄。Delete語句的格式為:QUOTE:delete from tablename where columnname OPERATOR value andor column OPERATOR value; 例如:QUOTE:delete from employee where lastname = May; 簡(jiǎn)單來說,當(dāng)需要?jiǎng)h除某一行或某個(gè)記錄時(shí),在delete from關(guān)鍵詞之后輸入表格名稱,然后在where從句中設(shè)定刪除記錄的判斷條件。注意,如果用戶在使用delete語句時(shí)不設(shè)定where從句,則表格中的所有記錄將全部被刪除。 刪除數(shù)據(jù)庫表格 在SQL語言中使用drop table命令刪除某個(gè)表格以及該表格中的所有記錄。Drop table命令的使用格式為:QUOTE:drop table tablename; 例如:QUOTE:drop table employee; 如果用戶希望將某個(gè)數(shù)據(jù)庫表格完全刪除,只需要在drop table命令后輸入希望刪除的表格名稱即可。Drop table命令的作用與刪除表格中的所有記錄不同。刪除表格中的全部記錄之后,該表格仍然存在,而且表格中列的信息不會(huì)改變。而使用drop table命令則會(huì)將整個(gè)數(shù)據(jù)庫表格的所有信息全部刪除。 以上,我們對(duì)SQL語言主要的命令和語句進(jìn)行了較為詳細(xì)的介紹。應(yīng)該說SQL語句的語法結(jié)構(gòu)和風(fēng)格還是相當(dāng)簡(jiǎn)單和直觀的,只要用戶結(jié)合實(shí)踐多加練習(xí),一定會(huì)在短期內(nèi)迅速掌握。SELECTFROM 為方便講解,我們?cè)跀?shù)據(jù)庫中創(chuàng)建名為Store_Information的如下數(shù)據(jù)表。QUOTE:Store_Information Store_Name Sales Date Los Angeles $1500 Jan-10-2000 San Diego $250 Jan-11-2000 Los Angeles $300 Jan-12-2000 Boston $700 Jan-12-2000 SQL語言中用于數(shù)據(jù)庫查詢的最簡(jiǎn)單的命令就是SELECTFROM,語法格式為:QUOTE:SELECT column_name FROM table_name 例如,如果我們希望查詢Store_Information數(shù)據(jù)表中所有的商店名稱時(shí),可以使用如下命令:QUOTE:SELECT store_name FROM Store_Information 查詢結(jié)果顯示為:QUOTE:Store_Name Los Angeles San Diego Los Angeles Boston 如果用戶希望一次查詢多個(gè)字段,可以將所要查詢的字段名稱依次加入SELECT關(guān)鍵字之后,中間用“,”隔開即可。 DISTINCT SELECT關(guān)鍵字支持用戶查詢數(shù)據(jù)表中指定字段的所有數(shù)據(jù),但是這樣有時(shí)就會(huì)不可避免的出現(xiàn)重復(fù)信息。如果用戶希望只查詢那些具有不同記錄值的信息的話,可以使用SQL語言的DISTINCT關(guān)鍵字。語法格式如下:QUOTE:SELECT DISTINCT column_name FROM table_name 例如,我們可以使用以下命令查詢Store_Information數(shù)據(jù)表具有不同記錄值的所有記錄。QUOTE:SELECT DISTINCT Store_Name FROM Store_Information 查詢結(jié)果如下:QUOTE:Store_Name Los Angeles San Diego Boston WHERE 除了選擇具有不同記錄值的記錄之外,有時(shí)我們可能還會(huì)需要根據(jù)某些條件對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢。例如,我們可能需要查詢Store_Information數(shù)據(jù)表中銷售額超過1000美圓的商店。為此,我們可以使用SQL語言的WHERE關(guān)鍵字設(shè)定查詢條件。語法格式如下:QUOTE:SELECT column_name FROM table_name WHERE condition 由此,我們可以使用如下命令查詢銷售額超過1000美圓的商店信息:QUOTE:SELECT store_name FROM Store_Information WHERE Sales 1000 查詢結(jié)果顯示為:QUOTE:store_name Los Angeles 運(yùn)算函數(shù) 現(xiàn)在,我們已經(jīng)了解到在使用SQL語言進(jìn)行數(shù)據(jù)庫查詢操作時(shí)可以通過對(duì)數(shù)值的判斷設(shè)定靈活的查詢條件。為了增強(qiáng)對(duì)運(yùn)算的支持能力,SQL提供了眾多實(shí)用的運(yùn)算函數(shù)供廣大用戶使用。例如,我們可以直接在SQL命令中調(diào)用SUM或AVG這兩個(gè)分別用于計(jì)算總數(shù)和平均數(shù)的函數(shù)。語法格式如下:QUOTE:SELECT function type(column_name) FROM table_name 如果我們希望查詢Store_Information數(shù)據(jù)表中所有商店的總銷售額的話,可以使用如下命令:QUOTE:SELECT SUM(Sales) FROM Store_Information 查詢結(jié)果顯示為:QUOTE:SUM(Sales) $2750 COUNT 除了SUM和AVG函數(shù)之外,COUNT函數(shù)是SQL語言中另一個(gè)較為常用的運(yùn)算函數(shù)。COUNT函數(shù)可以用來計(jì)算數(shù)據(jù)表中指定字段所包含的記錄數(shù)目。語法格式為:QUOTE:SELECT COUNT(column_name) FROM table_name 例如,如果我們希望查詢Store_Information數(shù)據(jù)表中的有關(guān)商店的記錄條數(shù)時(shí),可以使用如下命令:QUOTE:SELECT COUNT(store_name) FROM Store_Information 查詢結(jié)果顯示為:QUOTE:Count(store_name) 4 COUNT函數(shù)可以和DISTINCT關(guān)鍵字一起使用從而可以查詢數(shù)據(jù)表中指定字段中所有具有不同記錄值的記錄數(shù)目。例如,如果我們希望查詢Store_Information數(shù)據(jù)表中不同商店的數(shù)目時(shí),可以使用如下命令:QUOTE:SELECT COUNT(DISTINCT store_name) FROM Store_Information 查詢結(jié)果顯示為:QUOTE:Count(DISTINCT store_name) 3 GROUP BY 下面我們來進(jìn)一步看一下SQL語言中的集合函數(shù)。上文中,我們?cè)褂肧UM函數(shù)計(jì)算所有商店的銷售總額,如果我們希望計(jì)算每一家商店各自的總銷售額時(shí)該怎么辦呢?要實(shí)現(xiàn)這一目的我們需要做兩件事:首先,我們需要查詢商店名稱和銷售額兩個(gè)字段;然后,我們使用SQL語言的GROUP BY命令將銷售額按照不同的商店進(jìn)行分組,從而計(jì)算出不同商店的銷售總額。GROUP BY命令的語法格式為:QUOTE:SELECT column_name1, SUM(column_name2) FROM table_name GROUP BY column_name1 我們可以使用如下命令實(shí)現(xiàn)上述查詢目的:QUOTE:SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name 查詢結(jié)果顯示為:QUOTE:store_name SUM(Sales) Los Angeles $1800 San Diego $250 Boston $700 小注: GROUP BY關(guān)鍵字一般應(yīng)用于同時(shí)查詢多個(gè)字段并對(duì)字段進(jìn)行算術(shù)運(yùn)算的SQL命令中。 HAVING 用戶在使用SQL語言的過程中可能希望解決的另一個(gè)問題就是對(duì)由sum或其它集合函數(shù)運(yùn)算結(jié)果的輸出進(jìn)行限制。例如,我們可能只希望看到Store_Information數(shù)據(jù)表中銷售總額超過1500美圓的商店的信息,這時(shí)我們就需要使用HAVING從句。語法格式為:QUOTE:SELECT column_name1, SUM(column_name2) FROM table_name GROUP BY column_name1 HAVING (arithematic function condition) (GROUP BY從句可選) 由此,我們可以使用如下命令實(shí)現(xiàn)上述查詢目的:QUOTE:SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sales) 1500 查詢結(jié)果顯示為:QUOTE:store_name SUM(Sales) Los Angeles $1800 小注: SQL語言中設(shè)定集合函數(shù)的查詢條件時(shí)使用HAVING從句而不是WHERE從句。通常情況下,HAVING從句被放置在SQL命令的結(jié)尾處。 ALIAS 下面,我們重點(diǎn)介紹一下如何在SQL命令中設(shè)定別名。SQL語言中一般使用兩種類型的別名,分別為字段別名和數(shù)據(jù)表別名。 簡(jiǎn)單的說,使用字段別名可以幫助我們有效的組織查詢的輸出結(jié)果。例如,上文所列舉的多個(gè)實(shí)例中,當(dāng)我們計(jì)算商店銷售總額時(shí),顯示結(jié)果中就會(huì)出現(xiàn)SUM(sales)。雖然SUM(sales)并不會(huì)對(duì)我們理解查詢結(jié)果帶來不便,但是如果我們需要在查詢中使用多項(xiàng)復(fù)雜運(yùn)算時(shí),顯示結(jié)果就不會(huì)這么直觀了。如果這時(shí)我們使用字段別名就會(huì)極大的提高查詢結(jié)果的可讀性。 對(duì)于數(shù)據(jù)表別名,我們可以通過將別名直接放置在FROM從句中數(shù)據(jù)表名稱的后面設(shè)定。數(shù)據(jù)表別名在我們下面將要講述的連接多個(gè)數(shù)據(jù)表進(jìn)行查詢的操作中極為有用。 字段和數(shù)據(jù)表別名的語法格式如下:QUOTE:SELECT table_alias.column_name1 column_alias FROM table_name table_alias 即別名都直接放置在各自對(duì)應(yīng)名稱的后面,中間用空格分開。 以Store_Information數(shù)據(jù)表為例,我們可以在GROUP BY一節(jié)中所使用的SQL命令中設(shè)置如下字段和數(shù)據(jù)表別名:QUOTE:SELECT A1.store_name Store, SUM(Sales) Total Sales FROM Store_Information A1 GROUP BY A1.store_name 查詢結(jié)果顯示為:QUOTE:Store Total Sales Los Angeles $1800 San Diego $250 Boston $700 連接多個(gè)數(shù)據(jù)表 最后,我們來看一下如果使用SQL語言連接多個(gè)數(shù)據(jù)表,實(shí)現(xiàn)對(duì)多個(gè)數(shù)據(jù)表的查詢。為方便講解,我們?cè)跀?shù)據(jù)庫中分別創(chuàng)建了兩個(gè)名為Store_Information和Region的數(shù)據(jù)表。QUOTE:Store_Information Store_Name Sales Date Los Angeles $1500 Jan-10-2000 San Diego $250 Jan-11-2000 Los Angeles $300 Jan-12-2000 Boston $700 Jan-12-2000 QUOTE:Region Region_Name Store_Name East Boston East New York West Los Angeles West San Diego 下面,我們就來看一下通過數(shù)據(jù)表的連接實(shí)現(xiàn)按

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論