《实验3 查询数据库》由会员分享,可在线阅读,更多相关《实验3 查询数据库(11页珍藏版)》请在金锄头文库上搜索。
1、南昌大学实验报告学生姓名:华国平 学 号:6100411092 专业班级:计算机科学与技术112班 实验类型:口验证综合设计口创新 实验日期:2013.11.5 实验成绩: 实验三查询数据库一、实验目的(1) 掌握基本的SELECT查询及其相关子句的使用。(2) 掌握复杂的SELECT查询,如多表查询、子查询、连接和嵌套查询。二、实验内容(1) 从customer表中查询所有客户的姓名和电话。(2) 查询库存量大于1000的商品,结果按库存量从大到小排序。(3) 查询每个客户的订单金额的总和。(4) 查询2005年上半年(1月1日到6月30日)订货总数大于5000的商品。(5) 查询所有北京客
2、户的订单信息,包括订单的序号、客户的姓名、商品名、数量。(6) 查询所有商品在什么时间卖出了多少。(7) 查询没有订单的商品信息。(8) 查询每种商品的销售总数量和总金额。三、实验环境(1) 个人计算机或局域网。(2) Windows 2000 操作系统。(3) SQL Server 2000数据库管理系统。四、实验步骤(1) 启动查询分析器,选择market数据库。(2) 在查询编辑窗口中分别输入SQL语句并执行。五、实验报告5. 1使用查询分析器查询数据使用查询分析器查询数据的操作步骤如下:(1)打开查询分析器。执行“开始”丨“程序”丨Microsoft SQL Server”| “查询分
3、 析器”命令,即可启动查询分析器。如果是在企业管理器界面下,执行菜单中的“工具”丨 “查询分析器”命令,也可启动查询分析器。在启动查询分析器后,会出现如图所示的“连接到SQL Server”对话框。如果使用Windows身份验证,可单击“Windows身份验证”单选按钮,然后单击“确 定”按钮,即可使用Windows的当前用户账户连接到SQL Server服务器。如果选中“SQL Server 身份验证”单选项,则需要输入登录名和密码。然后单击“确定”按钮,即使用SQL Server 账户连接到SQL Server服务器。连接到SQL Server服务器后,单击“新建查询”按钮,查询 分析器中
4、将显示对象浏览器窗口和查询窗口,如图所示。(2)选择数据库market。选择数据库market为当前数据库。(3)输入SQL语句。在如图所示的查询分析器编辑窗口中输入查询全部顾客信息的SQL 语句:SELECT * FROM customer(4)执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才 输入的语句,运行结果如图所示。SQLQueryl.sql - (lo.dministrator (54)*|SELECTFROM customer|可川巴J结果消息customeridcustomemameloginnamepasswordlogi ndatecneditgr
5、adeidaddresszipcodetelemailnote11OT舐三NULLWONULLNULLNULLNULLNULLNULLNULL2501王五NULLWONULLNULLNULLNULLNULLNULLNULL函查询Bf翊执行| (local) (10.50 RTM) | WIN-RFGT&KKKROLAdmini. | market | 00:00:00 | 2 疔5.2简单查询简单查询的SQL语句是包括单个表的查询操作。在此,SQL语句中包括单个表的列及列 表达式、条件WHERE子句排序ORDER BY子句分组GROUP BY子句及它们的 组合。5.2.1从customer表中
6、查询所有客户的姓名和电话分析:这里是对数据库market中customer客户表的客户名customername和电话号码 tel进行选择查询。SQL语句:SELECT customername,telFROM customer执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入 的语句,运行结果如图所示。5.2.2查询库存量大于1000的商品,结果按库存量从大到小排序分析:这里是对数据库market中goods商品信息表中库存量大于1000的商品进行全部 查询,并将结果按库存量从大到小排序。SQL语句:-先插入一组数据insertinto goods(goodsid
7、,goodsname,supplierid,storage) values (100,小米手机,200 , 1001)-查询库存量大于1000的商品,结果按库存量从大到小排序select *from goodswhere storage1000order by storage desc;执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入 的语句,运行结果如图所示。5.2.3查询每个客户的订单金额的总和分析:这里是对数据库market中order订单信息表中客户编号customerid进行归类, 并计算出每个客户的订单金额ordersum的总和。SQL语句:-先插入几
8、组数据,方便显示查询效果insertinto order(orderid,customerid,goodsid,ordersum)values ( 100 , 101,102, 200)insertinto order(orderid,customerid,goodsid,ordersum)values(101, 101 , 103, 300)insertinto order(orderid,customerid,goodsid,ordersum)values ( 102 , 102 , 104 , 400)-查询每个客户的订单金额的总和select customerid,SUM(orders
9、um)from ordergroup by customerid;执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入 的语句,运行结果如图所示。5.2.4查询2005年上半年(1月1日到6月30日)订货总数大于5000的商品分析:这里是对数据库market中order订单信息表中订货日期orderdata在2005年上 半年(1月1日到6月30日)且订货总数quantity大于5000的商品进行全部查询。SQL语句:-先插入几组数据,方便显示查询效果insertinto order (orderid,customerid,goodsid,quantity,order
10、data)values (200,300,400,60 00, 2 005-2-1)insertinto order(orderid,customerid,goodsid,quantity,orderdata)values(201 , 301 , 401 , 6000 , 2005-2-2)insertinto order(orderid,customerid,goodsid,quantity,orderdata)values(202,302,402,4000,2006-2-1)-查询年上半年(月日到月日)订货总数大于的商品select goodsidfrom orderwhere (quan
11、tity5000) and (orderdata between 2005-1-1 and 2005-6-30);执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入 的语句,运行结果如图所示。53连接查询在SQL中多个表的连接查询,它们可能在显示列中包含不同表中的列名,查询条件表 达式中含有多个表中列进行关系比较运算及逻辑运算,从而可以实现更为广泛的查询要求。在进行连接查询时,有时会出现以下几种情况:(1) 需要使用表的别名,即用户在一个语句内部,可以为表指定别名,可增加语句的 可读性并有利于复杂的表连接操作;(2) 从多个表中合并数据,如内连接、外连接及交叉连接;
12、(3) 合并多个结果集,描述如何用UNION操作符合并多个结果集。5.3.1查询所有北京客户的订单信息,包括订单的序号、客户的姓名、商品名、 数量分析:这里是对数据库market中customer客户表中地址为北京的客户在customer客户 表、goods商品信息表和order订单信息表中查询他的订单信息,包括订单的序号orderid、 客户的姓名 customername、商品名 goodsname、数量 quantity。SQL语句:-先插入几组数据,方便显示查询效果insertinto customer(customerid,customername,address)values (1
13、01,张三,北京)insertinto goods(goodsid,goodsname,supplierid)values (101,三星,100)insert order(orderid,customerid,goodsid,quantity)values(300,101,101,5000)-查询所有北京客户的订单信息,包括订单的序号、客户的姓名、商品名、数量select orderid,customername,goodsname,quantityfrom customer,goods,orderwhere customer.customerid=order.customerid andg
14、oods.goodsid=order.goodsid and address= 北京;执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入 的语句,运行结果如图所示。5.3.2查询所有商品在什么时间卖出了多少分析:这里是对数据库market中goods商品信息表和order订单信息表中查询所有商品 (商品名称goodsname)在什么时间(订货日期orderdata)卖出了多少(订单数量quantity)。SQL语句:-先插入几组数据,方便显示查询效果insertinto goods(goodsid,goodsname,supplierid)values (102,红米手机,300)insertinto order (orderid,customerid,goodsid,quantity,orderdata)values(103,103,102,3000, 2 013-11-5)-查询所有商品在什么时间卖出了多少select goodsname,orderdata,quantityfrom goods,orderwhere goods.goodsid=order.goodsid;执行SQL语句。输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入 的