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

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

3.查詢
簡單查詢,使用TOP子句
查詢結果排序order by
帶條件的查詢where,使用算術表示式,使用邏輯表示式,使用between關鍵字,使用in關鍵字,
模糊查詢like
在查詢中使用聚合函式:sum(x),avg(x),min(x),max(x),count(x),count()
使用分組查詢group by,having子句
distinct關鍵字
列別名
select top 6
from sales order by qty desc
select au_id,au_fname,au_lname from authors where state in('ks','ca','mi')
select au_fname,au_lname,phone from authors where au_id like '72[234]-%'
select type,sum(price),avg(price),count(*) from titles group by type having type in('business','psycheology')

簡單子查詢:巢狀子查詢、相關子查詢;子查詢的select語句中不能使用order by子句,roder by子句只能對最終查詢結果排序。
巢狀子查詢:執行過程,先執行子查詢,子查詢得到的結果不被顯示,而是傳給外層查詢,作為外層查詢的條件,然後執行外層查詢,並顯示結果。
巢狀子查詢的執行不依賴於外層查詢,子查詢只執行一次。
帶有比較運算子的子查詢,帶有in和not in的子查詢,帶有any或all的子查詢
相關子查詢:子查詢為外層查詢的每一行執行一次,外層查詢將子查詢引用的列的值傳給了子查詢。
相關子查詢的執行依賴於外層查詢,子查詢需要重複的執行。
帶有exists和not exists的相關子查詢。
多表聯接查詢:內聯接(inner join)、外聯接((left、right、full)outer join)、自聯接(self join)和交叉聯接(cross join)
在查詢上建立新表:select into語句首先建立一個新表,然後用查詢的結果填充新表。
表別名
select coursename from course where courseid in(select distinct courseid from grade where grade>10)
select studname from student where sudbirthday > any (select studbirthday from student where class = '資訊系') and class<>'資訊系'
select studname from student where exists (select from grade where studid = student.studid and courseid = '01')
select stud1.

from student as stud1 join student as stud2 on stud2.studname = 'mm' and stud1.studsex = stud2.studsex
select * into girls from student where studsex='m'

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)。
事務分類:顯示事務、隱性事務、自動提交事務。

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

本文轉載,有疑問請聯絡 http://imtcf.com