一、实验目的
掌握涉及一个以上数据表的查询方法。
二、实验内容
1、连接查询
-
查询“国皓科技有限公司”的订单信息
查询语句:
SELECT * FROM Customer,Sell_Order WHERE Sell_Order.CustomerID=Customer.CustomerID AND Customer.CompanyName='国皓科技有限公司'
执行结果:
-
查询“三川实业有限公司”订购的商品信息,输出字段为:CompanyName,ProductName,Price,SellOrderNumber。
查询语句:
SELECT CompanyName,ProductName,Price,SellOrderNumber FROM Product,Customer,Sell_Order WHERE Product.ProductID=Sell_Order.ProductID And Sell_Order.CustomerID=Customer.CustomerID AND Customer.CompanyName='三川实业有限公司'
执行结果:
-
查询各公司各种商品的订单数量,输出字段为:CompanyName,ProductName,订单数量,按照订单数量升序排列。
查询语句:
SELECT CompanyName,ProductName,COUNT(Sell_Order.SellOrderID) 订单数量 FROM Product,Customer,Sell_Order WHERE Sell_Order.ProductID=Product.ProductID AND Customer.CustomerID =Sell_Order.CustomerID GROUP BY CompanyName,ProductName ORDER BY 订单数量 ASC
执行结果:
-
查询各公司各种商品的订货总量、总金额。输出字段为:CompanyName,ProductName,订货总量,总金额。按照总金额降序排列。
查询语句:
SELECT CompanyName,ProductName,SUM(SellOrderNumber) 订货总量,SUM(Price*SellOrderNumber) 总金额 From Customer,Sell_Order,Product WHERE Customer.CustomerID=Sell_Order.CustomerID AND Sell_Order.ProductID=Product.ProductID GROUP BY Customer.CompanyName,Product.ProductName ORDER BY 总金额 DESC
执行结果:
二、自身连接
-
查询和“章宏”同一部门的员工号,员工姓名。
查询语句:
SELECT FIRST.EmployeeID,FIRST .EmployeeName FROM Employee FIRST,Employee SECOND WHERE FIRST.DepartmentID=SECOND.DepartmentID AND FIRST.EmployeeName!='章宏'AND SECOND.EmployeeName='章宏'
执行结果:
-
查询既订购过3号产品,又订购过4号产品的客户号。
查询语句:
SELECT DISTINCT SECOND.CustomerID FROM Sell_Order FIRST,Sell_Order SECOND WHERE FIRST.CustomerID=SECOND.CustomerID AND FIRST.ProductID=3 AND SECOND.ProductID=4
执行结果:
三、外连接
-
查询没有接收到订单的员工姓名。
查询语句:
SELECT EmployeeName FROM Employee LEFT OUTER JOIN Sell_Order ON(Employee.EmployeeID=Sell_Order.EmployeeID) WHERE SellOrderID IS NULL
执行结果:
-
查询没有任何订购信息的客户公司名。
查询语句:
SELECT CompanyName FROM Customer LEFT OUTER JOIN Sell_Order ON(Customer.CustomerID=Sell_Order.CustomerID) WHERE SellOrderID IS NULL
执行结果:
-
查询没有被订购的商品名称.
查询语句:
SELECT ProductName FROM Product LEFT OUTER JOIN Sell_Order ON(Product.ProductID=Sell_Order.ProductID) WHERE SellOrderID IS NULL
执行结果:
三、实验总结
本次实验涉及等值连接、自身连接、外连接,对于三种连接方式掌握更加熟练。学会了等值连接的方法、OUTER JOIN语句