t-sql的基本用法講到第八章也差不多了,最后就講下字段索引和數據加密,這兩個內容對編程人員可能用的地方不是太多,還是那句老話“防患于未然”。
下面我就簡單的說下字段索引和數據加密的內容,只是簡單概述,對初學者起到拋磚引玉的作用,大牛們請飄過!!!
一,字段索引
索引是什么,使用索引可快速訪問 數據庫 表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓名(name)列。如果要按姓查找特定職員,與必須搜索表中的所有行相比,索引會幫助您更快地獲得該信息。
下面是百度百科對索引概述的優缺點;
優點:
缺點:
1 create index IX_ID_NAME -- 創建索引 2 on worker(w_id,w_name) -- 在ID NAME 兩個字段上創建非聚集索引 3 4 drop index worker.IX_ID_NAME -- 刪除索引 5 select * from sys.indexes where name = ' IX_ID_NAME ' -- 查看索引
創建唯一非聚集索引語法:
1 create unique nonclustered index index_Production_Product -- 創建唯一的非聚集索引 2 on Production.Product(ProductID,Name) 3 where Color is not null ;
? 我們在創建表的時候也可以指定主鍵為唯一非聚集索引。
示例代碼:
1 create table Index_Table_Student 2 ( 3 id int identity primary key nonclustered , -- 指定該主鍵為非聚集索引 4 name nvarchar ( 50 ) 5 )
1 alter index all -- 禁用所有的索引 2 on Production.Product 3 disable 4 5 alter index all -- 啟用所有的索引 6 on Production.Product 7 rebuild
二,數據加密( certificate , symmetric )
編程的時候我們有時候會接觸到數據加密,但那個數據加密是表現在程序上的,數據庫的數據加密我們平時會用的很少,除非一些敏感,機密的數據要使用數據加密,還有一種情況是防止數據庫數據泄露。
下面主要講t-sql中的兩種數據加密方式:證書加密(certificate),密鑰加密(symmetric)。
大家只要熟悉t-sql的語法,知道怎么創建證書和密鑰,怎么加密數據,怎么解密數據就行了。
1,證書加密
首先我們創建一個證書:
1 create certificate WageCert -- 創建證書 2 with subject = ' To Encrypt Wage ' , -- 證書主題 3 expiry_date = ' 2014/1/1 ' ; -- 證書過期時間
expiry_date表示的是證書的過期時間,超過這個時間,創建的證書也就失效了,這點注意下。
創建好證書,下一步就是使用證書加密數據了,我們先創建一張員工表,然后插入數據對工資字段進行機密。
示例代碼:
1 create table employee 2 ( 3 EmpID int primary key , 4 Wage varbinary ( 500 ) not null -- 工資字段,加密后為二進制數據 5 ) 6 insert into dbo.employee 7 values ( 1 ,encryptbyCert(Cert_id( ' WageCert ' ), ' 5000 ' )) -- 使用證書加密
? 使用證書解密數據示例代碼:
1 select EmpID, CONVERT ( varchar ( 30 ),DECRYPTBYcert(Cert_id( ' WageCert ' ),Wage)) as Wage 2 from dbo.employee -- 使用證書解密數據
2,密鑰加密
密鑰加密我們結合剛才的證書加密進行講解。
首先創建一個證書和使用證書的密鑰,示例代碼:
1 create certificate AdminPwdCert -- 創建證書 2 with subject = ' To Encrypt Admin Password ' , -- 證書主題 3 expiry_date = ' 2014/1/1 ' ; -- 證書過期時間 4 5 create symmetric key PwdKey -- 創建對稱密鑰 6 with algorithm = aes_256 -- 使用aes_256加密算法 7 encryption by certificate AdminPwdCert -- 使用證書加密
使用密鑰加密和使用證書加密不同的是,使用密鑰加密的時候要打開密鑰,然后加密數據,最后再關閉密鑰。
示例代碼:
1 open symmetric key PwdKey -- 打開對稱密鑰 2 decryption by certificate AdminPwdCert 3 4 insert into dbo.Wrokers(WrokerID,Name,Sex,Monery) -- 插入加密數據 5 values ( 103 , ' 張三 ' , ' 男 ' ,encryptbykey(key_guid( ' PwdKey ' ), ' 1234 ' )) 6 7 select WrokerID,Name,Sex, convert ( varchar ( 100 ),DECRYPTBYKEY(Monery)) as Monery -- 解密數據 8 from dbo.Wrokers 9 10 close symmetric key PwdKey -- 關閉對稱密鑰
t-sql中索引和數據加密就到著,這也可能是t-sql系列中最后一篇,以后有新內容的話會補充。
接下來打算再做一些有關編程的學習筆記整理,希望大家多多關注。。。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
