版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、SQL根底知識梳理數(shù)據(jù)庫與SQL (2021.03)典掛座(CE ) 7-RC* T*EIE *古餐七1-刪眸布AL'l£強(qiáng)君、FLU v列名七猿呼:, 更新表ALTTH TABLE *表暫 DROF> COLUMN 凈hB>:刪除寫五、刪除就更邦表J主武 做CRE-H ZAT<BA5E門 創(chuàng)辟敬艇封拈定我語言IDDL.三、SQL概要三.一漕句種類EG.泊可耨其CRbA.TEALTRsSJEC-巨幗悔作湛言:數(shù)據(jù)任機(jī)帝君:u二L:分告i;給艮大小寫不用感霆議.英享J耳NEZP-PFTT一L_l _COMM -F.ULL 日近FFV71KF常卻的書E方式宇谷M
2、和日釧用單引導(dǎo)后蹦J目錄What's 數(shù)據(jù)庫數(shù)據(jù)庫結(jié)構(gòu)SQL概要創(chuàng)立數(shù)據(jù)庫與表刪除和更新表、What's 數(shù)據(jù)庫- 簿.1 .數(shù)據(jù)庫(Database , DB ):將大量數(shù)據(jù)保存起來,通過計算機(jī)加工而成的可以進(jìn)行高效訪問的數(shù)據(jù)集合.如:大型-銀行存儲的信息,小型2 .數(shù)據(jù)庫治理系統(tǒng)(Batabase Management System , DBMS ):用來治理數(shù)據(jù)庫的計算機(jī)系統(tǒng).3 .關(guān)系型數(shù)據(jù)庫(Relational Database , RDB ):目前應(yīng)用最廣泛的數(shù)據(jù)庫.4 .結(jié)構(gòu)化查詢語言(Structured Query Language , SQL ):專門用于
3、操作 RDB.5 .常見的 5 種關(guān)系型數(shù)據(jù)庫治理系統(tǒng)( Relational Database Management System, RDBMS ):Oracle Database:甲骨文公司SQL Server :微軟公司DB2 : IBM公司PostgreSQL :開源MySQL :開源、數(shù)據(jù)庫結(jié)構(gòu)1 .效勞器:用于接收并處理其它程序發(fā)出的請求的程序(軟件),或者是安裝此類程序的設(shè)備(計算機(jī)).2 .客戶端:向效勞器發(fā)出請求的程序(軟件),或者是安裝此類程序的設(shè)備(計算機(jī)).聲iftEkoliin_i A.(MIIBIIABIIIB&IIBIIMIIIIBUJ EpLolkm_n
4、iejL in_bujiLruihenb a 1 _ 七二slti i r e_tarJ<at or ok uL i1i oooi慶眠10005002OO®-O0-2OE.00匕打孔器作處用品500能0200S-03-113coos運(yùn)動T恤衣服40002800MULL4口 004藁刀居居用具300023002021-09-2050005高壓鍋引房用具6 S00*5D002005-01-156OOM旦子期房用具500HULLM09-09-207coor擦菜板財醫(yī)用具3809.2006-04-26eooos圓珠筆林公用品100 1KULL2021-11-11(T -FT )列名單元
5、格行記錄3.表table :類似 Excel ,由行和列組成的二維表.4.字段:表的列垂直方向.5.記錄:表的行水平方向.【注意】關(guān)系數(shù)據(jù)庫必須以行為單位進(jìn)行數(shù)據(jù)讀寫.6.單元格:行列交匯處.【注意】與Excel不同,一個單元格只能輸入一個數(shù)據(jù).三、SQL概要1.SQL語句:用關(guān)鍵字、表名和列名等組合而成的一條語句.2.3種SQL語句種類:(1 ) DDL ( Data Definition Language,數(shù)據(jù)定義語言:創(chuàng)立、刪除或修改數(shù)據(jù)庫以及數(shù)據(jù)庫中的表等對象.CREATE :創(chuàng)立數(shù)據(jù)庫和表等對象DROP :刪除數(shù)據(jù)庫和表等對象ALTER :修改數(shù)據(jù)庫和表等對象(2 ) DML ( D
6、ata Manipulation Language,數(shù)據(jù)操作語言:查詢或修改表中的記錄.SELECT :查詢表中的數(shù)據(jù)INSERT :向表中插入數(shù)據(jù)UPDATE :修改表中的數(shù)據(jù)DELETE :刪除表中的數(shù)據(jù)(3) DCL Data Control Language ,數(shù)據(jù)限制語言:確認(rèn)或取消對數(shù)據(jù)庫中的數(shù)據(jù)變更的執(zhí)行操作,以及對用戶的操作數(shù)據(jù)庫中的對象權(quán)限進(jìn)行設(shè)定.COMMIT :確認(rèn)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的變更ROLLBACK :取消對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的變更GRANT :賦予用戶的操作權(quán)限REVOKE :取消用戶的操作權(quán)限【備注】DML使用最頻繁.3.SQL語句書寫標(biāo)準(zhǔn):以分號;結(jié)尾;大小
7、寫不敏感,不區(qū)分關(guān)鍵字的大小寫;【注意】插入到表中的數(shù)據(jù)是區(qū)分大小寫的,如“HI: "Hi和“hi都不同.該系列隨筆將采用關(guān)鍵字大寫,表名和列名的首字母大寫的格式.單詞使用半角空格或換行符隔開4.常數(shù)的書寫方式:字符串、日期:用單引號括起來,如Hello' , '2021-09-24'.數(shù)字:直接書寫,不用加單引號,如: 5.四、創(chuàng)立數(shù)據(jù)庫與表1 .數(shù)據(jù)庫創(chuàng)立:- 語法:CREATE DATABASE < 數(shù)據(jù)庫名稱>CREATE DATABASE Shop - 創(chuàng)立名為Shop 的數(shù)據(jù)庫匚孟送號皆出罵' ?L 0,SQL Server 1
8、2.04100.1 - DESK口二數(shù)據(jù)恚1± 口基統(tǒng)數(shù)據(jù)庫0 苑據(jù)岸快照1+ J Reporterve-r® |j R epc rtS erve rTem p OBi土 J Sliop® J SQL根底教程F- | TaskMarage田 J TeschV&urselfSQL1+ J Wen.Blog£ j VJen.SchedulerMariager田L(fēng)J平安性 iti i漏空獸k品2 .表的創(chuàng)立-語法:- -CREATE TABLE < 表名 >- -(- -<列名1> <數(shù)據(jù)類型 > < 約束&g
9、t;,- -<列名1> <數(shù)據(jù)類型 > < 約束>,表約束1>,(shohin_idCHAR 4)NOT NULL,shohin_meiVARCHAR 100 )NOT NULL,shohin_bunruiVARCHAR 32 )NOT NULL,hanbai_tankaINTEGER ,shiire_tankaINTEGER ,torokubi DATE ,PRIMARY KEY (shohin_id)-)表約束2>,創(chuàng)立名為Shohin的表 CREATE TABLE Shohin;up Lj莖境衰+ _| FileTables -Ml dba
10、.Shahira? shohin id (PK,匚島r* H shohir_mei varchar 司 shohin bunrui fvarcL 司 hdnbai tanka (irrt, m 同 shiire_tanka fint null 3 taro ku bi (dat&. null)口口 10 田田田田i+)朝I口統(tǒng)計信息+ 口視圖3 .命名規(guī)那么:只能使用半角英文字母、數(shù)字、下劃線(_)作為數(shù)據(jù)庫、表和列的名稱;標(biāo)準(zhǔn)要求命名以半角英文字符開頭;名稱不能重復(fù).4 .數(shù)據(jù)類型的指定:聲明該列的數(shù)據(jù)類型,是一種約束.5 .數(shù)據(jù)類型介紹:INTEGER :整型,意味不能存儲小數(shù);C
11、HAR :字符串型,如 CHAR (10)和CHAR (100 )中的括號表名該列可以存儲的字符串的最大長度.它是定長字符串,如CHAR(8) 表示在列中插入'abc'時會自動保存成'abc '(后面5個半角空格)的形式;VARCHAR :字符串型,類似 CHAR ,不同的是它是何變長字符串,如VARCHAR(8) 在插入abc',保存的就是字符串DATE :日期類型;'abc'6 .約束:非空約束:NULL是空白(無記錄)的意思的關(guān)鍵字,NOT NULL 表示必須輸入的約束.主鍵約束:主鍵是可以確定一行數(shù)據(jù)的列,一般通過它取特定行的數(shù)據(jù)
12、,它是唯一的,不允許重復(fù).非空約束一 創(chuàng)立名為Shohin的去 CREATE TABLE Shahin3hoh_in_id shohin_neiEhohiii_bunrui hanbaL_tanka shii r e:_ 七 ankai torokuliiCHAR 4) VARCHAR (10C VilRCHAK(320 INTEGER , INTEGER , LATE ,NOT JTULL,I»r KULL,EJO1T NULL,I PRIMARY KEY (shchin id、王鍵約束五、更新和刪除表1 .刪除表- 語法:DROP TABLE < 表名DROP TABLE
13、Shohin; -刪除名為 Shohin 的表【注意】被刪的表,無法恢復(fù).2 .更新表(1 )添加列- 語法:ALTER TABLE < 表名> ADD < 列名 ><類型>ALTER TABLE ShohinADD Shohin_mei_KanaVARCHAR( 100 );- 在 Shohin中添力口名為 Shohin_mei_Kana 類型為 VARCHAR(100)的歹U(2)刪除列- 語法:ALTER TABLE < 表名 > DROP COLUMN < 列名 >ALTER TABLE Shohin DROP COLUMNS
14、hohin_mei_Kana; - 刪除 Shohin 表中名為 Shohin_mei_Kana的歹U【注意】表定義變更后無法恢復(fù).SQL根底知識梳理二壁御舟誼的查詢根底鄱睇的所有列星號列劇宮 美意亨一、SLLtC I詣句根底二:期AS教學(xué)夠賒空復(fù)行- 加字 DISTINCTiSBIS 口 知察門*麗E施注日卑打空年石算符-查詢根底、算十包算符和比擬運(yùn)算招括me 爐NULL悔俁用法MGTAMDDR三、邏示運(yùn)算符君NULL C|電白 IS NULL 愷 NOT NULL宿號L T 1唱卷優(yōu)火版目錄?SELECT語句根底?算術(shù)運(yùn)算符和比擬運(yùn)算符?邏輯運(yùn)算符一、SELECT語句根底1.查詢指定列:S
15、ELECT 關(guān)鍵字-語法:-SELECT < 列名 >,-希望查詢列的名稱-FROM <表名 >-指定選取數(shù)據(jù)的表FROMShohin;-從Shohin 中取3列SELECT shohin_id, shohin_mei, hanbai_tanka -列的順序可以任意指定,逗號",分隔,查詢結(jié)果的順序和 SELECT子句中的順序相同R結(jié)典消息shohin_i d5hohin_ftei1"OOL曲100020002打孔器50030003運(yùn)動T恤400040001兼力300060005昌也情68006oooe里子50070007擦菜板BSOoooa圓珠筆1
16、002 .查詢表的所有列:星號* 語法-SELECT星號*代表所有列-FROM < 表名 >13結(jié)果二消息shohindshohinjieihanbai_tankashi i rc_ttoruknbi12000100021曲打孔器戒服辦公用品1000500500320£009-09-202021-09-1130003運(yùn)動刖農(nóng)噩40002800ITULL40004菜刃廚房用具300028002021-0-2050005高壓鍋廚房用具C30050002021-01-15G0006尺子廚房用具500NULL2CCK-03-2010007擦菜板廚房用具8807902021-0-2
17、8g0008圓侏筆辦公用品LOOIBLL2021-11-11【備注】使用星號* 的話就無法設(shè)定列的顯示順序3 .為列設(shè)定別名:AS關(guān)鍵字SELECT shohin_id AS Id, shohin_meiAS Name, shiire_tanka PriceFROMShohin; -不用 AS關(guān)鍵字也可以口結(jié)果口消息IdN川h ePri ce1i cool恤5002C0C2打乳器32030003運(yùn)動T恤260040004菜打第006OOE高E輛50006000$尺子NULL7ooor麻板790'8ooos圓I朱筆NULLAS '名稱',shiire_tanka價格
18、9;FROM Shohin;設(shè)定漢語別名:加上雙引號"或單引號二結(jié)果_J消息編號名賽價格1Q01J T'ttj20002打孔器32030003運(yùn)開工恤2300q叩.4菜刀.50005高壓耦60006叉子ITULL70007榨菜根790g0008圓珠筆1TULLSELECT shohin_id AS "編號",shohin_mei4 .常數(shù)的查詢SELECT '產(chǎn)品AS Product,-' 產(chǎn)品:字符串常數(shù)38 AS Price,- 38:數(shù)字常數(shù)'2021-09-30' AS '生產(chǎn)日期-'2021-02-
19、24':日期常數(shù)U結(jié)果匕消息frolic t Frice生產(chǎn)日期1 產(chǎn)品 j 3S 201G-09-30 1 【備注】字符串和日期使用單引號.5 .從結(jié)果中刪除重復(fù)行:DISTINCT結(jié)果為消息stiohiRsKokin_m tlxkoki rt_bunT uikAnbii_t 4iJkaEkiire_tMJks1t or o k ul i1(0001T恤衣服LOGO50D2021-06-20Z0002打孔器辦公用品5003202021-09-1130o(b運(yùn)動T恤衣服40002mNUIX4004鉆國房用具30002800£0979-2.5ore高壓倒廚局用具66005000
20、&0006叉子噴德用具500NULL2021-09-207007榨菜板廚房用具SBO?302021-94-288WK副程辦公用品IQQ1MX2W9-11-11FROMdbo.Shohin;SELECT DISTINCT shohinbunrui口結(jié)果Li消息whohi uxir uiiimm «« wbiibiiiI辦公用品屬啟用具我服使用DISTINCT 移除shohin bunrui 列中的重復(fù)數(shù)據(jù)(2) DISTINCT 對NULL類型的處理:存在多條NULL值的行時,會名合為一條NULL數(shù)據(jù).FROM dbo.Shohin;SELECT DISTINCT s
21、hiiretanka口結(jié)果U消息fhi1full2裳口3E00479052000£5000(3)多列之前使用DISTINCTSELECT DISTINCT shohin_bunrui, torokubiFROM dbo.Shohin口結(jié)果消息sh*hirL_hiiriruitwQuhi1疝茗用寓a. .ab.asa - asa.d.1ins -s-iiBiB,200S-03-11七辦公用品200-11-113廚房用具2WS-O4-234因房用具2C09-01-155國房用具2003-09-206衣朋ML7衣朋2003-09-20DISTINCT 會將多個列的數(shù)據(jù)進(jìn)行組合,將重復(fù)的數(shù)據(jù)
22、結(jié)合為一條.【注意】Distinct關(guān)鍵字只能用在第一個列名之前.6.篩選記錄:WHEREWHERE子句中可以指定 某一列的值和這個字符串相等 或者 某一列的值大于這個數(shù)字 等條件,找出只符合該條件的記錄.-語法:-SELECT < 列名 >,.-FROM表名>-WHERE條件表達(dá)式;1|l n Bill IBM Jill. Mil0001:T恤衣服 *'一 900Z0 09-09-202ODOZ打孔器辦公用品痂320zoqMMl3口口 Q3運(yùn)如恤底服 /40002800ffULL40004菜力國房用具300026002021-09-2050005國房用具600050
23、002021-01-15G0006尺子廚房用具5 口口WULL2021-09-20?0007擦菜板國醫(yī)用具880TOO2021-04-288OOC0圄珠簞辦公用品100HULL0000-11-11J結(jié)果消息篩選出“衣服的記錄SELECT shohin_id, shohin_mei, shohin_bunruiFROMdbo.Shohin WHEREshohin_bunrui='衣服'-shohin_bunrui =衣服'為條件表達(dá)式國結(jié)果 消息Elohin_iisKohin_mftiT恤shfihin_bnnrui 衣服20003運(yùn)動口恤選取行之后,再輸出列【備注】WH
24、ERE子句:首先通過該子句查詢出符合指定條件的記錄,再選取出SELECT語句指定的列.【注意】帖QL子句的書寫格式是固定的,不能隨意更改.如WHERE子句必須緊跟在 FROM 子句后.7.注釋的寫法注釋對于SQL的執(zhí)行沒有任何影響.-單行注釋/*多行注釋*/算術(shù)運(yùn)算符和比擬運(yùn)算符1 .算術(shù)運(yùn)算符SELECT shohin_mei, hanbai_tanka, hanbai_tanka* 2 AS 'hanbai_tanka_x2'FROMdbo.Shohin;二結(jié)果消息1skolil.n._iri eikanbal_tazJ<aUh1000h.anLai_taiJkai_
25、x:2ZOOO理2打孔器500woo3運(yùn)動理4000sooo4菜刀300050005惠壓我600013600曳子5gIgQ7擦菜板鴕.11708周珠望100200商品單價的兩倍四那么算術(shù)運(yùn)算符含義運(yùn)算符加法+減法-乘法*除法/括號""'用以提升表達(dá)式的優(yōu)先級.2 .需要注意NULLSELECT 5 + NULL, 10 - NULL, 1 * NULL, 4 / NULL, NULL / 9;m結(jié)果與消息型哆_(dá)優(yōu)列名無列名無手帽府恪L | IUJLL | HULL HULL 3IULL:KULL【備注】所有包含NULL的計算,結(jié)果肯定為NULL.3 .比擬運(yùn)算符比擬
26、運(yùn)算符運(yùn)算符 含義=相等<>不等>=><=小于等于<小于-例如1:SELECT shohin_mei, shohin_bunruiFROM dbo.Shohin WHEREhanbai_tanka = 500 ;日結(jié)果啟消息Ishoki « i玉hch i1 行乳鎏i辦公用品kas1* imi iil> iual2 支子 廚房用具選取hanbai_tanka 列為500 的記錄-例如2SELECT shohin_mei, shohin_bunruiFROM dbo.ShohinWHEREhanbai_tanka<> 500 ;-例
27、如3SELECT shohin_mei, shohin_bunruiFROM dbo.ShohinWHEREhanbai_tanka!= 500 ;1恤衣服2運(yùn)動T恤衣服3菜刀用房用具4高壓浦廚房用具6麒板凰店用具6國珠第辦公用品hanbaitanka歹U的值不是 500El結(jié)果消息選取的記錄3 .對字符串使用不等號時的考前須知'緒果口消息-例如4shiiretankaSELECT *FROM dbo.ShohinWHEREhanbaitankash«hin_nishflhin_tynruishi ire_tinlatorlubi10001T燦衣服1000EOO200-09-
28、2020003運(yùn)如恤礴如002800KULL30005曷壓港廚房用具猊道50m200&-01-15>=500 ;創(chuàng)立表原圖-例如:選取出大于2'的數(shù)據(jù)的 SELECT 語句 SELECT * FROM dbo.CharsWHEREchr > "2'【注意】hr為字符串類型,對字符串類型的數(shù)據(jù)進(jìn)行大小比擬時,跟數(shù)字不一樣.4 .不能對NULL使用比擬運(yùn)算符例如 1: SELECT shohin_mei, shiire_tankaFROMdbo.Shohin WHEREshiiretankaNULL;例如 2SELECT shohin_mei, shi
29、ire_tankaFROM dbo.Shohin WHEREshiiretankaIS NULL;例如 3SELECT shohin_mei, shiire_tankaFROM dbo.Shohin WHEREshiiretankaIS NOT NULL;-錯誤的SELECT語句-選取NULL的記錄-選取不為NULL的記錄skokin nteishi ire 七mk、skckin me i1 與子E 浦棟選shi irE.+ aiJci NULLshi1! T恤50023行孔器運(yùn)動r恤320230(545菜刀高壓鍋2000500.6腹板790IS NOT NULL .【注意】望選取 NULL記
30、錄時,使用IS NULL ;希望選取不是 NULL的記錄時,使用三、邏輯運(yùn)算符1 .NOT 運(yùn)算符:取反-例如:SELECT *FROM dbo.Shohin WHERE NOT hanbai_tanka >= 1000;-等價于 hanbai_tanka < 100023緒果Lj消息1shohin_i d;打孔能sliohin_Bunrui 辦公用品hinlsi_taDJra5口口shi irft_tarJta非Ut olrtiE i2005-03-11QOOZ20006叉子國店用具500mi2021-03-203QQQ7撐菜板廚房用具斷年口E0U5-C4-E340003圖珠筆辦
31、公用品100HULL2006-11-11取 hanbai_tanka 列不大于 1000 的記錄(hanbai_tanka < 1000)2 .AND運(yùn)算符和OR運(yùn)算符AND運(yùn)算符:并且,在兩側(cè)的查詢條件都成立時整個查詢條件才成立.OR運(yùn)算符:在兩側(cè)的查詢條件就算只有一個成立時整個查詢條件都成立.-例如SELECT shohin_mei, shiire_tankaFROMdbo.Shohin WHEREshohin_bunrui ='廚房用具'AND hanbai_tanka >= 3000 ;國結(jié)果魚消息muBim jiii. mii uh mu wi muy1
32、醫(yī)4_ _ J 2SOO2 KEffi5000SELECT shohin_mei, shiire_tankaFROMdbo.Shohin WHEREshohin_bunrui ='廚房用具'OR hanbai_tanka >= 3000 ;國結(jié)果U消息ski占1運(yùn)動丁恤 E300菜力2BOO50004父子mmE擦菜板790【備注】多個查詢條件進(jìn)行組合時,需要使用 AND運(yùn)算符或者OR運(yùn)算符.2.通過括號進(jìn)行強(qiáng)化-例如1SELECT shohin_mei,shohin_bunrui,torokubiFROM dbo.ShohinWHEREshohin_bunrui =
33、9;辦公用品'AND torokubi = '2021-09-11'OR torokubi = '2021-09-20' 盅結(jié)果Ea消息:shchin_ineishoh i n_b unriiitorolcubi1"恤衣服2C09-C9-2C2、百元露辦公用品3009-C9-1L3菜刀I國房用具2CD9-09-204叉子困席用具2C09-09-20-例如 2SELECT shohin_mei,shohin_bunrui,torokubi FROM dbo.Shohin WHEREshohin_bunruiAND (torokubi = '
34、;2021-09-11'OR torokubi = '2021-09-20');m -期結(jié)果必消i h«hi n_司生 islski ubinirui t okub i1 面乳至 1辦公用品200MS-L1Liimjiihisain mu lluuiii lui inal辦公用品OR運(yùn)算時可以使用括號.【備注】AND運(yùn)算優(yōu)先于OR運(yùn)算,想要優(yōu)先執(zhí)行SQL根底知識梳理三-聚合和排序三.為索臺結(jié)果指定條件SELECT擅行.順序 EOMW-皿84包切的ESI 於和AVlj一、北花講行萍告直詢Max 提 *大MIN緊1修飾史.苴啟子句 BQ GROUP 6y一行達(dá)SE
35、LECT父利鼻 2".F5.ZK1表由;WHEHE 4襲達(dá)式上atup BE4號?每二時4JU卷聚介和排序二.對表進(jìn)行分阻攀合號期到CftQUP BY子句#15定的列在 j r子句中書寫了京童論列易* 口在t;ROlJPHY?勺申雪彳麻剜者在WHERE字句中能用翼合用效WWERJgHAWING字句0F&EF5ET四、對查詢給果逛行排序美 iirrFftQMFtl 1 - 1 1Gltmjpa子句不熊使用StLCCT子句中應(yīng)火的剛落,.子融丁,. 子五萬就顰六說.,二外汨的苫金只有£曰£仃孑句口 HMMS子句£以及31而6¥子司中荒坪使用
36、柴合國一再讀才當(dāng)?shù)┕b看1、. <4利國?二,IHH假設(shè)?-GH-ZO? BV之寶由二下«,上昌衛(wèi)手.-一女二g匕牙姐昨呈對應(yīng)的旱沖3指定:仃所對應(yīng)的等許指定噸所對應(yīng)汽吊件whlhl子卻為界|蜀費圮muc債F ,一間i:-SELECT色啟心第.一JEjJi依父-CHfitfi B¥ 團(tuán)京SLC打工.匕排層耳玉列國CrftDEH BV'亍句由 書局的剃備默認(rèn)如一升序 隹序GR.OUP evWHERE加口3 BVHAVINGR、HAVIW SSX LECTO 2E醫(yī) BY目錄?對表進(jìn)行聚合查詢?對表進(jìn)行分組J?為聚合結(jié)果指定條件?對查詢結(jié)果進(jìn)行排序一、對表進(jìn)行聚
37、合查詢1.聚合函數(shù)(1)5個常用函數(shù):COUNT :計算表中的記錄(行)數(shù).SUM :計算表中數(shù)值列的數(shù)據(jù)合計值.AVG :計算表中數(shù)值列的數(shù)據(jù)平均值.MAX :求出表中任意列中數(shù)據(jù)的最大值.MIN :求出表中任意列中數(shù)據(jù)的最小值.(2)聚合:將多行匯總成一行.該列最小結(jié)果詡U最大dioliin bunruihanbaitorolmbi2Q09-03-20力也用品2021-03-11衣即MULL匆期FS*-2Q6S0050002021-01-15WLL如.9-09-208S0圓珠筆FULL2021-11-11無列名3NULLFROM dbo.Shohin無列名281-1 ShohinSELEC
38、T COUNT(shiire_tanka)只計算非NULL江口hizn me iCOUNT*的參數(shù)改成指定對象的列,就可以得到該列的非例如 SELECT COUNT( * )廚房用具國孱用具廚房用具 國房用具 辦公用品*:參數(shù),這里代表全部列 FROMdbo.Shohin Q0Q1 0002 T'小打孔翳0003運(yùn)動他QQQ4菜刀0005高壓耦000父子擦菜板【備注】除了 COUNT函數(shù),其它函數(shù)不能將星號作為參數(shù).【備注】COUNT函數(shù)的結(jié)果根據(jù)參數(shù)的不同而不同.COUNT* 會得到包含NULL的數(shù)據(jù)行數(shù),而 COUNT列名會得到NULL之外的數(shù)據(jù)行數(shù).4 .計算合計值SELECT
39、SUM(hanbai_tanka) AS sum_hanbai_tanka,-總和AVG(hanbai_tanka)AS avg_hanbai_tanka,-平均MAX(hanbai_tanka)AS max_hanbai_tanka,-最大MIN (hanbai_tanka) AS min_hanbai_tanka-最小 FROMdbo.Shohin;ICO 喋-出結(jié)果1消息地v jhazihai.tarLka rn ax_banl ai _t arJc aniai t1 I 16793i 20 76前口100【備注】所有的聚合函數(shù),如果以列名為參數(shù),會無視 NULL值所在的行.SELECT
40、 MAX(torokubi),-torokubi 為日期MIN (torokubi) FROMdbo.ShohinI區(qū)結(jié)果與消息無利鐘貞洌名iaiianlll1 i 2021-11-11 l 2021-04-28【備注】MAX/MIN函數(shù)幾乎適用于所有數(shù)據(jù)類型的列.SUM/AVG 函數(shù)只適用于數(shù)值類型的列.5 .使用聚合函數(shù)刪除重復(fù)值關(guān)鍵字DISTINCT -例如 1 :計算去除重復(fù)數(shù)據(jù)后的數(shù)據(jù)行數(shù)SELECT COUNT DISTINCT shohin_bunrui FROMdbo.Shohin;FROM dbo.Shohin;-例如2:先計算數(shù)據(jù)行數(shù)再刪除重復(fù)數(shù)據(jù)的結(jié)果SELECT DIS
41、TINCT COUNT(shohin_bunrui)國第果上消息 a?viain:mu rr,iiawmBira-Biilj:無列各LI ih-mi umiiaiMiiii FHi im-iiii【備注】在聚合函數(shù)的參數(shù)中使用DISTINCT (例如1 ),可以刪除重復(fù)數(shù)據(jù).DISTINCT不僅PM于 COUNT函數(shù),所有的聚合函數(shù)都可以使用.二、對表進(jìn)行分組1.GROUP BY 子句- -語法:- -SELECT < 列名 1>, < 列名 2>,.- -FROM < 表名- -GROUP BY < 列名 1>, < 列名 2>,.;-
42、-例如 SELECT shohin_bunrui AS '商品種類',COUNT: *) AS '數(shù)量'FROMdbo.Shohin GROUP BY shohin_bunrui;力結(jié)果心版商品林類板里| i IAimm i i 11 i I mmJ I、1 i辦公用品i之2 EWS S 43 衣雕2【備注】GROUP BY 子句中指定的列稱為聚合鍵或 分組列【子句的書寫順序暫定】SELECT -> FROM -> WHERE -> GROUP BY2.聚合鍵中包含NULL的情況SELECT shiire_tanka,COUNT( * ) FR
43、OM dbo.ShohinGROUP BY shiire_tanka;1W案 ,曲結(jié)果之施 shi(無列名)1 MULL 21, mnir urr Tin 11 11 urr mi mnir iM曲第果苗消息skiire_t4iJts (無列名)K K1IB uailiajMBiauBlII ILMIIr p5U0 1Z32013 50014 德.15 % 0026 WOO1【備注】聚合鍵中包含NULL時,在結(jié)果中也會以 NULL行的形式表現(xiàn)出來.3.WHERE 對GROUP BY 執(zhí)行結(jié)果的影響- -語法- -SELECT < 列名 1>, < 列名 2>,.- -F
44、ROM < 表名- -WHERE <表達(dá)式>- -GROUP BY < 列名 1>, < 列名 2>,.SELECT shiire_tanka,COUNT( * ) FROM dbo.ShohinWHEREshohin_bunrui ="衣服'GROUP BY shiire_tankae -這里是先根據(jù) WHERE子句指定的條件進(jìn)行過濾,然后再進(jìn)行聚合處理.【執(zhí)行順序】FROM -> WHERE -> GROUP BY -> SELECT.這里是執(zhí)行順序,跟之前的書寫順序是不一樣的.4.與聚合函數(shù)和 GROUP BY
45、 子句有關(guān)的常見錯誤(1)易錯:在 SELECT子句中書寫了多余的列SELECT子句只能存在以下三種元素:常數(shù)聚合函數(shù)GROUP BY 子句中指定的列名(即聚合鍵)_ E SELECT skohiii-niei, shiire_t anka, C.'tTIT ,FROM dbo. ShohinGROUP BT shiire_t.ajikaJ消息消息012D1提別狀態(tài)1,第133行選擇到表中的利J 匕Shhin,無效,由于詼不暖得包含在聚合函數(shù)或GROl/F打子句中“易錯點1【總結(jié)】使用 GROUP BY子句時,SELECT子句不能出現(xiàn)聚合鍵之外的列名.(2)易錯:在 GROUP BY
46、子句中寫了列的別名E. SELECT Ehohin_tiunrui AS sb .O .IU'I FROM dbo. Shohin &R0UP BY sb2% ij消息消息207,縱別誨,狀態(tài)1,第四行 列臺了越口易錯點 2回憶之前說的執(zhí)行順序,SELECT子句是在 GROUP BY 子句之后執(zhí)行.所以執(zhí)行到GROUP BY 子句時無法識別別名.【總結(jié)】GROUP BY 子句不能使用 SELECT子句中定義的別名.(3)易錯:GROUP BY 子句的結(jié)果能排序嗎?【解答】它是隨機(jī)的.如果想排序,請使用 ORDER BY 子句.【總結(jié)】GROUP BY 子句結(jié)果的顯示是無序的.(
47、4)易錯:在 WHERE子句中使用聚合函數(shù)E SELECT shohin_bunrui, C 1) FROM dba. ?hohin WHERE COUNT(*) = 2 GKQUF BY shohirLbunruiJO% , ia消息消息U7-級別狀態(tài)h第143行聚合不應(yīng)出現(xiàn)在子司中,除非被翳臺位于用WIMG子句或選擇列表所包含的子查詢中,并且要對其進(jìn)行期合的列是外部引用,易錯點 3【總結(jié)】只有 SELECT子句和HAVING 子句以及 ORDER BY 子句中能夠使用聚合函數(shù).三、為聚合結(jié)果指定條件1.HAVING 子句WHERE子句智能指定記錄行的條件,而不能用來指定組的條件.【備注】H
48、AVING 是HAVE 擁有的現(xiàn)在分詞.- -語法:- -SELECT < 列名 1>, < 列名 2>,.- -FROM < 表名- -GROUP BY < 列名 1>, < 列名 2>,.- -HAVING < 分組結(jié)果對應(yīng)的條件>【書寫順序】 SELECT -> FROM -> WHERE -> GROUP BY -> HAVINGSELECT shohin_bunrui,COUNT * FROMdbo.ShohinGROUP BY shohin_bunrui HAVING COUNT; * = 2
49、k SELECT shohiri-bunnii, COUNT i FROM dbo. ShohinGROUP BY shohitbunruiHAVING COUNT W = 2口結(jié)果,消息ihohi n_bunrui無列名1 I SiiffiiSi l 2-lilllrfillianlliHfMii IIM ilil tll ilH-illll-H'2 衣服2從通過商品種類進(jìn)行聚合分組后的結(jié)果中,取出包含數(shù)據(jù)的行數(shù)為 2行的數(shù)據(jù)2.HAVING子句的構(gòu)成要素(1 ) 3要素:常數(shù)聚合函數(shù)GROUP BY 子句中指定的列名(即聚合鍵)ESELECT shohin_bunrui COUNT
50、 (*)FROM dbo. ShohinGROUP HY shahin_tiunruiHAVING shohLn_nZi =,圖珠望,LCD %43消息消息Bizn級別16,狀杰1,第161行HAVIfiK;子句中的列,dbo.Shohin. shohirk_meiJ無效,由于該列沒有包含在素臺函數(shù)或G刖旺BY子句中力易錯用法3 .HAVING 與 WHERE有些條件可以寫在HAVING 子句中,又可以寫在WHERE子句中.這些條件就是聚合鍵所對應(yīng)的條件.F SELECT shohirbmirui, COURT (*)FROK 曲q, ShohinGROUP BY 3hohin_btmruiHAVIMC shohin_buiirui ='農(nóng)度':-條件寫在 由建工肥
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版企業(yè)并購與重組合同:股權(quán)收購合同版B版
- 2024年規(guī)范化人力資源委托管理合同
- 2024跨境電子商務(wù)平臺建設(shè)與運(yùn)營合作協(xié)議
- 2024年高速路段交通安全設(shè)施采購合同
- 2024店鋪市場推廣合作合同2篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)財產(chǎn)抵押擔(dān)保投資合同3篇
- 2025年度大型物流樞紐承包經(jīng)營合同典范3篇
- 2024年網(wǎng)絡(luò)云服務(wù)提供商托管協(xié)議
- 2024年新能源項目技術(shù)顧問聘任協(xié)議3篇
- 2024年度牙齒矯正前后口腔護(hù)理指導(dǎo)服務(wù)合同3篇
- 北京市朝陽區(qū)2024-2025學(xué)年高一(上)期末化學(xué)試卷(含答案)
- 2025貴州建筑安全員B證考試題庫附答案
- 2024-2025學(xué)年八年級歷史上冊期末復(fù)習(xí)課件
- 2025年云南省大理州事業(yè)單位招聘339人歷年高頻重點提升(共500題)附帶答案詳解
- 《鐵路旅客運(yùn)輸規(guī)程》考試復(fù)習(xí)題及答案
- 2024初中數(shù)學(xué)競賽真題訓(xùn)練(學(xué)生版+解析版)(共6個)
- 規(guī)培結(jié)業(yè) 臨床基本技能操作考核評分表
- JBT 1306-2024 電動單梁起重機(jī)(正式版)
- ISO9001記錄保存年限一覽表
- DLT666-2012風(fēng)電場運(yùn)行規(guī)程
- 檢定校準(zhǔn)證書模板(共5頁)
評論
0/150
提交評論