SQLServer数据库的高级操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)批处理 (2)
(2)变量 (3)
(3)逻辑控制 (5)
(4)函数 (7)
(4.1)系统函数 (7)
(4.2)自定义函数 (13)
(5)高级查询 (23)
(6)存储过程 (35)
(7)游标 (36)
(8)触发器 (50)
SQL Server 数据库的高级操作
(1) 批处理
(2) 变量
(3) 逻辑控制
(4) 函数
(5) 高级查询
*/
(1)批处理
将多条SQL语句作为一个整体去编译,生成一个执行计划,然后,执行!
理解批处理的关键在于"编译",对于由多条语句组成的一个批处理,
如果在编译时,其中,有一条出现语法错误,将会导致编译失败!
create table t
(
a int,
)
-- 如果多行注释中包含了批处理的标识符go
-- 在编译的过程中代码将会被go分割成多个部分来分批编译-- 多行注释的标记将会被分隔而导致编译出错
-- 以下几条语句是三个非常经典的批处理
-- 你猜一下会添加几条记录!
/*
insert into t values (1,1)
go
*/
insert into t values (2,2)
go
/*
insert into t values (3,3)
*/
go
-- 查询看添加了几条记录
select * from t
truncate table t
(2)变量
-- 全局变量
SQL Server中全局变量由系统定义、系统维护,用户一般仅可对其进行读取!-- 查看SQL Server版本
print @@version
-- 服务器名称
print @@servername
-- 系统错误编号
insert into t values ('a','a')
print @@error
insert into t values ('a','a')
if @@error = 245
print 'Error'
-- SQL Server 版本的语言信息
print @@LANGUAGE
-- 一周的第一天从星期几算起
print @@datefirst
-- CPU 执行命令所耗费时间的累加
print @@cpu_busy
-- 获取最近添加的标识列的值
create table tt
(
a int identity(3, 10),
b int
)
insert into tt (b) values (1)
print @@identity
select * from tt
-- 局部变量
局部变量由用户定义,仅可在同一个批处理中调用和访问declare @intAge tinyint
set @intAge = 12
print @intAge
declare @strName varchar(12)
select @strName = 'state'
print @strName
select au_lname, @strName from authors
(3)逻辑控制
-- IF条件判断
declare @i int
set @i = 12
if (@i > 10)
begin -- {
print 'Dadadada!'
print 'Dadadada!' end -- } else
begin
print 'XiaoXiao!'
print 'XiaoXiao!' end
-- While循环控制declare @i int;
set @i = 12;
print @i
return;
while (@i < 18)
begin
print @i;
set @i = @i + 1;
if @i < 17
continue;
if @i > 15
break;
end;
-- CASE 分支判断
select au_lname, state, '犹他州' from authors where state = 'UT' select au_lname, state, '密西西比州' from authors where state = 'MI' select au_lname, state, '肯塔基州' from authors where state = 'KS' select au_lname, state,
case state
when 'UT' then '犹他州'
when 'MI' then '密西西比州'
when 'KS' then '肯塔基州'
when 'CA' then '加利福利亚'
else state
end
from authors
(4)函数
(4.1)系统函数
-- 获取指定字符串中左起第一个字符的ASC码print ascii('ABCDEF')
-- 根据给定的ASC码获取相应的字符
print char(65)
-- 获取给定字符串的长度
print len('abcdef')
-- 大小写转换
print lower('ABCDEF')
print upper('abcdef')
-- 去空格
print ltrim(' abcd dfd df ') print rtrim(' abcd dfd df ') -- 求绝对值
print abs(-12)
-- 幂
-- 3 的 2 次方
print power(3,2)
print power(3,3)
-- 随机数