兄弟連-php基礎(chǔ)課件1-1lamp asql語(yǔ)句設(shè)計(jì)_第1頁(yè)
兄弟連-php基礎(chǔ)課件1-1lamp asql語(yǔ)句設(shè)計(jì)_第2頁(yè)
兄弟連-php基礎(chǔ)課件1-1lamp asql語(yǔ)句設(shè)計(jì)_第3頁(yè)
兄弟連-php基礎(chǔ)課件1-1lamp asql語(yǔ)句設(shè)計(jì)_第4頁(yè)
兄弟連-php基礎(chǔ)課件1-1lamp asql語(yǔ)句設(shè)計(jì)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余29頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

SQL語(yǔ)句設(shè)計(jì)主講:郵箱:微博:回顧結(jié)構(gòu)化查詢語(yǔ)言SQLMySQL數(shù)據(jù)庫(kù)的連接與關(guān)閉創(chuàng)建新用戶并授權(quán)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表內(nèi)容的簡(jiǎn)單管理預(yù)習(xí)檢查DML語(yǔ)句都包含哪些DQL語(yǔ)句又有哪些DML語(yǔ)句的基本語(yǔ)法DQL語(yǔ)句的基本語(yǔ)法本章任務(wù)操作數(shù)據(jù)表中的數(shù)據(jù)記錄(DML語(yǔ)句)使用INSERT語(yǔ)句向數(shù)據(jù)表中添加數(shù)據(jù)使用UPDATE語(yǔ)句更新數(shù)據(jù)表中已存在的數(shù)據(jù)使用DELETE語(yǔ)句刪除數(shù)據(jù)表中不需要的數(shù)據(jù)記錄通過(guò)DQL命令查詢數(shù)據(jù)表中的數(shù)據(jù)選擇特定的字段使用AS子句為字段取別名DISTINCT關(guān)鍵字的使用在SELECT語(yǔ)句中使用表達(dá)式的列使用WHERE子句按條件檢索根據(jù)空值(NULL)確定檢索條件本章任務(wù)通過(guò)DQL命令查詢數(shù)據(jù)表中的數(shù)據(jù)使用BEETWEENAND進(jìn)行范圍比較查詢使用IN進(jìn)行范圍比對(duì)查詢使用LIKE進(jìn)行模糊查詢多表查詢(連接查詢)嵌套查詢(子查詢)使用ORDERBY對(duì)查詢結(jié)果排序使用LIMIT使用INSERT語(yǔ)句向數(shù)據(jù)表中添加數(shù)據(jù)插入數(shù)據(jù)是向已經(jīng)存在的數(shù)據(jù)表中添加一條新的記錄,應(yīng)該使用INSERTINTO語(yǔ)句。格式:INSERTINTO表名[(字段名1,字段名2,…字段名n)]VALUES(‘值1’,‘值2’,…,’值n’);或者INSERTINTO表名[(字段名1,字段名2,…字段名n)]VALUES(‘值1’,‘值2’,…,‘值n’),VALUES(‘值1’,‘值2’,…,’值n’);使用UPDATE語(yǔ)句更新數(shù)據(jù)表中已存在的數(shù)據(jù)SQL語(yǔ)句可以使用UPDATE語(yǔ)句對(duì)表中的一列或多列數(shù)據(jù)進(jìn)行修改,必須指定需要修改的字段,并且需要賦予的新值。還要給出必要的WHERE子句指定要更新的數(shù)據(jù)行。格式:UPDATE表名SET字段名=表達(dá)式[,…][WHERE條件][ORDERBY字段][LIMIT行數(shù)]使用DELETE語(yǔ)句刪除數(shù)據(jù)表中不需要的數(shù)據(jù)記錄DELETE語(yǔ)句用來(lái)刪除數(shù)據(jù)表中的一條或多條數(shù)據(jù)記錄。格式:DELETEFROM表名[WHERE條件][ORDERBY字段][LIMIT行數(shù)]通過(guò)DQL命令查詢數(shù)據(jù)表中的數(shù)據(jù)查詢語(yǔ)句可以完成簡(jiǎn)單的單表查詢,也可以完成復(fù)雜的多表查詢和嵌套查詢。SELECT語(yǔ)句主要用于數(shù)據(jù)的查詢檢索,是SQL語(yǔ)言的核心,在SQL語(yǔ)言中SELECT語(yǔ)句的使用頻率是最高的。格式:SELECT[ALL|DISTINCT]{*|table.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,…]]}FROM表名[WHERE子句][GROUPBY..][HAVING..][ORDERBY..][LIMITcount];選擇特定的字段最簡(jiǎn)單的查詢語(yǔ)句是使用SELECT語(yǔ)句檢索記錄的特定字段,多個(gè)字段可以用逗號(hào)分隔,例如:SELECTusername,passwordFROMuser;也可以使用*從表中檢索出所有字段,使用“SELECT*”主要是針對(duì)用戶的書(shū)寫(xiě)方便而言的。如果一張表當(dāng)中的數(shù)據(jù)多大幾百萬(wàn),就意味著資源的浪費(fèi)和漫長(zhǎng)的查詢等待,所以實(shí)際應(yīng)用時(shí)要盡量避免使用它,而把查詢的列名準(zhǔn)確地列出來(lái),也可以按自己指定的列順序輸出。使用AS子句為字段取別名如果想為返回的列取一個(gè)新的標(biāo)題,以及經(jīng)過(guò)對(duì)字段的計(jì)算或總結(jié)之后,產(chǎn)生了一個(gè)新的值,希望把它放到一個(gè)新的列里顯示,則用AS保留。例如:在上例的輸出結(jié)果中使用中文字段名,可以在MySQL控制臺(tái)中輸入的命令如下所示:SELECTusernameas‘用戶名’FROMuser;定義別名時(shí)一定要使用單引號(hào)引起來(lái),其中AS關(guān)鍵字是可選的,在原字段名和別名之間使用一個(gè)空格即可。SELECTusername‘用戶名’FROMuser;DISTINCT關(guān)鍵字的使用如果在使用SELECT語(yǔ)句返回的記錄結(jié)果中包含重復(fù)的記錄,可以使用DISTINCT關(guān)鍵字取消重復(fù)的數(shù)據(jù),只返回一個(gè)。另外,要注意DISTINCT關(guān)鍵字的作用是整個(gè)查詢的列表,而不是單獨(dú)的一列。DISTINCT會(huì)消耗一定的服務(wù)器資源,如果不指定,會(huì)默認(rèn)使用ALL關(guān)鍵字作為檢索模式。SELECTDISTINCTgidFROMuser_group;在SELECT語(yǔ)句中使用表達(dá)式的列在SQL中的表達(dá)式用法和PHP程序相似,主要包括算術(shù)表達(dá)式、邏輯表達(dá)式,以及使用SQL函數(shù)表達(dá)式等。例如:SELECTversion(),1.23*10;使用WHERE子句按條件檢索在SELECT語(yǔ)句中,可以使用WHERE子句指定搜索條件,實(shí)現(xiàn)從數(shù)據(jù)表中檢索出符合條件的記錄。其中,搜索條件可以由一個(gè)或多個(gè)邏輯表達(dá)式組成,這些表達(dá)式指定關(guān)于某一記錄是真或假的條件。在WHERE子句中,可以通過(guò)邏輯操作符和比較操作符指定基本的表達(dá)式條件。邏輯操作符操作符語(yǔ)法描述AND或&&aANDb或a&&b邏輯與,若兩個(gè)操作數(shù)同時(shí)為真,則為真OR或||aORb或a||b邏輯或,只要有一個(gè)操作數(shù)為真,則為真XORaXORb邏輯異或,若有且僅有一個(gè)操作數(shù)為真,則為真NOT或

