約束:確保資料的完整性(主鍵,唯一,檢查,預設,非空,外來鍵)
問題:
建立約束程式碼:
--建表
use StudentManager--指定
if exists (select *from sysobjects where name='tbl+student')--判斷
drop table tbl_student--有就刪除之後建立,沒有就建立
create table tbl_student
(
id int identity (1,1),--自增變數從1開始增加每次加1,不設定主鍵,在後面新增
stu_number char(10)not null,--學號不許為空
stu_name varchar(20)not null,--注意特例
stu_age int,
birthday datetime,
class_id int --沒有外來鍵
)
use StudentManager--指定
if exists (select *from sysobjects where name='tbl_class')--判斷
drop table tbl_class--有就刪除之後建立,沒有就建立
create table tbl_class
(
class_id int identity (1,1),--自增變數從1開始增加每次加1,不設定主鍵,在後面新增
class_name varchar(20)not null,
create_time datetime
)
--追加約束
--主鍵約束
--向哪個表加什麼約束加在拿個列上
--新增主鍵約束(非空唯一)
alter table tbl_student add constraint PK_id primary key(id)
alter table tbl_class add constraint PK_class_id primary key(class_id)--要保證所有的約束不重名
--新增唯一約束(唯一就行可以為空)
alter table tbl_student add constraint UK_stu_number unique (stu_number)
--如果沒有主鍵名字就會起名為隨機碼
--預設約束(預設有個值)
alter table tbl_class add constraint DF_create_time default (getdate())for create_time
--外來鍵約束(保證兩個表之間的對應關係)
alter table tbl_student add constraint FK_class_id foreign key (class_id )references tbl_class(class_id)
--建表時可以同時新增約束的操作如下:
create table tbl_student
(
id int identity (1,1)primary key,--設定主鍵約束
stu_number char(10)unique not null,--設定唯一約束
stu_name varchar(20)not null,
stu_age int check(stu_age>0 and stu_age<150),--設定檢查約束
birthday datetime default(getdate()),--設定預設約束
class_id int references tbl_class(class_id)--設定外來鍵約束
)
--刪除約束
alter table tbl_student
drop constraint UK_stu_number
檔案介面:
相關文章
- 資料完整性約束:主鍵、外來鍵、各種約束的建立刪除語句
- 資料庫約束 主鍵-唯一性-Check-外來鍵資料庫
- 查詢(看)表的主鍵、外來鍵、唯一性約束和索引索引
- mysql~資料完整性考慮~外來鍵約束MySql
- ORACLE: 查詢(看)表的主鍵、外來鍵、唯一性約束和索引Oracle索引
- SQL的主鍵和外來鍵約束SQL
- Oracle主鍵約束、唯一鍵約束、唯一索引的區別(轉)Oracle索引
- Javaweb-約束-外來鍵約束JavaWeb
- 關於外來鍵約束和對應主鍵資訊的查詢指令碼指令碼
- Oracle定義約束 外來鍵約束Oracle
- oracle外來鍵約束的總結Oracle
- 修改外來鍵為validate時需要驗證資料是否符合外來鍵約束
- mysql資料庫匯入外來鍵約束問題MySql資料庫
- Mysql-基本練習(06-唯一約束、外來鍵約束、新增、刪除單列)MySql
- 查詢外來鍵約束、子表欄位等資訊的SQLSQL
- 教你mysql如何增加外來鍵約束MySql
- MySQL禁用恢復外來鍵約束MySql
- 【INDEX】Oracle中主鍵、唯一約束與唯一索引之區別IndexOracle索引
- SQL外來鍵約束的含義及建立SQL
- Oracle外來鍵約束中NULL的處理OracleNull
- 分散式資料庫環境中,外來鍵約束的問題??分散式資料庫
- 《資料庫系統概論》5.0——常見約束 大學生學習筆記(主鍵 外來鍵)資料庫筆記
- Oracle根據主鍵查詢外來鍵Oracle
- mysql 刪除老是報外來鍵約束MySql
- 解決資料庫的索引亂碼問題,先刪除外來鍵約束,再刪除主鍵約束及其索引資料庫索引
- 【實驗】【外來鍵】小議外來鍵約束對應用程式的影響
- 主鍵(PK)與非空唯一索引(Unique Index)的區別索引Index
- 【MySQL】MySQL進階(外來鍵約束、多表查詢、檢視、備份與恢復)MySql
- SQL SERVER中找出拙劣的約束,索引,外來鍵SQLServer索引
- (轉)oracle資料庫中所有外來鍵約束失效SQL語句Oracle資料庫SQL
- AppBoxFuture(七): 分散式外來鍵約束APP分散式
- mysql不能新增外來鍵約束怎麼辦MySql
- mysql啟動和關閉外來鍵約束MySql
- 詳解外來鍵約束(foreign key)
- [資料庫]資料庫中為什麼不推薦使用外來鍵約束資料庫
- 菜鳥學資料庫(四)——超鍵、候選鍵、主鍵、外來鍵資料庫
- 遷移後處理外來鍵約束的問題
- 主鍵約束設定Enable Novalidate時報錯