Tải bản đầy đủ (.ppt) (31 trang)

Bài giảng điện tử môn tin học: Ràng buộc và Toàn vẹn dữ liệu ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (298.4 KB, 31 trang )

1
Ràng buộc (Contraint) và
Toàn vẹn dữ liệu (Data Integrity)

6
6
2
I. Giới thiệu toàn vẹn dữ liệu (Data Integrity)
I. Giới thiệu toàn vẹn dữ liệu (Data Integrity)

Toàn vẹn dữ liệu là đề cập đến trạng thái của tất cả
Toàn vẹn dữ liệu là đề cập đến trạng thái của tất cả
các giá trị dữ liệu lưu trữ trong CSDL là đúng.
các giá trị dữ liệu lưu trữ trong CSDL là đúng.

Các table trong CSDL của SQL Server có một số
Các table trong CSDL của SQL Server có một số
loại toàn vẹn dữ liệu khác nhau. VD: định nghĩa
loại toàn vẹn dữ liệu khác nhau. VD: định nghĩa
NOT NULL, định nghĩa DEFAULT, thuộc tính
NOT NULL, định nghĩa DEFAULT, thuộc tính
IDENTITY, CONTRAINTS, RULES, TRIGGERS,
IDENTITY, CONTRAINTS, RULES, TRIGGERS,
INDEXES.
INDEXES.

Xác định đúng
Xác định đúng
Data type
Data type
của


của
Column
Column
hoặc biến
hoặc biến
(variable)
(variable)
cũng là một cách thúc ép tính toàn vẹn
cũng là một cách thúc ép tính toàn vẹn
dữ liệu
dữ liệu
VD: không thể chấp nhận giá trị của cột TenSinhVien
VD: không thể chấp nhận giá trị của cột TenSinhVien
là một giá trị dạng ngày giờ cũng như ngược lại
là một giá trị dạng ngày giờ cũng như ngược lại
3

Các loại Ràng buộc 4 loại
Các loại Ràng buộc 4 loại

Ràng buộc thực thể:
Ràng buộc thực thể:
đảm bảo rằng một dòng được xác
đảm bảo rằng một dòng được xác
định duy nhất bởi một hoặc nhiều thuộc tính gọi là
định duy nhất bởi một hoặc nhiều thuộc tính gọi là
khóa chính
khóa chính
(Primary Key)
(Primary Key)


Ràng buộc miền trị:
Ràng buộc miền trị:
đảm bảo rằng giá trị được lưu giữ
đảm bảo rằng giá trị được lưu giữ
trong 1 cột phải nằm trong một miền trị hợp lệ được
trong 1 cột phải nằm trong một miền trị hợp lệ được
xác định trước.
xác định trước.
(CHECK)
(CHECK)

Ràng buộc tham chiếu:
Ràng buộc tham chiếu:
đảm bảo rằng giá trị của khóa
đảm bảo rằng giá trị của khóa
ngoại
ngoại
(Foreign Key)
(Foreign Key)
được lưu trữ phải là khóa chính
được lưu trữ phải là khóa chính
(Primary Key)
(Primary Key)
trong Table khác
trong Table khác

Ràng buộc do người dùng định nghĩa:
Ràng buộc do người dùng định nghĩa:


Ràng buộc có thể ở 2 tầm vực:
Ràng buộc có thể ở 2 tầm vực:
Tầm vực cột và Tầm
Tầm vực cột và Tầm
vực bảng
vực bảng
4

Định nghĩa ràng buộc:
Định nghĩa ràng buộc:
Ràng buộc được định
Ràng buộc được định
nghĩa khi thiết kế cấu trúc table (Create Table)
nghĩa khi thiết kế cấu trúc table (Create Table)
hay hiệu chỉnh table (Alter Table)
hay hiệu chỉnh table (Alter Table)

Để kiểm tra hoặc xem các toàn vẹn dữ liệu
Để kiểm tra hoặc xem các toàn vẹn dữ liệu
Sp_HelpConstraint
Sp_HelpConstraint
<Table_Name>
<Table_Name>
Hoặc Bật cửa sổ
Hoặc Bật cửa sổ
Object Browser
Object Browser


của

của
Query
Query
Analyzer
Analyzer
, mở nhánh Constraint của từng table
, mở nhánh Constraint của từng table

Xóa các toàn vẹn dữ liệu
Xóa các toàn vẹn dữ liệu
ALTER TABLE
ALTER TABLE


