Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: Xây dựng các Constraint:

Một phần của tài liệu bài giảng chương 5 ngôn ngữ sql (Trang 37 - 42)

- Các ràng buộc trong SQL Server được quản lý bởi hai đối tượng:CONSTRAINTvà TRIGGER

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: Xây dựng các Constraint:

- Xây dựng các Constraint:

Định nghĩa ràng buộc khoá chính (Primary Key): ∗ Dữ liệu khác rỗng và duy nhất.

∗ Cú pháp:

[CONSTRAINT PK_Tên_bảng_Tên_cột ] PRIMARY KEY (Danh_sách_các_cột_khóa_chính)

∗ Ví dụ 1:

create table KHOA (

MAKH char(2) not null, TENKH nvarchar(30),

constraint PK_KHOA_MAKH primary key (MAKH) )

74

Xây dựng 1 CSDL với SQL Server

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc khoá chính (Primary Key): ∗ Ví dụ 2:

create table KETQUA (

MASV char(3) not null, MAMH char(2) not null, DIEM real,

constraint PK_KETQUA_MASV_MAMH primary key (MASV, MAMH)

)

75

Xây dựng 1 CSDL với SQL Server

Môn học: CƠ SỞ DỮ LiỆU 75

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc duy nhất (Unique):

∗ Dữ liệu có thể rỗng. Nếu có dữ liệu, thì dữ liệu phải duy nhất. ∗ Cú pháp:

[CONSTRAINT UQ_ Tên_bảng_Tên_cột ] UNIQUE (Danh_sách_cột duy nhất)

∗ Ví dụ:

create table KHOA (

MAKH char(2) not null, TENKH nvarchar(30),

constraint PK_KHOA_MAKH primary key (MAKH), constraint UQ_KHOA_TENKH unique (TENKH) )

76

Xây dựng 1 CSDL với SQL Server

39

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Lưu ý:

Trong một bảng chỉ định nghĩa một ràng buộc khoá chính, nhưng có thể định nghĩa nhiều ràng buộc dữ liệu duy nhất.

77

Môn học: CƠ SỞ DỮ LiỆU 77

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc khóa ngoại (Foreign Key): ∗ Tham chiếu đến cột làm khóa chính trong 1 bảng khác.

∗ Phải tạo bảng có cột làm khóa chính trước khi tạo bảng có khóa ngoại (Tạo bảng quan hệ1 trước, tạo bảng quan hệnsau).

∗ Trong một bảng có thể định nghĩa nhiều khoá ngoại. ∗ Cú pháp:

[CONSTRAINT FK_Tên_bảng_Tên_cột] FOREIGN KEY (Danh_sách_cột_khóa_ngoại) REFERENCES Tên_bảng_tham_chiếu (Danh_sách_cột_tham_chiếu)

78

Xây dựng 1 CSDL với SQL Server

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc khóa ngoại (Foreign Key): ∗ Ví dụ:

create table KETQUA (

MASV char(3) not null, MAMH char(2) not null, DIEM real,

constraint PK_KETQUA_MASV_MAMH primary key (MASV, MAMH),

constraint FK_KETQUA_MASV foreign key (MASV) references SINHVIEN (MASV),

constraint FK_KETQUA_MAMH foreign key (MAMH) references MONHOC (MAMH)

)

79

Xây dựng 1 CSDL với SQL Server

Môn học: CƠ SỞ DỮ LiỆU 79

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc miền giá trị (Check):

∗ Trong một bảng có thể định nghĩa nhiều ràng buộc miền giá trị. ∗ Các phép so sánh gồm: >(lớn hơn), <(nhỏ hơn), >=(lớn hơn hoặc

bằng), <=(nhỏ hơn hoặc bằng), <>(hoặc!=) (khác), in (giá trị 1, giá trị 2, U) (là 1 phần tử trong tập hợp các giá trị).

∗ Các phép kết hợp gồm: and (và), or(hay, hoặc) , between giá trị 1 and giá trị 2(nằm trong khoảng từ giá trị 1 đến giá trị 2)

∗ Cú pháp:

[CONSTRAINT CK_Tên_bảng_Tên_cột] CHECK (Biểu_thức_luận_lý)

80

Xây dựng 1 CSDL với SQL Server

41

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc miền giá trị (Check): ∗ Ví dụ:

create table KETQUA (

MASV char(3) not null, MAMH char(2) not null, DIEM real,

constraint PK_KETQUA_MASV_MAMH primary key (MASV, MAMH)

constraint FK_KETQUA_MASV foreign key (MASV) references SINHVIEN (MASV),

constraint FK_KETQUA_MAMH foreign key (MAMH) references MONHOC (MAMH),

constraint CK_KETQUA_DIEM check (DIEM>=0 AND DIEM<=10) )

81

Môn học: CƠ SỞ DỮ LiỆU 81

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc giá trị mặc định (Default):

∗ Trong một bảng có thể định nghĩa nhiều ràng buộc giá trị mặc định. ∗ Cú pháp:

CREATE TABLE Tên_bảng (

Tên_cột_1 Kiểu_dữ_liệu [NOT NULL],

Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] default giá_trị_mặc_định

[ ,...]) )

82

Xây dựng 1 CSDL với SQL Server

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu: - Xây dựng các Constraint: - Xây dựng các Constraint:

Định nghĩa ràng buộc giá trị mặc định (Default): ∗ Ví dụ:

create table MONHOC (

MAMH char(2) not null, TENMH nvarchar(25), sotiet int default 30,

constraint PK_MONHOC_MAMH primary key(MAMH), constraint UQ_MONHOC_TENMH unique(TENMH), constraint CK_MONHOC_SOTIET check (sotiet>=30) )

83

Xây dựng 1 CSDL với SQL Server

Môn học: CƠ SỞ DỮ LiỆU 83

Một phần của tài liệu bài giảng chương 5 ngôn ngữ sql (Trang 37 - 42)

Tải bản đầy đủ (PDF)

(58 trang)