T SQL程式設計總結

2021-09-29 22:01:02 字數 3405 閱讀 5749

####1.set 與select的區別

set 只能賦值

select 不僅可以賦值,而且可以用作輸出查詢資料

#定義區域性變數,並賦值

declare

@inint

set@in=5

print

@in

###利用sql給定的函式

#使用t-sql程式設計輸出a到z之間的26個大寫字母

declare

@siint

set@si=0

while

@si<

26begin

print

char

(ascii(

'a')

+@si

)set

@si=

@si+

1end

#關於datalength(char_exper),len( ),substring(expression,start, length),letf(),rigth()應用

select datalength(

'sql server 2008'

)#表示表示式所佔的位元組數,不包括尾部空字元

select

len(

'sql server 2008'

)select substring(

'sql server 2008',1

,5)select

left

('sql server 2008',2

)# 表示從左邊或右邊開始的幾個字元。

select

right

('sql server 2008 ',3

)#floor函式和rand函式應用

declare

@inint

set@in=0

while

@in<

10begin

print floor(rand()*

19)+1

#floor 用於取整,rand用於產生0~1的隨機函式

set@in

=@in+1

end

2.使用者自定義函式

#定義標量函式

create

function dhu (

@hjnchar(10

))returns

intas

begin

declare

@bhint

set@bh=(

select sno from student where sname=

@hj)

return

@bhend

goselect

[學生-課程系統]

.dbo.dhu(

'李勇'

)

#定義內嵌錶值函式

create

function ji (

@nhint

)returns

table

asreturn

(select sname ,sage,sdept from student where sno=

@nh)

goselect

*from dbo.ji(

201215121

)

#定義多語句錶值函式

create

function ji1 (

@nhint

)returns

@htable

(名字 nchar(10

),年齡 int

,院系 nvarchar(30)

)asbegin

insert

@hselect sname ,sage,sdept from student where sno=

@nhreturn

endgo

select

*from dbo.ji1(

201215121

)

3.修改、刪除函式

#修改函式

alter

function dhu (

@hjnchar(10

))returns

intas

begin

declare

@bhint

set@bh=(

select sage from student where sname=

@hj)

return

@bhend

goselect

[學生-課程系統]

.dbo.dhu(

'李勇'

)

4.函式重新命名、刪除函式

#重新命名

sp_rename 'ji1'

,'ji2'

#刪除函式

drop

function ji2

5.游標

相當於 指標,它用來解決集合與記錄之間矛盾的作用

游標的使用有五步:

定義游標

開啟游標

讀取游標

關閉游標

釋放游標

#定義游標,系統預設的游標是單進,動態,全域性,可更新的。

declare chu_cur cursor

forselect

*from student

open chu_cur

fetch

next

from chu_cur

while @@fetch_status=0

begin

fetch

next

from chu_cur

endclose chu_cur

deallocate chu_cur

注意,只有在定義scroll時才可運用first/last/absolute/relative/prior

declare  stu_cur scroll cursor

forselect

*from student

open stu_cur

fetch

first

from stu_cur

fetch

last

from stu_cur

fetch absolute 2

from stu_cur #表示從第二行開始

fetch relative 2

from stu_cur #表示當前位置,跨越兩行

fetch prior from stu_cur #表示本行的前一行

T SQL程式設計總結

一 批處理 go a,go是批處理的標誌 b.作用 可以使不在同一批處理語句中的sql語句相互不受影響 c.使用 把相互聯絡的放在同一批次,沒聯絡的放在不同批次 二變數 區域性變數,全域性變數 1.區域性變數和全域性變數的區別 區域性變數 定義它的區域性範圍內有效 a.必須以標記 作為字首,如 re...

T SQL程式設計

if else 語句 begin end 相當予c語言中的 當語句塊中只有一句的時候 可以省略 begin end while begin 語句塊 end print 列印輸出資訊 declare num int select num 100 while num 90 begin if num 80...

T SQL程式設計

我在做sqlserver進行t sql操作時,在對時間的處理上總是有點不懂,今天我把sqlserver時間函式整理了一下,希望對大家在處理時間上有所幫助 返回乙個指定的日期是該月份的那一天的整數 declare day int set day day 2 05 2011 select day 返回乙...