数据库基本查询Word文件下载.doc
《数据库基本查询Word文件下载.doc》由会员分享,可在线阅读,更多相关《数据库基本查询Word文件下载.doc(8页珍藏版)》请在冰豆网上搜索。
(1)掌握SQL的DDL使用方法。
(2)掌握SQL的基本查询语句使用方法。
2实验内容
1.1掌握SQL的DDL使用方法
(1)使用GBK字符集,创建名为TPCH的数据库。
(2)在TPCH数据库中创建名为SALES的模式。
(3)在SALES模式下创建TPCH数据库模式。
1.2掌握SQL的基本查询语句使用方法
(1)单表查询
(2)单表单条件查询
(3)单表多条件查询
(4)两表连接查询
(5)单表自身连接查询
(6)三表连接查询
(7)四表连接查询
(8)五表连接查询
(9)六表连接查询
(10)七表连接查询
3实验要求
(1)深入复习教材第三章SQL有关数据库定义和基本查询SQL语句,理解关系代数表达式如何使用基本的SQL查询语句实现。
(2)理解数据库所使用的各种字符集的区别与联系。
(3)请按照附件1生成TPCH数据库模式(注意:
故意在附件1中SQL语句中引入了若干错误,需要仔细调试才能运行),要深入理解该数据库模式的含义。
(4)通过企业管理器添加数据,或者通过其他的数据自动产生工具自动添加数据,以便进行查询。
如果是手动添加数据,请以你班同学当做顾客,国家和地区表的数据参照附件3表中的数据录入(全部或部分数据即可),请从网上搜集尽量真实的零件和供应商信息添加到相应的表中,最后根据购物常识添加订单及其明细信息。
(5)根据书上的例子,针对TPCH数据库模式设计各种基本查询语句,每种类型的基本查询至少要设计一个查询,描述清楚查询要求,运行你所设计的查询语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
也可以按照附2所列示例查询做实验。
(6)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
4实验步骤
1.3掌握SQL的DDL使用方法
CREATESCHEMASALES
(3)在SALES模式下创建TPCH数据库模式,要求每个表要有主码、外键等基本完整性约束。
1.4
掌握SQL的基本查询语句使用方法
(1)单表查询(实现投影操作)
查询供应商的名称、地址和联系电话。
SELECTNAME,ADDRESS,PHONE
FROMSUPPLIER
(2)单表单条件查询(实现选择操作)
查询零售价格不超过3元的零件编号、名称及其零售价格。
SELECTPARTKEY,NAME,RETAILPRICE
FROMPART
WHERERETAILPRICE<
=3
查询最近一周内提交的总价大于1000元的订单的编号、顾客编号、订单日期和总价等信息。
SELECTORDERKEY,CUSTKEY,ORDERDATE,TOTALPRICE
FROMORDERS
WHERETOTALPRICE>
1000ANDORDERDATE<
'
2017-05-19'
(4)两表连接查询(实现笛卡尔积操作)
查询供应商及其所在国家。
SELECTSUPPLIER.NAME,NATION.NAME
FROMSUPPLIER,NATION
(5)两表连接查询(实现普通连接操作,任意两个列做大于、小于等连接操作)
查询供应价格大于零售价格的零件及其供应信息。
SELECT*
FROMpartsuppPS,PARTP
WHEREPS.SUPPLYCOST>
P.retailprice
(6)两表连接查询(实现等值连接操作)
SELECT*
FROMSUPPLIERS,NATIONN
WHERES.NATIONKEY=N.NATIONKEY
(7)两表连接查询(实现自然连接操作)
SELECTSUPPKEY,SUPPLIER.NAME,ADDRESS,PHONE,ACCTBAL,SUPPLIER.COMMENT,NATION.NATIONKEY,NATION.NAME,REGIONKEY,NATION.COMMENT
FROMSUPPLIER,NATION
WHERESUPPLIER.NATIONKEY=NATION.NATIONKEY
(8)单表自身连接查询
查询与“冰山集团”在同一个国家的供应商编号、名称和地址信息。
SELECTS2.SUPPKEY,S2.NAME,S2.ADDRESS
FROMSUPPLIERS1,SUPPLIERS2
WHERES1.NAME='
冰山集团'
ANDS1.NATIONKEY=S2.NATIONKEYANDS2.name!
='
(9)三表连接查询
查询顾客“苏举库”订购的订单编号、总价及其订购的零件编号、数量和实际价格。
SELECTL.ORDERKEY,TOTALPRICE,PARTKEY,QUANTITY,EXTENDEDPRICE
FROMORDERSO,LINEITEML,CUSTOMERC
WHEREC.NAME='
苏举库'
ANDO.CUSTKEY=C.CUSTKEYANDL.ORDERKEY=O.ORDERKEY
(10)四表连接查询
查询顾客“苏举库”订购的订单编号、总价及其订购的零件供应价格、数量和实际价格。
SELECTO.ORDERKEY,TOTALPRICE,SUPPLYCOST,EXTENDEDPRICE,QUANTITY
FROMORDERSO,LINEITEML,CUSTOMERC,PARTSUPPPS
ANDO.CUSTKEY=C.CUSTKEYANDL.ORDERKEY=O.ORDERKEYANDPS.PARTKEY=L.PARTKEY
(11)五表连接查询
查询顾客“苏举库”订购的订单编号、总价及其订购的零件名称、数量和实际价格。
SELECTO.ORDERKEY,TOTALPRICE,P.NAME,QUANTITY,EXTENDEDPRICE
FROMORDERSO,LINEITEML,CUSTOMERC,PARTSUPPPS,PARTP
ANDO.CUSTKEY=C.CUSTKEYANDL.ORDERKEY=O.ORDERKEYANDPS.PARTKEY=L.PARTKEYANDP.PARTKEY=PS.PARTKEY
(12)六表连接查询
查询顾客“苏举库”订购的订单编号、总价及其订购零件的供应商名称、零件名称、数量、实际价格。
SELECTO.ORDERKEY,TOTALPRICE,P.NAME,QUANTITY,EXTENDEDPRICE,S.NAME
FROMORDERSO,LINEITEML,CUSTOMERC,PARTSUPPPS,PARTP,SUPPLIERS
WHEREC.NAME='
(13)七表连接查询
查询中国顾客订购的订单编号、总价及其订购零件的供应商名称、零件名称、数量、实际价格。
FROMORDERSO,LINEITEML,CUSTOMERC,PARTSUPPPS,PARTP,SUPPLIERS,NATIONN
WHEREO.CUSTKEY=C.CUSTKEYANDL.ORDERKEY=O.ORDERKEYANDPS.PARTKEY=L.PARTKEYANDP.PARTKEY=PS.PARTKEYAND
N.NAME='
CHINA'
ANDS.NATIONKEY=N.NATIONKEYANDS.SUPPKEY=PS.SUPPKEY;
(14)八表查询
查询亚洲顾客订购的订单编号、总价及其订购零件的供应商名称、零件名称、数量、实际价格。
FROMORDERSO,LINEITEML,CUSTOMERC,PARTSUPPPS,PARTP,SUPPLIERS,NATIONN,REGIONR
S.SUPPKEY=PS.SUPPKEYANDS.NATIONKEY=N.NATIONKEYANDN.REGIONKEY=R.REGIONKEYANDR.NAME='
YAZHOU'
5总结与体会
5.1实验中出现的问题及其解决方案
实验中出现很多问题
(1)建表过程中附的代码有问题,运行会报错。
但是因为问题较小,经过简单的修改成功建表。
(2)表与表之间关系复杂,主码外码设定困难。
从最基本的表开始,逐渐往上建表,直至所有表建好。
(3)编写代码出现了很大的困难,很多代码运行不通。
最后问了很多同学尝试了很多次,代码终于运行正常了。
5.2总结
这次的实验主要是连接查询。
在SQL里连接出现有四种(自然连接,普通连接,外连接,自身连接)
我们平常用的比较多的是等值连接。
等值连接顾名思义,就是两个值相等时进行连接,最后的多表连接就是的发挥作用。
实验本身比较简单,多试几次就好了。
5.3体会
这次的实验不难,主要是基础的东西,只要把一些简单的东西做好就可以了,关键是有耐心。
不论我们学习多次时间,我们所得的知识终有限,我们必须不断学习才能跟上发展的浪潮。