sqlserver學習筆記

2021-08-25 20:57:31 字數 2561 閱讀 1747

排序函式:產生乙個新的列,一般作為乙個流水號

排序函式 over( [分組子句] 排序子句[desc][asc] )

(1)row_number():產生乙個新的列流水號列,所有的流水號從1開始,然後累加

(2)rank():產生乙個新的列流水號列,所有的流水號從1開始,然後累加,如果排序子句內容重複,流水號也跟著重複.而後續的流水號會掉過乙個或多個.

(3)dense_rank():產生乙個新的列流水號列,所有的流水號從1開始,然後累加,如果排序子句內容重複,流水號也跟著重複.而後續的流水號不會跳過

用途:分頁

檢視:相當於給查詢的結果起別名

1、建立檢視:

create view 檢視名稱(view_stuinfo_stuscore)

as 查詢語句

注意:(1)檢視名稱不要和查詢的表名有重複

(2)sql server 2005 允許巢狀檢視。但巢狀不得超過 32 層。檢視最多可包含1024個字段。

(3)檢視中不能使用default/compute 子句、compute by 子句或 into 關鍵字/order by,

除非order by所在查詢語句中有top子句

2、使用檢視:

select * from 檢視名稱(view_stuinfo_stuscore)

3、刪除檢視:

drop view 檢視名稱(view_stuinfo_stuscore)

目標:集合運算:

union和union all:並集

union:把兩張表合為一張表,去掉重複資料

union all:把兩張表合為一張表,不去掉重複資料

注意:兩張是同乙個表

select * from stumarks where writtenexam >70

union

select * from stuinfo where writtenexam > 60

select * from stumarks where writtenexam > 70

union all

select * from stumarks where writtenexam > 60

intersect:交集

把兩張表合為一張表,去掉不重複資料,保留重複資料

select * from stumarks where writtenexam > 70

intersect

select * from stumarks where writtenexam > 60

except:差集

把兩張表相減,保留不重複的資料

注意:前乙個錶比後乙個表的資料要多才行

select * from stumarks where writtenexam > 60

except

select * from stumarks where writtenexam > 70

索引:類似是乙個目錄,使搜尋資料的時候速度更快,大資料量非常龐大的時候,使用索引可以加快增,刪,查,改的速度.

索引的主要分類

(1)聚集索引:

一旦使用聚集索引,所有的資料回全部重新排列一遍.

一張表中,只能有乙個聚集索引

一張表中,如果有主鍵,那麼會自動的在主鍵上新增乙個聚集索引

(2)非聚集索引

使用非聚集索引的時候,資料不會重新排列.

一張表中,可以建立多個非聚集索引

一張表中,可以對所有的非主鍵字段加上非聚集索引

建立非聚集索引:

create nonclustered index ix_score

on stumarks(score)

with fillfactor= 30

刪除索引:

drop index students.ix_score

注意:(1)索引名所在的表sysindexes;

if exists(select name from dbo.sysindexes where name = 'ix_score')

drop index students.ix_score

(2)在刪除索引的時候:資料庫名.索引名稱

(3)使用索引

select * from stumarks with(index = ix_score)

where score between 60 and 90

(3)其他索引

唯一索引

索引檢視

包含性列索引

全文索引

xml索引等

事務:乙個不可再分的模組,要麼模組內容都執行,要麼都不執行

顯示事務

建立顯示事務:

begin transaction 顯示事務名(tran_bank)

當事物中的**有錯誤的時候,那麼就需要回滾事物,使我們的環境回到初使狀態

rollback transaction

當事物中的**沒有錯誤的時候,那麼就需要提交事物來執行所有內容

commit transaction

自動提交事物

每一條sql語句就是乙個自動提交事物,sql語句執行失敗了資料是不會發生改變的。

隱式事務

sqlserver學習筆記

1.從乙個已經存在的表複製出乙個新錶 要求該錶不存在 select into time pense from time pensetemp 從time pensetemp表中複製time pense表 2.sql查詢表中的所有約束 exec sp helpconstraint objname 表名 ...

sqlserver學習筆記

排序函式 產生乙個新的列,一般作為乙個流水號 排序函式 over 分組子句 排序子句 desc asc 1 row number 產生乙個新的列流水號列,所有的流水號從1開始,然後累加 2 rank 產生乙個新的列流水號列,所有的流水號從1開始,然後累加,如果排序子句內容重複,流水號也跟著重複.而後...

Sql server索引學習筆記

索引定義 加速表中資料行的訪問速度,確保唯一性,加速連線等操作而建立的一種分散儲存結構 1.建立索引語法 create unique clustered nonclustered index index name 簇索引行以索引位置存放,按鍵字值排序 on column,column text,nt...