<Table_Name>
<Table_Name>
DROP CONSTRAINT
DROP CONSTRAINT
<Constraint_Name>
<Constraint_Name>
5
II. Tìm hiểu các toàn vẹn dữ liệu.
II. Tìm hiểu các toàn vẹn dữ liệu.
1. Định nghĩa NULL/ NOT NULL
1. Định nghĩa NULL/ NOT NULL

Một giá trị NULL
Một giá trị NULL
không đồng nhất
không đồng nhất

với giá trị
với giá trị
0, khoảng trắng, chuỗi rỗng.
0, khoảng trắng, chuỗi rỗng.

NULL có nghĩa là không có thao tác nhập nào
NULL có nghĩa là không có thao tác nhập nào
thực hiện được.
thực hiện được.

Việc chỉ định một cột không chấp nhận giá trị
Việc chỉ định một cột không chấp nhận giá trị
Null có thể giúp duy trì tính toàn vẹn dữ liệu.
Null có thể giúp duy trì tính toàn vẹn dữ liệu.

Nên tránh dùng NULL vì chúng gây ra nhiều
Nên tránh dùng NULL vì chúng gây ra nhiều
phức tạp hơn trong các truy vấn cũng như cập
phức tạp hơn trong các truy vấn cũng như cập
nhật dữ liệu và thay bằng giá trị Default.
nhật dữ liệu và thay bằng giá trị Default.
6
2. Default Contraint:
2. Default Contraint:

Default constraint có thể được tạo tại thời
Default constraint có thể được tạo tại thời
điểm tạo Table, thêm sau khi Table được tạo.
điểm tạo Table, thêm sau khi Table được tạo.


Chì có một giá trị Default có thể được tạo cho
Chì có một giá trị Default có thể được tạo cho
một cột.
một cột.

Các cột TIMESTAMP, IDENTITY và
Các cột TIMESTAMP, IDENTITY và
ROWGUIDCOL không thể có default
ROWGUIDCOL không thể có default
constraint, vì giá trị của chính đã tự động xác
constraint, vì giá trị của chính đã tự động xác
định.
định.

Giá trị default có thể là một hằng; một hàm hệ
Giá trị default có thể là một hằng; một hàm hệ
thống; một biến toàn cục, như @@trancount
thống; một biến toàn cục, như @@trancount
hoặc một hàm do người dùng định nghĩa.
hoặc một hàm do người dùng định nghĩa.
7

