《SQL之数据查询.ppt》由会员分享,可在线阅读,更多相关《SQL之数据查询.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Version 3.0第六章数据查询数据查询2 2回顾回顾在在T-SQL中使用条件表达式和逻辑运算符;中使用条件表达式和逻辑运算符;视同视同SQL Server提供的通配符进行条件数据提供的通配符进行条件数据筛选;筛选;使用使用INSERT和和SELECT INTO进行数据插入操进行数据插入操作;作;连接和使用连接进行数据行更新;连接和使用连接进行数据行更新;使用使用UPDATE进行数据行更新;进行数据行更新;使用使用DELETE关键词进行数据删除操作;关键词进行数据删除操作;3 3目标目标掌握数据查询掌握数据查询Select语句的格式和用法;语句的格式和用法;掌握分组查询的掌握分组查询的T-
2、SQL;掌握模糊查询的掌握模糊查询的 T-SQL;理解和使用理解和使用 SQL Server 的各种聚合函数;的各种聚合函数;理解和使用理解和使用 INNER JOIN 进行多表连接查询;进行多表连接查询;4 4Application Logic什么是查询?什么是查询?客户程序客户程序查询请求查询请求查询结果集查询结果集SQL SERVERA B C D E F G SELECT*FROM SALES5 5SELECT 语句语句 2-1列名称列名称列名称列名称SELECT Au_ID,Au_LName,Au_FName,Phone 表名表名表名表名FROMAuthors过滤条件过滤条件过滤条件
3、过滤条件WHERESTATE=CASELECTSELECT Au_ID,Au_LName,Au_FName,Phone FROM Authors WHERE STATE=CA ORDER BY Au_LName排序条件排序条件排序条件排序条件ORDER BYAu_LName6 6SELECT 语句语句 2-2employeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle1DavolioNancySales Representative2FullerAndrewVice President,Sales3LeverlingJanet
4、Sales Representative4PeacockMargaretSales Representative5BuchananStevenSales Manager6SuyamaMichaelSales Representative7KingRobertSales RepresentativeUSE northwindSELECT employeeid,lastname,firstname,titleFROM employees7 7简单查询语句简单查询语句USE NorthWindSELECT*FROM employees查询全部的行和列查询全部的行和列SELECT firstname,
5、lastname,birthdate FROM Employees查询全部行和特定列查询全部行和特定列SELECT*FROM employees WHERE city=LONDON查询限定范围的行查询限定范围的行8 8对象限定对象限定SELECT*FROM Northwind.dbo.Shippers 数据库和所有者限定数据库和所有者限定SELECT Customers.CustomerID,Customers.CompanyName FROM Customers JOIN Orders ON(Customers.CustomerID=Orders.CustomerID)WHERE Order
6、s.ShippedDate May 1 1998 表和视图限定表和视图限定9 9ORDER BY 子句子句 2-1USE northwindSELECT productid,productname,categoryid,unitpriceFROM productsORDER BY categoryid,unitprice DESCproductidproductidproductnameproductnamecategoryidcategoryid unitpriceunitprice43Ipoh Coffee146.00002Chang119.000063Vegie-spread243.90
7、0061Sirop drable228.50001010ORDER BY 子句子句 2-2演示使用查询分析器进行排序查询演示使用查询分析器进行排序查询1111在查询中使用常量和运算符在查询中使用常量和运算符USE PubsSELECT title_id+:+title+-+typeFROM titles1212AS 子句子句USE PubsSELECT title_id+:+title+-+type As MyTitleFROM titles1313带有约束的带有约束的 SELECT 语句语句USE NorthWindSelect IDENTITY(int,1,1)As P_id into p
8、roduct_Det From products1414TOP 子句子句SELECT Top 3 EmployeeID,LastName,FirstName From Employees限制返回数据行限制返回数据行SELECT Top 80 Percent EmployeeID,LastName,FirstName From Employees限制返回行百分比限制返回行百分比1515聚合函数聚合函数 2-1SELECT SUM(ReportsTo)As TotalFrom EmployeesSUMSELECT AVG(ReportsTo)As TotalFrom EmployeesAVGSEL
9、ECT COUNT(*)As CountsFrom Employees WHERE ReportsTo 2COUNT1616聚合函数聚合函数 2-2Use PubsSelect Max(qty)As MaxValue from SalesMAXUse PubsSelect Min(qty)As MinValue from SalesMIN1717GROUP BY 子句子句 3 1USE northwindSELECT productid,orderid,quantity FROM orderhistSELECT productid,SUM(quantity)AS total_quantity
10、FROM orderhist GROUP BY productidproductidproductidtotal_quantitytotal_quantity115235345productidproductidorderidorderidquantityquantity11511102110222531153230productidproductidtotal_quantitytotal_quantity235SELECT productid,SUM(quantity)AS total_quantity FROM orderhistWHERE productid=2GROUP BY prod
11、uctid1818GROUP BY 子句子句 3 2Use PubsSELECT type,AVG(price)FROM titles WHERE royalty=10 GROUP BY type GROUP BYUse PubsSELECT type,AVG(price)FROM titles WHERE royalty=10 GROUP BY ALL type GROUP BY ALL演示使用查询分析器进行分组查询演示使用查询分析器进行分组查询1919GROUP BY 子句子句 3-2USE northwindSELECT productid,orderid ,quantity FROM
12、orderhistUSE northwindSELECT productid,SUM(quantity)AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)=30productidproductidtotal_quantitytotal_quantity235345productidproductidorderidorderidquantityquantity115111021102225311532302020模糊查询模糊查询 4-1 LIKESELECT companyname FROM custo
13、mersWHERE companyname LIKE%Restaurant%companynamecompanynameGROSELLA-RestauranteLonesome Pine RestaurantTortuga Restaurante2121模糊查询模糊查询 4-2 IS NULLSELECT Companyname,Fax FROM SuppliersWHERE fax IS NULLCompanynameCompanynameFaxFaxExotic LiquidsNULLNew Orleans Cajun DelightsNULLTokyo TradersNULLCooper
14、ativa de Quesos Las CabrasNULL2222模糊查询模糊查询 4-3 INSELECT Companyname,Country FROM suppliersWHERE country IN(Japan,Italy)CompanynameCompanynameCountryCountryTokyo TradersJapanMayumisJapanFormaggi Fortini s.r.l.ItalyPasta Buttini s.r.l.Italy2323productnameproductnameunitpriceunitpriceChai18Chang19Pavlo
15、va17.45Sir Rodneys Scones10模糊查询模糊查询 4-4 BETWEENSELECT productname,unitprice FROM productsWHERE unitprice BETWEEN 10 AND 202424salesbuyer_idbuyer_id prod_idprod_id qtyqty114323151553711421003buyersbuyer_namebuyer_nameAdam BarrSean ChaiEva CoretsErin OMeliabuyer_idbuyer_id1234查询结果查询结果buyer_namebuyer_n
16、ameAdam BarrAdam BarrErin OMeliaEva Coretsbuyer_idbuyer_id qtyqty11431553711Erin OMelia41003多表联结查询多表联结查询 4-1 USE joindbSELECT buyer_name,sales.buyer_id,qty FROM buyers INNER JOIN sales ON buyers.buyer_id=sales.buyer_id2525salesbuyer_idbuyer_id prod_idprod_idqtyqty114323151553711421003buyersbuyer_nam
17、ebuyer_nameAdam BarrSean ChaiEva CoretsErin OMeliabuyer_idbuyer_id1234查询查询结果结果buyer_namebuyer_nameAdam BarrAdam BarrErin OMeliaEva Coretsbuyer_idbuyer_idqtyqty11431553711Erin OMelia41003Sean ChaiNULLNULLUSE joindbSELECT buyer_name,sales.buyer_id,qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_
18、id=sales.buyer_id多表联结查询多表联结查询 4-2 2626多表联结查询多表联结查询 4-3 buyer_idbuyer_id prod_idprod_idqtyqty114323151553711421003sales abuyer_idbuyer_id prod_idprod_idqtyqty114323151553711421003sales bUSE joindbSELECT a.buyer_id AS buyer1,a.prod_id ,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id=
19、b.prod_idWHERE a.buyer_id b.buyer_id查询查询结果结果buyer1buyer14prod_idprod_idbuyer2buyer2212727多表联结查询多表联结查询 4-4 USE joindb SELECT buyer_name,qty FROM buyers CROSS JOIN salesResultbuyer_namebuyer_nameAdam BarrAdam BarrAdam BarrAdam Barrqtyqty1553711Adam Barr1003Sean Chai15Sean Chai5Sean Chai37Sean Chai11Se
20、an Chai1003Eva Corets15.salesbuyer_idbuyer_id prod_idprod_idqtyqty114323151553711421003buyersbuyer_idbuyer_id1234buyer_namebuyer_nameAdam BarrSean ChaiEva CoretsErin OMelia2828总结总结 2-1使用使用SELECT,可以执行数据查询,并返回查询结可以执行数据查询,并返回查询结果集给客户程序;果集给客户程序;使用使用WHERE,可以限制查询返回行;可以限制查询返回行;使用使用ORDER BY,可以对查询结果进行排序;可以对查
21、询结果进行排序;在查询中,可以使用字符常量及一些运算符号,在查询中,可以使用字符常量及一些运算符号,并生成自定义的行;并生成自定义的行;使用使用TOP子句限制查询返回行的数目;子句限制查询返回行的数目;SQL SERVER提供的聚合函数包括提供的聚合函数包括SUM、AVG、COUNT、MAX、MIN等;等;2929总结总结 2-2使用使用GROUP BY,可以使用聚合函数,并且对查询可以使用聚合函数,并且对查询结果进行分组,在结果进行分组,在Having子句中,可以进一步根子句中,可以进一步根据查询统计信息进行限制;据查询统计信息进行限制;模糊查询是指在不确定条件下的查询,可以使用模糊查询是指在不确定条件下的查询,可以使用LIKE进行字符匹配查询,还可以使用进行字符匹配查询,还可以使用IN、BETWEEN、IS NULL等关键词进行模糊查询;等关键词进行模糊查询;多表联结查询包括内联结、外联结和自联结;多表联结查询包括内联结、外联结和自联结;外联结包括左外联结和右外联结,而自联结是内外联结包括左外联结和右外联结,而自联结是内联结的一种特殊的形式;联结的一种特殊的形式;
限制150内