SQL实验三简单查询实验报告.docx
《SQL实验三简单查询实验报告.docx》由会员分享,可在线阅读,更多相关《SQL实验三简单查询实验报告.docx(23页珍藏版)》请在冰豆网上搜索。
SQL实验三简单查询实验报告
实验报告
课程名称数据库原理与应用
实验三简单查询
实验名称
专业
年级
学号
指导教师
实验日期
实验目的与要求:
熟练掌握简单查询中的投影查询和选择查询
熟练掌握查询中的排序和聚合函数的使用。
实验设备(环境):
PC机、SQLserver2008
实验内容:
(1)创建表
使用电子商城E_Market数据库,然后分别建立商品类别表CommoditySort、商品信息表CommodityInfo、会员信息表UserInfo、订单信息表OrderInfo
CREATETABLECommoditySort
(
SortIdINTIDENTITY(1,1)NOTNULL,--商品类别编号,主键,自动增长
SortNameVARCHAR(50)NOTNULL--商品类别名称
)
CREATETABLECommodityInfo
(
CommodityIdintIDENTITY(1,1)NOTNULL,--商品编号
SortIdintNOTNULL,--商品类别编号,外键
CommodityNamevarchar(50)NOTNULL,--商品名称
Pictureimage,--商品图片
InPricefloatNOTNULL,--商品进货价
OutPricefloatNOTNULL,--商品销售价格
Amountint--商品库存量
)
CREATETABLEUserInfo
(
UserIdVARCHAR(20)NOTNULL,--会员号
UserPwdVARCHAR(50)NOTNULL,--会员密码
UserNameVARCHAR(50)NOTNULL,--会员名
GenderINTNOTNULL,--性别
EmailVARCHAR(50),--
UserAddressVARCHAR(200),--联系地址
PhoneVARCHAR(20)NOTNULL--联系电话
)
CREATETABLEOrderInfo
(
OrderIdINTIDENTITY(1,1)NOTNULL,--订单编号
UserIdVARCHAR(20)NOTNULL,--外键,引用UserInfo表的主键
CommodityIdINTNOTNULL,--外键,引用商品信息表的主键
AmountINTNOTNULL,--数量
PayMoneyBIGINTNOTNULL,--付货总金额
PayWayVARCHAR(50)NOTNULL,--付款方式
OrderTimeDATETIMENOTNULL,--下单日期
ConfirmINTNOTNULL,--是否确认收,1表示确认,0表示没有确认,默认0
SendGoodsINTNOTNULL--是否发货,0没发,1发货,默认0
)
(2)输入数据
表1-1商品类别信息(CommoditySort)
SortId
SortName
1
手机数码
2
图书音像
3
家用电器
表1-2商品信息(CommodityInfo)
CommodityId
SortId
CommodityName
Picture
InPrice
OutPrice
Amount
1
1
索尼Z3
null
3300
4299
100
2
2
JavaScript指南
null
20
50
200
3
1
华为荣耀3C畅玩
null
500
799
80
表1-3注册会员信息(UserInfo)
UserId
UserPwd
UserName
Gender
Email
UserAddress
Phone
yoyo
iloveyou
卢晓凤
1
lxfsohu.
北京海淀
3
feiyang
hongmei
段飞扬
0
dfytom.
武汉江岸
4
daxia
langyashan
赵可以
0
zky163.
上海普陀
7
表1-4订单信息(OrderInfo)
OrderId
UserId
CommodityId
Amount
PayMoney
PayWay
OrderTime
Confirm
SendGoods
1
yoyo
1
2
8598
邮局
汇款
2014-03-26
0
1
2
feiyang
2
10
500
邮局
汇款
2014-02-06
1
1
3
daxia
3
3
2397
银行
转帐
2014-01-08
1
1
(3)设计数据关系图如下:
(4)导入数据
--导入数据注意事项,
--与插入数据的顺序相同,有主外键关系的,先导主表中的数据,再导子表中的数据
--1先导UserInfo或CommoditySort
--2再导CommodityInfo最后导OrderInfo
(回答为什么)
(5)用SQL语言查询,并对查询结果截图。
--[1]查询UserInfo中全部的行和列。
--[2]查询付款方式为“网上银行”的UserId,PayWay,PayMoney信息。
--查询一下付款的方式不是“网上银行”的订单信息
--[3]使用AS关键字来改变结果集中的别名
--[4]查询Email为NULL值,UserInfo中的所有信息。
--[5]查询返回限制的行数,使用TOP关键字。
返回性别为1的,前5个用户名及地址。
--[6]在查询的结果中排序,关键字是ORDERBY升序为ASC,降序为DESC
--按购买数量降序,按付款金额升序,
(共21条记录)
--[7]使用LIKE进行模糊查询
--查询用户表中所有用户地址中为四川的用户信息
--查询用户表中姓李的用户姓名,地址,
--[8]BETWEEN..AND查询在两个已知值的之间的未知的值
--查询订单表中购买数量为2到10之间的数据
--查询下单日期不在‘2012-1-1’到‘2013-1-1’之间的订单信息
--[9]使用IN在列举值范围内进行查询
--查询使用‘网上银行’‘邮局汇款’方式下单的信息
--【10】SUM用于对表达式中的列进行求和(只能用于数值型,空值将忽略)
--查询商品编号为6的销售总量
--按付款方式分别查询商品编号为6的销售总量
--【11】AVG求平均值,(只能与数值型一起使用,空值将忽略)
--图书音像的平均进货价
--
(1)根据“图书音像”商品类型查询该类型编号
--
(2)在商品信息表中查询类别编号为2的平均进货价
--【12】MAX与MIN,求最值,(空值将忽略,可以与数值型,日期型,字符型一起使用)
--在商品信息表中查询类别编号为1的最高,最低进货价
--【13】COUNT用于统计记录集中的记录数()
--使用COUNT统计用户表中用户数量
实验程序及结果:
(1)
useE_market
Select*
Fromuserinfo
(2)useE_market
Selectuserid,payway,paymoney
Fromorderinfo
Wherepayway=‘网上银行’
UserE_market
Select*
Fromorderinfo
Wherepayway!
=’网上银行’
(3)userE_market
Selectuseridas用户名,paymoneyas付款方式,paywayas付款金额
Fromorderinfo
(4)userE_market
Select*
Fromuserinfo
Whereemailisnull
(5)useE_market
Selecttop5useridas用户名,useraddressas地址
Fromuserinfo
Wheregender=1
(6)useE_market
Selectuserid,payway,amount,paymoney
Fromorderinfo
Orderdyamountdesc,paymoneyasc
(7)useE_market
Select*
Fromuserinfo
Whereuseraddresslike‘%’
UseE_market
Selectusername,useraddress,phone
Fromuserinfo
Whereusernamelike‘%’
(8)useE_market
Select*
Fromorderinfo
Whereamountbetween‘2’and‘10’
UseE_market
Select*
Fromorderinfo
Whereordetimebetween‘2012-1-1’and‘2013-1-1’
(9)useE_market
Select*
Fromorderinfo
Wherepaywayin(’网上银行’,‘邮局汇款’)
(10)useE_market
Selectsum(amount)as总数,payway
Fromorderinfo
Wherecommodityid=’6’groupbypayway
(11)useE_market
Selectavg(sortid)as类型编号
Fromcommoditysort
Wheresortname=’图书音像’
UseE_market
Selectavg(inprice)as平均进货价,sortid
Fromcommodityinfo
Wheresortid=’2’groupbysortid
(12)useE_market
Selectmax(inprice)as最高进货价,min(inprice)as最低进货价
Fromcommodityinfo
Wheresortid=’1’
(13)UseE_market
Selectcount(userid)人数
Fromuserinfo
实验总结(包括过程总结、心得体会及实验改进意见等):
在查询过程中,稍有不慎就会造成语法错误,需要多熟悉SQL数据库的查询语言,还有注意中文标点的输入也会造成查询的失败,还有空语句的查询也有一些不同之处需要注意,在备份数据库的同时记得要删除原始保存地址,不然会造成数据库二次打开失败和数据迁移不完善的后果。
指导教师评语:
成绩评定
教师签字
备注:
注:
1、报告内的项目或设置,可根据实际情况加以补充和调整
2、教师批改学生实验报告应在学生提交实验报告10日内