一、表的基本概念
表是包含數據庫中所有數據的數據對象,表定義是一列集合
數據在表中的組織方式與在電子表格中相似,都是按行和列的格式組織的
每一行代表一條唯一記錄,每一列代表記錄中的一個字段
(1)、數據完整性
數據完整性是指數據的精確性和可靠性,它是應防止數據庫中存在不符合語義規定的數據和防止因錯誤信息的輸入/輸出造成無效操作或錯誤信息而提出的
1、實體完整性
實體完整性將行定義為特定表的唯一實體
實體完整性通過unque(唯一)索引,unque約束或Primary key(主鍵)約束,強制表的標識符列或主鍵的完整性
2、域完整性
域完整性指特定列的有效性
可以強制域完整性限制類型(通過使用數據類型)、限制格式(通過使用check約束和規則)或限制可能值的范圍(通過使用foreign key約束、check約束、Default定義、Not Null定義和規則)
3、引用完整性
輸入或刪除行時,引用完整性保留表之間定義的關系
引用完整性通過foreign key(外鍵)和check(檢查)約束,以外鍵與主鍵之間或外鍵與唯一鍵之間的關系為基礎
引用完整性確保鍵值在所有表中一致
4、用戶定義完整性
用戶定義完整性命名您可以定義不屬於其他任何完整性類別的特定業務規則,所有完整性類別都支持用戶定義完整性
(2)、主鍵
主鍵唯一標識表中的行數據,一個主鍵值對應一行數據
主鍵由一個或多個字符段組成,其值具有唯一性,不允許取空值(Null),一個表只能有一個主鍵
如果主鍵由多個列組成,則其中一列將允許重復值,但是主鍵中所有列的值各種組合必須是唯一的
二、使用SSMS操作數據表
SQL Server中的每個數據庫最多可以存儲20億個表,每個表可以有1024列
表的行數據及總大小僅受可用存儲空間的限制,每行最多可以存儲8060字節
(1)、數據類型
數據類型是數據的一種屬性,用於指定對象可保存的數據的類型,如整數數據、字符數據、貨幣數據、日期和時間數據、二進制字符串等
數據類型類別:“精准數字、近似數字、日期和時間、字符串、unicode字符串、二進制字符串、其他數據類型”
【精准數字】
int:整數數據類型,幾乎所有數值型的數據都可以使用這種數據類型,可以存儲c 從-(-2147483648)到(2147483648)之間的整數,它占用了4個字節的空間。
bigint:存儲數據值超過int數據類型支持范圍,可以存儲-到之間的數值,它點用了8個字節的空間
smallint:存儲一些常限定在特定范圍內的數值類型數據,可以存儲從-(-32768)到(32768)之間的整數,它占用了1個字節的空間
tinyint:在存儲有限數目的數值時很有用,存儲從0到255之間的數值,它占用1個字節的空間
bit:整型數據,其值只能是0、1或Null(空值)。它只能存儲只有兩種可能值的數據,如“yes或no”,“Falce或on、off”
decimal:小數,用來存儲從-到-1的固定精度和范圍的數值型數據。使用它必須指定范圍和精度。‘范圍’是小數據點左右所能存儲的數字的總位數。‘精度’是小數點右邊存儲的數字的位數
numeric:numeric在功能上等介於decimal
money:用來表示錢和貨幣值。精確到貨幣單位的萬分之一。它占用了8個字節空間,從-922337203685477.5808到922337203685477.5807之間
sumallmoney:smallmoney在功能上等價於money。從-214748.3648到214748.3647之間
【近似數字】
float:用於表示浮點數值數據的大致數值數據類型。浮點數據為近似值,因此,並非數據類型范圍內的所有數值都能精確地表示。表示值在-1.79E+308到1.79E+308之間的任意數
real:用於表示浮點數值數據的大致數值數據類型。表示值在-3.40E+38到3.40E+38之間的浮點數
【日期和時間】
date:用來表示日期。它占用了3個字節空間,存儲從公元元年1月1日到公元9999年12月31日間所有的日期數據
time:用來表示一天中的某個時間。它占用了5個字節空間
datetime:用來表示日期和時間。它占用了8個字節空間。存儲從1753年1月1日到9999年12月31日間所有的日期和時間數據
datetime2:可將datetime2視作現有datetime類型的擴展。其數據范圍更大,默認的小數精度更高
datetime offset:用來表示日期和時間。與datetime2相比,增加了時區
smalldatetime:用來表示從1900年1月1日到2079年6月6日的日期和時間,精確到一分鐘,該數據類型占用了4個字節空間