兄弟連-php基礎(chǔ)課件1-1lamp asql語句設(shè)計_第1頁
兄弟連-php基礎(chǔ)課件1-1lamp asql語句設(shè)計_第2頁
兄弟連-php基礎(chǔ)課件1-1lamp asql語句設(shè)計_第3頁
兄弟連-php基礎(chǔ)課件1-1lamp asql語句設(shè)計_第4頁
兄弟連-php基礎(chǔ)課件1-1lamp asql語句設(shè)計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

!NOTa或

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論