學完這本書,就把精華都寫出了 ...
1、資料庫設計
資料庫設計的重要性:
減少冗餘,提高性能、易維護
資料庫設計的步驟:
1、收集信息、標識對象、標識屬性、標識關係(一對一、一對多、多對一、多對多)
E-R圖:
屬性:定義實體的性質、實體的特征
實體:數據項(屬性)的集合
關聯:實體之間相互連接的方式
簡單理解一下就可以了
資料庫規範化:
第一範式(1NF):
每列都應該是原子性的,五重覆的域
第二範式(2NF):
在第一範式的基礎上屬性完全依賴於主鍵
第三範式(3NF):
第三範式要求各列與主鍵列直接相關
T-SQL語句創建和管理資料庫和表:
T-SQL創建資料庫:
if DB_ID('資料庫名') is not null drop database 資料庫名 go create database 資料庫名 on ( name='資料庫名', filename='物理資料庫儲存路徑資料庫文件' )
案例:
if DB_ID('Student')is not null drop databese Student go create databese Student on ( name='Student', finema='E:\第二學期\SQL\stuDB\Student.mdf' )
數據文件參數 | 描述 |
name | 資料庫邏輯名稱 |
filename | 資料庫物理文件名 |
size | 數據文件初始化大小,單位預設為M |
maxsize | 數據文件可增長到最大值,單位預設阿M,不指定即無限大 |
filegrowth | 資料庫每次增長率,可以是百分比,預設單位M,0不增長 |
T-SQL語句創建表:
if object_ID('表名')is not null drop table 表名 go create table 表名 ( 欄位1 數據類型 列的特性, 欄位2 數據類型 列的特性 )
案例:
if object_ID('StuInfo')is not null drop table StuInfo go create table StuInfo ( StuId int identity(1,1) primary key, StuName varchar(10) not null, StuSex varchar(2) not null, StuAge varchar(3) not null )
T-SQL創建約束:
主鍵約束:(primary key constraint):主鍵列數據唯一,並不為空,簡稱:PK
唯一約束:(unique constraint):保證該列不允許除夕重覆值,簡稱:UQ
檢查約束:(check constraint):限制列中允許的取值以及多個列直接的關係,簡稱:CK
預設約束:(default constraint):設置某列的預設值,簡稱:DF
外鍵約束:(foreign key constraint):用於在兩個表之間建立關係,需要指定主從表,簡稱:FK
T-SQL添加約束的語法格式:
alter table 表名
add constraint 約束名 約束類型 具體的約束說明
T-SQL刪除約束:
alter table 表名
drop constraint 約束名
案例:
--添加主鍵約束(將StuNo設為主鍵) alter table StuInfo add constraint PK_StuNO primary key (StuNo) go --添加預設約束(性別預設為男) alter table StuInfo Add constraint DF_StuSex DEFAULT ('男')for StuSex go --添加檢查約束(年齡必須為40之間) alter table StuInfo Add constraint CK_StuAge check(StuAge>=18 and StuAge<=40) go --添加外鍵約束 alter table Exam Add constraint FK_StuNo FORELGN KEY (StuNo)references StuInfo(StuNo) go
2、高級查詢
多表連接查詢通常分為三類:內連接、外連接(左外連接、右外連接、完全外連接)、交叉連接