資源描述:
《關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第五章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL魯瑩5.1SQL概述SQL是英文StructureQueryLanguage的縮寫,作為關(guān)系數(shù)據(jù)庫管理系統(tǒng)通用的結(jié)構(gòu)化查詢語言,幾乎所有的關(guān)系型數(shù)據(jù)庫系統(tǒng)都支持它。由于SQL具有功能豐富、使用方式靈活、語言簡潔易學(xué)等突出特點,深受廣大用戶歡迎。SQL語言具有許多的優(yōu)點,概括地來講主要有以下幾點:1.SQL是一種一體化的語言。SQL包括了數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制等方面的功能。2.SQL語言是一種高度非過程化的語言。SQL沒有必要一步步告訴計算機“如何”去做,而只需要描述清楚用戶要“做什么”,由系統(tǒng)自動
2、完成全部工作。5.1SQL概述3.SQL語言非常簡潔。SQL語言功能強,但它只有為數(shù)不多的幾條指令;SQL語法也非常簡單,它很靠近英語自然語言。4.SQL語言可以直接以命令方式交互使用,也可以嵌入到程序設(shè)計語言中以程序方式使用。結(jié)構(gòu)化查詢語言SQL的格式SQL的格式:在SQL語言中查詢操作是用SELECT語句來完成的。它的基本格式如下:Select[distinct]*
3、<列表名>(*代表所有字段);From<表名>;[Where<條件表達(dá)式>;][groupby<分組屬性名>;]having<條件表達(dá)式>;[OrderBy<排序項目>[AS
4、C/DESC][,ASC/DESC]]比較運算符:=;LIKE;<>,!=,#;>=;<;<=。邏輯運算符:AND;OR;NOT;IN;NOTIN;EXISTS;UNION;INTERSECT;MINUS;5.2SQL的數(shù)據(jù)查詢功能WHERE:說明查詢條件GROUPBY:對查詢結(jié)果進(jìn)行分組HAVING:必須跟隨GROUPBY使用,它用來限定分組必須滿足的條件;ORDERBY:對查詢結(jié)果進(jìn)行排序,ASC升序,DESC降序,默認(rèn)是升序。5.2SQL的數(shù)據(jù)查詢功能5.2.1簡單查詢例一:從職工表中檢索出所有工資值。SELECT工資FROM職工例二:
5、從職工表中檢索出所有工資值,并去掉重復(fù)值。SELECTDISTINCT工資FROM職工例三:從職工表中檢索工資多于1230元的所有信息。SELECT*FROM職工WHERE工資>1230例四:從倉庫表中檢索所有元組。SELECT*FROM倉庫5.2.2簡單聯(lián)接查詢例一:檢索出工資多于1230元的職工號和他們所在的城市。SELECT職工號,城市FROM職工,倉庫;WHERE(工資>1230)AND(職工.倉庫號=倉庫.倉庫號)例二:找出工作在面積大于400的倉庫的職工號以及這些職工工作所在的城市。SELECT職工號,城市FROM倉庫,職工;WH
6、ERE(面積>400)AND(職工.倉庫號=倉庫.倉庫號)5.2.3嵌套查詢外層查詢依賴于內(nèi)層查詢的結(jié)果,而內(nèi)層查詢與外層查詢無關(guān)。例一:哪些城市至少有一個倉庫的職工工資為1250元?SELECT城市FROM倉庫WHERE倉庫號IN;(SELECT倉庫號FROM職工WHERE工資=1250)法二:聯(lián)接查詢SELECT城市FROM職工,倉庫WHERE職工.工資=1250;AND職工.倉庫號=倉庫.倉庫號例二:查詢所有職工的工資都多于1210元的倉庫的信息?SELECT*FROM倉庫WHERE倉庫號NOTIN;(SELECT倉庫號FROM職工WH
7、ERE工資<=1210);AND倉庫號IN(SELECT倉庫號FROM職工)例一:檢索出工資在1220元到1240元范圍內(nèi)的職工信息。SELECT*FROM職工WHERE工資BETWEEN1220AND1240SELECT*FROM職工WHERE(工資>=1220)AND(工資<=1240)例二:從供應(yīng)商關(guān)系中檢索出全部公司的信息,不要工廠或其他供應(yīng)商的信息。SELECT*FORM供應(yīng)商WHERE供應(yīng)商名LIKE“%公司”5.2.4幾個特殊運算符5.2.5排序例一:按職工的工資值升序檢索出全部職工信息。SELECT*FROM職工ORDERBY
8、工資例二:先按倉庫號排序,再按工資排序并輸出全部職工信息。SELECT*FROM職工ORDERBY倉庫號,工資5.2.6簡單的計算查詢用于計算檢索的常用函數(shù)是:COUNT(表達(dá)式)--計數(shù);SUM(表達(dá)式)--求和;AVG(表達(dá)式)--計算平均值;MAX(表達(dá)式)--求最大值;MIN(表達(dá)式)--求最小值。例一:求職工所有的工資總數(shù)。SELECTSUM(工資)FROM職工例二:求在WH1倉庫工作的職工的最低工資值。SELECTMIN(工資)FROM職工WHERE倉庫號=“WH1”例一:求每個倉庫的職工的平均工資。SELECT倉庫號,AVG(工
9、資)FROM職工GROUPBY倉庫號例二:求至少有兩個職工的每個倉庫的職工的平均工資。SELECT倉庫號,COUNT(*),AVG(工資)FROM職工;GROUPB