/*T-SQL(Transact-SQL)是标准的SQL的加强版
T-SQL语言主要由以下几个部分组成:
1.数据定义语言(DDL):用来建立数据库和数据库对象,命令常以create开头
2.数据操纵语言(DML):用来对数据库中的数据进行增、删、改、查的操作
3.数据控制语言(DCL):用来对数据库的访问权限控制
T-SQL语句主要完成一下功能:
创建数据库及数据库对象
对数据的操作:inrt、 update、 lect
控制程序流程:if、 if-el 、ca、 while
控制事务处理
T-SQL语句的语法格式主要有一下规定:
语句中的字母大小写均可
关键字有特殊用途,定义变量名时不得使用关键字
语句中的日期型常量和字符常量必须用单引号括起来
语句中的标点符号必须用英文标点,即半角符号
一条语句可以分行写,一行可以写上多条语句,语句末尾不写任何标点符号
特殊意义的标识符:
以#开头的标识符表示临时表
jetion以@开头的标识符表示局部变量
以@@开头的标识符表示全局变量
提示:全局变量由系统提供,用户不要定义以@@开头的标识符
T-SQL的数据类型:
整型数据类型:
bit /tinyint( 在内存中占用1个字节)/smallint(在内存中占用2个字节)
int(在内存中占用4个字节)/bigint(在内存中占用8个字节)
名侦探柯南口头禅货币型数据类型:
smallmoney:(最多包含4位小数,可以精确到货币的万分之一;在内存中占用4个字节)
money:(最多包含4位小数,可以精确到货币的万分之一;在内存中占用8个字节)
精确小数数据类型:
numberic:可以存储带小数的数据类型,精度和小数位数可以在 所允许的范围内自行设置。
默认精度为18位,小数位是0位。numberic可以设置到38位取值范围是-10^38~+10^38-1
decimal数据类型和numberic数据类型的用法相同,只是decmal作为保留字可以缩写为dec
范例:
create table abc
(
num1 dec(6,3),// 取值范围:-999.999~+999.999
num2 numeric(6,5)//取值范围:-9.99999~+9.99999
)
inrt into abc values(123.456,9.123456)
inrt into abc values(123.456,8.999995)
inrt into abc values(1234.3456,9.999994)
inrt into abc values(123.3456,9.999995)
近似小数的数据类型:
real(在内存中占用4个字节,精度达到7位)/float(在内存中占用8个字节,精度达到15位)
日期和时间数据类型:
datetime:(在内存中占用8个字节,前4个存储日期后4个存储时间):1753-1-1 0:00:00
smalldatetime:(在内存中占用4个字节,前2个存储日期后2个存储时间) 1900-1-1 0:00:00
字符串数据类型:
char/varchar/text(专门用来存放带有大量字符的可变长度字符数据,
text数据类型最多可存放的字符长度达到2^31-1大约2GB)
unicode字符串数据类型:nchar/varchar/nchar
二进制字符串数据类型:
binary:是固定长度的二进制数
据类型。最大长度为8000字节,
进行插入行的操作时,数据本身不加引号,必须以0x开头。
varbinary:是可变长度的二进制数据类型。最大长度为8000字节,
进行插入行的操作时,数据本身不加引号,必须以0x开头。
T-SQL的运算符及表达式
算术运算符
赋值运算符
字符串运算符及表达式
关系运算符及表达式
逻辑运算符及表达式
位运算符及表达式
1.位运算符:
~ :按位取反运算
&:按位与运算
^:按位异或运算
|:按位或运算
2.位运算符的优先级别:~&^|
3.位运算表达式:运算采用补码运算
-12&3=4
~7=-8
2|3=3
~2&3|4^-5=-2
各种运算符及优先级别:
位运算符、算术运算符、字符串运算符、关系运算符、位运算符、逻辑运算符、赋值运算符
T-SQL的变量
局部变量:
局部变量一般出现在批处理、游标、存储过程、触发器和事务定义中
局部变量默认值为null,在程序中使用局部变量之前应先赋值
局部变量的定义方法:
declare @x int
declare @y float
局部变量的赋值:
prepaymentlect @x=100,@y=5.5
t @x=100
t @y=5.5 //t一次只能给已定义的一个变量赋值
变量的输出:
lect @x,@y+100
print @x+4
print @y//print一次只能输出一个局部变量或一个表达式的值
范例:
declare @number varchar(10),@name varchar(20),@x char(2)
declare @birthday datetime
declare @height float
declare @telphone varchar(20)
lect @number='06501011',@name=' 秦如风',@x='男',@birthday='1989-2-5'
t @height=1.73
t @telphone='139********'
lect @number 学号,@name 姓名,@x 性别,@birthday 出生日期,@height 身高,@telphone 电话
全局变量:
全局变量属于系统变量,是在T-SQL内部使用的变量
全局变量不可以由用户赋值,其值的大小和用户程序的运行状态有关
全局变量一律以@@开头
常用的全局变量:
在SQL Server 中一共提供了30多个全局变量
---T-SQL常用的全局变量---
@@ERROR:返回执行上一条T-SQL语句所返回的错误号、返回0,表示操作成功
@@ROWCOUNT:返回执行上一条T-SQL语句所影响的行数
@@FETCH_STATUS:返回上一次使用游标fetch(读取)操作所返回的状态,
返回0表示操作成功,
返回-1表示操作失败或者已经超出了游标所能操作的数据行的范围
返回-2表示返回值已经丢失
@@SERVERNAME:返回运行SQL Server的本地服务器名称
@@VERSION:返回SQL Server当前安装的日期、版本和处理器类型
@@NESTLEVEL:返回当前存储过程的嵌套层次
@@IDLE:返回以毫秒为单位的SQL Server服务器自最近一次启动以来处于替顿状态的时间
@@TRANCOUNT:返回当前连接的活动事务数
T-SLQ语句中的全局变量
--------------------------------------------------------------------------
@@SERVERNAME : 返回运行SQ
L Server 2000本地服务器的名称。
@@REMSERVER : 返回登录记录中记载的远程SQL Server服务器的名称。
@@CONNECTIONS : 返回自上次启动SQL Server以来连接或试图连接的次数,用其可让管理人员方便地了解今天所有试图连接服务器的次数。
@@CURSOR_ROWS : 返回最后连接上并打开的游标中当前存在的合格行的数量。
@@ERROR : 返回最后执行的Transact-SQL语句的错误代码。
@@ROWCOUNT : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。
@@VERSION : 返回SQL Server当前安装的日期、版本和处理器类型。
@@CPU_BUSY : 返回自SQL Server最近一次启动以来CPU的工作时间其单位为毫秒。
@@DATEFIRST : 返回使用SET DATEFIRST命令而被赋值的DATAFIRST参数值。SET DATEFIRST命令用来指定每周的第一天是星期几。
@@DBTS : 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的。 sm的全称
@@FETCH_STATUS : 返回上一次FETCH语句的状态值。
@@IDENTITY : 返回最后插入行的标识列的列值。
@@IDLE : 返回自SQL Server最近一次启动以来CPU处于空闭状态的时间长短,单位为毫秒。
@@IO_BUSY : 返回自SQL Server最后一次启动以来CPU执行输入输出操作所花费的时间(毫秒)。
@@LANGID : 返回当前所使用的语言ID值。
@@LANGUAGE : 返回当前使用的语言名称。
@@LOCK_TIMEOUT: 返回当前会话等待锁的时间长短其单位为毫秒。
@@MAX_CONNECTIONS : 返回允许连接到SQL Server的最大连接数目。
@@MAX_PRECISION : 返回decimal 和 numeric数据类型的精确度。
@@NESTLEVEL : 返回当前执行的存储过程的嵌套级数,初始值为0。
@@OPTIONS : 返回当前SET选项的信息。
@@PACK_RECEIVED : 返回SQL Server通过网络读取的输入包的数目。
@@PACK_SENT : 返回SQL Server写给网络的输出包的数目。
@@PACKET_ERRORS : 返回网络包的错误数目。
@@PROCID : 返回当前存储过程的ID值。
@@SERVICENAME : 返回SQL Server正运行于哪种服务状态之下:如 MS SQLServer、MSDTC、SQLServerAgent。
@@SPID : 返回当前用户处理的服务器处理ID值。
@@TEXTSIZE : 返回SET语句的TEXTSIZE选项值SET语句定义了SELECT语句中text或image。数据类型的最大长度基本单位为字节。
@@TIMETICKS : 返回每一时钟的微秒数。
@@TOTAL_ERRORS : 返回磁盘读写错误数目。
@@TOTAL_READ : 返回磁盘读操作的数目。
@@TOTAL_WRITE : 返回磁盘写操作的数目。
@@TRANCOUNT : 返回当前连接中处于激活状态的事务数目。
资料引用:/338906.html
------------
--------------------------------------------------------------
范例:
u bbsDB
declare @a int,@b int ,@count int
lect *from 成绩表 where 成绩>90
t @a=@@rowcount
lect *from 成绩表 where 成绩<70
t @b=@@rowcount
update 成绩表 t 成绩=成绩+5
t @count=@@rowcount --原行数赋值给据不变量
inrt into 成绩表 values('06508009','PHY45211L','89')
if(@@error=0)--插入成功
lect @a '90分以上行数',@b '70分一下行数',@count 原行数,@count 新行数
注释语句:--、/* */
批处理语句:go
(批处理的所有语句都被当做一个整体进行编译和运行
若在一个批处理中存在语法错误,那么所有的语句都无法通过编译)
begin
<T-SQL 命令或语句块>
end
条件语句:
if(条件表达式)
begin
<T-SQL语句命令或语句块>
end
范例:
declare @x int ,@y int
t @x=10
t @y=20
polyniaif (@x<@y)
begin九月英语
print '*****'
print '>'end
el
begin
print '%%%%%'
print '@@@@@'
end
范例:求1!+2!+...+20!的和
declare @sum bigint ,@t bigint ,@i int,@j int
t @sum=0
t @i=1
while @i<=20
begin
t @j=1
t @t=1
while @j<=@i
begin
t @t=@t*@j
t @j=@j+1
end
t @sum=@sum+@t
t @i=@i+1
end
print @sum
求1000~2000之间不能被3整除的数的累加和,当累计和刚好达到或超过5000时
结束程序运行
declare @n bigint,@sum bigint
t @n=1000
t @sum=0
while @n<=2000
begin
if(@sum>=5000)
break
if(@n%3=0)
begin
t @n=@n+1
continue
end
el
print @n
t @sum=@sum+@n
t @n=@n+1
end
游戏伙伴
print @sum
return/*T-SQL(Transact-SQL)是标准的SQL的加强版
T-SQL语言主要由以下几个部分组成:
1.数据定义语言(DDL):用来建立数据库和数据库对象,命令常以create开头
2.数据操纵语言(DML):用来对数据库中的数据进行增、删、改、查的操作
3.数据控制语言(DCL):用来对数据库的访问权限控制
T-SQL语句主要完成一下功能:
创建数据库及数据库对象
对数据的操作:inrt、 update、 lect
控制程序流程:if、 if-el 、ca、 while
控制事务处理
T-SQL语句的语法格式主要有一下规定:
语句中的字母大小写均可
关键字有特殊用途,定义变量名时不得使用关键字
语句中的日期型常量和字符常量必须用单引号括起来
语句中的标点符号必须用英文标点,即半角符号
一条语句可以分行写,一行可以写上多条语句,语句末尾不写任何标点符号
特殊意义的标识符:
以#开头的标识符表示临时表
以@开头的标识符表示局部变量
以@@开头的标识符表示全局变量
提示:全局变量由系统提供,用户不要定义以@@开头的标识符
T-SQL的数据类型:
整型数据类型:
bit /tinyint( 在内存中占用1个字节)/smallint(在内存中占用2个字节)
int(在内存中占用4
个字节)/bigint(在内存中占用8个字节)
货币型数据类型:
smallmoney:(最多包含4位小数,可以精确到货币的万分之一;在内存中占用4个字节)
money:(最多包含4位小数,可以精确到货币的万分之一;在内存中占用8个字节)
精确小数数据类型:
numberic:可以存储带小数的数据类型,精度和小数位数可以在 所允许的范围内自行设置。
默认精度为18位,小数位是0位。numberic可以设置到38位取值范围是-10^38~+10^38-1
decimal数据类型和numberic数据类型的用法相同,只是decmal作为保留字可以缩写为dec
范例:
create table abc
(
num1 dec(6,3),// 取值范围:-999.999~+999.999
num2 numeric(6,5)//取值范围:-9.99999~+9.99999
)
inrt into abc values(123.456,9.123456)
inrt into abc values(123.456,8.999995)
inrt into abc values(1234.3456,9.999994)
inrt into abc values(123.3456,9.999995)
近似小数的数据类型:
real(在内存中占用4个字节,精度达到7位)/float(在内存中占用8个字节,精度达到15位)
日期和时间数据类型:
datetime:(在内存中占用8个字节,前4个存储日期后4个存储时间):1753-1-1 0:00:00
smalldatetime:(在内存中占用4个字节,前2个存储日期后2个存储时间) 1900-1-1 0:00:00
字符串数据类型:
char/varchar/text(专门用来存放带有大量字符的可变长度字符数据,
text数据类型最多可存放的字符长度达到2^31-1大约2GB)
unicode字符串数据类型:nchar/varchar/nchar
二进制字符串数据类型:
binary:是固定长度的二进制数据类型。最大长度为8000字节,
进行插入行的操作时,数据本身不加引号,必须以0x开头。bandages
varbinary:是可变长度的二进制数据类型。最大长度为8000字节,
进行插入行的操作时,数据本身不加引号,必须以0x开头。
T-SQL的运算符及表达式
算术运算符adjuster
赋值运算符
字符串运算符及表达式
关系运算符及表达式
逻辑运算符及表达式
位运算符及表达式
1.位运算符:
~ :按位取反运算
&:按位与运算
^:按位异或运算
|:按位或运算
2.位运算符的优先级别:~&^|
3.位运算表达式:运算采用补码运算
-12&3=4
~
7=-8
2|3=3
~2&3|4^-5=-2
各种运算符及优先级别:
位运算符、算术运算符、字符串运算符、关系运算符、位运算符、逻辑运算符、赋值运算符
T-SQL的变量
局部变量:
局部变量一般出现在批处理、游标、存储过程、触发器和事务定义中
局部变量默认值为null,在程序中使用局部变量之前应先赋值
局部变量的定义方法:
declare @x int
declare @y float
局部变量的赋值:
lect @x=100,@y=5.5
t @x=100
t @y=5.5 //t一次只能给已定义的一个变量赋值
变量的输出:
ncr
lect @x,@y+100
print @x+4
print @y//print一次只能输出一个局