SQL數(shù)據(jù)語言的入門教程_第1頁
SQL數(shù)據(jù)語言的入門教程_第2頁
SQL數(shù)據(jù)語言的入門教程_第3頁
SQL數(shù)據(jù)語言的入門教程_第4頁
SQL數(shù)據(jù)語言的入門教程_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、SQL數(shù)據(jù)語言的快速入門【簡(jiǎn)介】SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言.SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通.根據(jù)ANSI 美國(guó)國(guó)家標(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,

2、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該表格中城市最高氣溫和最低氣溫

3、就是三個(gè)不同的列,而表格中的每一行那么包含了具體的表格數(shù)據(jù).數(shù)據(jù)查詢?cè)诒姸嗟腟QL命令中,select語句應(yīng)該算是使用最頻繁的.Select語句主要被用來對(duì)數(shù)據(jù)庫進(jìn)行查詢并返回符合用戶查詢標(biāo)準(zhǔn)的結(jié)果數(shù)據(jù).Select語句的語法格式如下:QUOTE:select column1 , column2,etc from tablenamewhere condition;表示可選項(xiàng)select語句中位于select關(guān)鍵詞之后的列名用來決定那些列將作為查詢結(jié)果返回.用戶可以根據(jù)自己的需要選擇任意列,還可以使用通配符“* 設(shè)定返回表格中的所有列.select語句中位于from關(guān)鍵詞之后的表格名稱用來決定將

4、要進(jìn)行查詢操作的目標(biāo)表格.Select語句中的where可選從句用來規(guī)定哪些數(shù)據(jù)值或哪些行將被作為查詢結(jié)果返回或顯示.在where條件從句中可以使用以下一些運(yùn)算符來設(shè)定查詢標(biāo)準(zhǔn):QUOTE:=等于大于小于 =大于等于v =小于等于O不等于除了上面所提到的運(yùn)算符外,LIKE運(yùn)算符在where條件從句中也非常重要.LIKE運(yùn)算符的功能非常 強(qiáng)大,通過使用口KE運(yùn)算符可以設(shè)定只選擇與用戶規(guī)定格式相同的記錄.此外,我們還可以使用通配符“用來代替任何字符串.舉例如下:QUOTE:select firstname, lastname, cityfrom employeewhere firstname LI

5、KE E%'(注意,字符串必須被包含在單括號(hào)內(nèi))上述SQL語句將會(huì)查詢所有名稱以E開頭的姓名.或者,通過如下語句:QUOTE:select * from employeewhere firstname = Ma;'查詢所有名稱為May的行.SQL語言中的create table語句被用來建立新的數(shù)據(jù)庫表格.Create table語句的使用格式如下:QUOTE:create table tablename(column1 data type,column2 data type,column3 data type);如果用戶希望在建立新表格時(shí)規(guī)定列的限制條件,可以使用可選的條件選

6、項(xiàng):QUOTE:create table tablename(columnl 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è)定各

7、列的名稱,數(shù)據(jù)類型,以及可選的限制條件等.注意,所有的SQL語句在結(jié)尾處都要使用;“符號(hào).使用SQL語句創(chuàng)立的數(shù)據(jù)庫表格和表格中列的名稱必須以字母開頭,后面可以使用字母,數(shù)字或下劃線,名稱的長(zhǎng)度不能超過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):固定長(zhǎng)度字符串,其中括號(hào)中的size用來設(shè)定字符串的最

8、大長(zhǎng)度.Char類型的最大長(zhǎng)度為255字節(jié).varchar(size):可變長(zhǎng)度字符串,最大長(zhǎng)度由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和p

9、rimary 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 '

10、; , Ming ' , 45, No.77 Changan Road ' , Beijing ); /quote簡(jiǎn)單來說,當(dāng)向數(shù)據(jù)庫表格中添加新記錄時(shí),在關(guān)鍵詞insert into后面輸入所要添加的表格名稱,然后在括號(hào)中列岀將要添加新值的列的名稱.最后,在關(guān)鍵詞values的后面根據(jù)前面輸入的列的順序?qū)?yīng)的輸入所有要添加的記錄值.更新記錄SQL語言使用update語句更新或修改滿足規(guī)定條件的現(xiàn)有記錄.Update語句的格式為:QUOTE:update tablenameset columnname = newvalue , nextcolumn = newvalue2whe

11、re columnname OPERATOR value and or column OPERATOR value;例如:QUOTE:update employee set age = age+1where first_name= Mary ' iasd_name= Williams '使用update語句時(shí),關(guān)鍵一點(diǎn)就是要設(shè)定好用于進(jìn)行判斷的where條件從句.刪除記錄SQL語言使用delete語句刪除數(shù)據(jù)庫表格中的行或記錄.Delete語句的格式為:QUOTE:delete from tablenamewhere columnname OPERATOR value and

12、or column OPERATOR value;例如:QUOTE:delete from employeewhere 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 t

13、able employee;如果用戶希望將某個(gè)數(shù)據(jù)庫表格完全刪除,只需要在drop table命令后輸入希望刪除的表格名稱即可.Droptable命令的作用與刪除表格中的所有記錄不同.刪除表格中的全部記錄之后,該表格仍然存在,而且表格 中列的信息不會(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ù)表QUO

