天天看點

DQL查詢資料

DQL查詢資料

指定查詢字段

-- 查詢全部的學生
SELECT * FROM `student`
           
-- 查詢指定字段
SELECT `studentno`,`studentname`FROM`student`
           
  • 可以給字段起别名,也可以給表起别名
-- 給結果起一個名字 AS
SELECT `studentno`AS 學号,`studentname`AS 學生姓名 FROM`student` AS s

           
-- 函數Concat(a,b)
SELECT CONCAT('姓名:',`studentname`)AS 新名字 FROM student

           

去重 distinct

  • 查詢哪些同學參加了考試——有成績

資料庫的列

查詢系統版本

select version()
           

計算

select 100*3-1 as 計算結果
           
  • 學員考試成績+1分檢視
SELECT `studentno`,`studentresult`+1 AS '提了1分' FROM result
           

資料庫中的表達式:文本值,列,NULL,函數,計算表達式,系統變量……

where條件子句

作用:檢索資料中符合條件的值

  • 邏輯運算符
運算符 文法 描述
and && 邏輯與
or

||

邏輯或
not ! 邏輯非

模糊查詢

運算符 文法 描述
is null a is null
is not null
between …and …
like a like b sql比對,如果a比對b,則結果為真
in a in(a1,a2…) 假設a在a1,或者a2……結果為真
  • %(代表0到任意個字元)
  • _(一個字元)
SELECT studentNo,`studentname`FROM`student`
WHERE`studentname`LIKE'張%'



SELECT studentNo,`studentname`FROM`student`
WHERE`studentname`LIKE'張_'


           

聯表查詢

  • join

    思路:

  • 分析需求,分析查詢的字段來自哪些表
  • 确定交叉點(這兩個表中哪個資料是相同的)

三種

  • inner join
SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM student AS s
INNER JOIN result AS r
WHERE s.`studentno`=r.`studentno`
           
  • right join
SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM `student` s
RIGHT JOIN `result` r
ON s.`studentno`=r.`studentno`
           
  • left join
SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM `student` s
LEFT JOIN `result` r
ON s.`studentno`=r.`studentno`
           
操作 描述
inner join 如果表中至少有一個比對,就傳回行
right join 會從右表中傳回所有的值,即使左表中沒有比對
left join 會從左表中傳回所有的值,即使右表中沒有比對
  • join on 連接配接查詢
  • where 等值查詢

自連接配接

自己的表和自己的表連接配接,核心:一張表拆為兩張一樣的表即可

DQL查詢資料

分成兩個表後:

DQL查詢資料

分頁和排序

排序一定要解除安裝分頁上面

  • 分頁 limit

    為什麼要分頁:

    • 緩解資料庫壓力
    • 好的使用者體驗

      文法:limit 目前頁,頁面的大小

      網頁應用:目前頁(n),總的頁數(資料總數/頁面大小),頁面的大小

limit 0,5 -- 1到5條資料
limit 1,5 -- 2到6條資料
           
  • 排序 order by
    • asc 升序
    • desc 降序

子查詢

本質:在where嵌套語句中嵌套一個子查詢語句

順序:由裡及外

where SubjectNo=(
	select SubjectNo from `subject`
	where SubjectName=`資料庫結構-1`
)
           

Select小結