MySQL基础入门学习【7】查询表达式解析 SELECT
1. 查找記錄:?
?SELECT select_expr [,select_expr...]
[
FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | postion} ?[ASC|DESC],...]
[HAVING where_condition]
[ORDER BY {col_name | expr | position} [ASC | DESC],...]
[LIMIT { [offset,] row_count | row_count OFFSET offset } ]
]
?
?
計算表達式的結果
?
?
(1) 查詢表達式: select_expr
每一個表達式表示想要的一列,必須有至少一個;
多個列之間以英文逗號分隔;
星號(*)表示所有列。 tbl_name.* 可以表示命名表的所有列;
查詢表達式可以使用 [ AS ] alias_name 為其賦予別名;
別名可用于GROUP BY , ORDER BY 或HAVING 子句。
?
也可以讓當前的數據列的排列順序和原表中不一樣
SELECT 語句查詢表達式的順序將影響著結果的順序
以后使用多表連接時,兩張不同的表可能存在相同的字段,如果直接寫字段名的話,則分不清到底屬于哪張數據表
?
?
有些時候某些字段的名字特別長,可能不太容易記憶,我們可以為其賦予別名。
字段的別名也將影響到以后的結果集的字段名。
AS 可以省略:(一般情況下還是要書寫AS 比較好)
?
?
(2)where 語句進行條件查詢:
條件表達式: 對記錄進行過濾,如果沒有指定WHERE 子句,則顯示所有記錄;
?在 WHERE 表達式中,可以使用MySQL支持的函數或運算符。
(3)group by 語句對查詢結果分組:
[GROUP BY {col_name | position} [ ASC | DESC],...] ?
既可以指定列的列名(常用),也可以指定列的位置(它在select語句中字段的位置,從1開始);升序(默認)或降序排列;多個分組條件中間以逗號做分割。
?
?
(4) having語句設置分組條件:
? 只對某一部分記錄做分組: [HAVING where_condition]?
? ? ? ?一定要保證分組的條件要么為一個聚合函數(max/min/avg/sum/count...,永遠只有一個返回結果),要么這個字段必須出現在當前SELECT語句中。
? ? ? ?(if you got some expression#1 error, see?https://blog.csdn.net/fansili/article/details/78664267 )
?
?
?
?
(5) order by 語句對查詢結果排序: [ORDER BY {col_name | expr | position} [ASC | DESC],...]
同時以兩個字段排序:首先先看第一個字段能否排出想要的結果,如果可以則直接忽略第二個字段,否則再遵守第二個字段甚至第三個字段等等:
?
?
(6) limit語句限制查詢結果返回的數量:
? ? ? ? [LIMIT { [ offset,] row_count | row_count OFFSET offset} ] ?
第一種形式的語法結構比較常見
默認情況下返回所有的你要查找到的結果。
?
以后利用PHP進行分頁時就會用到這個語句進行分頁效果的實現。offset公式為(當前頁碼-1)*每頁所顯示的記錄數。
?
?
從第1行開始返回,返回2條記錄。
?
?
?
從第3條記錄開始,返回2條。記錄是從0開始編號的!!!
?
注意,我們例子中的id號和結果集中的排列順序沒有任何的聯系,只要它排在結果集中的第一個位置,它就對應是0;第二個位置就對應是1...,id號是100 還是1000都沒有任何關系。
?
?
[參考鏈接]? ?https://www.imooc.com/learn/122?
?
轉載于:https://www.cnblogs.com/jade-91/p/8681664.html
總結
以上是生活随笔為你收集整理的MySQL基础入门学习【7】查询表达式解析 SELECT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【vim使用】删除文本
- 下一篇: QT中VideoProbe的简介和实现