实验3 查询数据库.docx

上传人:b****6 文档编号:4692530 上传时间:2022-12-07 格式:DOCX 页数:12 大小:373.40KB
下载 相关 举报
实验3 查询数据库.docx_第1页
第1页 / 共12页
实验3 查询数据库.docx_第2页
第2页 / 共12页
实验3 查询数据库.docx_第3页
第3页 / 共12页
实验3 查询数据库.docx_第4页
第4页 / 共12页
实验3 查询数据库.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验3 查询数据库.docx

《实验3 查询数据库.docx》由会员分享,可在线阅读,更多相关《实验3 查询数据库.docx(12页珍藏版)》请在冰豆网上搜索。

实验3 查询数据库.docx

实验3查询数据库

南昌大学实验报告

学生姓名:

华国平学号:

6100411092专业班级:

计算机科学与技术112班

实验类型:

□验证□综合□设计□创新实验日期:

2013.11.5实验成绩:

实验三查询数据库

一、实验目的

(1)掌握基本的SELECT查询及其相关子句的使用。

(2)掌握复杂的SELECT查询,如多表查询、子查询、连接和嵌套查询。

二、实验内容

(1)从customer表中查询所有客户的姓名和电话。

(2)查询库存量大于1000的商品,结果按库存量从大到小排序。

(3)查询每个客户的订单金额的总和。

(4)查询2005年上半年(1月1日到6月30日)订货总数大于5000的商品。

(5)查询所有北京客户的订单信息,包括订单的序号、客户的姓名、商品名、数量。

(6)查询所有商品在什么时间卖出了多少。

(7)查询没有订单的商品信息。

(8)查询每种商品的销售总数量和总金额。

三、实验环境

(1)个人计算机或局域网。

(2)Windows2000操作系统。

(3)SQLServer2000数据库管理系统。

四、实验步骤

(1)启动查询分析器,选择market数据库。

(2)在查询编辑窗口中分别输入SQL语句并执行。

五、实验报告

5.1使用查询分析器查询数据

使用查询分析器查询数据的操作步骤如下:

(1)打开查询分析器。

执行“开始”︱“程序”︱“MicrosoftSQLServer”︱“查询分析器”命令,即可启动查询分析器。

如果是在企业管理器界面下,执行菜单中的“工具”︱“查询分析器”命令,也可启动查询分析器。

在启动查询分析器后,会出现如图所示的“连接到SQLServer”对话框。

如果使用Windows身份验证,可单击“Windows身份验证”单选按钮,然后单击“确定”按钮,即可使用Windows的当前用户账户连接到SQLServer服务器。

如果选中“SQLServer身份验证”单选项,则需要输入登录名和密码。

然后单击“确定”按钮,即使用SQLServer账户连接到SQLServer服务器。

连接到SQLServer服务器后,单击“新建查询”按钮,查询分析器中将显示对象浏览器窗口和查询窗口,如图所示。

(2)选择数据库market。

选择数据库market为当前数据库。

(3)输入SQL语句。

在如图所示的查询分析器编辑窗口中输入查询全部顾客信息的SQL语句:

SELECT*FROMcustomer

(4)执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.2简单查询

简单查询的SQL语句是包括单个表的查询操作。

在此,SQL语句中包括单个表的列及列表达式、条件〈WHERE子句〉、排序〈ORDERBY子句〉、分组〈GROUPBY子句〉及它们的组合。

5.2.1从customer表中查询所有客户的姓名和电话

分析:

这里是对数据库market中customer客户表的客户名customername和电话号码tel进行选择查询。

SQL语句:

SELECTcustomername,tel

FROMcustomer

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.2.2查询库存量大于1000的商品,结果按库存量从大到小排序

分析:

这里是对数据库market中goods商品信息表中库存量大于1000的商品进行全部查询,并将结果按库存量从大到小排序。

SQL语句:

--先插入一组数据

insert

intogoods(goodsid,goodsname,supplierid,storage)

values('100','小米手机','200','1001')

--查询库存量大于1000的商品,结果按库存量从大到小排序

select*

fromgoods

wherestorage>1000

orderbystoragedesc;

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.2.3查询每个客户的订单金额的总和

分析:

这里是对数据库market中order订单信息表中客户编号customerid进行归类,并计算出每个客户的订单金额ordersum的总和。

SQL语句:

--先插入几组数据,方便显示查询效果

insert

into"order"(orderid,customerid,goodsid,ordersum)

values('100','101','102','200')

insert

into"order"(orderid,customerid,goodsid,ordersum)

values('101','101','103','300')

insert

into"order"(orderid,customerid,goodsid,ordersum)

values('102','102','104','400')

--查询每个客户的订单金额的总和

selectcustomerid,SUM(ordersum)

from"order"

