基本語法:
一般語言的語法,基礎資料型別,變數賦值操作,條件,迴圈。
sql特有操作:
建立臨時表,增刪改查資料(執行sql)等操作
定義變數:
declare @a intdeclare @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 intdeclare @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 intdeclare @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、使用:根據需要取出(檢索)各行:
f
etch... 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
'使用者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 中的新功能,它提供了實時加密的資料和日誌檔案。資料加密之前寫到磁碟 資料進行解密時從磁碟中讀取。時延估...