08年在大學學習資料庫的筆記
這是08年在大學時候學習SqlServer的筆記,和各位交流下,溫故而知新。
(1)臨時表,#table
(2)表變數,
上面2個使用的區別是小的表一般使用表變數,大的表使用臨時表。這2個和表一樣使用。不過他們使用完後就消失了,有生命週期的。
g.l 區域性/全域性 區別在那? # /##的區別 優點,什麼地方使用,能否儲存大小資料?.
2008-05-27 區域性與全域性的區別,就是於區域性就是對於當前登陸的使用者有效,全域性都全部登陸的使用者都有效.
本地臨時表的名稱以單個數字符號 (#) 打頭;它們僅對當前的使用者連線是可見的;當使用者從 SQL Server 例項斷開連線時被刪除。全域性臨時表的名稱以兩個數字符號 (##) 打頭,建立後對任何使用者都是可見的,當所有引用該表的使用者從 SQL Server 斷開連線時被刪除。
***派生表***
就是一箇中間表,在查詢的過程中生成,沒有什麼的,一般生成的這個表指定一個別名,主要是便於使用
(3)CTE, G.L
這個在2005裡面很酷,我記得的是有2個,一個是可以實現遞迴,實現樹的資料結構,及層次的迭代,另外一個就是在檢視中不能返回前面幾個(因為返回的確定),可以使用這個來替代,可以認為在一般的表中有限制時都可以用這個來轉換
(4)UDF,
使用者自定義函式,可以用變數來傳遞引數,也可以用子查詢來傳遞引數
***遊標***,
這個是程式導向的處理方式,和我們一般的 select from...結構的面向集合的方式是截然不同的,就像一個是程式導向,一個物件導向的一樣。使用遊標有開銷,一般應該考慮使用,但是在2種情況(目前知道的)可以使用考慮遊標,一種是排序的時候,但是排序的內部分組有大有小(視具體的情況),如果分組很小,遊標體現不出來優勢,用集合的方式處理也是可以的,甚至速度更快,要看具體的情況,如果分組大,則應該用遊標,另一種是可以自定義函式
(5)檢視
提供一種使用者的看資料的方式,定義在資料字典中存在,是一個虛表
一般把多表的查詢放在一個檢視上使用。
(6)索引,
有組合索引,聚集索引,非聚集索引,覆蓋索引有include()的關鍵字
索引是物理存在的,主要是提高查詢速度的
(7)觸發器,
三種觸發器的使用:insert 、delete,update,
instead of 這個可以處理檢視不能實現的基於多表的更新
也可以將多個觸發器放在一起使用。
(8)約束
恢復刪除的表,看一看日誌能不能搞定. g.l
這兩個是維護資料的完整性和一致性,在設定約束的時候有的時候也同步建立非聚集索引,
設立主鍵的時候是同時建立聚集索引,
(9)聚合,
裡面的一些函式的使用,sum....,還有很多的聚合方面的使用,到時候可以查
(10)旋轉,
2005 裡面的pivot ,是分組的多行旋轉為一列的情況,分3步執行,
1 隱式分組,2 隔離值,3 使用集合函式
而unpivot的功能則相反
(11)數字輔助表,
個人認為這個最酷了,可以優化很多的語句,必須在資料庫裡建一個
g.l 可以把800M資料庫掛上,做一個示例:比如select * from
(12)儲存過程
主要是已經編譯好的,以後就直接拿來使用,所以下次執行的時候不需要重新 編譯,它是將多個sql語句快組織到 了一起,觸發器是一個特殊的儲存過程。
(13)還有null值,這個也很重要,在多表查詢的時候就是使用這個來的,還有一些在其他的情況時候也必須清楚。
空值(null)-什麼都沒有的值
空值並不包括零,一個或者多個空格組成的字串,以及零長度的字串
1)零可以有幾個非常廣泛的含義,他可以表示一個賬目平衡的那種狀態,當前可用的頭等艙的票的數目,
或者一個產品的庫存水平
2)在SQL中,一個或者多個空格組成的字串是有著某種含義的,三個空格組成的’ ’和由三個字母組成
的字串‘abc’一樣有著合法性的。
3)零長度的字串在某些特定的場合下也是具有一定的意義的。比如在一個僱員表中,一個列MiddleInitial中
的一個零長度 的字串,可能描述的事實是他的名字中沒有首字母大寫。
4)空值在某些場合非常有用:該列的值不明確的,該列的值未知的,該列的任何可能的值都不能使用某一指定行。
5)空值對數學操作有不利影響:包含所有空值的操作其結果都是空值
6)邏輯操作
null and null=null, null and true=null, null and false=false
( null or null )=null, (null or true )=true, (null or false)=null
( not null) =null
7) 值為空值的就是那些行所表示的也就是表1和表2的差值,相對於左連線而言的,對於右連線,一次類推。
可以說檢驗空值的outer join 是計算2個集合差值的另一種方式。
8)所有的查詢篩選器(on,where,having)都把unkonwn 當作false 處理。
9)unique約束,排序操作,分組操作把2個null值是相等的。
(14)還有一個over關鍵字,這個也很好,可以在排名函式(有3個)裡面使用,僅在select 階段 和order by 階段可以使用,其他的階段是不能使用的
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-660167/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫學習筆記資料庫筆記
- MySQL資料庫學習筆記MySql資料庫筆記
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- Redis學習筆記(七) 資料庫Redis筆記資料庫
- 達夢資料庫學習筆記資料庫筆記
- python學習筆記:資料庫Python筆記資料庫
- 資料庫原理學習筆記——引言資料庫筆記
- 資料庫的正規化學習筆記資料庫筆記
- swoft 學習筆記之資料庫操作筆記資料庫
- 1029學習筆記 資料庫筆記資料庫
- Java學習筆記--資料庫初識Java筆記資料庫
- 飛機的 PHP 學習筆記八:資料庫PHP筆記資料庫
- 資料庫學習筆記1(資料管理歷史)資料庫筆記
- 資料庫學習筆記——20 使用遊標資料庫筆記
- 資料庫學習筆記之查詢表資料庫筆記
- Activiti學習筆記一:建立資料庫表筆記資料庫
- 飛機的 PHP 學習筆記之資料庫篇PHP筆記資料庫
- 資料庫學習與複習筆記--資料庫概念和不同類資料庫CRUD操作(1)資料庫筆記
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- 資料庫學習筆記 - MySQL基礎知識資料庫筆記MySql
- 資料庫學習筆記(四)2017.9.19資料庫筆記
- Symfony2學習筆記之資料庫操作筆記資料庫
- 規劃關聯式資料庫學習筆記資料庫筆記
- 《Python入門與資料科學庫》學習筆記Python資料科學筆記
- 資料庫中odbc和jdbc的區別-------java資料庫學習筆記之1資料庫JDBCJava筆記
- 記錄我的資料庫學習資料庫
- MySQL資料庫學習筆記02(事務控制,資料查詢)MySql資料庫筆記
- orientDB學習筆記(三)資料庫 構架設計筆記資料庫
- ODBC資料庫連線------java學習筆記之3資料庫Java筆記
- PHP 資料加密 (學習筆記)PHP加密筆記
- 大資料學習筆記(四)大資料筆記
- 大資料學習筆記(五)大資料筆記
- 大資料學習筆記(六)大資料筆記
- 資料結構學習筆記資料結構筆記
- AS 學習筆記 載入資料筆記
- MySQL資料庫初級學習筆記---第一章-資料庫概述MySql資料庫筆記
- boost庫學習筆記筆記
- Mpmath庫-學習筆記筆記