欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL Server數(shù)據(jù)庫(kù)基本概念、組成、常用對(duì)象與約束

 更新時(shí)間:2022年03月20日 14:21:38   作者:.NET開發(fā)菜鳥  
這篇文章介紹了SQL Server數(shù)據(jù)庫(kù)的基本概念、組成、常用對(duì)象與約束,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

二、基本概念

1、數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)(DB):即DataBase的縮寫,是按照一定的數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的一個(gè)倉(cāng)庫(kù)。是存儲(chǔ)在一起的相關(guān)數(shù)據(jù)的一個(gè)集合??梢园褦?shù)據(jù)庫(kù)想象成一個(gè)文件柜,文件柜里面又包含有多個(gè)文件夾,而文件夾里面又包含有多個(gè)文件。

數(shù)據(jù)庫(kù)根據(jù)作用的不同,又可以分為兩種:

  • 關(guān)系型數(shù)據(jù)庫(kù)。是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合、數(shù)學(xué)等觀念和方法來(lái)處理數(shù)據(jù)庫(kù)的數(shù)據(jù)。比如SQL Server、MySQL、Access等。
  • 非關(guān)系型數(shù)據(jù)庫(kù)。非關(guān)系型數(shù)據(jù)庫(kù)也被稱為NoSQL數(shù)據(jù)庫(kù),NoSQL的本意是“Not Only SQL”,指的是非關(guān)系型數(shù)據(jù)庫(kù),而不是“NO SQL”的意思。非關(guān)系型數(shù)據(jù)庫(kù)的產(chǎn)生不是要徹底否定關(guān)系型數(shù)據(jù)庫(kù),而是作為傳統(tǒng)數(shù)據(jù)庫(kù)的一個(gè)有效補(bǔ)充。

2、數(shù)據(jù)庫(kù)管理系統(tǒng)

數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):即DataBase Management System的縮寫,是為了管理數(shù)據(jù)庫(kù)而設(shè)計(jì)的一個(gè)電腦軟件系統(tǒng)。是用來(lái)操作和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)。它對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。用戶可以通過(guò)DBMS訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)管理員也可以通過(guò)DBMS進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)工作。它可以支持多個(gè)應(yīng)用程序和用戶用不同的方法在同時(shí)或不同時(shí)刻去建立、修改和詢問(wèn)數(shù)據(jù)庫(kù)。大部分DBMS提供數(shù)據(jù)定義語(yǔ)言DDL(Data Definition Language)和數(shù)據(jù)操作語(yǔ)言DML(Data Manipulation Language),供用戶定義數(shù)據(jù)庫(kù)的模式結(jié)構(gòu)與權(quán)限約束,實(shí)現(xiàn)對(duì)數(shù)據(jù)的追加、刪除等操作。

3、數(shù)據(jù)庫(kù)系統(tǒng)

數(shù)據(jù)庫(kù)系統(tǒng)是由數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)組成的。

二、數(shù)據(jù)庫(kù)的組成

數(shù)據(jù)庫(kù)是以文件的形式存在,由文件和文件組組成的。

1、文件

數(shù)據(jù)庫(kù)文件分為以下幾種類型:

  • 主要數(shù)據(jù)文件:主要數(shù)據(jù)文件里面存放的是數(shù)據(jù)和數(shù)據(jù)庫(kù)的一些初始化信息。每個(gè)數(shù)據(jù)庫(kù)有且只有一個(gè)主要數(shù)據(jù)文件。主要數(shù)據(jù)文件以.mdf為擴(kuò)展名。
  • 次要數(shù)據(jù)文件:次要數(shù)據(jù)文件里面存放的是除了主要數(shù)據(jù)文件之外的所有數(shù)據(jù)。次要數(shù)據(jù)文件不是必須的,可以沒(méi)有。如果有次要數(shù)據(jù)文件,可以有一個(gè)或者多個(gè)。假如數(shù)據(jù)庫(kù)的數(shù)據(jù)非常大,這時(shí)候可以把一些數(shù)據(jù)放到次要數(shù)據(jù)文件里面。次要數(shù)據(jù)文件是以.ndf為擴(kuò)展名。
  • 事務(wù)日志文件:事務(wù)日志文件存放的是對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的所有日志信息。每個(gè)數(shù)據(jù)庫(kù)至少要有一個(gè)日志文件,也可以有多個(gè)。事務(wù)日志文件是以.ldf為擴(kuò)展名。

