当前位置:首页 > 实验五SQL分组、排序及多表连接语句
实验五SQL分组、排序及多表连接语句
一、 实验目的
1. 熟练掌握SQL分组语句;
2. 熟练掌握SQL排序语句; 3. 熟练掌握多表连接语句;
二、实验内容
给定一个练习数据库和相应的练习题,要求上机完成,并验证结果
实验基础知识提要
从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下: SELECT select_list FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ] [ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
From子句中的连接类型
指定从其中检索行的表,当存在多个表时用“,”分隔。表之间可以使用连接,连接的类型如下: INNER
指定返回所有相匹配的行对。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。
LEFT [OUTER]
指定除所有由内联接返回的行外,所有来自左表的不符合指定条件的行也包含在结果集内。来自左表的输出列设置为 NULL。
RIGHT [OUTER]
指定除所有由内联接返回的行外,所有来自右表的不符合指定条件的行也包含在结果集内。来自右表的输出列设置为 NULL。
FULL [OUTER]
如果来自左表或右表的某行与选择准则不匹配,则指定在结果集内包含该行,并且将与另一个表对应的输出列设置为 NULL。除此之外,结果集中还包含通常由内联接返回的所有行。
Group By子句
指定用来放置输出行的组,并且如果 SELECT 子句
指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。如果不使用 GROUP BY 子句,HAVING 的行为与 WHERE 子句一样。 Order By子句
指定结果集的排序。除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
ASC
指定按递增顺序,从最低值到最高值对指定列中的值进行排序。 DESC
指定按递减顺序,从最高值到最低值对指定列中的值进行排序。 空值被视为最低的可能值。
三、实验步骤
构建以下的数据表作为实验数据内容 3.1 Suppliers(供货厂商) 代码 SupplierID CompanyName ContactName ContactTitle Address City Region PostalCode Country Phone Fax HomePage 描述 供货厂商编号 厂名 联系人名 联系人职位 地址 城市名 地区 邮政编码 国家 电话 传真 主页 数据类型 INT VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR 长度 4 40 30 30 60 15 15 10 15 24 24 16 约束条件 主码
3.2 Region(地区) 代码 RegionID 描述 地区编号 数据类型 INT VARCHAR 长度 4 50 约束条件 主码 RegionDescription 地区描述
3.3 Products(产品)
代码 ProductID ProductName SupplierID CategoryID QuantityPerUnit UnitPrice UnitsInStock UnitsOnOrder ReorderLevel Discontinued 3.4 Orders(定单) 代码 OrderID CustomerID EmployeeID OrderDate RequiredDate ShippedDate ShipVia Freight ShipName ShipAddress ShipCity ShipRegion PostalCode ShipCountry 代码 OrderID ProductID UnitPrice Quantity Discount 代码 EmployeeID LastName FirstName Title TitleOfCourtesy BirthDate HireDate 描述 产品编号 品名 供货厂商编号 所属种类号 单位数量 单价 库存 定货数 修订量 是否进行 描述 定单编号 顾客编号 职员编号 定货日期 交货日期 载运日期 经由数 运费 船名 地址 城市 地区 邮政编码 国籍 描述 定单编号 产品编号 单价 数量 折扣 描述 职工编号 姓 名 头衔 性别 生日 受聘日期 数据类型 INT VARCHAR INT INT VARCHAR FLOAT INT INT INT BIT 数据类型 INT VARCHAR INT DATETIME DATETIME DATETIME INT FLOAT VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR 数据类型 INT INT FLOAT INT FLOAT 数据类型 INT VARCHAR VARCHAR VARCHAR VARCHAR DATETIME DATETIME 长度 4 40 4 4 20 8 2 2 2 1 长度 4 5 4 8 8 8 4 8 40 60 15 15 10 15 长度 4 4 8 2 4 长度 4 20 10 30 25 8 8 约束条件 主码 约束条件 主码 约束条件 主码 主码 约束条件 主码 3.5 OrderDetails(定单详细信息) 3.6 Employees(职工) Address City Region PostalCode Country HomePhone Extension Photo Notes ReportsTo Photopath 代码 CustomerID CompanyName ContactName ContactTitle Address City Region PostalCode Country Phone Fax 地址 城市 地区 邮政编码 国籍 住宅电话 分机号 照片 备注 直接上级号 职工照片路径 描述 顾客编号 公司名 联系人名 联系人头衔 地址 城市 地区 邮政编码 国籍 电话 传真 VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR IMAGE VARCHAR INT VARCHAR 数据类型 VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR 60 15 15 10 15 24 4 16 16 4 255 长度 5 40 30 30 60 15 15 10 15 24 24 约束条件 主码 3.7 Customers(顾客) 3.8 OldSuppliers(供应厂商备份表) 结构与Suppliers表相同
运行SQL SERVER服务管理器,确认数据库服务器开始运行。 运行企业管理器,以图示方式点击“附加数据库”,恢复db目录下的数据库文件
共分享92篇相关文档