SQLServer2008資料庫 基礎語法

2022-06-28 12:18:08 字數 4324 閱讀 1613

基本語法:

一般語言的語法,基礎資料型別,變數賦值操作,條件,迴圈。

sql特有操作:

建立臨時表,增刪改查資料(執行sql)等操作

定義變數:

declare @a int

declare @user1 nvarchar(50)

set賦值  set @a=5 

select 賦值

select @a='張三'

select @a = name from st_user where id=1

update語句賦值

update st_user set @a = name where id=1

方法一:

create table #臨時表名(欄位1 約束條件,

欄位2 約束條件,

.....)

create table ##臨時表名(欄位1 約束條件,

欄位2 約束條件,

.....)

方法二:

select * into #臨時表名 from

你的表;

select * into ##臨時表名 from

你的表;

注:以上的#代表區域性臨時表,##代表全域性臨時表

————————————————

實際操作

建立臨時表

create table #du_user1

( [id] [

int] not null,

[oid] [

int] not null,

[login] [nvarchar](

50) not null,

[rtx] [nvarchar](

4) not null,

[name] [nvarchar](

5) not null,

[password] [nvarchar](max) null,

[state] [nvarchar](

8) not null

); --向臨時表1插入一條記錄

insert into #du_user1 (id,oid,[login],rtx,name,[password],state) values (

100,2,'

ls','

0000

','臨時

','321

','特殊

');

--從st_user查詢資料,填充至新生成的臨時表

select * into #du_user2 from st_user where id<8

迴圈while

計算1到100的和

declare @a int

declare @sum

intset @a=1

set @sum=0

while @a<=100

begin

set @sum+=@a

set @a+=1

endprint @sum

條件--if,else條件分支

if(1+1=2

) begin

print '對

'end

else

begin

print '錯

'end

--when then條件分支

declare @today int

declare @week nvarchar(3)

set @today=3

set @week=case

when @today=1 then '

星期一'

when @today=2 then '

星期二'

when @today=3 then '

星期三'

when @today=4 then '

星期四'

when @today=5 then '

星期五'

when @today=6 then '

星期六'

when @today=7 then '

星期日'

else

'值錯誤

'end

print @week

sql中游標的使用:https://

1.普通游標   只有next操作

2.滾動游標 有多種操作

游標(cursor)是乙個儲存在mysql伺服器上的資料庫查詢,它不是一條select語句,而是被該語句檢索出來的結果集。

在儲存了游標之後,應用程式可以根據需要滾動或瀏覽其中的資料。

1、定義:

declare 游標名 cursor

forselect 語句 #此處必須是select語句

2、開啟游標:

open 游標名;

3、使用:根據需要取出(檢索)各行:

fetch... from 游標名

4、關閉游標

close 游標名;

也就是遍歷查詢出來結果集到給定變數中

declare @username varchar(20),@userid varchar(100

)declare cursor_name cursor for --定義游標

select top

10userid,username from userinfo

order by userid desc

open cursor_name --開啟游標

fetch next from cursor_name into @userid,@username --抓取下一行游標資料

while @@fetch_status = 0

begin

print

'使用者id:

'+@userid+'

'+'使用者名稱:

'+@username

fetch next from cursor_name into @userid,@username

endclose cursor_name --關閉游標

deallocate cursor_name --釋放游標

根據事件來呼叫指定操作:

觸發器的名字

觸發器響應的活動(delete,insert,update)

觸發器響應活動的時間(before after)

觸發器關聯的表名稱

建立觸發器

create trigger 觸發器名稱 觸發器時間 觸發器響應活動

on 關聯表名 for each row begin 處理邏輯 end

--刪除觸發器 

drop trigger user_onupdate

就是一段sql程式**

create procedure [dbo].[名稱]

( 接收引數

@contractid nvarchar(

255),

@deleteifexists bit)as

begin

儲存過程的邏輯執行

end

示例

1、執行儲存過程,獲取帶output的輸出引數

create procedure pr_sum

@a int,

@b int,

@sum

intoutput

asbegin

set @sum=@a+@b

end執行

declare @aa

intexecute pr_sum

1,2,@aa output

print @aa

2、執行儲存過程,獲取return返回的資料

create procedure pr_sum2

@a int,

@b intas

begin

return @a+@b

end執行

declare @aa

intexecute @aa= pr_sum2 1,2

print @aa

函式的分類:

標量值函式

錶值函式:這個分為:內聯錶值函式、多語句錶值函式

系統函式

php連線sql server 2008資料庫

原文 php連線sql server 2008資料庫 關於php連線sql server 2008的問題,2000的版本可以直接通過php中的配置檔案修改,2005以上的版本就不行了,需要使用微軟公司提供的驅動 sql server driver for php php pdo sqlsrv 52 ...

php連線sql server 2008資料庫

原文 php連線sql server 2008資料庫 關於php連線sql server 2008的問題,2000的版本可以直接通過php中的配置檔案修改,2005以上的版本就不行了,需要使用微軟公司提供的驅動 sql server driver for php php pdo sqlsrv 52 ...

SQL Server 2008 透明資料加密入門

問題 在檢討 sql server 2008 中的新功能,時,我們注意到透明資料加密。這聽起來很有趣。您可以為我們提供解釋和執行它的詳細資訊嗎?解決方案 時延估計是 sql server 2008 中的新功能,它提供了實時加密的資料和日誌檔案。資料加密之前寫到磁碟 資料進行解密時從磁碟中讀取。時延估...