• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    SQL Server常用关键字与功能详解

    发布者: 土豆服务器 | 发布时间: 2025-6-18 09:21| 查看数: 93| 评论数: 0|帖子模式

    1. 控制流关键字

    控制流关键字用于控制 SQL 脚本的执行逻辑,包括条件判断和循环等操作。

    1.1 IF 和 ELSE


    • 用于条件判断并执行不同的分支。
    1. IF EXISTS (SELECT 1 FROM Users WHERE UserID = 1)
    2.     PRINT 'User exists'
    3. ELSE
    4.     PRINT 'User does not exist'
    复制代码
    1.2 IIF


    • 三元操作符,类似于
      1. CASE WHEN
      复制代码
      ,用于简单的条件判断。
    1. SELECT IIF(Age >= 18, 'Adult', 'Minor') AS AgeGroup
    2. FROM Users
    复制代码
    1.3 CASE


    • 用于多条件分支选择。
    1. SELECT
    2.     CASE
    3.         WHEN Age >= 18 THEN 'Adult'
    4.         ELSE 'Minor'
    5.     END AS AgeGroup
    6. FROM Users
    复制代码
    1.4 BEGIN 和 END


    • 用于定义一个逻辑代码块。
    1. BEGIN
    2.     PRINT 'Start of block'
    3.     SELECT * FROM Users
    4. END
    复制代码
    1.5 WHILE


    • 用于循环操作。
    1. DECLARE @Counter INT = 0
    2. WHILE @Counter < 5
    3. BEGIN
    4.     PRINT @Counter
    5.     SET @Counter = @Counter + 1
    6. END
    复制代码
    2. 数据操作关键字

    这些关键字主要用于对数据进行增删改查操作。

    2.1 SELECT


    • 用于查询数据。
    1. SELECT * FROM Users
    复制代码
    2.2 INSERT


    • 用于插入数据。
    1. INSERT INTO Users (UserID, UserName)
    2. VALUES (1, 'John')
    复制代码
    2.3 UPDATE


    • 用于更新数据。
    1. UPDATE Users SET UserName = 'Jane' WHERE UserID = 1
    复制代码
    2.4 DELETE


    • 用于删除数据。
    1. DELETE FROM Users WHERE UserID = 1
    复制代码
    2.5 MERGE


    • 用于合并数据(插入、更新或删除)。
    1. MERGE INTO TargetTable AS Target
    2. USING SourceTable AS Source
    3. ON Target.ID = Source.ID
    4. WHEN MATCHED THEN
    5.     UPDATE SET Target.Name = Source.Name
    6. WHEN NOT MATCHED BY TARGET THEN
    7.     INSERT (ID, Name) VALUES (Source.ID, Source.Name)
    8. WHEN NOT MATCHED BY SOURCE THEN
    9.     DELETE;
    复制代码
    3. 数据处理函数

    SQL Server 提供了丰富的内置函数,用于处理数据。

    3.1 字符串函数


      1. RTRIM
      复制代码
      1. LTRIM
      复制代码
      : 去除字符串右侧或左侧的空格。
    1. SELECT RTRIM('Hello   ') AS Trimmed
    复制代码

      1. STUFF
      复制代码
      : 替换字符串中指定位置的子字符串。
    1. SELECT STUFF('abcdef', 2, 3, '123') AS Result -- 输出: a123ef
    复制代码

      1. LEN
      复制代码
      : 返回字符串的长度。
    1. SELECT LEN('Hello') AS StringLength
    复制代码
    3.2 数学函数


      1. ABS
      复制代码
      : 返回绝对值。
      1. ROUND
      复制代码
      : 四舍五入。
      1. POWER
      复制代码
      : 计算幂次方。
    1. SELECT POWER(2, 3) AS Result -- 输出: 8
    复制代码
    3.3 日期函数


      1. GETDATE
      复制代码
      : 返回当前系统时间。
      1. DATEADD
      复制代码
      : 在日期上加上指定的时间间隔。
    1. SELECT DATEADD(DAY, 1, '2024-01-01') AS NextDay
    复制代码

      1. DATEDIFF
      复制代码
      : 计算两个日期之间的差异。
    1. SELECT DATEDIFF(DAY, '2024-01-01', '2024-01-10') AS DaysDifference
    复制代码
    4. 窗口函数关键字

    窗口函数用于在查询中执行分组或排序相关的操作。

    4.1 OVER


    • 配合聚合函数使用,为每一行提供额外的计算结果。
    1. SELECT Name, Salary, RANK() OVER (ORDER BY Salary DESC) AS Rank
    2. FROM Employees
    复制代码
    4.2 PARTITION BY


    • 用于分组,配合
      1. OVER
      复制代码
      使用。
    1. SELECT Name, Department, RANK() OVER (PARTITION BY Department ORDER BY Salary DESC) AS Rank
    2. FROM Employees
    复制代码
    5. 临时表关键字


    5.1 TEMPDB


    • 系统数据库,用于存储临时表和对象。

    5.2 # 和 ##


      1. #
      复制代码
      : 创建本地临时表。
      1. ##
      复制代码
      : 创建全局临时表。
    1. CREATE TABLE #TempTable (ID INT, Name NVARCHAR(50))
    2. INSERT INTO #TempTable VALUES (1, 'John')
    3. SELECT * FROM #TempTable
    复制代码
    6. 事务管理关键字

    用于管理数据操作的事务性。

    6.1 BEGIN TRAN 和 COMMIT


    • 用于开启和提交事务。
    1. BEGIN TRAN
    2. UPDATE Users SET Name = 'NewName' WHERE ID = 1
    3. COMMIT
    复制代码
    6.2 ROLLBACK


    • 用于回滚事务。
    1. BEGIN TRAN
    2. UPDATE Users SET Name = 'NewName' WHERE ID = 1
    3. ROLLBACK
    复制代码
    7. 安全与权限管理关键字


    7.1 GRANT 和 REVOKE


    • 用于分配和撤销权限。
    1. GRANT SELECT ON Users TO UserRole
    2. REVOKE SELECT ON Users FROM UserRole
    复制代码
    7.2 DENY


    • 用于显式禁止权限。
    1. DENY SELECT ON Users TO UserRole
    复制代码
    8. 高级关键字


    8.1 WITH (NOLOCK)


    • 用于减少锁的开销,允许读取未提交的数据。
    1. SELECT * FROM Users WITH (NOLOCK)
    复制代码
    8.2 FOR XML PATH


    • 用于将结果集转换为 XML 格式。
    1. SELECT Name FROM Users FOR XML PATH('User')
    复制代码
    8.3 CROSS APPLY 和 OUTER APPLY


    • 用于将表值函数应用到每一行数据。
    1. SELECT * FROM Users u CROSS APPLY dbo.GetDetails(u.ID)
    复制代码
    总结

    SQL Server 的关键字涵盖了数据操作、查询优化、数据处理、事务管理等方方面面。在实际开发中,灵活运用这些关键字和函数,可以高效地完成各种复杂的数据操作。

    建议


    • 多用关键字组合优化查询。
    • 注意
      1. WITH (NOLOCK)
      复制代码
      和事务的使用,避免不一致的数据问题。
    • 使用窗口函数简化复杂的分组计算。
    以上就是SQL Server常用关键字与功能详解的详细内容,更多关于SQL Server关键字与功能的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/database/331417hzz.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表