文章目录
- 第1关:基本 SELECT 查询
- 代码
- 第2关:带限制条件的查询和表达式查询
- 代码
- 第3关:使用 WHERE 语句进行检索
- 代码
第1关:基本 SELECT 查询
相关知识
为了完成本关任务,你需要掌握:
如何获取数据表中指定字段的数据.
如何获取数据表中的所有数据。
若想使用 SELECT 语句来检索数据表中的数据,你至少得弄清楚两个重要的信息:
你想检索的是什么?
你想检索的内容它在什么地方?
检索数据表中一个字段的内容
我们将从最简单的 SELECT 语句开始学习。
语法规则为:
SELECT 字段名 FROM 表名
代码
创建实验环境后,下面的代码一次复制一行,回车(按enter键)
USE Mall
GO
SET NOCOUNT ON
---------- retrieving multiple column ----------
-- ********** Begin ********** --
SELECT prod_name,prod_price
FROM Products
-- ********** End ********** --
GO
---------- retrieving all column ----------
-- ********** Begin ********** --
SELECT *
FROM Products
-- ********** End ********** --
GO
第2关:带限制条件的查询和表达式查询
相关知识
为了完成本关任务,你需要掌握:1.使用限制关键字查询数据表中的指定字段的内容,2.使用运算符查询数据表中指定字段运算后的内容。
带限制条件的查询
SELECT 语句可以帮你返回所有匹配的内容,甚至整张表的内容。但是如果你仅仅是想要第一行的数据或者前几行的数据怎么办呢?好消息是我们可以通过限制条件来查询,不过限制条件的语法在各个数据库中的语法是不同的。在 SQL Server 中:
语法规则为:
SELECT TOP 行数 字段名 FROM 表名
代码
创建实验环境后,下面的代码一次复制一行,回车(按enter键)
USE Mall
Go
SET NOCOUNT ON
---------- retrieving with limited ----------
-- ********** Begin ********** --
SELECT top 2 prod_name
FROM Products
-- ********** End ********** --
GO
---------- retrieving with expression ----------
-- ********** Begin ********** --
SELECT prod_price,prod_price*0.8 as discount_price
FROM Products
-- ********** End ********** --
GO
第3关:使用 WHERE 语句进行检索
相关知识
为了完成本关任务,你需要掌握:如何使用 WHERE 语句和操作符来选择符合条件的数据。
在实际情况中,我们不仅需要对某字段的全部数据进行检索,更多的是需要对符合我们需求的数据进行检索。SQL 语言的发明者当然想到了这些,为我们提供了更多的方法来检索你想要的数据。
WHERE 语句就是这样一种存在,只要把你的需求正确地放在 WHERE 后边,它就能帮你检索到你想要的内容。
下表为与 WHERE 语句搭配的操作符列表:
使用WHERE语句检索双范围数据
还有一种情况,就是你心目中有一个理想的区间范围。比如你想买房,不能太便宜,因为便宜的有可能又小又偏僻,也不能太贵,因为。。。呵呵大家懂的。这时候,你就需要划定一个范围,SQL 很贴心的为大家提供了自然语言关键字,用来划定数字的范围。
语法规则为:
WHERE 字段名 BETWEEN 数字1 AND 数字2
举个例子
我们想从表 Customers 中找到消费在 1000~3000 之间的人。表 Customers 的内容和上例相同。
输入:
SELECT cust_name, cost
FROM Customers
WHERE cost BETWEEN 1000 AND 3000
代码
创建实验环境后,下面的代码一次复制一行,回车(按enter键)
USE Mall
Go
SET NOCOUNT ON
---------- retrieving with range ----------
-- ********** Begin ********** --
select prod_name,prod_price
from Products
where prod_price between 3 and 5
-- ********** End ********** --
GO
---------- retrieving with nomatches ----------
-- ********** Begin ********** --
select prod_name,prod_price
from Products
where prod_id <> 'BNBG02'
-- ********** End ********** --
GO