数据库系列之查询(1)

基础查询

1 语法
SELECT    <列名>
FROM      <表名>
[WHERE    <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]

2 示例

SELECT       AuthorName, Email, Age 
FROM           Authors 
WHERE        City=北京
ORDER BY  AuthorID DESC

3、查询数据表中部分列

SELECT AuthorName, Age, Sex, City
FROM    Authors

4、使用“*”查找所有列

SELECT  *   FROM  Authors

5、使用WHERE过滤部分行数据

SELECT AuthorName, Age, Sex, City
FROM    Authors
WHERE City=北京

6、使用As子句将列转别名

SELECT AuthorName as 作者姓名, Email as 电子邮件, Age as 年龄
FROM  Authors
注意:
1、应使用英文半角
2、如果是中间不包含空格可以不写引号
转别名还可以使用“=”
SELECT ‘作者姓名‘=AuthorName, 电子邮件=Email, 年龄=Age
FROM Authors

7、使用“+”连接多个字段,合并成一列

SELECT AuthorName +   + City as 作者居住城市
FROM  Authors
注意:
1、+前后类型应兼容
2、如果+连接数值类型,结果是数值之和。
3、如果+连接字符串类型,结果是字符串的连接。

8、使用Top关键字查询表中限定行数

SELECT TOP 5 *  FROM  Authors 
--使用PERCENT按百分比取数据
SELECT Top 30 PERCENT * FROM  Authors

9、在查询结果中使用常量列

SELECT AuthorName as 作者姓名, 80 as 满意度
FROM Authors

10、使用DISTINCT关键字屏蔽重复数据

SELECT DISTINCT City FROM Authors

11、使用IS  NULL查询空数据

SELECT AuthorName, Birthday, City
FROM    Authors
WHERE Birthday IS NULL
如果填写了生日信息,然后又删了,如何查询出来?
SELECT AuthorName, Birthday, City
FROM Authors
WHERE Birthday IS NULL OR Birthday=‘‘

12、UNION联合查询

SELECT CustomerName as 姓名, City as 居住城市
FROM Customers 
UNION
SELECT AuthorName as 姓名, City as 居住城市
FROM Authors

13 、排序
(1)查询所有图书信息并按照价格字段升序显示

SELECT BookName, Description, UnitPrice
FROM Books
ORDER By UnitPrice
(2)查询单价在50元以上的图书信息,要求价格以8折显示,并按价格降序排列
SELECT BookName as 图书名, Description as 描述, UnitPrice * 0.8 as 单价
From Books
WHERE UnitPrice > 50
ORDER By UnitPrice DESC
(3)查询结果还可以按多列进行排序
SELECT BookName as 图书名, CategoryID as 类别编号, UnitPrice as 单价
From Books
ORDER By CategoryID, UnitPrice DESC

模糊查询

1 LIKE进行模糊查询
WHERE  <列名>  [NOT]  LIKE  <字符表达式>
考虑:执行下面的查询语句结果是什么?

SELECT BookCode, BookName, UnitPrice, Description
FROM Books
WHERE BookCode LIKE _[5,8,0]K%
A. a89K123
B. 55K1234
C. K1K9992
D. m0K3339

2 IN进行模糊查询
WHERE  <列名>  IN  <(常量列表)>
其中:<常量列表>中各常量值用逗号隔开
查询居住地是“北京”、“上海”、“西安“、“成都”的作者

SELECT AuthorName, City
FROM Authors
WHERE City IN (北京,上海,西安,成都)

3 BETWEEN进行模糊查询
WHERE  <列名>  [NOT]  BETWEEN  <起始表达式> And  <结束表达式>
注意:<起始表达式>和<结束表达式>的顺序不能颠倒
查找单价在20到99元的图书信息

SELECT BookCode, BookName, UnitPrice
FROM Books
WHERE UnitPrice Between 20 and 99
Between语句还经常用于查找指定日期范围内的数据
SELECT AuthorName
FROM Authors
WHERE  Birthday Between 1960-01-01 and 1982-01-01

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。