標籤:sql
SQL 進階(4)SQL CHECK 條件約束SQL CHECK 條件約束 CHECK 條件約束用於限制列中的值的範圍。
如果對單個列定義 CHECK 條件約束,那麼該列只允許特定的值。
如果對一個表定義 CHECK 條件約束,那麼此約束會在特定的列中對值進行限制。
SQL CHECK Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表建立時為 "Id_P" 列建立 CHECK 條件約束。CHECK 條件約束規定 "Id_P" 列必須只包含大於 0 的整數。
My SQL:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CHECK (Id_P>0))
SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL CHECK (Id_P>0),LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
如果需要命名 CHECK 條件約束,以及為多個列定義 CHECK 條件約束,請使用下面的 SQL 文法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes'))
SQL CHECK Constraint on ALTER TABLE 如果在表已存在的情況下為 "Id_P" 列建立 CHECK 條件約束,請使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD CHECK (Id_P>0)
如果需要命名 CHECK 條件約束,以及為多個列定義 CHECK 條件約束,請使用下面的 SQL 文法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤銷 CHECK 條件約束 如需撤銷 CHECK 條件約束,請使用下面的 SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsDROP CONSTRAINT chk_Person
SQL DEFAULT 約束SQL DEFAULT 約束 DEFAULT 約束用於向列中插入預設值。
如果沒有規定其他的值,那麼會將預設值添加到所有的新紀錄。
SQL DEFAULT Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表建立時為 "City" 列建立 DEFAULT 約束:
My SQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255) DEFAULT 'Sandnes')
通過使用類似 GETDATE() 這樣的函數,DEFAULT 約束也可以用於插入系統值:
CREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,OrderDate date DEFAULT GETDATE())
SQL DEFAULT Constraint on ALTER TABLE 如果在表已存在的情況下為 "City" 列建立 DEFAULT 約束,請使用下面的 SQL:
MySQL:
ALTER TABLE PersonsALTER City SET DEFAULT 'SANDNES'
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsALTER COLUMN City SET DEFAULT 'SANDNES'
撤銷 DEFAULT 約束 如需撤銷 DEFAULT 約束,請使用下面的 SQL:
MySQL:
ALTER TABLE PersonsALTER City DROP DEFAULT
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsALTER COLUMN City DROP DEFAULT
SQL 進階(4)