!NOTa或

!a邏輯非,若操作數(shù)為假,則為真比較操作符數(shù)據(jù)列類型存儲(chǔ)空間說(shuō)明取值范圍=a=b若操作數(shù)a與操作數(shù)b相等,則為真<=>a<=>b若a與b相等,則為真,可以用于NULL值比較!=或<>a!=b或a<>b若操作數(shù)a與b不相等,為真<a<b若操作數(shù)a小于b,為真<=a<=b若操作數(shù)a大于b,為真>a>b若操作數(shù)a大于b,為真>=a>=b若操作數(shù)a大于等于b,為真ISNULLaISNULL若操作數(shù)a為NULL,為真ISNOTNULLaISNOTNULL若操作數(shù)a不為NULL,為真BETWEENaBETWEENbANDc若a在b和c之間,為真比較操作符數(shù)據(jù)列類型存儲(chǔ)空間說(shuō)明取值范圍NOTBETWEENaNOTBETWEENbANDc若操作數(shù)a不在b和c之間,為真LIKEaLIKEbSQL模式匹配,若a匹配b,為真NOTLIKEaNOTLIKEbSQL模式匹配,若a不匹配b,則為真INaIN(b1,b2….)若a等于b1,b2,b3,…中的某一個(gè),則為真使用WHERE子句按條件檢索在構(gòu)造搜索條件時(shí),要注意只能對(duì)數(shù)值數(shù)據(jù)類型的記錄進(jìn)行算術(shù)運(yùn)算,并且只能在相同的數(shù)據(jù)類型之間進(jìn)行記錄的比較。根據(jù)空值(NULL)確定檢索條件空值只能定義在允許NULL字段中出現(xiàn),NULL值是特殊的值,代表“無(wú)值”,與零值(0)和空字符串('')都不相同。當(dāng)在不支持默認(rèn)值的字段中未輸入值,或在字段中顯式的設(shè)置為空,就會(huì)出現(xiàn)空值,但不能用處理已知值的方式來(lái)處理NULL。為了進(jìn)行NULL值的搜索,必須采用特殊的語(yǔ)法。如果要檢索NULL值,必須使用ISNULL和ISNOTNULL關(guān)鍵字。使用BETWEENAND進(jìn)行范圍比較查詢?nèi)绻枰獙?duì)某個(gè)字段通過(guò)范圍的值進(jìn)行比較查詢,可以使用BETWEENAND關(guān)鍵字實(shí)現(xiàn),其中AND是多重條件符號(hào),比較時(shí)也包括邊界條件。也可以使用“>=”和“<=”完成同樣的功能。使用IN進(jìn)行范圍比對(duì)查詢