groupbycustomerid;

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.2.4查询2005年上半年(1月1日到6月30日)订货总数大于5000的商品

分析:

这里是对数据库market中order订单信息表中订货日期orderdata在2005年上半年(1月1日到6月30日)且订货总数quantity大于5000的商品进行全部查询。

SQL语句:

--先插入几组数据,方便显示查询效果

insert

into"order"(orderid,customerid,goodsid,quantity,orderdata)

values('200','300','400','6000','2005-2-1')

insert

into"order"(orderid,customerid,goodsid,quantity,orderdata)

values('201','301','401','6000','2005-2-2')

insert

into"order"(orderid,customerid,goodsid,quantity,orderdata)

values('202','302','402','4000','2006-2-1')

--查询年上半年(月日到月日)订货总数大于的商品

selectgoodsid

from"order"

where(quantity>5000)and(orderdatabetween'2005-1-1'and'2005-6-30');

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.3连接查询

在SQL中多个表的连接查询,它们可能在显示列中包含不同表中的列名,查询条件表达式中含有多个表中列进行关系比较运算及逻辑运算,从而可以实现更为广泛的查询要求。

在进行连接查询时,有时会出现以下几种情况:

(1)需要使用表的别名,即用户在一个语句内部,可以为表指定别名,可增加语句的可读性并有利于复杂的表连接操作;

(2)从多个表中合并数据,如内连接、外连接及交叉连接;

(3)合并多个结果集,描述如何用UNION操作符合并多个结果集。

5.3.1查询所有北京客户的订单信息,包括订单的序号、客户的姓名、商品名、数量

分析:

这里是对数据库market中customer客户表中地址为北京的客户在customer客户表、goods商品信息表和order订单信息表中查询他的订单信息,包括订单的序号orderid、客户的姓名customername、商品名goodsname、数量quantity。

SQL语句:

--先插入几组数据,方便显示查询效果

insert

intocustomer(customerid,customername,address)

values('101','张三','北京')

insert

intogoods(goodsid,goodsname,supplierid)

values('101','三星','100')

insert"order"(orderid,customerid,goodsid,quantity)

values('300','101','101','5000')

--查询所有北京客户的订单信息,包括订单的序号、客户的姓名、商品名、数量

selectorderid,customername,goodsname,quantity

fromcustomer,goods,"order"

wherecustomer.customerid="order".customeridand

goods.goodsid="order".goodsidand

address='北京';

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.3.2查询所有商品在什么时间卖出了多少

分析:

这里是对数据库market中goods商品信息表和order订单信息表中查询所有商品(商品名称goodsname)在什么时间(订货日期orderdata)卖出了多少(订单数量quantity)。

SQL语句:

--先插入几组数据,方便显示查询效果

insert

intogoods(goodsid,goodsname,supplierid)

values('102','红米手机','300')

insert

into"order"(orderid,customerid,goodsid,quantity,orderdata)

values('103','103','102','3000','2013-11-5')

--查询所有商品在什么时间卖出了多少

selectgoodsname,orderdata,quantity

fromgoods,"order"

wheregoods.goodsid="order".goodsid;

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.4嵌套查询

嵌套查询是多表查询的一种常见的形式,它是将某个或某些表(或视图)的查询结果作为条件,对另一个表(或视图)进行查询。

后者称为主查询,其他的都称为子查询,每个查询(包括主查询与子查询)又称为一个查询块。

在嵌套查询中,子查询可看做派生的表,它可以作为一个条件表达式或条件表达式的一部分。

查询块是嵌套在另一个查询块的WHERE子句或HAVING子句中。

注意:

子查询的SELECT语句中不能使用ORDERBY子句。

5.4.1查询没有订单的商品信息

分析:

这里是对数据库market中goods商品信息表查询所有在订单信息表order中没有订单信息的。

SQL语句:

--查询没有订单的商品信息

select*

fromgoods

wheregoodsidNOTIN

(selectgoodsid

from"order");

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

5.4.2查询每种商品的销售总数量和总金额。

分析:

这里是对数据库market中goods商品信息表和order订单信息表查询每种商品的销售总数量和总金额。

SQL语句:

--查询每种商品的销售总数量和总金额

selectgoodsname,SUM(quantity),SUM(ordersum)

fromgoods,"order"

GROUPBYgoodsname;

执行SQL语句。

输入完成后按下F5键,或单击工具栏中的运行按钮,即执行刚才输入的语句,运行结果如图所示。

六、实验体会或对改进实验的建议

通过该实验使得我学会了数据库查询的一些基本操作,包括单表查询、连接查询和嵌套查询,并学会了ORDERBY子句和GROUPBY子句的使用。

而且本实验使得我对与数据库查询有了更深层次的理解,为以后的学习打下了坚实的基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1