標籤:
資料庫設計範式
1範式:列的原子性,列不可再拆分
2範式:表中不能描述多個資訊,不能有資料沉餘
3範式:引用其它表的主鍵資訊
約束
- 非空約束not null。不能出現空值
- 主鍵約束(PK)primary key constraint。唯一併且不為空白
- 唯一約束(UQ)unique constraint。允許為空白,但不能重複
- 預設約束(DF)default constraint。預設填入什麼個值,比如預設填入男
- 檢查約束(CK)check constraint。檢查你填入的資訊是否滿足需求。
- 外鍵約束(FK)foreign key constraint。可以做也可以不做,做的時候保證你的資料更加有效。
建立資料庫
MS SQLServer每個資料庫包含
1個主要資料庫檔案(.mdf)必須
1個事物記錄檔(.ldf)必須
可以包含:
任意多個次要資料檔案(.ndf)
多個事物記錄檔
檔案組:可將多個資料檔案邏輯分到一組,方便日後管理維護(備份、將表建在指定的檔案組上)
關於列類型
文本類型:區分var、n
對於不帶var的情況,表示不可變長度,如果賦值不夠指定位元,用空格補齊
對於帶var的情況,表示可變長度,如果賦值不夠指定位元,以實際賦值為準
對於Unicode這種編碼格式
如果帶n,則每個字元佔2個位元組
如果不帶n,則英文佔1個位元組,中文佔兩個位元組
外鍵
對應關係:1對1、1對多、多對多
1對1的關係,這種資料存放區到雙方任意表裡就可以
1對多的關係,將關係的資料存放區到多的一方表裡
多對多的關係,單獨建立一個表,用於儲存關係
根據關聯建立出來的列所儲存的資訊,需要滿足第3NF
樣本:部門-員工的關係是 1:n
只要在員工表中建立eDid(部門ID)這個列,就已經儲存了部門與員工的關係外鍵只是一個約束,保證資料的有效性,外鍵需要建立在關係列上。
指令碼
指令碼執行快速鍵Ctrl+E
SQL主要分為DDL(資料庫定義語言 建表、建庫等語句)、DML(資料庫操作語言)和DCL(資料庫控制語言)。CreateTable、AlterTable等屬於DDL,Select、Insert、Update、Delete屬於DML,GRANT授權、REVOKE取消授權屬於DCL。
1.建立資料庫
CREATE DATABASE name
2.刪除資料庫
drop database name
3.建立表
Create table name(
列名 類型….
cName nvarchar(10) not null,
列表名為:cName
類型為:nvarchar(10)
不允許空:not null
)
4.刪除表
Drop table name
5.增加約束
Alter table name
Add constraint CK_cname check (len(cName)>2)
【SQL Server】學習筆記1