SQL分组、排序及多表连接语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五SQL分组、排序及多表连接语句
一、实验目的
1.熟练掌握SQL分组语句;
2.熟练掌握SQL排序语句;
3.熟练掌握多表连接语句;
二、实验内容
给定一个练习数据库和相应的练习题,要求上机完成,并验证结果
实验基础知识提要
从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:
SELECT select_list
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HA VING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
From子句中的连接类型
指定从其中检索行的表,当存在多个表时用“,”分隔。表之间可以使用连接,连接的类型如下:
INNER
指定返回所有相匹配的行对。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。
LEFT [OUTER]
指定除所有由内联接返回的行外,所有来自左表的不符合指定条件的行也包含在结果集内。来自左表的输出列设置为NULL。
RIGHT [OUTER]
指定除所有由内联接返回的行外,所有来自右表的不符合指定条件的行也包含在结果集内。来自右表的输出列设置为NULL。
FULL [OUTER]
如果来自左表或右表的某行与选择准则不匹配,则指定在结果集内包含该行,并且
将与另一个表对应的输出列设置为NULL。除此之外,结果集中还包含通常由内联接返回的所有行。
Group By子句
指定用来放置输出行的组,并且如果SELECT 子句
指定组或聚合的搜索条件。HA VING 通常与GROUP BY 子句一起使用。如果不使用GROUP BY 子句,HA VING 的行为与WHERE 子句一样。
Order By子句
指定结果集的排序。除非同时指定了TOP,否则ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
ASC
指定按递增顺序,从最低值到最高值对指定列中的值进行排序。
DESC
指定按递减顺序,从最高值到最低值对指定列中的值进行排序。
空值被视为最低的可能值。
三、实验步骤
构建以下的数据表作为实验数据内容
3.1 Suppliers(供货厂商)
代码描述数据类型长度约束条件SupplierID 供货厂商编号INT 4 主码CompanyName 厂名V ARCHAR 40
ContactName 联系人名V ARCHAR 30
ContactTitle 联系人职位V ARCHAR 30
Address 地址V ARCHAR 60
City 城市名V ARCHAR 15
Region 地区V ARCHAR 15
PostalCode 邮政编码V ARCHAR 10
Country 国家V ARCHAR 15
Phone 电话V ARCHAR 24
Fax 传真V ARCHAR 24
HomePage 主页V ARCHAR 16
3.2 Region(地区)
代码描述数据类型长度约束条件RegionID 地区编号INT 4 主码
RegionDescription 地区描述V ARCHAR 50
3.3 Products(产品)
代码描述数据类型长度约束条件ProductID 产品编号INT 4 主码ProductName 品名V ARCHAR 40
SupplierID 供货厂商编号INT 4
CategoryID 所属种类号INT 4
QuantityPerUnit 单位数量V ARCHAR 20
UnitPrice 单价FLOAT 8
UnitsInStock 库存INT 2
UnitsOnOrder 定货数INT 2
ReorderLevel 修订量INT 2
Discontinued 是否进行BIT 1
3.4 Orders(定单)
代码描述数据类型长度约束条件OrderID 定单编号INT 4 主码CustomerID 顾客编号V ARCHAR 5
EmployeeID 职员编号INT 4
OrderDate 定货日期DA TETIME 8
RequiredDate 交货日期DA TETIME 8
ShippedDate 载运日期DA TETIME 8
ShipVia 经由数INT 4
Freight 运费FLOAT 8
ShipName 船名V ARCHAR 40
ShipAddress 地址V ARCHAR 60
ShipCity 城市V ARCHAR 15
ShipRegion 地区V ARCHAR 15
PostalCode 邮政编码V ARCHAR 10
ShipCountry 国籍V ARCHAR 15
3.5 OrderDetails(定单详细信息)
代码描述数据类型长度约束条件OrderID 定单编号INT 4 主码ProductID 产品编号INT 4 主码UnitPrice 单价FLOAT 8
Quantity 数量INT 2
Discount 折扣FLOAT 4
3.6 Employees(职工)
代码描述数据类型长度约束条件EmployeeID 职工编号INT 4 主码LastName 姓V ARCHAR 20
FirstName 名V ARCHAR 10
Title 头衔V ARCHAR 30