当前位置:文档之家› SQLServer数据库的高级操作

SQLServer数据库的高级操作

SQLServer数据库的高级操作
SQLServer数据库的高级操作

(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)

-- 随机数

-- 0 - 1000 之间的随机数print rand() * 1000

-- 获取圆周率

print pi()

相关主题
文本预览
相关文档 最新文档