【文章內(nèi)容簡(jiǎn)介】
總數(shù)量 ,SUM(單價(jià) ) AS 總金額 FROM tb_xsb07 ? AVG函數(shù) (平均 ) SELECT AVG(語(yǔ)文 ) AS 語(yǔ)文 ,AVG(代數(shù) ) AS 代數(shù) ,AVG(幾何 ) AS 幾何 ,AVG(英語(yǔ) ) AS 英語(yǔ) FROM tb_stuAchievement07 ? MAX函數(shù) (最大值 ) SELECT MAX(銷售額 ) AS 最高銷售額 FROM tb_seller07 ? MIN函數(shù) (最小值 ) SELECT MIN(銷售額 ) AS 最低銷售額 FROM tb_seller07 Select語(yǔ)句 (聚合函數(shù) ) ? COUNT函數(shù) (總計(jì)記錄條數(shù) ) SELECT COUNT(*) AS 日銷售數(shù)量 from tb_bookSell07 where 日期 =39。202210639。 Select語(yǔ)句 (分組統(tǒng)計(jì) ) ? GROUP BY子句創(chuàng)建簡(jiǎn)單分組 SELECT 商品類別 FROM tb_goods07 GROUP BY 商品類別 ? GROUP BY子句創(chuàng)建多列組合列 SELECT 書名 ,出版社 FROM tb_bookSell07 GROUP BY 書名 ,出版社 ? GROUP BY對(duì)統(tǒng)計(jì)結(jié)果進(jìn)行排序 SELECT 學(xué)生編號(hào) ,學(xué)生姓名 , sum(高數(shù) +外語(yǔ) +計(jì)算機(jī)文化基礎(chǔ) +馬經(jīng) +數(shù)據(jù)庫(kù)管理 + 數(shù)據(jù)結(jié)構(gòu) +軟件工程 ) AS 總成績(jī) FROM tb_StuMark07 GROUP BY 學(xué)生編號(hào) ,學(xué)生姓名 ORDER BY 總成績(jī) DESC Select語(yǔ)句 (分組統(tǒng)計(jì) ) ? Having子句 SELECT 書名 ,出版社 ,SUM(金額 ) AS 總計(jì)金額 FROM tb_BookSell07 GROUP BY 書名 ,出版社 HAVING SUM(金額 )500 ? Having子句與 WHERE子句的聯(lián)合使用 Select class_name,count(*) as 人數(shù) from tbl_stu,tbl_class where = group by class_name Select語(yǔ)句 (分組統(tǒng)計(jì) ) ? 在分組查詢中使用 CUBE運(yùn)算符 cube運(yùn)算符的主要作用是自動(dòng)對(duì) Group By子句中列出的字段 進(jìn)行分組匯總運(yùn)算。 Select 班級(jí) ,性別 ,avg(語(yǔ)文 ) 語(yǔ)文平均成績(jī) , avg(代數(shù) ) 代數(shù)平均成績(jī) ,avg(幾何 ) 幾何平均成績(jī) , avg(英語(yǔ) )英語(yǔ)平均成績(jī) from tb_stuAchievement07 group by 班級(jí) ,性別 with cube Select語(yǔ)句 (分組統(tǒng)計(jì) ) ? 在分組查詢中使用 ROLLUP select 班級(jí) ,性別 ,avg(語(yǔ)文 ) 語(yǔ)文平均成績(jī) , avg(代數(shù) ) 代數(shù)平均成績(jī) ,avg(幾何 ) 幾何平均成績(jī) , avg(英語(yǔ) )英語(yǔ)平均成績(jī) from tb_stuAchievement07 group by 班級(jí) ,性別 with rollup Select語(yǔ)句 (分組統(tǒng)計(jì) ) ? 使用 COMPUTE子句在同一結(jié)果集中顯示明細(xì)和匯總 [pute {{AVG|COUNT|MAX|MIN|STDEV|STDEVP |VAR|VARP|SUM} (expression)}[,….n] [By expression[,…n]] select * from tb_pay07 order by 所屬部門 pute avg(工資 ) SELECT * FROM tb_pay07 ORDER BY 所屬部門 COMPUTE SUM(工資 ) BY 所屬部門 Select語(yǔ)句 (使用子查詢 ) ? 簡(jiǎn)單子查詢 SELECT 姓名 ,工資 ,所屬部門 , (SELECT AVG(工資 ) FROM tb_apay08) AS 平均工資 , (工資 ( SELECT AVG(工資 ) FROM tb_apay08)) AS 與平均工資的差額 FROM tb_apay08 ? 為子查詢命名 SELECT * FROM (SELECT 掛賬單位 ,SUM(欠款金額 ) AS 金額 FROM tb_agzmx08 GROUP BY 掛賬單位 )tb1 ORDER BY 金額 ASC Select語(yǔ)句 (使用子查詢 ) ? 在子查詢中使用聚合函數(shù) SELECT 姓名 ,工資 ,所屬部門 FROM tb_apay08 WHERE 工資 ( SELECT AVG(工資 ) FROM tb_apay08 ) ? 使用子查詢更新數(shù)據(jù) UPDATE tb_aMesell08 SET 藥品名稱 =39。潤(rùn)潔 39。 WHERE 藥品名稱 IN (SELECT 藥品名稱 FROM tb_aMesell08 WHERE 藥品編號(hào) =39。YB00439。) Select語(yǔ)句 (使用子查詢 ) ? 使用子查詢刪除數(shù)據(jù) DELETE tb_aMesell08 WHERE 藥品名稱 IN ( SELECT 藥品名稱 FROM tb_aMesell08 WHERE 藥品編號(hào) =39。YB00139。) Select語(yǔ)句 (使用子查詢 ) ? 在嵌套中使用 EXISTS謂詞 SELECT 學(xué)生姓名 ,所在學(xué)院 ,家庭住址 FROM tb_aStuInfo08 I WHERE EXISTS ( SELECT 學(xué)生姓名 FROM tb_aStuMark08 M WHERE = AND 外語(yǔ) 80) select 學(xué)生姓名 ,所在學(xué)院 ,家庭住址 from tb_aStuInfo08 where 學(xué)生編號(hào) in ( select 學(xué)生編號(hào) from tb_aStuMark08 where 外語(yǔ) 80 ) 在一些情況下 ,只要子查詢返回一個(gè)真值和假值 .只考慮 是否滿足謂詞條件 ,數(shù)據(jù)內(nèi)容本身并不重要 . Select語(yǔ)句 (日期查詢 ) ? 使用 between and 查詢某一時(shí)間段內(nèi)的數(shù)據(jù) select * from tb_student06 where 入校時(shí)間 between 39。? and 39。39。 ? 使用關(guān)系運(yùn)算符查詢某一時(shí)間段內(nèi)的數(shù)據(jù) select 姓名 ,入校時(shí)間 from tb_student06 where 入校時(shí)間 39。39。 and 入校時(shí)間 39。39。 ? 使用 in運(yùn)算符查詢幾個(gè)時(shí)間的數(shù)據(jù) SELECT 書名 ,出版日期 FROM tb_booksell06 where 出版日期 in(39。202211239。,39。202212539。) Select語(yǔ)句 (日期查詢 ) ? 查詢某一月份的數(shù)據(jù) 要實(shí)現(xiàn)按月查詢數(shù)據(jù)可以使用日期函數(shù) month(). 語(yǔ)法: month(date) select 書名 ,出版日期 from tb_bookSell06 where month(出版日期 )=1 order by 出版日期 ? 查詢今天是周幾 select datename(dw,getdate()) as 今天是周幾 Datename(interval,date) Select語(yǔ)句 (日期查詢 ) ? datename()函數(shù)中的 interval ?yyyy:返回指定時(shí)間的年份 ?Q:返回指定時(shí)間的季度 ?M:返回指定時(shí)間的月份 ?D:返回指定時(shí)間是本月的第幾天 ?DY:返回指定時(shí)間是本年的第幾天 ?W:返回指定日期是本周的周幾 ?Ww:返回指定日期是一年中的第幾周 select datename(yyyy,getdate()) as 年份 select datename(m,getdate()) as 月份 select datename(q,getdate())as 季度 select datename(w,getdate()) as 今天是周幾 select datename(ww,getdate()) as 第幾周 select datename(d,getdate()) as 本月的第幾天 select datename(dy,getdate()) as 本年的第幾天 Select語(yǔ)句 (日期查詢 ) ? 查詢兩個(gè)日期之間的天數(shù) Datediff函數(shù)用于返回跨兩個(gè)指定日期的日期與時(shí)間邊界數(shù) 其語(yǔ)法格式如下 : Datediff(datepart,startdate,enddate) ?yyyy:返回年份差 ?mm:返回月份差 ?D:返回日差 select datediff(yyyy,39。202210139。,39。202210139。) as 年份差 select datediff(mm,?2022101?,?2022101?) as 月份差 select datediff(d,39。202210139。,39。202212139。) as 日差 Select語(yǔ)句 (日期查詢 ) ? 查詢 3個(gè)月后的日期 Dateadd函數(shù)用于在向指定日期加上一段時(shí)間的基礎(chǔ)上 ,返回 新的 datetime值 .語(yǔ)法格式如下 : Dateadd(datepart,number,date) select dateadd(mm,3,getdate()) as 39。DAY NUMBER39。 ? 獲取某月的第一天 select dateADD(mm,datediff(mm,0,39。2022122039。),0) as 39。DAY_NUMBER39。 Select語(yǔ)句 ? 復(fù)制表結(jié)構(gòu) Select * into destion_table from source_table where 11 ? 批量插入數(shù)據(jù) Insert into table1 (field1,field2,field3 ) select field1,field2,field3 from table2 多表查詢 ? 笛卡爾乘積查詢 笛卡爾乘積查詢實(shí)際上就是兩表之間的交叉聯(lián)接實(shí)現(xiàn)查詢 的方式。 SELECT tb_userInfo09.*,tb_profession09.* FROM tb_userInfo09 CROSS JOIN tb_profession09 ? 在多表聯(lián)接中設(shè)置聯(lián)接條件 SELECT 學(xué)生姓名 ,學(xué)生性別 ,學(xué)生年齡 ,課程名稱 ,老師姓名 FROM tb_student09,tb_course09,tb_teacher09 WHERE = and = 多表查詢 ? 使用表別名 SELECT 學(xué)生姓名 ,學(xué)生性別 ,學(xué)生年齡 ,課程名稱 ,老師姓名 FROM tb_student09 AS a,tb_course09 AS b,tb_teacher09 AS c WHERE = and = ? 在多表聯(lián)接中返回某個(gè)表的所有列名 SELECT tb_student09.*,課程名稱 FROM tb_student09,tb_course09 WHERE = 多表查詢 (內(nèi)聯(lián)接 ) ? 等值聯(lián)接 等值聯(lián)接是指在聯(lián)接條件中使用等號(hào)運(yùn)算符比較被聯(lián)接列的值 ,在查 詢結(jié)果中列出本聯(lián)接表中的所有列 ,包括其中的重復(fù)列 . 語(yǔ)法: Select fieldlist From table1[INNER] JOIN table2 On = SELECT , FROM tb_course09 INNER JOIN tb_teacher09 ON = 多表查詢 (內(nèi)聯(lián)接 ) ? 不等聯(lián)接 不等聯(lián)接是指在聯(lián)接條件中使用等于運(yùn)算符以外的其它比較 運(yùn)算符 比較 被聯(lián)接的值. SELECT , , , FROM tb_course09 INNER JOIN tb_teacher09 ON 多表查詢 (內(nèi)聯(lián)接 ) ? 自然聯(lián)接 自然連接是一種特殊的聯(lián)接,它只在兩個(gè)表有相同名稱的列且列的 含義相似時(shí)才能使用,并將在同名列上進(jìn)行相等聯(lián)接.自然聯(lián)接是 指在聯(lián)接條件中使用等號(hào)運(yùn)算符比較被聯(lián)接列的值,但它使用選擇 列表指出查詢結(jié)果集合中所包括的列,并刪除聯(lián)接表中重復(fù)列. SELECT a.*, FROM tb_mMRem09 AS a INNER JOIN tb_nMRpay09 AS b on = WHERE =39。339。 Select a.*, from tb_mMRem09 a, tb_nMRpay09 b where = and =39。339。 多表查詢 (外聯(lián)接 ) ? 左外聯(lián)接 (left outer join) SELECT , , , , , , , FROM tb_nMRde09 a LEFT OUTER