2、文件組

文件組是數(shù)據(jù)庫(kù)文件的一種邏輯管理單位,它將數(shù)據(jù)庫(kù)文件分成不同的文件組,方便我們對(duì)文件的分配和管理。文件組分為以下兩種類型:

  • 主文件組(Primary):主要包含主要數(shù)據(jù)文件和沒(méi)有明確指派給其它文件組的文件。
  • 用戶自定義文件組:我們?cè)谑褂媚_本創(chuàng)建數(shù)據(jù)庫(kù)或者修改數(shù)據(jù)庫(kù)的時(shí)候,使用fileGroup關(guān)鍵字指定的文件組。

一個(gè)文件只能屬于一個(gè)文件組。

文件組的設(shè)計(jì)原則:

  • 文件只能是一個(gè)文件組的成員。
  • 文件或文件組只能屬于一個(gè)數(shù)據(jù)庫(kù),不能同時(shí)屬于多個(gè)數(shù)據(jù)庫(kù)。
  • 數(shù)據(jù)和日志信息不能屬于同一個(gè)文件或文件組。
  • 日志文件不能作為文件組的一部分。因?yàn)閿?shù)據(jù)和日志是分開在管理的,所以我們備份的時(shí)候可以只備份數(shù)據(jù)文件或日志文件,恢復(fù)的時(shí)候也可以只恢復(fù)數(shù)據(jù)文件或日志文件,而不用備份整個(gè)數(shù)據(jù)庫(kù)。

三、數(shù)據(jù)庫(kù)常用對(duì)象

這篇文章主要講解數(shù)據(jù)庫(kù)中的常用對(duì)象。

1、表

表是包含數(shù)據(jù)庫(kù)中所有數(shù)據(jù)的對(duì)象,由行和列組成,用于組織和存儲(chǔ)數(shù)據(jù)。

2、字段

字段就是表中的列。一個(gè)表中可以有多個(gè)列,也可以只有一個(gè)。

字段也有自己的屬性:列名、數(shù)據(jù)類型(決定了該字段存儲(chǔ)哪種類型的數(shù)據(jù))。

3、視圖

數(shù)據(jù)庫(kù)里面可以多張表,表里面可以有多個(gè)字段。表與表之間可能也存在著關(guān)系。視圖也可以認(rèn)為是一張表,但是視圖不是真實(shí)存在的表,是虛擬表。它可以從一張表或者多張表進(jìn)行關(guān)聯(lián)查詢,把需要的字段提取出來(lái),這些字段就會(huì)組合成一種虛擬表。是用戶查看數(shù)據(jù)的一種方式。結(jié)構(gòu)和數(shù)據(jù)都是建立在對(duì)表的查詢上的。

4、索引

建立索引是為了給用戶提供一種快速訪問(wèn)數(shù)據(jù)的途徑,索引是依賴于表建立的。我們創(chuàng)建索引是針對(duì)于表創(chuàng)建的。創(chuàng)建索引之后,使得我們?cè)诒闅v數(shù)據(jù)的時(shí)候,無(wú)需對(duì)整張表進(jìn)行全面的查詢,而可以通過(guò)索引進(jìn)行快速的定位查詢。可以理解為Word文檔里面的目錄。

5、存儲(chǔ)過(guò)程

存儲(chǔ)過(guò)程是一組為了完成特定功能的SQL語(yǔ)句的集合,存儲(chǔ)過(guò)程里面可以只有一條查詢語(yǔ)句也可以有多條,可以是批量的插入操作,還可以有插入、修改、查詢等語(yǔ)句。建立好存儲(chǔ)過(guò)程之后,需要對(duì)其進(jìn)行生成和編譯,編譯之后就會(huì)存儲(chǔ)在數(shù)據(jù)庫(kù)之中了。以后使用的時(shí)候,直接對(duì)其進(jìn)行調(diào)用即可。存儲(chǔ)過(guò)程只需要進(jìn)行一次編譯。

