单表查询实验报告.docx
- 文档编号:1169171
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:10
- 大小:150.66KB
单表查询实验报告.docx
《单表查询实验报告.docx》由会员分享,可在线阅读,更多相关《单表查询实验报告.docx(10页珍藏版)》请在冰点文库上搜索。
单表查询实验报告
《数据库系统概论》实验报告
实验名称:
单表查询
实验人:
实验地点:
实验楼317
实验日期:
2009-10-5
一、
实验准备
1.硬件及软件环境要求
为了使该实验顺利进行,需要有一台计算机,计算机必须安装Windows2000、WindowsXP或WindowsNT操作系统,还必须安装MicrosoftSQLServer2000任意一版本(个人版、标准版、企业版)。
实验开始之前,必须将实验1.2节中创建好的SCDB数据库和ShiYan数据库附加到当前SQL数据库服务器中。
2.本实验涉及的主要SQL语句的语法格式
(1)SELECT子句
指定由查询返回的列。
SELECT[ALL|DISTINCT]
[TOPn[PERCENT][WITHTIES]]
:
=
{ * |{table_name|view_name|table_alias}.*
|{column_name|expression|IDENTITYCOL|ROWGUIDCOL}[[AS]column_alias]
|column_alias=expression } [,...n]
【说明】
ALL:
默认设置,指定在查询结果集中可以显示重复行。
DISTINCT:
指定在查询结果集中不显示重复行,空值被认为相等。
TOPn:
指定只从查询结果集中输出前n行。
PERCENT:
指定只从查询结果集中输出前n%行,当指定时带PERCENT,则n的值必须介于0~100之间。
WITHTIES:
指定从基本查询结果集中返回附加的行。
如果使用了ORDERBY子句,则只能使用TOP或WITHTIES选项。
select_list:
指定查询列或列表达式(即查询列表)。
各查询列表之间以逗号分隔。
*:
指定在FROM子句内返回所有表和视图内的所有列。
列按FROM子句所指定的由表或视图返回,并按它们在表或视图中的顺序返回。
column_name:
要返回的列名。
限定column_name以避免二义性引用,当FROM子句中的两个表内有包含重复名的列时会出现这种情况。
column_alias:
是查询结果集内替换列名的可选名。
table_name|view_name|table_alias.*:
将*的作用域限制为指定的表或视图。
expression:
是列名、常量、函数以及由运算符连接的列名、常量和函数的任意组合,或者是子查询。
IDENTITYCOL:
返回标识列。
如果FROM子句中的多个表内有包含IDENTITY属性的列,则必须用特定的表名限定IDENTITYCOL。
ROWGUIDCOL:
返回行全局唯一标识列。
如果在FROM子句中有多个表具有ROWGUIDCOL属性,则必须用特定的表名限定ROWGUIDCOL。
2)FROM子句
指定在DELETE、SELECT和UPDATE语句中使用的表、视图、派生表和连接表。
[FROM{
:
=
table_name[[AS]table_alias][WITH(
|view_name[[AS]table_alias][WITH(
|rowset_function[[AS]table_alias]
|user_defined_function[[AS]table_alias]
|derived_table[AS]table_alias[(column_alias[,...n])]
|
:
=
|
|[(]
:
=
[INNER|{{LEFT|RIGHT|FULL}[OUTER]}]
[
JOIN
【说明】
指定要在Transact-SQL语句中使用的表或视图。
table_nam:
表名。
FROM关键字之后的表和视图的顺序并不影响返回的结果集。
[AS]table_alias:
table_name、view_name或rowset_function的别名,为方便起见而使用,或用于区分自联接或子查询中的表或视图。
WITH(
指定表扫描、查询优化器要使用的一个或多个索引或查询优化器要对此表、此语句使用的锁定方法。
view_name:
是视图名称。
WITH(
指定索引视图扫描。
rowset_function:
指定一个行集函数,该函数返回可替代表引用的对象。
user_defined_function:
指定用户定义的函数,该函数返回一个表。
derived_table:
是从数据库中检索行的子查询。
column_alias:
替换结果集内列名的可选别名。
由两个或更多表的积组成的结果集。
指定联接操作的类型。
INNER:
指定返回每对匹配的行。
FULL[OUTER]:
指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为NULL。
LEFT[OUTER]:
指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为NULL。
RIGHT[OUTER]:
指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为NULL。
指定SQLServer查询优化器为在查询的FROM子句中指定的每个联接使用一个联接提示或执行算法。
JOIN:
指明所指定的联接操作应在给定的表或视图之间执行。
ON
指定联接所基于的条件。
3)WHERE子句
指定用于限制返回的行的搜索条件。
WHERE
【说明】
通过使用谓词限制结果集内返回的行。
4)LIKE子句
确定给定的字符串是否与指定的模式匹配。
模式可以包含常规字符和通配符字符。
模式匹配过程中,与使用=和!
=字符串比较运算符相比,使用通配符可使LIKE运算符更加灵活。
match_expression[NOT]LIKEpattern[ESCAPEescape_character]
【说明】
match_expression:
任何字符串数据类型的有效SQLServer表达式。
pattern:
match_expression中的搜索模式,可以包含%、_、[]、[^]等有效SQLServer通配符。
5)ORDERBY子句
用于指定结果集的排序方式。
[ORDERBY{order_by_expression[ASC|DESC]}[,...n]]
【说明】
order_by_expression:
指定要排序的列。
可以将排序列指定为列名或列的别名和表达式,或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。
ASC:
指定按递增顺序,从最低值到最高值对指定列中的值进行排序。
DESC:
指定按递减顺序,从最高值到最低值对指定列中的值进行排序。
二、实验目的
1.了解查询的概念和方法;
2.掌握查询分析器的使用方法;
3.掌握SELECT子句、FROM子句的用法;
4.掌握WHERE子句、ORDERBY子句、GROUPBY子句的用法;
5.掌握TOP、DISTINCT、IN、BETWEEN和LIKE等关键字的用法;
6.掌握SELECT语句在单表查询中的应用;
7.掌握利用企业管理器对表进行简单数据查询的实现方法。
三、实验内容
针对实验数据库ShiYan,完成以下单表查询操作:
1.查询为工程J1供应零件的供应商号码SNO。
2.查询为工程J1供应零件P1的供应商号码SNO。
3.找出所有供应商的名称和所在城市。
4.找出零件的所有信息,以及仅找出零件的颜色和重量。
5.找出使用供应商S1所供应零件的工程号码。
6.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列。
7.从J表中分别检索出第1条及前33%的工程项目信息。
8.统计P表中颜色为红色的零件的个数,并指定该查询列的名称为“红色零件数”。
9查询P表中各工程项目编号,名称及重量按86%计算后的信息,其中重量按86%计算后的查询列名改为“零件净重”。
10.查询SPJ表,要求查询结果式样为“供应商S1为工程项目J1供应零件P1的数量为300”。
11.查询S表STATUS值大于20且小于40,或SNAME字段值的第一个字为“精”或第三个字为“益”或“民”的供应商信息。
12.查询J表中JNAME值为三建和机车厂的工程项目信息。
13.利用企业管理器检索出SPJ表中的前5条记录,检索结果按QTY值降序排列。
四、总结
也许这是我第一次用SQL的原因,在实验的过程中遇到了很多的问题,都是需要和同学讨论才能解决的。
当然在这个实验之后我的确弄懂了很多东西,但是很多方面的知识我还是需要学习的,这个激起了我学好这个科目的动机,我会努力学好这科目的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 查询 实验 报告