1. 程式人生 > >SQL Sever 資料庫視訊(二) 1024節日快樂!

SQL Sever 資料庫視訊(二) 1024節日快樂!

分離資料庫:

 

  其實就是將資料庫從SQL Server 2008的例項中分離出去,但是不會刪除該資料中的檔案和事務日誌檔案,這樣,資料庫就可以再附加到其他的 SQL Server 2008例項上去  (也可以理解成資料庫獨立出去,附加到別的例項上去)

 但是,資料庫在有些情況和狀態下也是無法分離的

  (1)已經複製並且釋出的資料庫

  (2)資料庫存在資料庫快照。

  (3)資料庫處於未知狀態。

 

附加資料庫:

  附加資料庫是和分離相反的。 通俗點說就是除了當前的資料庫之外,我們在額外的新增一個數據庫到例項當中去。

如果任何資料庫檔案的路徑和與建立資料庫或上次附加資料庫時的路徑不同,則必須制定檔案的當前路徑。   在附加的額過程,如果沒有日誌檔案,系統將建立一個新的檔案。

 

縮資料庫:

      假如說把一個新建的資料庫設定為一個 G 用的時候發現太大了,用不了那麼多空間所以通過收縮來進行減少多餘的空間。

  收縮的時候分兩種狀態 (1)是對檔案進行收縮

                                       (2)對資料庫進行收縮

 

資料庫快照:

    就是像拍照片一樣,資料庫快照實際上就是提供了元資料庫在創造快照時刻 只讀,靜態的試圖。   一旦資料庫建立之後,這個資料庫快照就是我們在建立快照那時刻資料庫的情況(定格在資料庫原有的情況),雖然資料庫是一隻不斷在變化,但是快照是不會在變了。

    優點:

   (1)維護歷史資料,生成報表。

   (2)將查詢實施在資料庫的快照上,可以釋放主體資料庫上的資源。

   (3)加快恢復操作效率,使用快照時候可以將資料庫恢復到生成快照時候的狀態比從備份還原加快的多;但是,此後將無法對資料庫進行前滾操作。     

    限制:

   (1)不能對資料庫進行刪除,分離或還原。

   (2)源資料庫效能受到影響。

   (3)不能從源資料庫中或任何快照中刪除檔案。

   (4)源資料庫必須處於線上狀態,除非改資料庫在資料庫映象會話中是映象資料庫。

 

建立資料庫快照建立

  剛才大致的介紹了資料庫的快照,現在介紹下,怎麼在原數庫上建立資料庫快照。

       語法格式:

                 

CREATE DATABASE database snapshot_name


                 NO     '關鍵字


                (


                  NAME = LOGICAL SNAPSHOT_NAME


                   FILENAME = 'os_file_name'


                   ) [,...n]


                   AS SNAPSHOT OF source_database_name


                   [;]


  

 

下面來具體的操作下:


          開啟Management Studio 開啟新建查詢 編寫程式碼建立


                     create database studentinfo_snap


                     on


                     (name = 學生成績管理系統,filename = 'E: \ ...)     '開啟資料檔案


                     as snapshot of 學生成績管理系統         ’子句as   

點選對勾(建立完成  就可以看到資料庫快照下已經建立好的資料庫快照)

 

從資料庫快照恢復資料語句:
                   

RESTORE DATABASE <database name>


                    FROM


                    DATABASE_SNAPSHOT = <database_snapshot_name>

         

                  

1.欄位的資料型別:

       28種資料型別

   (1) 整數資料型別: bigint,int,smallint,tinyint.

   (2)  高精度小數型別: nmueric 和 decimal  

   (3) 表示金錢的:money 和 smallmoney

   (4) float 和real 資料型別

   (5) 表示 0 ; 1 : Bit

2. 字元資料型別:

    (1) char

    (2) Varchar

    (3) Text

    (4) Nchar      

    (5) Nvarchar

    (6) ntext

3. 日期和時間資料型別:

   (1) datetime                 範圍大,精度小                 

   (2) smalldatetime          範圍小,精度大

4. 二進位制資料型別:

    (1) binary,  

    (2),varbinay

    (3) image 

       兩種用於儲存二進位制資料

 

5. 專用資料型別

    cursor,sql_variant,table,timestamp,等...

 

6. 戶定義資料型別:

    就是使用者自己設計  並且自己實現的資料型別就成為 “使用者自定義資料型別”,即使這些資料型別基於系統資料型別。

當建立使用者定義資料型別時,必須提供三個條件:

   (1) 資料型別的名稱

   (2) 所基於的系統資料型別

   (3) 資料型別的可空性

 

規則:

        規則的作用就是CHECK 約束的部分相同功能相同,在向表的某列插入或更新資料時,用規則來限制輸入的新值的取值範圍。

  規則跟CHECK 約束不同的是:

     (1) CHECK 的約束使用CREATE TALBE語句在建立表時制定的,而規則則需要作為單獨的資料庫來實現

     (2) 在一列上只能使用一個規則,但可以使用多個CHECK 約束。

     (3) 規則可以應用多個列,還可以應用於使用者自定義的資料型別,而CHECK 約束只能應用於它定義的列。

建立規則: 

          CREATE RULE rule_name

         AS

         condition_expression

 

  好啦 我們今天就先總結到這裡,   今天可是 “1024”  這是程式設計師的節日  雖然我們還在上學   但是我覺得 這也應該是我們的節日吧,因為我們每天也在擼程式碼!!!