当前位置: 首页 > news >正文

T_SQL和SQL的区别

一. SQL Server和T-SQL的区别(⭐T-SQL 包含了 SQL)

  1. SQL Server是结构化查询语言,是目前关系型数据库管理系统中使用最广泛的查询语言

  1. T-SQL是标准SQL语言的扩展,是SQL Server的核心,在SQL的的基础上添加了变量,运算符,函数和流程控制等,Microsoft SQL Server支持的语言

二.T-SQL语言的组成

  1. 数据定义语言(DDL:CREATE、DROP、ALTER)定义存储数据的结构和组织

2.数据操纵语言(DML:INSERT(插入)、UPDATE(修改)、DELETE(删除))添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新。

3.数据控制语言(DCL):检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问

4.数据查询语言(DQL),例如:SELECT语句

5.程序化SQL语句

语 句

功 能

declare

定义查询游标

explan

描述查询描述数据访问计划

open

检索查询结果打开一个游标

fetch

检索一条查询结果记录

close

关闭游标

prepare

为动态执行准备SQL语句

execute

动态执行SQL语句

describe

描述准备好的查询

三.T-SQL语句结构

SELECT 子句 [INTO 子句]

FROM 子句

[WHERE 子句]

[GROUP BY 子句]

[HAVING 子句]

[ORDER BY 子句]

  1. 表达式

declare变量声明语句

  • 局部变量名必须以@开始开头

declare @变量名 [as] 数据类型 = 值

2.select语句赋值

select @变量名 = 字段名 from xx

  1. set赋值

declare @变量名 数据类型

set @变量名 = 值 / (表达式)

一条set赋值语句只能给一个变量赋值,而一条select语句可以给多个变量赋值

// 1
declare @num1 int = 1
// 2
declare @num2 int
select @num2 = 2 from emp where id = 'xx'
// 3
declare @num3 int
set @num3 = 3

3. 函数

数据类型转换函数

convert(数据类型(长度),表达式[,n])

4. 运算符

算术运算符:+、-、*、/、%(求余)

字符串运算符:+(连接)

比较运算符:=、>、>=、<、<=、<>(不等于)、!>(不大于)、!<(不小于)

逻辑运算符:NOT、AND、OR、ALL(所有)、ANY(或SOME,任意一个)、BETWEEN…AND、

EXISTS(存在)、IN(在范围内)、LIKE(匹配)

按位运算符:&(位与)、|(位或)、^(按位异或)

一元运算符:+(正)、-(负)、~(按位取反)

赋值运算符:=(等于)

5. 流程控制

BEGIN…END

语句用于将多个 Transact-SQL 语句组合为一个逻辑块。当流程控制语句必须执行一个包含两条或两条以上的 T-SQL 语句的语句块时,使用 BEGIN…END 语句。

declare @x int,@y int,@t int
set @x=1
set @y=2
begin
set @t=@x
set @x=@y
set @y=@t
end
print @x
print @y

IF

在 SQL Server 中为了控制程序的执行方向,也会像其他语言(如C语言)有顺序、选择和循环 3 种控制语句,其中 IF 就属于选择判断结构

declare @x int
set @x = 8
if @x % 2 = 0
print '@x 偶数'
print 'end'

IF…ELSE

declare @x int,@y int
set @x = 8
set @y = -3
if @x > 0if @y > 0print '@x@y位于第一象限'elseprint '@x@y位于第四象限'
elseif @y > 0print '@X@y位于第二象限'elseprint '@x@y位于第三象限'

WHILE

WHILE 子句是 T-SQL 语句支持的循环结构。在条件为真的情况下,WHILE 子句可以循环地执行其后的一条 T-SQL 命令。如果想循环执行一组命令,则需要配合 BEGIN…END 子句使用

declare @n int,@sum int
set @n = 1
set @sum = 0
while @n <= 10
beginset @sum = @sum + @nset @n = @n + 1
end
print @sum

http://www.lryc.cn/news/26580.html

相关文章:

  • 用Python自己写一个分词器,python实现分词功能,隐马尔科夫模型预测问题之维特比算法(Viterbi Algorithm)的Python实现
  • 刷题笔记2 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结
  • python 支付宝营销活动现金红包开发接入流程-含接口调用加签
  • Python操作Windows
  • Aptos SDK交互笔记(一)
  • 汽车 12V 和 24V 电池输入保护推荐
  • 龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式
  • 剑指 Offer 16. 数值的整数次方
  • 在苹果电脑 mac 上安装原神(playCover)
  • 数据结构考研习题精选
  • linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)
  • 网站打不开数据库错误等常见问题解决方法
  • 爬虫实战进阶版【1】——某眼专业版实时票房接口破解
  • 大话数据结构-普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal)
  • UNet-肝脏肿瘤图像语义分割
  • 三周爆赚千万 电竞选手在无聊猿游戏赢麻了
  • BERT学习
  • 大话数据结构-图的深度优先遍历和广度优先遍历
  • c语言指针怎么理解 第一部分
  • 计算机网络安全基础知识2:http超文本传输协议,请求request消息的get和post,响应response消息的格式,响应状态码
  • Pytest自动化框架~权威教程03-原有TestSuite的执行方法
  • web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
  • 【MyBatis】源码学习 05 - 关于 xml 文件解析的分析
  • 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II
  • Ethercat系列(10)用QT实现SOEM主站
  • 论文投稿指南——中文核心期刊推荐(科学、科学研究)
  • jQuery属性操作prop()、attr()和data()
  • git的使用
  • webpack生产环境配置
  • linux下安装jenkins