萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> sqlserver中常見的操作

sqlserver中常見的操作

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 create database Personnel_training_dbgouse Personnel_training_dbgo create table dept( deptid int primary key identity(1,1),   deptname varchar(20) not null, remark varchar(20) not null )go select * from dept insert into dept values('教職部','') --1.創建存儲過程  查詢 create proc proc_dept@deptname varchar(20)asselect * from dept where deptname=@deptnamego--執行存儲過程exec proc_dept '教職部'     --2.存儲過程 查詢create proc proc_dept2@deptname varchar(20)as exec('select * from dept where deptname='''+@deptname+'''')goproc_dept2 '教職部'       --存儲過程 添加create proc proc_add_dept@deptname varchar(20),@remark varchar(20)asinsert into dept values(@deptname,@remark)goexec proc_add_dept '教職部','你懂得'     --存儲過程刪除create proc proc_del_deptid@deptid varchar(20)as    exec('delete from dept where deptid in('+@deptid+')')goproc_del_deptid '1,2'     --查詢create proc proc_like_query_dept@deptname varchar(20),@remark varchar(20)as if @deptname <>'' and @remark <>''  begin   select * from dept where deptname=@deptname and remark=@remark  end     else if @remark !='' and @deptname=''   begin   select * from dept where remark=@remark end else if @deptname!='' and @remark=''    begin   select * from dept where deptname=@deptname end else    begin   select * from dept  end goexec proc_like_query_dept '',''     --帶輸出參數create proc proc_set@deptid int outputas select @deptid= deptid from dept where deptname='學術部' and remark='這個不能還有點意思'go--定義輸出參數變量declare @deptid int --執行輸出參數 多個後面加逗號隔開exec proc_set @deptid output--輸出獲取的deptidprint '獲取的deptid是:'+ convert(varchar(10),@deptid)   --帶有返回值的存儲過程create proc proc_returnas declare @deptcount int --查詢總條數 select @deptcount=COUNT(*) from dept return @deptcountgodeclare @deptcount intexec @deptcount=proc_return print '總條數是:'+convert(varchar(10),@deptcount)   --條件 查詢create proc proc_query_like@like varchar(20)as--動態的構造sql語句declare @sql varchar(1024) set @sql='select * from dept where 1=1' set @sql=@sql+' and deptname like ''%'+@like+'%'''  set @sql=@sql+'or remark like ''%'+@like+'%'''  print @sql  exec(@sql)goproc_query_like '了' --創建視圖/*1、視圖view        (1)G            視圖是由一張或多張表的列組成的數據集,是一個虛擬表,也就是說:它不是以存儲數據的         方式存在的,而存儲的是一個查詢的SQL語言。        (2)為什麼使用視圖           一方面:視圖可以隱藏一些數據,限制用戶只能存取表內特定的列。           另一方面:將復雜的SQL語句封裝起來,便於理解和查詢。        (3)如何創建視圖            語法:             create view 視圖名稱             as               SQL語句             go         (4)刪除視圖              if exists(select * from sysobjects where name='視圖名')                   drop view 視圖名              go         (5)優點 P115            視點集中:用戶只能看到自己感興趣的內容,而看不到所引用表的其他數據,提高了數據的安全性。            簡化操作:視圖隱藏了表與表之間的關聯查詢,只用一條簡單的查詢視圖語句就可以搞定。            定制數據:視圖可以讓不同的用戶以不能的方式看到不同或相同的數據。            合並分割數據:            安全性:可以向表一樣授予訪問權限。是一種安全機制。         (6)注意項:             一個視圖只能包含一條SQL語句。即用一個視圖獲得多個結果集是不行的。             視圖同樣可以進行增、刪、改、查的操作,修改後的數據基礎表同步更新。*/create  view view_deptasselect * from deptgoselect * from view_dept --索引 /* 2、索引index             為了提供查詢數據的效率,引人了索引機制。             生活例子:各種書的目錄。         (1)G              依賴與表建立,提供了編排表中數據的方法。是一個獨立的物理數據結構。              通常一個表的數據是存放在兩個頁面:               數據 存放在 數據頁               索引 存放在 索引頁         (2)類型  4              分四類:主鍵索引                      聚集索引   clustered                     非聚集索引  nonclustered                      唯一索引   unique                 主鍵索引:在一個表中定義主鍵的時候自動創建主鍵索引,是唯一索引的特殊類型。                        要求每一個值都是唯一的。    
copyright © 萬盛學電腦網 all rights reserved