1、Transact-SQL语言概述:
首先说一下SQL,全称是Structured Query Language。它是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句还可以嵌套,这使它具有极大的灵活性和强大的功能。
而Transact-SQL语言是结构化查询语言SQL的增强版本,与多种标准兼容,而且标准的基础上还进行了扩展。它在关系数据库管理系统中实现数据的检索,操纵和添加功能。
2、Transact-SQL语言分类:
三种基本类型: 其他常用语言:
数据定义语言 事务管理语言
数据操纵语言 流程控制语言
数据控制语言 附件的语言元素
3、变量与常量
变量的声明用到了declare;而给声明的局部变量赋值 用set或者select。如:
Declare @name navrchar(10)
Set @name=‘李明’
Select @name=‘张亮’
Select @name
4、运算符
算术: + - * / %
逻辑:
运算符 |
说明 |
All |
如果都为true,则结果为true |
And |
都是true结果为true;一个为false结果为false |
Any |
任何一个为true,结果为true |
Between |
在某一个范围内,结果为true |
Like |
与某种模式匹配,结果为true |
Not |
对任何其他布尔运算结果取反 |
Or |
一个为true,结果为true |
Some |
一些为true,结果为true |
其他:
赋值运算符: =
连接运算符: +
一元运算符: -
5、条件语句
1.If else:
declare @num int
declare @num=avg(分数)
from 成绩
where 考试编号=‘0101’ and 课程编号='1'
If @num>90
Begin
Print ‘该生成绩优秀’
End
Else
Print ‘该生继续努力’
2.If else嵌套
Declare @num int
If @num >=60
Begin
If @num <70
Print ‘成绩及格,还需要努力’
Else If @num <80
Print ‘成绩中等,继续加油’
Else If @num <90
Print ‘成绩优秀,与大家分享’
End
Else
Print ‘这个学生需要叫家长’
3.case语句
Select 员工姓名,所任职位员工职称=
Case 所任职位
When '经理' then '高级职称'
When '主管' then '中级职称'
When '职员' then '初级职称'
Else '其他职称'
End
From 员工信息
4.while语句
Declare @i int
Declare @num int
Set @i=1
Set @num=1
While @i<100
begin
Set @num=@num * @i
Set @i=@i+1
End
Print @num
5.waitfor 延迟语句
Waitfor delay “00:00:05” --延迟5秒,执行存储过程
Exec sp_help
Waitfor time “21:00:05” --延迟到指定时间,执行存储过程
Exec sp_helpdb
6.try catch
Begin try
Declare @num int
Set @num=1/0
Select @num
End try
Begin catch
Select error_line () as ‘错误行数’, error_message ()‘错误消息’
End catch
6、函数:
数学函数
字符串函数
聚合函数
日期时间函数
标量值函数
表值函数