基础查询
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
SELECT BookName as 图书名, Description as 描述, UnitPrice * 0.8 as 单价 From Books WHERE UnitPrice > 50 ORDER By UnitPrice DESC
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%'
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
SELECT AuthorName FROM Authors WHERE Birthday Between '1960-01-01' and '1982-01-01'