第一 not null 非空約束
①強制列不接受空值
②例:建立表時,name varchar(6) not null,
第二 unique 唯一性約束
①約束唯一標識資料庫表中的每條記錄
②unique和primary key都為資料提供了唯一性約束
③primary key 擁有自動定義的Unique約束
④注意:每個表中只能有一個primary key約束,但是可以有多個Unique約束
⑤語法:1.name int unique2.unique(column_name)3.CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 新增多個約束4.alter table table_name add unique(column_name) 增加表中的約束5.ALTER TABLE table_name DROP CONSTRAINT 主鍵名 刪除約束
第三 primary key約束
②主鍵必須包含唯一的值
③主鍵列不能為空
④每個表都應該有個主鍵,但只能有一個主鍵
⑤語法:1.StudentID int not null primary key 建立學生編號為主鍵2.primary key(Students) 建立學生編號為主鍵3.primary key(StudentID,Email) 建立學生ID和Email為聯合主鍵
⑥為已存在的列建立主鍵1.alter table table_name add primary key(column_name)
⑦刪除主鍵約束1.alter table table_name drop primary key
⑧刪除主鍵約束1.alter table table_name drop constraint 主鍵約束名 主鍵約束名可以使用sp_help查詢
第四 foreign key約束
①一個表中的foreign key 指向另一個表的primary key
②foreign key約束用於預防破壞表之間連線的動作
③foreign key約束也能防止非法資料插入外來鍵列,因為它必須是指向的那個表的值之一
④語法:1.foreign key (column_name) references 主表名(主鍵列名) 建立column_name為主表名的外來鍵2.column_name int foreign key references 主表名(主鍵列名) 建立column_name為主表名的外來鍵3.alter table table_nameadd foreign key (列名) references 主表名(主鍵列名) 為已存在的列建立外來鍵4.alter table table_name drop constraint 外來鍵約束名 刪除外來鍵約束(SQL Server oracle)5.alter table table_name drop foreign key 外來鍵約束名 刪除外來鍵約束(Mysql)
第五 check 約束
①check約束用於限制列中的值的範圍
②如果對個單個列做check約束,那麼該列只可以輸入特定數值
③如果一個表定義check約束,那麼此約束會在特定的列對值進行限制
④語法:1.StudentID int not null check (StudentID>0) 限制StudentID輸入的值要大於0 (SQL Server oracle)2.StudentID int not null, 限制StudentID輸入的值要大於0 (Mysql)check (StudentID>0)3.sex varchar(2) not null check(sex=‘男’ or sex=‘女’) 限制sex的性別只能是男或者女4.alter table table_name add check(列名>0) 向已有的列加入check約束5.alter table table_name drop constraint check約束名 刪除約束 約束名可以用 sp_help table_name檢視
第六 default約束
①default約束用於向列中插入預設值
②如果沒有規定其他的值,那麼會將預設值新增到所有的新記錄中
③語法:1.name varchar(10) default ‘張三’ name預設插入張三的名字2.systime date default gatedate() 插入時間的預設值 getetime()函式為時間的預設值3.alter table table_name add 列名 set default ‘數值’ 向已有列名中插入預設值4.alter table table_name drop constraint 約束名 刪除預設約束
第一 not null 非空約束
①強制列不接受空值
②例:建立表時,name varchar(6) not null,
第二 unique 唯一性約束
①約束唯一標識資料庫表中的每條記錄
②unique和primary key都為資料提供了唯一性約束
③primary key 擁有自動定義的Unique約束
④注意:每個表中只能有一個primary key約束,但是可以有多個Unique約束
⑤語法:
1.name int unique
2.unique(column_name)
3.CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 新增多個約束
4.alter table table_name add unique(column_name) 增加表中的約束
5.ALTER TABLE table_name DROP CONSTRAINT 主鍵名 刪除約束
第三 primary key約束
①約束唯一標識資料庫表中的每條記錄
②主鍵必須包含唯一的值
③主鍵列不能為空
④每個表都應該有個主鍵,但只能有一個主鍵
⑤語法:
1.StudentID int not null primary key 建立學生編號為主鍵
2.primary key(Students) 建立學生編號為主鍵
3.primary key(StudentID,Email) 建立學生ID和Email為聯合主鍵
⑥為已存在的列建立主鍵
1.alter table table_name add primary key(column_name)
⑦刪除主鍵約束
1.alter table table_name drop primary key
⑧刪除主鍵約束
1.alter table table_name drop constraint 主鍵約束名 主鍵約束名可以使用sp_help查詢
第四 foreign key約束
①一個表中的foreign key 指向另一個表的primary key
②foreign key約束用於預防破壞表之間連線的動作
③foreign key約束也能防止非法資料插入外來鍵列,因為它必須是指向的那個表的值之一
④語法:
1.foreign key (column_name) references 主表名(主鍵列名) 建立column_name為主表名的外來鍵
2.column_name int foreign key references 主表名(主鍵列名) 建立column_name為主表名的外來鍵
3.alter table table_name
add foreign key (列名) references 主表名(主鍵列名) 為已存在的列建立外來鍵
4.alter table table_name drop constraint 外來鍵約束名 刪除外來鍵約束(SQL Server oracle)
5.alter table table_name drop foreign key 外來鍵約束名 刪除外來鍵約束(Mysql)
第五 check 約束
①check約束用於限制列中的值的範圍
②如果對個單個列做check約束,那麼該列只可以輸入特定數值
③如果一個表定義check約束,那麼此約束會在特定的列對值進行限制
④語法:
1.StudentID int not null check (StudentID>0) 限制StudentID輸入的值要大於0 (SQL Server oracle)
2.StudentID int not null, 限制StudentID輸入的值要大於0 (Mysql)
check (StudentID>0)
3.sex varchar(2) not null check(sex=‘男’ or sex=‘女’) 限制sex的性別只能是男或者女
4.alter table table_name add check(列名>0) 向已有的列加入check約束
5.alter table table_name drop constraint check約束名 刪除約束 約束名可以用 sp_help table_name檢視
第六 default約束
①default約束用於向列中插入預設值
②如果沒有規定其他的值,那麼會將預設值新增到所有的新記錄中
③語法:
1.name varchar(10) default ‘張三’ name預設插入張三的名字
2.systime date default gatedate() 插入時間的預設值 getetime()函式為時間的預設值
3.alter table table_name add 列名 set default ‘數值’ 向已有列名中插入預設值
4.alter table table_name drop constraint 約束名 刪除預設約束