6、觸發(fā)器

屬于用戶自定義的一種SQL事務(wù)命令的集合,可以執(zhí)行多種操作。數(shù)據(jù)庫(kù)是針對(duì)于表的。當(dāng)對(duì)表執(zhí)行增刪改操作時(shí),會(huì)自動(dòng)執(zhí)行觸發(fā)器。

7、約束

約束可以理解為對(duì)數(shù)據(jù)表中列值進(jìn)行的一種限制??梢允歉袷缴?、也可以是值范圍的約束。當(dāng)我們對(duì)數(shù)據(jù)表的某列定義了這種限制,如果我們?cè)趯?duì)表進(jìn)行插入數(shù)據(jù)操作的時(shí)候,插入的值不符合這種限制就會(huì)阻止插入數(shù)據(jù)。可以更好的規(guī)范表中的列。

8、缺省值

缺省值相當(dāng)于對(duì)表中的列指定一個(gè)默認(rèn)值。當(dāng)進(jìn)行插入數(shù)據(jù)時(shí),如果沒(méi)有為這個(gè)列插入值,那么就會(huì)自動(dòng)以預(yù)先設(shè)置的默認(rèn)值進(jìn)行填充。

四、數(shù)據(jù)庫(kù)約束

一、定義

約束:規(guī)定表中的數(shù)據(jù)規(guī)則。如果存在違反約束的數(shù)據(jù)行為,行為就會(huì)被阻止。

如果是使用DBMS工具創(chuàng)建表,那么約束必須在創(chuàng)建表之后才能被創(chuàng)建。如果是使用腳本創(chuàng)建表,則可以在腳本中就創(chuàng)建約束。

二、分類

1、主鍵約束

Primary key約束:主鍵約束,具有唯一性、非空,不能被修改。

2、外鍵約束

Foreign key約束:用來(lái)加強(qiáng)兩個(gè)表的一列或者多列數(shù)據(jù)之間的連接。首先需要建立主表中的主鍵,然后在定義外鍵表中的外鍵。

注意:只有主表中的主鍵列才能被從表作為外鍵來(lái)使用,其它列不可以作為外鍵使用。從表中外鍵的值必須是主表中主鍵的值,主表限制了從表的更新和插入。當(dāng)刪除主表中的某條數(shù)據(jù)時(shí),如果該條數(shù)據(jù)的主鍵在從表中存在引用,那么必須先刪除從表中的引用數(shù)據(jù),然后才能刪除主表中的數(shù)據(jù)。如果該條數(shù)據(jù)在從表中沒(méi)有引用,那么可以直接刪除。

3、Unique約束

Unique:唯一性約束。確保表中的一列數(shù)據(jù)沒(méi)有相同的值。與主鍵約束相似,但又不同。一個(gè)表的主鍵約束只能有一個(gè),唯一性約束可以有多個(gè),也可以沒(méi)有。而且唯一性約束并非是主鍵的一列或多列的組合。唯一鍵可以為null,但主鍵不可以。

4、Check約束

Check約束:我們可以通過(guò)邏輯表達(dá)式來(lái)判斷數(shù)據(jù)的有效性,用來(lái)限制輸入一列或多列的值的范圍。 

5、Default約束

Default約束:即默認(rèn)值約束。用戶在插入新的數(shù)據(jù)行時(shí),如果該行沒(méi)有指定數(shù)據(jù),那么系統(tǒng)將默認(rèn)值賦給該列。如果沒(méi)有設(shè)置默認(rèn)值,系統(tǒng)就會(huì)把該列設(shè)置為null值。

到此這篇關(guān)于SQL Server數(shù)據(jù)庫(kù)基本概念、組成、常用對(duì)象與約束的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論