首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

实验四SQL单表查询语句练习

2021-09-10 来源:华拓网
实验四SQL单表查询语句练习

一、 实验目的

1. 掌握SQL Server数据库的恢复技术

2. 熟练掌握SQL单表查询语句

二、实验内容

1. 数据库恢复

2. SQL查询语言练习

实验基础知识提要

Microsoft? SQL Server?查询分析器是一种图形工具,您可以使用它创建查询和其它 SQL 脚本,并针对 SQL Server 数据库执行它们。 连接 SQL Server

连接某个 Microsoft? SQL Server? 实例以打开 SQL 查询分析器中的一个查询窗口。如果通过 SQL Server 企业管理器中的连接访问 SQL 查询分析器,则自动打开一个查询窗口。

如果未建立连接而访问 SQL 查询分析器,则显示\"连接到 SQL Server\"对话框,使您可以指定数据库服务器。该对话框还可从工具栏和从\"文件\"菜单上的\"连接\"命令进行访问。

下表列出\"SQL 查询分析器\"工具栏中显示的图标。

最基本的查询语句具有以下的形式: SELECT select_list FROM table_source

[ WHERE search_condition ] select_list

描述结果集的列。它是一个逗号分隔的表达式列表。每个表达式同时定义格式(数据类型和大小)和结果集列的数据来源。每个选择列表表达式通常是对从中获取数据的源表或视图的列的引用,但也可能是其它表达式,例如常量或 Transact-SQL 函数。在选择列表中使用 * 表达式指定返回源表中的所有列。

选择列表还可包含控制结果集的最终格式的关键字: DISTINCT

DISTINCT 关键字可从结果集中除去重复的行。

TOP n

TOP 关键字指定返回结果集的前 n 行。如果指定了 ORDER BY,行将在结果集排序之后选定。除非指定了 PERCENT 关键字,否则 n 即为返回的行数。PERCENT 指定 n 为结果集中返回的行的百分比。

三、实验步骤

构建一下数据库表作为实验数据来源 Products(产品) 代码 ProductID ProductName SupplierID CategoryID UnitPrice UnitsInStock UnitsOnOrder ReorderLevel Discontinued Orders(定单) 代码 OrderID CustomerID EmployeeID OrderDate RequiredDate ShippedDate ShipVia Freight ShipName ShipAddress ShipCity ShipRegion PostalCode ShipCountry 代码 CustomerID CompanyName ContactName 描述 定单编号 顾客编号 职员编号 定货日期 交货日期 载运日期 经由数 运费 船名 地址 城市 地区 邮政编码 国籍 描述 顾客编号 公司名 联系人名 数据类型 INT VARCHAR INT DATETIME DATETIME DATETIME INT FLOAT VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR 数据类型 VARCHAR VARCHAR VARCHAR 长度 4 5 4 8 8 8 4 8 40 60 15 15 10 15 长度 5 40 30 约束条件 主码 约束条件 主码 描述 产品编号 品名 供货厂商编号 所属种类号 单价 库存 定货数 修订量 是否进行 数据类型 INT VARCHAR INT INT VARCHAR FLOAT INT INT INT BIT 长度 4 40 4 4 20 8 2 2 2 1 约束条件 主码 QuantityPerUnit 单位数量 Customers(顾客) ContactTitle Address City Region PostalCode Country Phone Fax 联系人头衔 地址 城市 地区 邮政编码 国籍 电话 传真 VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR 30 60 15 15 10 15 24 24

运行SQL SERVER服务管理器,确认数据库服务器开始运行。 运行企业管理器,以图示方式点击“附加数据库”,恢复db目录下的数据库文件

打开查询分析器,选择刚才恢复的数据库exampleDB,输入SQL指令,获得运行结果。 任务:完成以下SQL查询语句

A. 在产品表(Products)中找出库存大于30的产品的所有信息 SELECT *

FROM Products

WHERE UnitsInStock>30

B. 查询顾客表(Customers)中所有不重复的所在城市 SELECT DISTINCT City FROM Customers

C. 在订单表(Orders)中找出运费在10到50之间的订单编号、顾客编号和职员编

SELECT OrderID,CustomerID,EmployeeID FROM Orders

WHERE Freight>=10 AND Freight<=50

D. 在顾客表(Customers)中找出所在城市为London的联系人名和公司名 SELECT ContactName,CompanyName FROM Customers

WHERE City='London'

E. 在顾客表(Customers)中找出所在城市为London、Madrid、Torino和Paris的

顾客编号及电话

SELECT CustomerID,Phone FROM Customers

WHERE City='London' OR City='Madrid' OR City='Torino' OR City='Paris'

F. 在订单表(Orders)中找出国籍不是Brazil、Spain和Mexico的订单编号和订

货日期

SELECT OrderID,OrderDate FROM Orders WHERE ShipCountry!='Brazil' AND ShipCountry!='Spain' AND ShipCountry!='Mexico'

G. 在产品表(Products)中找出单位数量中有box的产品名和产品编号 SELECT ProductName,ProductID FROM Products

WHERE QuantityPerUnit LIKE '%box%'

H. 在顾客表(Customers)中找出公司名的首字母为F的顾客编号和联系人名 SELECT CustomerID,ContactName FROM Customers

WHERE CompanyName LIKE 'F%'

I. 在顾客表(Customers)中找出公司名的首字母为F,第5位为k的顾客编号和联

系人名

SELECT CustomerID,ContactName FROM Customers

WHERE CompanyName LIKE 'F___k%'

四. 实验结果与分析(上交实验报告)

分析思考问题:

子句的选择列可以有那些合法内容。

2.列举出至少5种Where子句的筛选用表达式。

Where?like?, where?=, where?or, where?and, where?in等等

五.讨论、心得

因篇幅问题不能全部显示,请点此查看更多更全内容