建站源码下载,wordpress创建分站点,深圳开发小程序公司,长治一般做一个网站需要多少钱SQL FOREIGN KEY 约束
SQL FOREIGN KEY 约束用于防止破坏表之间关系的操作。FOREIGN KEY 是一张表中的字段#xff08;或字段集合#xff09;#xff0c;它引用另一张表中的主键。具有外键的表称为子表#xff0c;具有主键的表称为被引用表或父表。
以下是两个表的例子或字段集合它引用另一张表中的主键。具有外键的表称为子表具有主键的表称为被引用表或父表。
以下是两个表的例子
Persons 表
PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20Orders 表
OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1注意“Orders” 表中的 “PersonID” 列指向 “Persons” 表中的 “PersonID” 列。“Persons” 表中的 “PersonID” 列是 “Persons” 表中的主键。“Orders” 表中的 “PersonID” 列是 “Orders” 表中的外键。
FOREIGN KEY 约束防止将无效数据插入到外键列中因为它必须是父表中包含的值之一。
在 CREATE TABLE 时使用 SQL FOREIGN KEY
以下 SQL 在创建 “Orders” 表时在 “PersonID” 列上创建了一个 FOREIGN KEY
对于 MySQL
CREATE TABLE Orders (OrderID int NOT NULL,OrderNumber int NOT NULL,PersonID int,PRIMARY KEY (OrderID),FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);对于 SQL Server / Oracle / MS Access
CREATE TABLE Orders (OrderID int NOT NULL PRIMARY KEY,OrderNumber int NOT NULL,PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);要允许对 FOREIGN KEY 约束进行命名并在多列上定义 FOREIGN KEY 约束请使用以下 SQL 语法
对于 MySQL / SQL Server / Oracle / MS Access
CREATE TABLE Orders (OrderID int NOT NULL,OrderNumber int NOT NULL,PersonID int,PRIMARY KEY (OrderID),CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)REFERENCES Persons(PersonID)
);在 ALTER TABLE 时使用 SQL FOREIGN KEY
要在表已经创建的情况下在 “PersonID” 列上创建 FOREIGN KEY 约束请使用以下 SQL
对于 MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);要允许对 FOREIGN KEY 约束进行命名并在多列上定义 FOREIGN KEY 约束请使用以下 SQL 语法
对于 MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);删除 FOREIGN KEY 约束
要删除 FOREIGN KEY 约束请使用以下 SQL
对于 MySQL
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;对于 SQL Server / Oracle / MS Access
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;通过这些 SQL 语句您可以在数据库中定义和管理 FOREIGN KEY 约束以确保表之间的关系得到维护。
SQL CHECK 约束
SQL CHECK 约束用于限制可以放入列中的值范围。如果在列上定义了 CHECK 约束它将仅允许为该列指定某些值。如果在表上定义了 CHECK 约束它可以基于行中其他列的值来限制某些列中的值。
在 CREATE TABLE 时使用 SQL CHECK
以下 SQL 在创建 “Persons” 表时在 “Age” 列上创建了一个 CHECK 约束。CHECK 约束确保一个人的年龄必须是 18 岁或以上
对于 MySQL
CREATE TABLE Persons (ID int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Age int,CHECK (Age18)
);对于 SQL Server / Oracle / MS Access
CREATE TABLE Persons (ID int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Age int CHECK (Age18)
);要允许对 CHECK 约束进行命名并在多列上定义 CHECK 约束请使用以下 SQL 语法
对于 MySQL / SQL Server / Oracle / MS Access
CREATE TABLE Persons (ID int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Age int,City varchar(255),CONSTRAINT CHK_Person CHECK (Age18 AND CitySandnes)
);在 ALTER TABLE 时使用 SQL CHECK
要在表已经创建的情况下在 “Age” 列上创建 CHECK 约束请使用以下 SQL
对于 MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons
ADD CHECK (Age18);要允许对 CHECK 约束进行命名并在多列上定义 CHECK 约束请使用以下 SQL 语法
对于 MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age18 AND CitySandnes);删除 CHECK 约束
要删除 CHECK 约束请使用以下 SQL
对于 SQL Server / Oracle / MS Access
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;对于 MySQL
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;通过这些 SQL 语句您可以在数据库中定义和管理 CHECK 约束以确保列中的值满足指定的条件。
SQL DEFAULT 约束
SQL DEFAULT 约束用于为列设置默认值。如果没有指定其他值将在所有新记录中添加默认值。
在 CREATE TABLE 时使用 SQL DEFAULT
以下 SQL 在创建 “Persons” 表时为 “City” 列设置了 DEFAULT 值
对于 MySQL / SQL Server / Oracle / MS Access
CREATE TABLE Persons (ID int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Age int,City varchar(255) DEFAULT Sandnes
);DEFAULT 约束还可以用于通过使用诸如 GETDATE() 之类的函数插入系统值
CREATE TABLE Orders (ID int NOT NULL,OrderNumber int NOT NULL,OrderDate date DEFAULT GETDATE()
);在 ALTER TABLE 时使用 SQL DEFAULT
要在表已经创建的情况下在 “City” 列上创建 DEFAULT 约束请使用以下 SQL
对于 MySQL
ALTER TABLE Persons
ALTER City SET DEFAULT Sandnes;对于 SQL Server
ALTER TABLE Persons
ADD CONSTRAINT df_City
DEFAULT Sandnes FOR City;对于 MS Access
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT Sandnes;对于 Oracle
ALTER TABLE Persons
MODIFY City DEFAULT Sandnes;删除 DEFAULT 约束
要删除 DEFAULT 约束请使用以下 SQL
对于 MySQL
ALTER TABLE Persons
ALTER City DROP DEFAULT;对于 SQL Server / Oracle / MS Access
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;对于 SQL Server
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;通过这些 SQL 语句您可以在数据库中为列设置默认值确保在插入新记录时如果未提供值将使用指定的默认值。
最后
为了方便其他设备和平台的小伙伴观看往期文章
微信公众号搜索Let us Coding关注后即可获取最新文章推送
看完如果觉得有帮助欢迎 点赞、收藏、关注