diff --git "a/18\346\235\250\346\231\250\345\223\262/9.5\345\217\230\351\207\217.md" "b/18\346\235\250\346\231\250\345\223\262/9.5\345\217\230\351\207\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..6ba62fba7e96d98bde5e1fba0712a20ee63df9e4 --- /dev/null +++ "b/18\346\235\250\346\231\250\345\223\262/9.5\345\217\230\351\207\217.md" @@ -0,0 +1,48 @@ +## 变量 + +### 局部变量 + +局部变量必须以标记@作为前缀 ,如@age +局部变量的使用是先声明,再赋值 +局部变量只在定义它的局部范围内有效 + +#### 局部变量声明 + +局部变量使用declare语句定义,并且指定变量的数据类型,然后可以使用set或者select语句初始化变量;局部变量必须以“@”开头,并且必须先声明后使用。其声明格式如下: + +declare @变量名 变量类型[,@变量名 变量类型...] + +#### 局部变量初始化 + +select @局部变量=变量值 + +set @局部变量=变量值 + +set与select赋值的区别: + +set赋值给变量指定的值,select一般用于表中查询出的数据赋值给变量,如果查询结果有多条,取最后一条赋值给变量 + +#### 局部变量输出 + +print @局部变量 + +select @局部变量[,@局部变量...] + + + +### 全局变量 + +全局变量是SQL SERVER 系统内部使用的变量,用户无法定义与赋值。全局变量的作用范围并不局限于某一系统,而是任何系统都可以随时调用。 + +运用全局变量时,全局变量的名字前面要有俩个标记符"@@"。 + +不能定义与全局变量同名的局部变量。全局变量以系统函数的形式使用。 + +--@@ERROR:返回执行的上一个语句的错误号 +--@@IDENTITY:返回最后插入的标识值 +--@@MAX_CONNECTIONS:返回允许同时进行的最大用户连接数 +--@@ROWCOUNT:返回受上一语句影响的行数 +--@@SERVERNAME:返回运行 SQL Server 的本地服务器的名称 +--@@SERVICENAME:返回 SQL Server 正在其下运行的注册表项的名称 +--@@TRANCOUNT:返回当前连接的活动事务数 +--@@LOCK_TIMEOUT:返回当前会话的当前锁定超时设置(毫秒) \ No newline at end of file diff --git "a/18\346\235\250\346\231\250\345\223\262/9.6\351\200\273\350\276\221\346\216\247\345\210\266.md" "b/18\346\235\250\346\231\250\345\223\262/9.6\351\200\273\350\276\221\346\216\247\345\210\266.md" new file mode 100644 index 0000000000000000000000000000000000000000..fb03289d4c17aaabb8d8c11b037fd67755aa8b67 --- /dev/null +++ "b/18\346\235\250\346\231\250\345\223\262/9.6\351\200\273\350\276\221\346\216\247\345\210\266.md" @@ -0,0 +1,31 @@ +## 逻辑控制 + +#### if条件分支 + +if...else语句用于在执行一组代码之前进行条件判断,根据判断的结果执行不同。if...else语句对布尔表达式进行判断,如果布尔表达式返回TRUE,则执行if关键字后面的语句块;如果布尔表达式返回FALSE,则执行else关键字后面的语句块。 + + + +#### while:可以通过break和continue控制循环语句中的执行。 + +1.while语句根据条件重复执行一条或多条T-SQL代码,只要条件表达式为真,就循环执行语句。可以使用break和continue关键字在循环内部控制while循环中语句的执行。 + +语句while + +​ break + +2.break语句使程序从最内层的while循环中退出,将执行出现在end关键字(循环结束的标记)后面的任何语句。 + +3.continue语句使while循环重新开始执行,忽然continue关键字后面的任何语句。 + +#### case 多分支语句 + +case语句是多条件分支语句,相比if...else语句,case语句进行多分枝流程控制,使代码更加清晰,易于理解。case语句根据表达式逻辑值的真假来决定执行的代码流程。 + +case + +​ when + +​ else + +​ end \ No newline at end of file diff --git "a/18\346\235\250\346\231\250\345\223\262/9.7\345\255\220\346\237\245\350\257\242.md" "b/18\346\235\250\346\231\250\345\223\262/9.7\345\255\220\346\237\245\350\257\242.md" new file mode 100644 index 0000000000000000000000000000000000000000..0e96480446ea3d8d49641f659535f0523137e6cd --- /dev/null +++ "b/18\346\235\250\346\231\250\345\223\262/9.7\345\255\220\346\237\245\350\257\242.md" @@ -0,0 +1,9 @@ +### 子查询 + +#### 1.使用比较运算符完成的子查询 + +使用比较运算符完成的子查询是一种无关子查询,子查询的执行不依赖于外部镶套。查询的执行过程为:先执行子查询,子查询的结果集不显示出来,而是传给外部查询,作为外部查询的条件使用,然后执行外部查询。通常用比较运算符或[not]in关键词来描述外部查询中的where条件表达式。 + +#### 2.使用in或者not in谓词完成的子查询 + +如果子查询的结果为多个记录集合,则使用in或not in 谓词来完成子查询。 \ No newline at end of file