在WHERE子句中,使用IN關(guān)鍵字并在后面的括號(hào)“()”中提供一個(gè)值的列表,以供與相應(yīng)的字段進(jìn)行比較。該列表中至少應(yīng)該存在一個(gè)值,如果有多個(gè)值可以使用逗號(hào)“,”分隔。使用LIKE進(jìn)行模糊查詢?cè)赟ELECT語(yǔ)句的WHERE子句中,可以使用LIKE關(guān)鍵字對(duì)數(shù)據(jù)表中的記錄進(jìn)行模糊查詢,將查詢結(jié)果鎖定在一個(gè)范圍內(nèi)。在查詢條件中通常會(huì)與“_”和“%”兩個(gè)通配符一起使用,可以實(shí)現(xiàn)復(fù)雜的檢索查詢。這兩個(gè)通配符的含義分別如下: ?百分號(hào)“%”:表示0個(gè)或任意多個(gè)字符。 ?下畫(huà)線“_”:表示單個(gè)的任意一個(gè)字符。相反的,不匹配我們使用NOTLIKE多表查詢(連接查詢)多表查詢給用戶帶來(lái)很大的靈活性,可以在任何時(shí)候增加新的數(shù)據(jù)類型,為不同實(shí)體創(chuàng)建新的表,然后通過(guò)連接進(jìn)行查詢。包括兩種形式:?非等值和等值的多表查詢多表查詢和普通的單表查詢相似,都是使用SELECT語(yǔ)句。只不過(guò)在多表查詢時(shí)需要把多張表的名字,全部填寫(xiě)在FROM子句中,并用逗號(hào)“,”將表名分開(kāi)。同時(shí),也可以對(duì)數(shù)據(jù)表使用別名進(jìn)行引用。另外,為了在查詢時(shí)區(qū)分多個(gè)表中出現(xiàn)的重復(fù)字段名,可以在字段列表中使用“表名.列名”的形式,如果不存在重名的列,可以省略表名。多表查詢(連接查詢)自身連接查詢連接查詢操作不僅可以用于多個(gè)表之間,也可以是一個(gè)表與其自己進(jìn)行連接,稱為自身連接查詢。當(dāng)一個(gè)表所代表的實(shí)體之間有關(guān)系時(shí),就可以使用自身連接查詢。復(fù)合連接查詢前面介紹的多表查詢是兩個(gè)表之間,只有一個(gè)WHERE子句查詢條件。如果在FROM子句后面有n個(gè)表需要查詢,則在WHERE子句中就需要有多個(gè)連接條件。至少要比出現(xiàn)的表格數(shù)量少1個(gè),也就是不能少于n?1個(gè)查詢條件,多個(gè)條件使用“AND”關(guān)鍵詞連接即可。嵌套查詢(子查詢)

