declare @pageindex int --定義變數索引頁數
declare @pagesize int--定義變數當前的頁數
--在編寫sql的語句時,如果有查詢先查詢後分頁
select * from (
select row_number() over(order
by id) as num ,* from student) as temp
where temp.num between ((@pageindex-1)*@pagesize+1) and (@pageindex*@pagesize)
create
view v_student
asselect * from student
1.無參查詢
create proc/procedure
p_search
asbegin
select * from
student
end--呼叫儲存過程的關鍵字(exec)
exec
p_search
2.有參儲存過程
create proc/procedure p_insert
@stutypeid int,
@stuname nvarchar(20),
@stu*** char(4),
@stucount int
output
asbegin
insert
into student values(@stutypeid,@stuname,@stuse)
select @stucount = count(id) from student
end--封裝begin
end之間的語句方便繼續呼叫
--建立乙個儲存過程 輸出乙個新的建立的引數
create
table #名稱
eg: create
table #studentlog
drop
from #臨時表
eg: drop
from #studentlog
事務的定義:(事務就是乙個異常處理機制)
begin tran --定義事務
begin try
insert
into student valuse(...)
end try
begin catch
--異常處理機制 能夠判斷語法是否正確
end catch
if(@@trancount>0)
rollback tran
commit tran
1.插入觸發器
--建立觸發器
create
trigger t_insertstu
on student--基於的是那個表
after
insert --在新增後觸發
asbegin
declare @stuname nvarchar(50)--定義變數
declare @stuage int
select @stuname=stuname,@stuage=stuage from inserted --定義的變數賦值來自於新增中的相應的字段
insert
into studentlog valuse (0,'新增學生姓名'+@stuname+',年齡'+convert(nvarchar(10),@stuage)+'歲'+getdate())--將相應的字段拼接
end執行了新增語句觸發t_insertstu
2.刪除觸發器
–建立乙個刪除觸發器
create
trigger t_delstudent
on student
after
delete
asbegin
declare @id int
declare @stuname nvarchar(20)
declare @stuage int
select @id = id,@stuname=stuname,@stuage=stuage from deleted
insert
into studentlog values(1,'刪除了的學生的id是:'+convert(nvarchar (10),@id)+',姓名是:'+@stuname+',年齡是:'+convert(nvarchar (10),@stuage),getdate())
enddelete
from student where id=
3.修改觸發器
--建立乙個修改的觸發器
create
trigger t_uptstudent
on student
after
update
asbegin
declare @stunameu nvarchar(20)--修改之後的姓名
declare @stuageu int --修改之後的年齡
declare @stunamea nvarchar(20)--修改之前的姓名
declare @stuagea int --修改之前的年齡
select @stunamea = stuname ,@stuagea = stuage from deleted
select @stunameu =stuname ,@stuageu = stuage from inserted
insert
into studentlog valuse(1,,'修改前的姓名是:'+@stunamea+'修改後的姓名是:'+@stunameu,getdate())
end--修改之後觸發
update student set stuname=''
where id=1
在使用select into 新錶 from 舊表 時,新錶可以不必存在 系統會自動生成乙個表
create function f_name(@id int)--括號裡面是引數和引數的型別
return 具體的型別 --返回的型別
asbegin
declare @sqlname nvarchar(30)
selete @sqlname(stuname+stu***) from student where id =@id
return @stuname
end呼叫函式需要加上dbo.
select dbo.f_name(id) dbo.student--結構
select * from dbo.student
create function f_tablename()
return table
asreturn (seledct * from student)
create function f_table(@ name nvarchar(20))
return @tb table(name nvarchar(50),adress nvarchar(50))
asbegin
insert
into @tb select
'張國忠','河北石家莊';
return
endselect * from dbo.f_table
--測試呼叫
select * from dbo.f_table('')
shell學習小總結 本章小結
本章小結 變數在正是一點的程式裡是必備專案.shell 的變數會保留字串值 而大量的運算子可以在 裡使用 讓你控制變數的結果.shell提供了許多的特殊變數 例如 與 用來訪問特殊資訊,例如 命令退出狀態 shell 也有許多預定義的特殊變數,例如 ps1 用來設定主要提示符 位置引數與 和 這類的...
學習總結 SQL學習總結之SQL語法
選取所有列即原表返回 select from table name 例如 select distinct country from websites 例如 從 websites 表中選取國家為 cn 的所有 例如 從 websites 表中選取id為1的所有 文字字段 vs.數值字段 where 子...
SQL 學習總結 SQL的分類
一 sql語言的分類 sql語言大體可分為ddl dcl和dml三類。其中,ddl又包含create,alter和drop dcl包含grant和revoke,而dml中最常見的有select,insert,update,和delete。1 ddl 資料定義語言 create語句 sql creat...