SQLSERVER关键字
在 SQL Server 的 T-SQL 语言中,关键字(Keywords) 是具有特殊含义的预定义词汇,用于执行特定操作(如查询、创建对象、控制事务等)。这些关键字不能直接作为标识符(如表名、列名、变量名等)使用,除非用方括号 []
、双引号 "
或分隔符 ""
括起来(如 [SELECT]
作为列名)。
一、常用关键字分类及说明
以下是 SQL Server 中最常用的关键字,按功能分类整理:
1. 数据查询(DQL)核心关键字
用于从表中检索数据,最基础也最常用:
SELECT
:指定要查询的列(如SELECT id, name FROM table
)。FROM
:指定查询的数据源(表、视图等,如SELECT * FROM Students
)。WHERE
:筛选行的条件(如WHERE age > 18
)。ORDER BY
:对结果集排序(如ORDER BY age DESC
)。GROUP BY
:按列分组并配合聚合函数(如GROUP BY dept
)。HAVING
:筛选分组后的结果(如HAVING COUNT(*) > 10
)。JOIN
:关联多表查询(如INNER JOIN
、LEFT JOIN
)。DISTINCT
:去除重复行(如SELECT DISTINCT dept FROM Employees
)。TOP
:限制返回的行数(如SELECT TOP 10 * FROM Orders
)。
2. 数据操纵(DML)关键字
用于添加、修改、删除表中的数据:
INSERT
:插入新行(如INSERT INTO table (col1) VALUES (val1)
)。UPDATE
:修改现有行(如UPDATE table SET col1 = val1 WHERE id=1
)。DELETE
:删除行(如DELETE FROM table WHERE id=1
)。MERGE
:根据条件执行插入、更新或删除(合并两个表的数据)。
3. 数据定义(DDL)关键字
用于创建、修改、删除数据库对象(表、索引、视图等):
CREATE
:创建对象(如CREATE TABLE
、CREATE INDEX
、CREATE VIEW
)。ALTER
:修改现有对象(如ALTER TABLE
新增列、ALTER INDEX
重建索引)。DROP
:删除对象(如DROP TABLE
、DROP DATABASE
)。TRUNCATE
:清空表数据(不可回滚,如TRUNCATE TABLE Students
)。RENAME
:重命名对象(如sp_rename 'oldname', 'newname'
,需配合系统存储过程)。
4. 事务控制关键字
用于管理事务,保证数据一致性:
BEGIN TRANSACTION
:开始事务(可简写为BEGIN TRAN
)。COMMIT
:提交事务(使修改永久生效)。ROLLBACK
:回滚事务(撤销未提交的修改)。SAVE TRANSACTION
:设置事务保存点(可回滚到指定点,而非全量回滚)。
5. 流程控制关键字
用于编写批处理、存储过程中的逻辑控制:
IF...ELSE
:条件判断(如IF EXISTS (...) BEGIN ... END ELSE ...
)。WHILE
:循环执行(如WHILE @i < 10 BEGIN ... @i +=1 END
)。BEGIN...END
:组合语句块(将多句代码视为一个整体)。CASE
:分支条件(如CASE WHEN age>18 THEN '成年' ELSE '未成年' END
)。GOTO
:跳转到指定标签(不推荐频繁使用,影响可读性)。RETURN
:退出存储过程或函数。
6. 其他重要关键字
AS
:为列或表指定别名(如SELECT name AS 姓名 FROM Students
)。IN
:判断值是否在列表中(如WHERE dept IN ('IT', 'HR')
)。BETWEEN
:判断值是否在范围中(如WHERE age BETWEEN 18 AND 30
)。LIKE
:模糊匹配(如WHERE name LIKE '%张%'
)。IS NULL
/IS NOT NULL
:判断空值(如WHERE email IS NULL
)。AND
/OR
/NOT
:逻辑运算符(组合多个条件)。EXISTS
:判断子查询是否返回结果(如WHERE EXISTS (SELECT * FROM Orders WHERE user_id=1)
)。USE
:指定当前数据库(如USE SchoolDB
)。
二、使用注意事项
避免作为标识符:关键字不能直接用作表名、列名等,例如
CREATE TABLE SELECT (...)
会报错。若必须使用,需用分隔符括起:CREATE TABLE [SELECT] (id INT); -- 用方括号括起关键字作为表名
区分保留与非保留关键字:
保留关键字:在任何语境下都有特殊含义(如
SELECT
、INSERT
),严格禁止直接作为标识符。非保留关键字:仅在特定语境下有意义(如
PIVOT
、UNPIVOT
),但仍建议避免用作标识符。
版本差异:部分关键字在 SQL Server 新版本中新增(如
OFFSET
、FETCH
是 2012+ 新增),使用时需注意兼容性。
三、查询所有关键字
若需查看 SQL Server 完整关键字列表,可通过系统视图查询:
-- 查询 SQL Server 所有保留关键字 SELECT * FROM sys.keywords WHERE is_reserved = 1;
掌握关键字是编写正确 T-SQL 的基础,实际开发中需注意其特殊含义,避免语法错误。
四、SQL Server 中常用关键字的小写形式
以下是 SQL Server 中常用关键字的小写形式,按功能分类整理,方便参考:
1. 数据查询(dql)关键字
select
:指定要查询的列from
:指定查询的数据源(表、视图等)where
:筛选行的条件order by
:对结果集排序group by
:按列分组,配合聚合函数使用having
:筛选分组后的结果join
:关联多表查询(如inner join
、left join
、right join
)distinct
:去除查询结果中的重复行top
:限制返回的行数as
:为列或表指定别名
2. 数据操纵(dml)关键字
insert
:向表中插入新行update
:修改表中现有行的数据delete
:删除表中的行merge
:根据条件对表执行插入、更新或删除操作(合并数据)
3. 数据定义(ddl)关键字
create
:创建数据库对象(如create table
、create index
、create view
)alter
:修改现有数据库对象(如alter table
、alter index
)drop
:删除数据库对象(如drop table
、drop database
)truncate
:清空表中所有数据(不可回滚)rename
:重命名数据库对象(需配合系统存储过程sp_rename
)
4. 事务控制关键字
begin transaction
:开始事务(可简写为begin tran
)commit
:提交事务,使修改永久生效rollback
:回滚事务,撤销未提交的修改save transaction
:设置事务保存点,可回滚到指定点
5. 流程控制关键字
if...else
:条件判断语句while
:循环执行代码块begin...end
:将多条语句组合为一个代码块case
:分支条件判断(如case when ... then ... else ... end
)goto
:跳转到指定标签(不推荐频繁使用)return
:退出存储过程或函数
6. 其他常用关键字
in
:判断值是否在指定列表中between
:判断值是否在指定范围内like
:模糊匹配(配合通配符%
、_
使用)is null
/is not null
:判断值是否为null
and
/or
/not
:逻辑运算符(组合多个条件)exists
:判断子查询是否返回结果use
:指定当前操作的数据库on
:在join
中指定关联条件(如left join ... on ...
)
这些小写关键字与大写形式功能完全一致,T-SQL 对关键字的大小写不敏感(如 select
和 SELECT
效果相同),小写形式更符合部分开发者的编码习惯。