這種查詢是在一個(gè)SELECT語(yǔ)句的WHERE子句中,包含另一個(gè)SELECT語(yǔ)句,也可以稱為子查詢。在子查詢中只能返回一列,并將形成的結(jié)果又作為父查詢的條件,在主句中進(jìn)行進(jìn)一步查詢。

SQL語(yǔ)言允許多層嵌套查詢,即一個(gè)子查中還可以有其他子查詢。嵌套查詢的求解方法是由里向外處理,即每個(gè)子查詢都是在上一級(jí)查詢處理之前求解,子查詢的結(jié)果用于建立其父查詢的查找條件。使用ORDERBY對(duì)查詢結(jié)果排序

使用SELECT語(yǔ)句獲取數(shù)據(jù)表中的數(shù)據(jù)時(shí),返回的記錄一般是無(wú)規(guī)則排列的,有可能每次獲取的查詢記錄截然不同。為了使用檢索的結(jié)果方便閱讀,可以在SELECT語(yǔ)句中使用ORDERBY子句,對(duì)檢索的結(jié)果進(jìn)行排序。

ORDERBY后面可以接一列或多列用于排序的字段,并且使用DESC或ASC關(guān)鍵字設(shè)計(jì)字段排序的方式。默認(rèn)情況下按照升序排列,即使用ASC關(guān)鍵字。否則要按照降序排列,必須使用DESC關(guān)鍵字。ORDERBY子句可以和SELECT語(yǔ)句中的其他子句一起使用,但在子查詢中不能有ORDERBY子句,因?yàn)镺RDERBY子句只能對(duì)最終查詢結(jié)果排序。使用LIMIT限定結(jié)果行數(shù)

如果在數(shù)據(jù)表中的記錄數(shù)非常多,一次從表中返回大量的記錄不僅檢索的速度慢,用戶閱讀也很不方便。所以在通過(guò)SELECT語(yǔ)句檢索時(shí),使用LIMIT子句一次取少量的記錄,而用分頁(yè)的方式繼續(xù)閱讀后面的數(shù)據(jù)。LIMIT子句也可以和其他的SELECT子句一起使用,它可以指定兩個(gè)參數(shù),分別用以設(shè)置返回記錄的起始位置,和返回記錄的數(shù)量。

LIMIT子句也可以只使用一個(gè)參數(shù),表示從開(kāi)頭位置,即偏移量為0的位置返回指定數(shù)量的記錄,在上例中使用的“LIMIT0,5”等價(jià)于“LIMIT5”。

使用統(tǒng)計(jì)函數(shù)

在數(shù)據(jù)庫(kù)系統(tǒng)中提供了一系列的內(nèi)置統(tǒng)計(jì)函數(shù),在SQL查詢中使用這些統(tǒng)計(jì)函數(shù)可以更有效地處理數(shù)據(jù)。這些統(tǒng)計(jì)函數(shù)把存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),描述為一個(gè)整體而不是一行行孤立的記錄。

統(tǒng)計(jì)函數(shù)

COUNT()返回滿足SELECT語(yǔ)句中指定條件的記錄數(shù),例如,COUNT(*)返回找到的記錄行數(shù)SUM()通常為數(shù)值字段或表達(dá)列作統(tǒng)計(jì),返回一列的總和AVG()通常為數(shù)值字段或表達(dá)列作統(tǒng)計(jì),返回一列的平均值MAX()可以為數(shù)值字段、字符字段或表達(dá)列作統(tǒng)計(jì),返回一列中最大的值MIN()可以為數(shù)值字段、字符字段或表達(dá)列統(tǒng)計(jì),返回一列中最小的值使用統(tǒng)計(jì)函數(shù)

這些函數(shù)通常用在SELECT子句中,作為結(jié)果數(shù)據(jù)集的字段返回的結(jié)果。在SELECT語(yǔ)句的SELECT子句中使用函數(shù)的語(yǔ)法如下:SELECT函數(shù)名(列名1或*),...函數(shù)名(列名n)FROM表

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論