<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
(Data Query Language:資料查詢語言)
-- 查詢所有的學生 select 欄位 from 表 select * from student -- 查詢指定欄位 select studentno,studentname from student -- 給結果起一個名字 , As,可以給欄位起別名,也可以給表起別名 select studentno as 學號,studentname as 學生姓名 from student select studentno 學號,studentname 學生姓名 from student -- 函數 concat(a,b) select CONCAT('姓名:',studentname) as 新名字 from student
語法:select 欄位 from 表
有時候,列的名字不是那麼的見名之意,我們可以用as給欄位起別名
欄位名 as 別名 或者是 表名 as 表別名
去重 distinct
作用:去除select查詢出來的結果中重複的資料,重複的資料只顯示一條
-- 查詢一下有哪些同學參加了考試 select * from result -- 查詢全部的考試成績 select studentno from result -- 查詢有哪些學生參加了考試 select distinct studentno from result -- 去重
資料庫的列(表示式)
select version() -- 查詢系統版本號(函數) select 100*3-2 -- 用來計算(表示式) select @@auto_increment_increment -- 查詢自增的步長(變數) -- 學生考試成績+1分檢視 select studentno,studentresult+1 as '提分後' from result
資料庫中的表示式:文字值,列,null,函數,計算表示式,系統變數
select 表示式 from 表
作用:檢索符合條件的值
搜尋的條件都是由一個或者多個表示式組成!結果都是布林值
邏輯運運算元
select studentno,studentresult from result -- 查詢考試成績在95~100之間的 -- and && select studentno,studentresult from result where studentresult>=95 and studentresult<=100 -- 模糊查詢(區間) select studentno,studentresult from result where studentresult between 95 and 100 -- ! not select studentno,studentresult from result where not studentno=1000
模糊查詢:比較運運算元
-- ===========模糊查詢======================== -- 查詢姓張的同學 -- like結合%(代表0到任意個字元) _(一個字元) select studentno,studentname from student where studentname like '張%' -- 查詢姓張的同學,名字只有兩個字 select studentno,studentname from student where studentname like '張_' -- ======in(具體的一個或者多個值)======== -- 查詢學號1000,1001的學生 select studentno,studentname from student where studentno in(1000,1001) -- 查詢在北京的學生 select studentno,studentname from student where address in('北京朝陽') -- ========null not null==================== -- 查詢地址為空的同學 null或者'' select studentno,studentname from student where address='' or address is null -- 查詢出生日期不為空的學生 select studentno,studentname from student where borndate is not null
-- 查詢參加考試的同學(學號,姓名,科目編號,分數) select * from student select * from result /*思路: 1.分析需求:分析查詢的欄位來自哪些表(連線查詢) 2.確定使用哪種連線查詢? 7種 確定交叉點,這兩個表中哪些資料是相同的 判斷的條件:學生表的studentno=成績表 studentno */ 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 as s right join result as r on s.studentno = r.studentno -- left join select s.studentno,studentname,subjectno,studentresult from student as s left join result as r on s.studentno = r.studentno
練習:
-- ===============聯表查詢================== -- 查詢參加考試的同學(學號,姓名,科目編號,分數) select * from student select * from result /*思路: 1.分析需求:分析查詢的欄位來自哪些表(連線查詢) 2.確定使用哪種連線查詢? 7種 確定交叉點,這兩個表中哪些資料是相同的 判斷的條件:學生表的studentno=成績表 studentno */ -- join(連線的表) on(判斷的條件) 連線查詢 -- where 等值查詢 select s.studentno,studentname,subjectno,studentresult from student as s inner join result as r where s.studentno=r.studentno select s.studentno,studentname,subjectno,studentresult from student as s inner join result as r on s.studentno=r.studentno -- right join select s.studentno,studentname,subjectno,studentresult from student as s right join result as r on r.studentno = s.studentno -- left join select s.studentno,studentname,subjectno,studentresult from student as s left join result as r on s.studentno = r.studentno -- 查詢缺考的同學(只要讓成績為null,就能找到) select s.studentno,studentname,subjectno,studentresult from student as s left join result as r on s.studentno = r.studentno where studentresult is null -- 查詢了參加考試的同學資訊:學號,學生姓名,科目名稱,分數 -- 表 student result subject -- 右查詢 -- 交叉點:學生表 studentno=成績表 studentno -- 成績表 subjectno=科目表 subjectno select s.studentno,studentname,sub.subjectname,studentresult from student as s right join result as r on r.studentno=s.studentno inner join `subject` as sub on r.subjectno=sub.subjectno -- 我要查詢哪些資料 select ... -- 從哪幾個表中查詢 from 表 xxx join 連線的表 on 較差條件 -- 假設存在一種多張表查詢,先查詢兩張表開始,然後再慢慢增加 -- from a left join b -- from a right join b
自連線
自己的表和自己的表連線;
核心:一張表拆分成兩張一樣的表即可
父類別表:
子類表
查詢父類別對應的子類關係
-- 查詢父子資訊:把一張表看為兩個一模一樣的表 select a.categoryname as '父欄目',b.categoryname as '子欄目' from category as a,category as b where a.categoryid = b.pid
排序
-- 排序:升序 ASC 降序DESC -- 通過哪個欄位排序,怎麼排 select s.studentno,studentname,subjectname,studentresult from student as s inner join result as r on s.studentno = r.studentno inner join `subject` as sub on sub.subjectno=r.subjectno where subjectname = '高等數學-1' order by studentresult DESC
分頁
-- 為什麼要分頁 -- 緩解資料庫的壓力,給人更好的體驗 ---瀑布流 -- 分頁,每頁顯示五條資料 -- 語法:limit 起始值,頁面的大小 -- 網頁應用:當前頁,總頁數,頁面的大小 -- limit 0,5 1~5條資料 -- limit 1,5 2~6條資料 select * from student limit 0,5 -- 第一頁 limit 0,5 (1-1)*5 -- 第二頁 limit 5,5 (2-1)*5 -- 第二頁 limit 10,5 (3-1)*5 -- 第N頁 limit (n-1)*5 -- pageSize:頁面的大小 -- (n-1)*pageSize:起始值 -- n:當前頁 -- 資料總數/頁面大小=總頁數
語法:limit (查詢起始下標,pageSize)
where (值是固定的,這個值是計算出來的)
本質:在where語句中巢狀一個子查詢語句
-- 查詢高等數學-1的所有考試結果(學號,科目編號,成績),降序排列 -- 方式1 select studentno,subjectno,studentresult from result as r inner join `subject` as sub on r.subjectno=sub.subjectno where subjectname='高等數學-1' order by studentresult DESC -- 方式2:使用子查詢 select studentno,subjectno,studentresult from result where subjectno=( select subjectno from `subject` where subjectname='高等數學-1' )order by studentresult DESC -- 查詢所有高等數學-1的學生的學號 select subjectno from `subject` where subjectname='高等數學-1' -- 查詢分數不小於80分的學生的學號和姓名 select studentno,studentname from student where studentno=( select distinct studentno from result where studentresult>=80 ) -- 查詢課程為高等數學-2並且分數不小於80分的同學的學號和姓名 -- 聯表查詢 select s.studentno,studentname from student as s inner join result as r on s.studentno=r.studentno inner join `subject` as sub on r.subjectno=sub.subjectno where subjectname='高等數學-2' and studentresult>=80 -- 子查詢 select DISTINCT s.studentno,studentname from student as s inner join result as r on s.studentno=r.studentno where studentresult>=80 and subjectno=( select subjectno from `subject` where subjectname='高等數學-2' ) -- 子查詢:(由裡及外) select studentno,studentname from student where studentno in( select studentno from result where studentresult>=80 and subjectno=( select subjectno from `subject` where subjectname='高等數學-2' ) )
到此這篇關於DQL資料查詢語句使用範例的文章就介紹到這了,更多相關DQL資料查詢內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45