1、数据查询机制
l 查询产生一个虚拟表。
l 看到的是表形式显示的结果,但结果并不真正存储。
l 每次执行查询只是从数据表中提取数据,并按照表的形式显示出来。
注:可简单理解为查询是针对已存在的数据进行“筛选”。
2、基本查询语法
SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]
- 查询所有的语法
SELECT * FROM 表名
- 查询部分列(某几列)
SELECT 列1,列2,…… FROM 表名
- 查询某几行某几列)
SELECT列1 , 列2...
FROM 表名
WHERE 条件(约束行,用于选择行)
- 查询中使用别名【AS或者=】
n 使用AS
SELECT 列1AS 别名1,列2 AS 别名2 ...
FROM表名
WHERE条件
n 使用 = 命名别名:
SELECT 别名 = 列1 , 别名 = 列2
FROM表名
WHERE条件
- 使用”+”连接两列的值,注意:
² + 连接的数据类型必须兼容
² 如果 + 连接字符型数据,结果为字符串数据的连接
² 如果 + 连接数值型数据,结果为数值的和
- 空值的查询——条件
n IS NULL空值
n IS NOT NULL不为空,非空
- 使用常量列
SELECT 列1 AS 别名,列2 AS 别名 。。。 '常量值' AS 常量名
FROM 表名
WHERE 条件
- 返回指定的行数——TOP
n 按条数:
SELECT TOP 条数 列1,列。。。
FROM 表名
WHERE 条件
n 按百分比:
SELECT TOP 数目 PERCENT 列1,列。。。
FROM 表名
WHERE条件
注:20 percent就是20%
3、查询排序——ORDER BY 【ASC、DESC】
排序 ASC是升序排序,DESC是降序排序,默认为升序,省略不写为升序,按照列来排序。
SELECT 别名=列名,别名=列名。。。
FROM表名
WHERE条件
ORDER BY 列名 ASC 或 DESC
l 按照多列排序,使用多个列名
SELECT 别名=列名,别名=列名。。。
FROM表名
WHERE条件
ORDER BY 列名1,列名2
4、SQLServer中的常用四类函数
1) 字符串函数——用于控制返回给用户的字符串
a) CHARINDEX(要找的字符或字符串,字符串,从几开始找)
——查找字符|字符串在目标字符串中的位置【起始为1】
例如:SELECT CHARINDEX(‘love’,’ILOVEME’,1) 返回:2
b) LEN(‘字符串’)——返回字符串长度
例如:SELECTLEN(‘rweuieowtr’)返回:10
c) UPPER(‘字符串’)——将字符串中的英文转化成大写
例如:SELECTUPPER(‘asdfghjkl’)返回:ASDFGHJKL
d) LTRIM(‘ 字符串 ’)——清除字符串左边空格
例如:SELECT LTRIM (' 周智宇 ')
返回:周智宇 (后面的空格保留)
e) RTRIM(‘ 字符串 ’)——清除字符串右边空格
例如:SELECT RTRIM (' 周智宇 ')
返回: 周智宇(前面的空格保留)
f) RIGHT(‘字符串’,截取个数)——从右边截取边字符串
例如:SELECT RIGHT('焊接的考试卷',3) 返回:考试卷
g) REPLACE(‘字符串’,’被换的字符’,’换成字符’)
——替换一个字符串中的字符
例如:SELECT REPLACE('莫乐可切.杨可','可','兰')
返回:莫乐兰切.杨兰
h) STUFF('字符串',起始位置,挖取个数, '填充字符串')
——在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串
例如:SELECT STUFF('ABCDEFG', 2, 3, '我的音乐我的世界')
返回:A我的音乐我的世界EFG
2) 日期函数——用于操作日期值
a) GETDATE
b) DATEADD
c) DATEDIFF
d) DATENAME
e) DATEPART
3) 数学函数——用于对数值进行代数运算
4) 系统函数——获取有关SQL Server中对象和设置的系统信息