SQL高階應用

2022-08-03 05:57:15 字數 1735 閱讀 4687

1、游標的使用

select\delete \update\insert into 表 selct*from

定義游標,讓游標指向sql查詢的結果

declare democursor cursor for select 列名1,列名2,列名3 from 表名

open democursor

declare @username nvarchar(32)

declare @userid int

declare @userage int

fetch next from democursor into

@username,

@username,

@username

close democursor

deallocate domecursor--釋放游標

2、檢視

把乙個查詢結果作為虛擬表 提供給開發人員使用

create view vw_userinfo as

select *from userinfo where userage>40

檢視的使用:

select*from vw_userinfo 檢視可以直接當錶用

3、臨時表

用#修飾臨時表

crete table #testtb

(id int identity(1,1) primary key not null,

name nvarchar(32) null

)--臨時表的使用和普通表一樣。

select*from #testtb

--臨時錶用完之後一定要:釋放掉臨時表

drop table #testtb

臨時表的用法:

select *into #tb from userinfo

select *from #tb

drop table #tb

臨時表多用於高併發的情況的優化

資料庫:鎖概念

鎖的級別:x:排它鎖 s:共享鎖

insert update delete 會在表上加 x

select 在表上新增 s鎖。

多表連線:

select * from employee as e

left join position as p on e.positionid = p.positionid7

4、 sql異常處理

begin try

sql…

end try

begin catch

sqlend catch

5、事務

begin transaction 開啟事務

conmit transaction 提交事務

rollback transaction 回滾事務

事務adonet實現:

sqltransaction trans = conn.begintransaction();

注意:cmd.transaction = trans;應該將事務物件初始化命令。

6、系統儲存過程

exec sp_databases

exec sp_tables

exec sp_columns 'userinfo'

動態執行sql指令碼:

declare @strsql nvarchar(max)

set @strsql ='select * from userinfo'

exec (@strsql)

常用SQL 高階應用

select from select a,b,c from a t where t.a 1 8 說明 between的用法,between限制查詢資料範圍時包括了邊界值,not between不包括 select from table1 where time between time1 and ti...

SQL高階高階

select top 50 percent from websites mysql 語法 oracle 語法 select column name s from table name limit number sql like 操作符 like 操作符用於在 where 子句中搜尋列中的指定模式。s...

SQL 基礎 高階高階

sql高階 1 top子句 top 子句用於規定要返回的記錄的數目。select top 2 from persons select top 50 percent from persons 3 萬用字元 1 通過使用 not 關鍵字,我們可以從 persons 表中選取居住在不包含 lon 的城市裡...