结构化查询语言.ppt
《结构化查询语言.ppt》由会员分享,可在线阅读,更多相关《结构化查询语言.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构化查询语言 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望引言SQL是什麼是什麼?當用戶發出一項當用戶發出一項查詢查詢,便可從數據庫檔,便可從數據庫檔內獲得若干資料。內獲得若干資料。1這項這項查詢查詢是根據用戶所提供的條件是根據用戶所提供的條件(condition)所作出的一項檢索。所作出的一項檢索。用戶只須列明查詢的用戶只須列明查詢的條件條件,而不須要實際,而不須要實際知道有關的檢索方法。知道有關的檢索方法。MySQL2引言SQL的概念的概念用戶先列出數據庫
2、檔及查詢的條件。用戶先列出數據庫檔及查詢的條件。1查詢所得的結果會以表格的形式顯示。查詢所得的結果會以表格的形式顯示。可查問統計數項。可查問統計數項。SQL 程序便會在這數據庫檔內檢查每筆程序便會在這數據庫檔內檢查每筆記錄是否符合這項條件,並把有關的資記錄是否符合這項條件,並把有關的資料顯示出來。這個過程稱為檢索。料顯示出來。這個過程稱為檢索。MySQL3基本結構2一般語法一般語法SELECT,ALL/DISTINCT,*,SELECT,ALL/DISTINCT,*,AS,FROM,WHEREAS,FROM,WHERE比較比較IN,BETWEEN,LIKE%_IN,BETWEEN,LIKE%_
3、群組群組GROUP BY,HAVING,GROUP BY,HAVING,COUNT(),SUM(),AVG(),MAX(),COUNT(),SUM(),AVG(),MAX(),MIN()MIN()顯示次序顯示次序ORDER BY,ASC/DESCORDER BY,ASC/DESC邏輯運算符邏輯運算符AND,OR,NOTAND,OR,NOT輸出輸出CREATE TABLE AS CREATE TABLE AS MySQL4欄名欄名類型類型欄寬欄寬內容內容id數字4學生編號name字符10學生名字dob日期8出生日期sex字符1性別:M/Fclass字符2班別hcode字符1社名:R,Y,B,Gd
4、code字符3地區碼remission 邏輯1學費減免mtest數字2數學測驗分數2Table:STUDENT實例:學生個人資料實例:學生個人資料MySQL5欄橫列2Table:STUDENT實例:學生個人資料實例:學生個人資料表格MySQL6一般語法ISELECT ALL/DISTINCTALL/DISTINCT expr1expr1 ASAS col1col1,expr2expr2 ASAS col2col2 FROM tablenametablename WHERE conditionconditionSELECT.FROM.WHERE.MySQL7一般語法ISQL 程序會從數據庫檔 t
5、ablename 選取符合條件的橫列(row)並以表格的格式顯示。表達式 expr1,expr2 可以是(1)字段(2)以函數和字段組成的表達式SELECT ALL/DISTINCTALL/DISTINCT expr1expr1 ASAS col1col1,expr2expr2 ASAS col2col2 FROM tablenametablename WHERE conditioncondition而 col1,col2 是表達式 expr1,expr2 在輸出結果的表格內的欄名。MySQL8一般語法I選項 DISTINCT 會把重覆出現的橫列刪去(即只顯示一次),而選項 ALL 則會把所有
6、重覆的保留。條件 condition 可以是(1)等式或不等式(2)字符串的比較使用邏輯運算符 AND,OR,NOTSELECT ALL/DISTINCTALL/DISTINCT expr1expr1 ASAS col1col1,expr2expr2 ASAS col2col2 FROM tablenametablename WHERE conditionconditionMySQL9一般語法I例 1求出所有學生的資料。SELECT*FROM student結果結果MySQL10一般語法I例 2求出 1A 班學生的名字和社名。SELECT name,hcode,class FROM stude
7、nt WHERE class=1AClass1 1A A1 1A A1 1B B1 1A A1 1B B :Class1 1A A1 1A A1 1B B1 1A A1 1B B :class=1A逐一檢查逐一檢查MySQL11一般語法I結果結果選擇三欄選擇三欄 Class1 1A A1 1A A1 1B B1 1A A1 1B B :Class1 1A A1 1A A1 1A A1 1A A1 1A A :hcodenamePeterPeterMaryMaryJohnnyJohnnyLukeLukeBobbyBobby :R RY YG GG GB B :MySQL12一般語法I例 3求出紅
8、社社員的居住地區。SELECT DISTINCT dcode FROM student WHERE hcode=R結果結果MySQL131 1B B 女生的條件女生的條件:1)1)class=1Bclass=1B2)2)sex=Fsex=F3)3)符合以上兩項條件符合以上兩項條件(ANDAND運算符運算符)一般語法I例 4求出1B班女生的名字和年齡。MySQL14一般語法I例 4求出1B班女生的名字和年齡。SELECT name,(2010-year(dob)AS age FROM studentWHERE class=1B AND sex=F結果結果MySQL15一般語法I例例 5 5求出求
9、出1 1A A班班沒有學費減免的學生的名字和編號。沒有學費減免的學生的名字和編號。SELECT name,id,class FROM student WHERE class=1A AND remission!=1結果結果MySQL16比較IIexprexpr IN(IN(value1value1,value2value2,value3value3)exprexpr BETWEEN BETWEEN value1value1 AND AND value2value2exprexpr LIKE%_ LIKE%_MySQL17比較II例例 6 6求出所有出生於求出所有出生於星期三星期三或或星期六星期六
10、的學生。的學生。SELECT name,class,dayofweek(dob)AS bdate FROM studentWHERE bdate IN(4,7)結果結果MySQL18比較II例 7求出所有不是在一月、三月、六月或九月出生的學生。SELECT name,class,dob FROM student WHERE MONTH(dob)NOT IN(1,3,6,9)結果結果MySQL19比較II例 8求出1A班的學生名字,其數學測驗分數界乎於80至90分之間。SELECT name,mtest FROM student WHERE class=1A ANDmtest BETWEEN 8
11、0 AND 90結果結果MySQL20比較II例 9求出所有學生其名字是以T為起首。SELECT name,class FROM student WHERE name LIKE T%結果結果MySQL21比較II例10求出所有紅社社員其名字的第二個字母是a。SELECT name,class,hcode FROM student WHERE name LIKE _a%AND hcode=R結果結果MySQL22群組IIISELECT.FROM.WHERE SELECT.FROM.WHERE conditioncondition GROUP BY GROUP BY groupexprgroupe
12、xpr HAVING HAVING requirementrequirement 群組函數:群組函數:COUNT(),SUM(),AVG(),MAX(),MIN()COUNT(),SUM(),AVG(),MAX(),MIN()GROUP BY groupexpr 列出群組組成所依照的表達式。一般都是數據庫檔的一欄。WHERE condition 列出個別橫列所須符合的條件,而 HAVING requirement 則列出個別群組須符合的條件。MySQL23COUNT()COUNT()1ACOUNT()COUNT()1BCOUNT()COUNT()1C1A1B1CStudentStudentcl
13、ass1 1A A1 1A A1 1A A1 1B B1 1B B1 1B B1 1B B1 1B B1 1B B1 1C C1 1C C1 1C C數算數算1A班班的人數的人數數算數算1B班班的人數的人數數算數算1C班班的人數的人數群組group byIII例11求每班的人數。MySQL24群組IIISELECT class,COUNT(*)FROM student GROUP BY class例例1111求出求出每班每班的人數。的人數。結果結果MySQL25AVG()AVG()AVG()1A1B1CStudentStudentclass1 1A A1 1A A1 1A A1 1B B1 1
14、B B1 1B B1 1B B1 1B B1 1B B1 1C C1 1C C1 1C C求求1A班班的平均分的平均分求求1B班班的平均分的平均分求求1C班班的平均分的平均分例例1212求求每班每班的數學測驗的數學測驗平均平均分。分。群組IIIMySQL26群組III例12求出每班的數學測驗平均分。SELECT class,AVG(mtest)FROM studentGROUP BY class結果結果MySQL27群組IIISELECT dcode,COUNT(*)FROM student WHERE sex=F GROUP BY dcode結果結果例13求出每一居住地區的女生數目。MySQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 查询 语言
限制150内