文档介绍:第4章数据查询
数据库将数据合理地组织在一起。数据查询则是从数据库中检索符合条件的数据记录的选择过程,它是数据库中一个最常用的操作。本章要点:
SELECT语句
基本查询
高级查询
SELECT语句
SELECT语句的作用是让数据库服务器根据客户的要求从数据库中搜索出所需要的信息资料,并且可以按规定的格式进行分类、统计、排序,再返回给客户。语法形式为:
SELECT [ALL|DISTINCT] [TOP n PERCENT ] select_list
[ INTO new_table ]
FROM table_name
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
关键字
进入结果集的列
源表名
基本查询
当使用SELECT语句时,可以用两种方式来控制返回的数据:选择列和选择行。
选择列就是垂直地划分数据,限制返回结果中的列,这由SELECT语句中的SELECT子句指定要返回的列来控制;
选择行则是水平地划分数据,限制返回结果中的行,这由SELECT语句中的WHERE子句指定选择条件来控制。
选择列
SELECT column_name1[,column_name2,…]
FROM table_name
例4-1 我们选择Products表中的产品ID、产品名称(ProductName)和单价(Price)三列。
USE sales
GO
SELECT ProductID,ProductName,Price
FROM Products
注意:
在数据查询时,列的显示顺序由SELECT语句的SELECT子句指定,顺序可以和列定义时顺序不同,这并不影响数据在表中的存储顺序。
在查找多列内容时,用‘,’将各字段分开。
在SELECT子句中可以使用星号(*),显示表中所有的列。
例4-2 显示Orders表中的所有信息。
SELECT *
FROM Orders
在SELECT子句中可以使用算术运算符对数值型数据列进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算,构造计算列。
例4-3 从Products表中检索出产品ID(ProductID)、产品名称(ProductName)、产品单价(Price)、产品库存量(Stocks)及产品的总价值,查询如图4-2所示。
SELECT ProductID,ProductName,Price,Stocks,Price*Stocks
FROM Products
例4-4 从pubs数据库的authors表查询作者的姓和名,以及作者所居住的州和城市的名字,查询结果如图4-3所示。
USE pubs
GO
SELECT au_lname+'.'+au_fname,city+','+state
FROM authors
为了增加查询结果的可读性,可以在SELECT子句中增加一些说明列,增加的说明文字串需用单引号括起来。
例4-5 从pubs数据库的publishers表中查询出版商ID及出版商名字,查询结果如图4-4所示。
SELECT pub_id,'publisher name is: ',pub_name
FROM publishers
如果我们想改变查询结果中所显示的列标题,可以在SELECT语句中使用‘列标题’=列名或列名 AS ‘列标题’两种方法。
例4-6 为例4-3中的计算列指定一个列标题“总价值”。
SELECT ProductID,ProductName,Price,
Stocks,'total cost'=Price*Stocks
FROM Products
例4-7 按如下格式显示销售员信息。
SELECT SaleName AS ‘姓名’,Sex AS ‘性别’,
Birthday AS '出生日期',Address AS '地址'
FROM Salers
选择行
使用WHERE子句的目的是从表中筛选出符合条件的行,其语法形式如下:
SELECT column_name1[,column_name2,…]
FROM table_name
WHERE search_condition
<search_condition>:定义查询条件。
SQL Server支持的查询条件包括比较运算、逻辑运算、模糊匹配、范围、列表、以及是