1. 程式人生 > >SQL Server資料庫新手入門學習總結(三)

SQL Server資料庫新手入門學習總結(三)

4.檢視、索引和事務
檢視是由一個或多個數據表(基本表)匯出的虛擬表或者查詢表,是關係資料庫系統提供給使用者以多種角度觀察資料庫中資料的重要機制。
檢視的好處:能夠簡化使用者的操作;檢視能夠對機密資料提供安全保護。
建立檢視時,檢視的名稱存在sysobjects表中。有關檢視中所定義列的資訊新增到syscolumns表中,而有關檢視相關性的資訊新增到sysdepends表中。另外,create view語句的文字新增到syscomments表中。
在通過檢視向表中插入資料時,如果insert語句列表中包含有檢視中沒有選擇的列和不允許為空值的列,這種操作是不允許的。
建立檢視:create view view_employee as select emp_id,fname,lname from employee
使用檢視:select * from view_employee
修改檢視:alter view view_employee as select emp_id,fname,job_id from employee where job_id>10
刪除檢視:drop veiw view_employee
檢視檢視結構:exec sp_help view_employee
檢視檢視定義資訊:exec sp_helptext 'view_employee'

索引提供了一種基於一列或多列的值對錶的資料行進行快速訪問的方法。索引提供的是表中得邏輯順序。
聚集索引基於資料行的鍵值在表內排序和儲存這些資料行。當資料表以某列為關鍵字建立聚集索引時,表中得資料行就以該列(聚集索引鍵)的排序次序進行儲存。每個表只能有一個聚集索引。
非聚集索引具有完全獨立於資料行的結構,一個表可以建立多個非聚集索引。
建立聚集索引:create clustered index studid_ind on stud(studid)
建立非聚集索引:create unique index studfullname_ind on stud(fname desc,lname)
刪除索引:drop index stud.studid_ind
檢視stud表上得索引:exec sp_helpindex stud

事務是一種機制,是一個操作序列,它包含了一組資料庫操作命令,並且所有的命令作為一個整體一起向系統提交或撤銷操作請求。
事務的特性:原子性(Atomicity)、一致性(Consistenty)、隔離性(Isolation)、永久性(Durability)。
事務分類:顯示事務、隱性事務、自動提交事務。

檢視、索引和事務的建立、使用、修改和刪除

5.Transact—SQL程式設計
全域性變數:由系統定義和維護,其名稱以@@字元開頭
區域性變數:由使用者定義和賦值,其名稱以@字元開頭
輸出語句:print
邏輯控制語句:begin...end ;break ;case ;continue ; goto ; if...else ;return ; while
常用函式:行集函式,聚合函式,標量函式
轉換函式:convert(dt,e,s),cast()
數學函式:絕對值abs(n),向上取整ceiling(n),向下取整floor(n),指定次冪power(n,y),四捨五入round(n,length),求符號sign(n),平方根sqrt(n)
日期和時間函式:dateadd(datepart,num,date),datediff(datepart,date1,date2),datename(datepart,date),datepart(datepart,date),getdate(),year(date),month(date),day(date)
字串函式:lower(e),upper(e),left(e,i),right(e,i),replace(s1,s2,s3)用3替換1中的2,replicate(e,i)重複指定次數,stuff(s1,start,length,s2)用2替換1中指定位置,substring(expression,start,length)
元資料函式:db_id('database_name'),db_name(datebase_id),object_id('obj_name'),object_name(obj_id),col_length('table','column'),col_name(table_id,col_id)
聚合函式:avg(expr),count(expr),count(*),max(expr),min(expr),sum(expr)
select au_lname,au_fname,contory =
case state
when 'ut' then 'utah'
when 'ca' then 'california'
else 'world'
end,city from authors order by state desc

while(select avg(price) from titles)<30
begin
update titles set price = price * 2
if(select max(price) from titles)>50 break
else continue
end
print '價格太高'

begin
insert into jobs values('a',80,234)
if @@error<>0 print '資料插入失敗'
else goto M
end
M:print '資料插入成功'
本文轉載,若有疑問請與我們聯絡 http://www.imt-imt.com/