Định nghĩa Default constraing trong khi tạo bảng
Định nghĩa Default constraing trong khi tạo bảng
CREATE TABLE
CREATE TABLE
TableName(ColumnName datatype
TableName(ColumnName datatype
[NULL/NOT NULL]
[NULL/NOT NULL]

[
[
CONSTRAINT
CONSTRAINT
constraintname]
constraintname]
DEFAULT
DEFAULT
expression
expression

Định nghĩa Default constraint đối với một bảng đã
Định nghĩa Default constraint đối với một bảng đã
tồn tại.
tồn tại.
ALTER TABLE
ALTER TABLE
tablename
tablename
ADD
ADD
[
[
CONSTRAINT
CONSTRAINT
constraintname]
constraintname]
DEFAULT
DEFAULT



expression
expression
FOR
FOR
columnname
columnname
8
Vd1: Định nghĩa default khi tạo table
Vd1: Định nghĩa default khi tạo table
CREATE TABLE
CREATE TABLE
tbl_SinhVien
tbl_SinhVien
(
(
MaSV NOT NULL
MaSV NOT NULL
Primary key
Primary key
,
,
HoTen Nvarchar (100) NOT NULL,
HoTen Nvarchar (100) NOT NULL,
NgayNhapHoc smalldate NOT NULL,
NgayNhapHoc smalldate NOT NULL,
GioiTinh bit
GioiTinh bit
Defalut
Defalut

1 )
1 )
Vd2: Định nghĩa default khi table đã tồn tại
Vd2: Định nghĩa default khi table đã tồn tại
Alter Table
Alter Table
tbl_SinhVien
tbl_SinhVien
Add Default
Add Default


GetDate()
GetDate()


NgayNhapHoc_DF
NgayNhapHoc_DF
For
For
NgayNhapHoc
NgayNhapHoc
Hoặc:
Hoặc:
ALTER TABLE
ALTER TABLE
tbl_SinhVien
tbl_SinhVien
Add
Add

Constraint
Constraint


NgayNhapHoc
NgayNhapHoc
_DF
_DF
Default
Default


GetDate()
GetDate()


For
For


NgayNhapHoc
NgayNhapHoc
9

Đối tượng Default (Default Object)
Đối tượng Default (Default Object)
10
3. Thuộc tính Identity:
3. Thuộc tính Identity:


Identity là một thuộc tính của Column, nó hẳn
Identity là một thuộc tính của Column, nó hẳn
không là một constraint. Tuy nhiên, Identity
không là một constraint. Tuy nhiên, Identity
dùng để ràng buộc sự tồn tại dữ liệu.
dùng để ràng buộc sự tồn tại dữ liệu.

Một Table chỉ có duy nhất một Column được
Một Table chỉ có duy nhất một Column được
định nghĩa Identity.
định nghĩa Identity.

Kiểu dữ liệu của cột Identity phải là kiểu số
Kiểu dữ liệu của cột Identity phải là kiểu số
nguyên.
nguyên.

Giá trị của cột
Giá trị của cột
Identity
Identity
sẽ tự động tăng.
sẽ tự động tăng.

Identity được định nghĩa khi tạo Table, hoặc
Identity được định nghĩa khi tạo Table, hoặc
khi hiệu chỉnh Column bằng lệnh
khi hiệu chỉnh Column bằng lệnh
Alter Table
Alter Table

11
VD:
VD:
CREATE TABLE
CREATE TABLE
tbl_Khoa
tbl_Khoa
(
(
MaKhoa int
MaKhoa int
IDENTITY
IDENTITY
(1,1) ,
(1,1) ,
TenKhoa Nvarchar (100) Not Null,
TenKhoa Nvarchar (100) Not Null,
Phone varchar(15) Not Null
Phone varchar(15) Not Null
)
)
VD: Khi chèn dữ liệu có định nghĩa
VD: Khi chèn dữ liệu có định nghĩa
Identity
Identity
INSERT
INSERT
tbl_Khoa (Ho, Ten)
tbl_Khoa (Ho, Ten)
VALUES

VALUES
(N ‘Công nghệ thông tin’ , ‘0613886699’ )
(N ‘Công nghệ thông tin’ , ‘0613886699’ )
12
4. Check Constraint:
4. Check Constraint:

Check giới hạn các giá trị có thể đưa vào cột. Chúng
Check giới hạn các giá trị có thể đưa vào cột. Chúng
sẽ xác định các giá trị nào là hợp lệ.
sẽ xác định các giá trị nào là hợp lệ.

Một cột có thể có nhiều hơn một
Một cột có thể có nhiều hơn một
Check
Check
constraint,
constraint,
chúng được lượng giá theo thứ tự được tạo.
chúng được lượng giá theo thứ tự được tạo.

Các check constraint giới hạn các giá trị được phép
Các check constraint giới hạn các giá trị được phép
bằng các định nghĩa cho:
bằng các định nghĩa cho:
+ Một hoặc nhiều vùng các giá trị chấp nhận được.
+ Một hoặc nhiều vùng các giá trị chấp nhận được.
+ Danh sách các giá trị
+ Danh sách các giá trị
+ Một mẫu định trước

+ Một mẫu định trước

Check có thể tham chiếu đến các cột khác trong cùng
Check có thể tham chiếu đến các cột khác trong cùng
một Table.
một Table.
13

Định nghĩa Check Constraint khi tạo Table
Định nghĩa Check Constraint khi tạo Table
Create Table
Create Table
TableName (ColumnName datatype
TableName (ColumnName datatype
[
[
Constraint
Constraint
ConstraintName]
ConstraintName]
Check
Check
[Not For Replication
[Not For Replication
] (logical_expression)
] (logical_expression)
CREATE TABLE
CREATE TABLE
tbl_NhanVien
tbl_NhanVien

(
(
MaNV int Primary Key,
MaNV int Primary Key,
HoTen Nvarchar (100) Not Null,
HoTen Nvarchar (100) Not Null,
NgayLV int
NgayLV int
Check
Check
(NgayCong> 0 and NgayCong<32)
(NgayCong> 0 and NgayCong<32)
)
)
CREATE TABLE
CREATE TABLE
tbl_Diem
tbl_Diem
(
(
MaSV char(10) Not Null,
MaSV char(10) Not Null,
MaMH char(10) Not Null,
MaMH char(10) Not Null,
Diem float
Diem float
Constraint
Constraint
CK_Diem
CK_Diem

Check
Check
( Diem>=0 )
( Diem>=0 )
)
)
14

Định nghĩa Check Constraint Table đã tồn tại
Định nghĩa Check Constraint Table đã tồn tại
ALTER TABLE
ALTER TABLE
TableName
TableName
[With Check/ with Nocheck]
[With Check/ with Nocheck]
ADD
ADD
[
[
CONSTRAINT
CONSTRAINT


constraintname]
constraintname]
CHECK
CHECK
[Not For Replication] (logical_expression)
[Not For Replication] (logical_expression)

Alter Table
Alter Table
tbl_ChuVu
tbl_ChuVu
Add Constraint
Add Constraint
CK_NV_HSCV
CK_NV_HSCV
Check
Check
(HSPC >= 0. 1 and HSCV < 0. 5)
(HSPC >= 0. 1 and HSCV < 0. 5)
Alter Table
Alter Table
tbl_BaoHiem
tbl_BaoHiem
Add Constraint
Add Constraint
CK_Ngay
CK_Ngay
Check
Check
(EndDate > Startdate)
(EndDate > Startdate)
Ghi chú
Ghi chú
: logical_expression
: logical_expression
là biểu thức điều kiện dùng giống
là biểu thức điều kiện dùng giống

ĐK trong mệnh đề WHERE như: Not, And, Or, IN, LIKE
ĐK trong mệnh đề WHERE như: Not, And, Or, IN, LIKE
và các toán tử so sanh
và các toán tử so sanh
15
5. Đối tượng Rule (Rule Object)
5. Đối tượng Rule (Rule Object)
CREATE RULE
CREATE RULE
RuleName
RuleName
AS
AS


@Variable_Name = condition_expression
@Variable_Name = condition_expression
VD:
VD:
Create Rule
Create Rule
range_rule
range_rule
as
as
@range >= $1000 AND @range < $20000
@range >= $1000 AND @range < $20000
Create Rule
Create Rule
GioiTinh_rule

GioiTinh_rule
as
as
@GioiTinh
@GioiTinh
IN
IN
('Nam', N'Nữ')
('Nam', N'Nữ')
Create Rule
Create Rule
SoXe_rule
SoXe_rule
as
as
@SoXe
@SoXe
Like
Like
'[0-9][0-9]-[A-Z][0-9]-[0-9][0-9][0-9][0-9]'
'[0-9][0-9]-[A-Z][0-9]-[0-9][0-9][0-9][0-9]'
Create Rule
Create Rule
Diem_rule
Diem_rule
as
as


@Diem

@Diem
Between
Between
0 and 10
0 and 10
16

Kết buộc Rule vào một Column
Kết buộc Rule vào một Column
Sp_bindrule
Sp_bindrule
‘RuleName’,‘<TableName>.<ColumnName>
‘RuleName’,‘<TableName>.<ColumnName>


VD:
VD:
Sp_bindrule
Sp_bindrule
‘Diem_rule’, ‘tbl_Diem.ThiLan1’
‘Diem_rule’, ‘tbl_Diem.ThiLan1’

Remove Rule
Remove Rule
sp_unbindrule
sp_unbindrule
‘<TableName>.<ColumnName>’
‘<TableName>.<ColumnName>’
VD:
VD:

Sp_unbindrule
Sp_unbindrule
‘tbl_Diem.ThiLan1’
‘tbl_Diem.ThiLan1’

Delete Rule
Delete Rule
DROP RULE
DROP RULE
<RuleName>
<RuleName>
VD:
VD:
DROP RULE
DROP RULE
Diem_rule
Diem_rule
17

Ghi chú về Rule Object:
Ghi chú về Rule Object:

Ruler là một tính năng tương thích ngược để định
Ruler là một tính năng tương thích ngược để định
nghĩa các quy tắc hợp lệ.
nghĩa các quy tắc hợp lệ.

Phải tháo gỡ tất cả các kết buộc
Phải tháo gỡ tất cả các kết buộc
(sp_unbindrule)

(sp_unbindrule)
của
của
Rule trước khi xóa rule (
Rule trước khi xóa rule (
Drop Rule)
Drop Rule)

Một cột chỉ có thể có một Ruler được kết buộc, bạn
Một cột chỉ có thể có một Ruler được kết buộc, bạn
có thể kết buộc một Ruler với cột đã có định nghĩa
có thể kết buộc một Ruler với cột đã có định nghĩa
Check Constraint. Cả hai đều có giá trị nhưng sẽ ưu
Check Constraint. Cả hai đều có giá trị nhưng sẽ ưu
tiên Check Constraint.
tiên Check Constraint.

Rule có thể tham chiếu đến nhiều Column của Table.
Rule có thể tham chiếu đến nhiều Column của Table.

Rule chỉ tương tương với Check ở mức độ Column,
Rule chỉ tương tương với Check ở mức độ Column,
Rule không phải là một Constraint.
Rule không phải là một Constraint.
18
6. Primary key Constraint
6. Primary key Constraint

Một Table chỉ có một constraint Primary key.
Một Table chỉ có một constraint Primary key.


SQL Server tự động tạo một chỉ mục (Index) cho
SQL Server tự động tạo một chỉ mục (Index) cho
Table ứng với các cột tham gia primary key.
Table ứng với các cột tham gia primary key.

Column là Primary key không thể chấp nhận giá
Column là Primary key không thể chấp nhận giá
trị Null, trùng lắp.
trị Null, trùng lắp.

Nếu một Primary key constraint được ấn định
Nếu một Primary key constraint được ấn định
trên nhiều cột, các giá trị có thể được lập lại
trên nhiều cột, các giá trị có thể được lập lại
trong một cột, nhưng mỗi sự kết hợp giá trị từ tất
trong một cột, nhưng mỗi sự kết hợp giá trị từ tất
cả các cột trong Primary key constraint phải là
cả các cột trong Primary key constraint phải là
sự kết hợp duy nhất.
sự kết hợp duy nhất.
19
a. Tạo Primary key Constraint
a. Tạo Primary key Constraint

Có thể tạo constraint Primary key trong khi tạo
Có thể tạo constraint Primary key trong khi tạo
Table hoặc thêm constraint Primary key cho
Table hoặc thêm constraint Primary key cho
table có sẵn.

table có sẵn.

Để hiệu chỉnh constraint Primary key của một
Để hiệu chỉnh constraint Primary key của một
Table thì bạn phải xóa constraint Primary key và
Table thì bạn phải xóa constraint Primary key và
tạo lại.
tạo lại.

Đối với Column được tạo mà chấp nhận giá trị
Đối với Column được tạo mà chấp nhận giá trị
NULL khi hiệu chỉnh cột đó là giá Primary Key
NULL khi hiệu chỉnh cột đó là giá Primary Key
thì ta phải hiệu chỉnh NOT NULL trước sau đó
thì ta phải hiệu chỉnh NOT NULL trước sau đó
mới gán cột đó là Primary Key và giá trị của cột
mới gán cột đó là Primary Key và giá trị của cột
nếu có không được trùng lắp.
nếu có không được trùng lắp.
20
Định nghĩa primary Key Constraint khi tạo bảng:
Định nghĩa primary Key Constraint khi tạo bảng:
CREATE TABLE
CREATE TABLE
<TableName>
<TableName>
( ColumnName DataType not null [
( ColumnName DataType not null [
CONSTRAINT
CONSTRAINT



ConstraintName]
ConstraintName]
PRIMARY KEY
PRIMARY KEY
)
)
Create Table
Create Table
tbl_SinhVien
tbl_SinhVien
(
(
MaSV char(10)
MaSV char(10)
not null
not null
Primary Key
Primary Key
,
,
TenSV Nchar(100)
TenSV Nchar(100)
N
N
o
o
t
t



N
N
u
u
l
l
l
l
)
)
Create Table
Create Table
tbl_MonHoc
tbl_MonHoc
(
(
MaMH char(10)
MaMH char(10)
not null
not null
Constraint
Constraint
PK_MaMH
PK_MaMH
Primary Key
Primary Key
,
,



TenMH Nchar(100)
TenMH Nchar(100)
N
N
o
o
t
t


N
N
u
u
l
l
l
l
)
)
21
Định nghĩa Primary Key Constraint bảng đã tồn tại:
Định nghĩa Primary Key Constraint bảng đã tồn tại:
ALTER TABLE
ALTER TABLE
TableName
TableName
ADD

ADD
[CONSTRAINT ConstraintName]
[CONSTRAINT ConstraintName]
PRIMARY KEY
PRIMARY KEY
(ColumnName)
(ColumnName)
VD:
VD:
Create Table
Create Table
tbl_Diem
tbl_Diem
(
(
MaSV char(10) Not null,
MaSV char(10) Not null,
MaMH char(10) Not null,
MaMH char(10) Not null,
Diem float
Diem float
Check
Check
(DiemThi
(DiemThi
Between
Between
0 and 10
0 and 10
)

)
)
)
Alter Table
Alter Table


tbl_Diem
tbl_Diem
Add Constraint
Add Constraint
PK_MaSV_MaMH
PK_MaSV_MaMH
Primary Key
Primary Key


(MaSV, MaMH )
(MaSV, MaMH )
22
Định nghĩa Primary Key Constraint bảng đã tồn tại:
Định nghĩa Primary Key Constraint bảng đã tồn tại:
ALTER TABLE
ALTER TABLE
TableName
TableName
ADD
ADD
[CONSTRAINT ConstraintName]
[CONSTRAINT ConstraintName]

PRIMARY KEY
PRIMARY KEY
(ColumnName)
(ColumnName)
VD:
VD:
Create Table
Create Table
tbl_Diem
tbl_Diem
(
(
MaSV char(10) Not null,
MaSV char(10) Not null,
MaMH char(10) Not null,
MaMH char(10) Not null,
Diem float
Diem float
Check
Check
(DiemThi
(DiemThi
Between
Between
0 and 10
0 and 10
)
)
)
)

Alter Table
Alter Table


tbl_Diem
tbl_Diem
Add Constraint
Add Constraint
PK_tbl_Diem
PK_tbl_Diem


Primary Key
Primary Key


(MaSV, MaMH )
(MaSV, MaMH )
23
Lưu ý:
Lưu ý:
Không thể xóa một Primary
Không thể xóa một Primary
Key Constraint nếu nó được tham
Key Constraint nếu nó được tham
chiếu bởi một
chiếu bởi một
Foreign key
Foreign key
Constraint

Constraint
của một bảng khác,
của một bảng khác,
muốn xóa thì
muốn xóa thì
phải xóa Foreign key
phải xóa Foreign key
Constraint trước
Constraint trước
24
6. Forein key Constraint
6. Forein key Constraint

Một khóa ngoại (Foreign Key) sự kết hợp của
Một khóa ngoại (Foreign Key) sự kết hợp của
một hoặc nhiều cột được thiết lập và tuân theo
một hoặc nhiều cột được thiết lập và tuân theo
một liên kết giữa các dữ liệu trong hai bảng.
một liên kết giữa các dữ liệu trong hai bảng.

Mặc dù mục đích chính của một
Mặc dù mục đích chính của một
Constraint
Constraint
Foreign Key
Foreign Key
là điều khiển dữ liệu có thể được
là điều khiển dữ liệu có thể được
chứa trong bảng khóa ngoại, nhưng nó củng điều
chứa trong bảng khóa ngoại, nhưng nó củng điều

khiển các thay đổi đối với bảng khóa chính.
khiển các thay đổi đối với bảng khóa chính.

Một
Một
Constraint Foreign Key
Constraint Foreign Key
sẽ ngăn chặn tình
sẽ ngăn chặn tình
trạng mồ côi dữ liệu.
trạng mồ côi dữ liệu.
Constraint Foreign Key
Constraint Foreign Key
sẽ
sẽ
bảo đảm không cho phép bạn xóa dữ liệu trong
bảo đảm không cho phép bạn xóa dữ liệu trong
bản chính chứa
bản chính chứa
Primary Key
Primary Key
25
Định nghĩa Foreign Key Constraint khi tạo Table:
Định nghĩa Foreign Key Constraint khi tạo Table:
CREATE TABLE
CREATE TABLE
Table_Name
Table_Name
(
(

Column_Name DataType [,…] ,
Column_Name DataType [,…] ,
[
[
CONSTRAINT
CONSTRAINT
Constraint_Name]
Constraint_Name]
FOREIGN KEY
FOREIGN KEY
[(column [,…n])]
[(column [,…n])]
REFERENCES
REFERENCES
ref_table [(ref_column[,…n])]
ref_table [(ref_column[,…n])]
[ON DELETE {CASCADE | NO ACTION} ]
[ON DELETE {CASCADE | NO ACTION} ]
[ON UPDATE {CASCADE | NO ACTION} ]
[ON UPDATE {CASCADE | NO ACTION} ]
[NOT FOR REPLICATION]
[NOT FOR REPLICATION]

×