14、TE:Store_lnformationStore_NameSalesDateLos Angeles$1500Jan-10-2000San Diego$250Jan-11-2000Los Angeles$300Jan-12-2000Boston$700Jan-12-2000SQL語言中用于數(shù)據(jù)庫查詢的最簡(jiǎn)單的命令就是SELECTFROM語法格式為:QUOTE:SELECT "column_name" FROM "table_name"例如,如果我們希望查詢 Store_Information 數(shù)據(jù)表中所有的商店名稱時(shí),可以使用如下命令:QUOTE:SEL

15、ECT store_name FROM Store_Information查詢結(jié)果顯示為:QUOTE:Store_NameLos AngelesSan DiegoLos AngelesBoston如果用戶希望一次查詢多個(gè)字段,可以將所要查詢的字段名稱依次參加SELECT關(guān)鍵字之后,中間用隔開即可.DISTINCTSELECT關(guān)鍵字支持用戶查詢數(shù)據(jù)表中指定字段的所有數(shù)據(jù),但是這樣有時(shí)就會(huì)不可防止的岀現(xiàn)重復(fù)信息.如果用戶希望只查詢那些具有不同記錄值的信息的話,可以使用SQL語言的DISTINCT關(guān)鍵字.語法格式如下:QUOTE:SELECT DISTINCT "column_name&q

16、uot;FROM "table_name"例如,我們可以使用以下命令查詢Store_lnformation 數(shù)據(jù)表具有不同記錄值的所有記錄.QUOTE:SELECT DISTINCT Store_Name FROM Store_lnformation 查詢結(jié)果如下:QUOTE:Store_NameLos AngelesSan DiegoBostonWHERE除了選擇具有不同記錄值的記錄之外,有時(shí)我們可能還會(huì)需要根據(jù)某些條件對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢.例如,我們可能需要查詢 Store_lnformation 數(shù)據(jù)表中銷售額超過 1000美圓的商店.為此,我們可以使用SQL語言

17、的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_nameLos Angeles運(yùn)算函數(shù)現(xiàn)在,我們已經(jīng)了解到在使用 SQL語言進(jìn)行數(shù)據(jù)庫查詢操作時(shí)可以通過對(duì)數(shù)值的判斷設(shè)定靈活的查詢條件

18、.為了增強(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_lnformation 數(shù)據(jù)表中所有商店的總銷售額的話,可以使用如下命令:QUOTE:SELECT SUM(Sales) FROM Store_Information查詢結(jié)果顯示為:QUOTE:SUM(Sales)$

19、2750COUNT除了 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)4COUN

20、T函數(shù)可以和DISTINCT關(guān)鍵字一起使用從而可以查詢數(shù)據(jù)表中指定字段中所有具有不同記錄值的記 錄數(shù)目.例如,如果我們希望查詢 Store_lnformation 數(shù)據(jù)表中不同商店的數(shù)目時(shí),可以使用如下命令:QUOTE:SELECT COUNT(DISTINCT store_name)FROM Store_lnformation查詢結(jié)果顯示為:QUOTE:Count(DISTINCT store_name)3GROUP BY下面我們來進(jìn)一步看一下 SQL語言中的集合函數(shù).上文中,我們?cè)褂肧UM函數(shù)計(jì)算所有商店的銷售總額,如果我們希望計(jì)算每一家商店各自的總銷售額時(shí)該怎么辦呢?要實(shí)現(xiàn)這一目的我們

21、需要做兩件事:首 先,我們需要查詢商店名稱和銷售額兩個(gè)字段;然后,我們使用SQL語言的GROUP BY命令將銷售額根據(jù)不同的商店進(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_lnform

22、ationGROUP BY store_name查詢結(jié)果顯示為:QUOTE:store_name SUM(Sales)Los Angeles $1800San Diego $250Boston $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_lnformation 數(shù)據(jù)表中銷售總額超過 1500美圓的商店的信息, 這時(shí)我們就需要使用 HAVING從句.語法格式為:QUOTE:SELECT &qu

23、ot;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_lnformationGROUP BY store_nameHAVING SUM(sales) > 1500查詢結(jié)果顯示為:QU

24、OTE: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ù)雜

25、運(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)名稱的后面,中間用空格分開

26、.以Store_lnformation 數(shù)據(jù)表為例,我們可以在 GROUP BY 一節(jié)中所使用的SQL命令中設(shè)置如下字段和數(shù) 據(jù)表別名:QUOTE:SELECT A1.store_name Store, SUM(Sales) "Total Sales"FROM Store_lnformation A1GROUP BY A1.store_name查詢結(jié)果顯示為:QUOTE:Store Total SalesLos Angeles $1800San Diego $250Boston $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_InformationStore_NameSalesDateLos Angeles$1500Jan-10-2000San Diego$250Jan-11-2000Los Angeles$300Jan-12-2000Boston$700Jan-12-2000QUOTE:RegionRegion_NameStore_NameEastBostonEastNew YorkWestLos AngelesWestSan Diego

溫馨提示

  • 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)論