所謂數(shù)據(jù)檢索,就是前面所講的”增刪改查“的”查“。
注:本文使用的“行”指數(shù)據(jù)表中的“記錄”,“列”指數(shù)據(jù)表中的“字段”。
在第四節(jié)《表的增刪改查》中已經(jīng)介紹了 select 查詢記錄的幾種使用方法:查詢所有行的所有列、查詢指定行的所有列、查詢所有行的指定列和查詢指定行的指定列。本文介紹一些數(shù)據(jù)檢索的其他高級(jí)使用方法。
首先準(zhǔn)備文需要的數(shù)據(jù),如下圖所示:
01_成績(jī)表
使用如下語句進(jìn)行數(shù)據(jù)庫的創(chuàng)建、表的創(chuàng)建及記錄的插入:
SELECT 語句返回所有的匹配行,它們可能是指定表中的每個(gè)行。如果想要SELECT 語句返回指定的行數(shù),可以使用LIMIT 子句。 LIMIT 接受一個(gè)或兩個(gè)數(shù)字的參數(shù),參數(shù)必須是一個(gè)整數(shù)常量。如果給定兩個(gè)參數(shù),第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目。
LIMIT 三種語法,第二種和第三種語法完全等價(jià):
1.
2.
3.
注:
示例1,檢索前3條記錄:
示例2,檢索從偏移量為5的記錄開始后3條記錄:
也可以使用下面這種語法:
在行數(shù)不夠時(shí),LIMIT 中指定要檢索的行數(shù)為檢索的最大行數(shù)。比如我們從第8條記錄開始取5條記錄,那么我們只能取到3條記錄:
假如兩個(gè)表中有相同的字段,而我們恰好要查詢其中一個(gè)表中的該字段,那么就會(huì)出現(xiàn)二義性:到底要取哪個(gè)表中的該字段?為了解決這一問題,可以使用完全限定的名字來引用列,完全限定字段的格式為"table_name.column_name",例如:
表名也是可以被限制的,其格式為"database_name.table_name",例如:
有時(shí)候數(shù)據(jù)并不是一定要按照數(shù)據(jù)庫中的存儲(chǔ)順序進(jìn)行顯示,比如我們想要以商品價(jià)格進(jìn)行排序或者以成績(jī)排名進(jìn)行顯示。
如果我們需要對(duì)讀取的數(shù)據(jù)進(jìn)行排序,可以使用 MySQL 的 ORDER BY 子句來設(shè)定想按哪個(gè)字段哪種方式來進(jìn)行排序,再返回搜索結(jié)果。其語法為:
以數(shù)學(xué)成績(jī)升序方式檢索,可以使用如下命令:
以數(shù)學(xué)成績(jī)降序方式檢索,可以使用如下命令:
以數(shù)學(xué)成績(jī)升序、語文成績(jī)降序和英語成績(jī)降序 3 個(gè)字段同時(shí)檢索:
利用排序檢索與 LIMIT 組合,可以取出某字段的最低或最高記錄。
聯(lián)系客服