MySQL(二)——DQL数据查询语言
文章目錄
- 1. DQL簡述
- 2. 指定查詢字段
- 3. where 條件子句
- 4. 聯表查詢
- 5. 分頁和排序
- 6. 子查詢
- 7. 分組和過濾
- 8. Select 小結
1. DQL簡述
Data Query LANGUAGE : 數據查詢語言
- 所有的查詢操作都用它 SELECT
- 簡單的查詢,復雜的查詢它都能做~
- 數據庫中最核心的語言,最重要的語句
- 使用頻率最高的語句
SELECT完整的語法
注意:[ ] 代表可選,{ } 代表必選
2. 指定查詢字段
(1)查詢全部的學生
語法:SELECT * FROM 表名
(2)查詢指定字段
語法:SELECT 字段 FROM 表名
(3)別名,給結果起一個名字
AS 可以給字段起別名,也可以給表起別名
語法:SELECT 字段1 AS 別名1 ,字段2 AS 別名2 FROM 表名 AS 別名
(4)函數 Concat(a,b)
(5)去重 distinct
作用:去除SELECT 查詢出來的結果中重復的數據,重復的數據只顯示一條
- 查詢全部的考試成績
- 查詢有哪些同學參加了考試
- 發現重復數據,去重
(6)數據庫的列 (表達式)
- 查詢系統版本 (函數)
- 用來計算 (表達式)
- 查詢自增的步長 (變量)
- 學員考試成績 + 1分查看
注意
數據庫中的表達式: 文本值,列,Null,函數,計算表達式,系統變量….
select 表達式 from 表
3. where 條件子句
作用:檢索數據中 符合條件 的值
搜索的條件由一個或者多個表達式組成!結果 布爾值
(1)邏輯運算符
盡量使用英文字母
- 查詢考試成績在 95~100 分之間
- 模糊查詢(區間)
- 除了1000號學生之外的同學的成績
(2)模糊查詢 : 比較運算符
-
查詢姓劉的同學 ,與like結合 %(代表0到任意個字符)
-
查詢姓劉的同學, _(一個字符) 名字后面只有一個字的
-
查詢姓劉的同學, __(一個字符) 名字后面只有兩個字的
-
查詢名字中間有嘉字的同學 %嘉%
-
查詢 1001,1002,1003號學員
-
查詢在安徽的學生
-
查詢地址為空的學生 null ’ ’
-
查詢有出生日期的同學 不為空
4. 聯表查詢
-
JOIN 對比
-
三者區別
-
練習一
查詢參加了考試的同學:學號,姓名,科目編號,分數
思路 ① 分析需求,分析查詢的字段來自哪些表,(連接查詢)
②確定使用哪種連接查詢? 7種
③確定交叉點(這兩個表中哪個數據是相同的)
④判斷的條件 : 學生表的中 studentNo = 成績表 studentNo
- 練習二
查詢了參加考試的同學信息: 學號,學生姓名,科目名,分數
思路①分析需求,分析查詢的字段來自哪些表, student、result、subject(連接查詢)
② 確定使用哪種連接查詢? 7種
③確定交叉點(這兩個表中哪個數據是相同的)
④判斷的條件 : 學生表的中 studentNo = 成績表 studentNo
總結:我要查詢哪些數據 select …
FROM 表 從哪幾個表中查
XXX Join 連接的表
on 交叉條件
假設存在一種多張表查詢,慢慢來,先查詢兩張表然后再慢慢增加
5. 分頁和排序
(1)排序
- 升序 ASC , 降序DESC
- ORDER BY 通過哪個字段排序,怎么排
- 練習:查詢的結果根據 成績降序 排序
(2)分頁
分頁原因:緩解數據庫壓力,給人的體驗更好, 瀑布流
語法: limit 起始值,頁面的大小
第N頁 limit(n-1)* pageSize,pageSize
(n-1)* pageSize:起始值
pageSize:頁面大小
n :當前頁
數據總數/頁面大小 = 總頁數
6. 子查詢
本質 : 在where語句中嵌套一個子查詢語句
-
練習一:查詢 數據庫結構-1 的所有考試結果(學號,科目編號,成績),降序排列
方式一: 使用連接查詢
方式二: 使用子查詢(由里及外)
-
練習二:查詢課程為 高等數學-2 且分數不小于 80 的同學的學號和姓名
方式一:使用連接查詢
方式二:使用子查詢(由里及外)
7. 分組和過濾
核心: 根據不同的課程分組
GROUP BY…
HAVING …
練習:查詢不同課程的平均分,最高分,最低分,平均分大于80
8. Select 小結
總結
以上是生活随笔為你收集整理的MySQL(二)——DQL数据查询语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL(一)——安装、创建数据库表、
- 下一篇: MySQL(三)——函数、事务(ACID