程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sqlserver中常見的操作

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                 主鍵索引:在一個表中定義主鍵的時候自動創建主鍵索引,是唯一索引的特殊類型。                        要求每一個值都是唯一的。              聚集索引:按照數據在表中的排序和存儲 建立的索引                       比如:字典的正文部分。              非聚集索引:類似於根據偏旁部首查漢字的過程。             聚集索引會影響數據的實際物理排序,在一張表中只能有一個;            非聚集索引不會影響數據的實際物理排序,在一張表中可以有多個。                 唯一索引:通過唯一約束可以實現,可以是聚集索引,也可以是非聚集索引。         (3)如何創建索引            語法:               create [unique|clustered|nonclustered] index  索引名稱               on  表名(列名)                 with fillfactor=數組[0-100]                注意:如果前面的關鍵字不寫,默認創建的是非聚集索引。          (4)刪除索引               if exists(select * from sysindexes where name='索引名')                    drop index 表名.索引名               go          (5)調用索引                select * from 表名 with(index=索引名) [where...]            (6)定義索引一般是在表中的數據很多的時候           (7)優缺點 P122                優點:大大提供查詢速度                缺點:索引需要占據物理空間,創建和維護索引耗費時間。    */   create nonclustered index index_depton dept(deptname)with fillfactor=50go select * from dept with(index=index_dept) --刪除索引drop index dept.index_dept
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved