MySQL ------ 查詢(列)檢索(limit,完全限定) (四)


查詢數據 SELECT

1、檢索單列     

 select prod_name from products;

注意:

1、 返回數據沒有排序

2、多條SQL 語句必須使用分號(;) 分隔

3、在處理SQL 語句時,其中所有空格都被忽略

4、SQL 可以一行也可以多行,建議將SQL語句分為多行,這樣更易閱讀和調試。

5、SQL語句不區分大小寫,但是建議SQL 關鍵字使用大寫,所有列和表名使用小寫,這樣便於閱讀調試,還有的就是MySQL4.1 及之前的版本中,標識符(如數據庫名稱,表名,列名),默認是區分大小寫的,4.1 之后默認是不區分大小寫的。

 

2、檢索多列

在檢索多列的時候,一定要在列名之間加上逗號,但是最后一個列名不要添加逗號,不然報錯

select prod_id,prod_name,prod_price from products;

 

數據的表示:  SQL 語句一般返回原始的、無格式的數據,實際中一般是使用SQL查出原始的數據,然后使用程序進行提供格式(如給錢加個¥)

 

3、檢索所有列

1、是將所有的字段全部列出進行查詢

2、是使用通配符(*),表示所有的列

select * from products;

 建議: (*) 能不用最好不用,因為會降低檢索和應用程序的性能。當然在你對這表不熟悉,這個時候* 就很重要會把表中所有的列檢出來,然后再不斷優化

 

4、檢索不同的行

如:在你進行單列查詢的時候,會把單列的所有的行都返回出來,這個時候可能會有一些行是重復的,也不方便了解, 就想上述的 vend_id  (供應商編號)這一列中的數據好多行是重復的,不變查看,我就想知道這批商品主要有哪些供應商,怎么搞

這個時候  DISTINCT (distinct)關鍵字孕育而出,意味只返回不同的值

 select distinct vend_id from products;

 

 注意:

  distinct 關鍵字應用於所有列而不僅是前置他的列,建議只在單列查詢的時候使用

如下面:兩個都用報錯,只用一個沒用

 

5、限制結果 (limit)

 select  語句返回所有的匹配的行,但是你要是不需要那么多,需要返回特定的行要怎么辦來

這個時候 LIMIT 關鍵字就出來了,你要是了解的較多可能會聽過 TOP 關鍵字返回前幾行,不過這個SQLServer 支持,MySQL不支持

DQL語句語法格式:

--   <> 內為需要添加的內容,[] 內為可選內容
select <字段名列表>
from <表名或視圖名>
[where<查詢條件>]
[group by<查詢條件>]
[order by<查詢條件>]
[LIMIT [位置偏移量],行數]
[LIMIT [位置偏移量],行數]中位置偏移量指從結果集中第幾行數據開始顯示(第一行記錄的位置偏移量是0,2的話就是1,以此類推),此參數可選,當省略 時默認從第一條記錄開始顯示。
行數指的是顯示記錄的行數

Limit 子句可以實現數據的分頁查詢,即從一批結果數據中規定每頁顯示多少條數據,也可以查詢中間某頁記錄。limit子句常與order by 子句一塊使用,用來先對查詢結果進行排序,然后根據limit 的參數顯示其中的部分數據。

從簡到難

--  返回前五行
select prod_name from products limit 5;

-- 從第5行開始,檢索5行  limit 5,5  第一個數表示開始位置,第二個數表示檢索行數
select prod_name from products limit 5,5;

 注意:

1、從0 開始算數,檢索出來的第一行為0而不是1(理工科就要無中生有,從零開始)

2、當需要檢索的行數大於擁有的時,只返回符合的

3、mysql 5 后支持 limit 4 offset 2,與limit 2,4 一個意思,表示從行2開始取4行 

6、完全限定

就是通過名字來引用列,通過庫引用表

-- 查詢bookstu 數據庫中的products,products 表的prod_name 字段的所有行

 select products.prod_name from bookstu.products;

 7、在查詢中使用常量列

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM