約束:確保資料的完整性(主鍵,唯一,檢查,預設,非空,外來鍵)
問題:
建立約束程式碼:
--建表
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
檔案介面:
相關文章
- mysql~資料完整性考慮~外來鍵約束MySql
- 主鍵約束、唯一約束和唯一索引索引
- 外來鍵約束
- Javaweb-約束-外來鍵約束JavaWeb
- 關於外來鍵約束
- 約束外來鍵筆記筆記
- oracle外來鍵約束的總結Oracle
- Mysql-基本練習(06-唯一約束、外來鍵約束、新增、刪除單列)MySql
- AppBoxFuture(七): 分散式外來鍵約束APP分散式
- 教你mysql如何增加外來鍵約束MySql
- SQL外來鍵約束的含義及建立SQL
- 《資料庫系統概論》5.0——常見約束 大學生學習筆記(主鍵 外來鍵)資料庫筆記
- 【MySQL】MySQL進階(外來鍵約束、多表查詢、檢視、備份與恢復)MySql
- 主鍵和外來鍵
- mysql不能新增外來鍵約束怎麼辦MySql
- MariaDB資料庫的外來鍵約束例項程式碼介紹詳解資料庫
- [資料庫]資料庫中為什麼不推薦使用外來鍵約束資料庫
- 資料遷移無法新增外來鍵約束,錯誤程式碼 1215
- 使用Hashids來保護你的資料庫主鍵資料庫
- 通過外來鍵找主鍵
- 新的主鍵和外來鍵的語法
- 聊聊Oracle外來鍵約束(Foreign Key)的幾個操作選項Oracle
- 生成指令碼,得到所有表的外來鍵約束,然後刪除並重建這些約束指令碼
- Mysql關於資料庫是否應該使用外來鍵約束詳解說明創磅MySql資料庫
- 資料庫主鍵是自增好還是UUID好,分散式環境下如何保證主鍵的唯一性資料庫UI分散式
- 批量刪除MSSQL 中主外來鍵約束SQL
- [20191206]nvl與非空約束.txt
- 完整性約束
- Sql Server 自定義約束 實現:某列 可空,但非空值唯一不重複SQLServer
- 表的完整性約束
- [20220105]建立非唯一主鍵對效能有影響嗎.txt
- MySQL 預設排序真的是按主鍵來排序的嗎MySql排序
- sql運算元據庫(3)-->外來鍵約束、資料庫表之間的關係、三大正規化、多表查詢、事務SQL資料庫
- 資料庫:外來鍵是什麼資料庫
- 資料庫系統之實體完整性約束資料庫
- 阿里Java學習路線:階段 2:資料庫開發-SQL進階及查詢練習:課時6:非空和唯一約束阿里Java資料庫SQL
- MySQL之完整性約束MySql
- MYSQL的外來鍵MySql
- 資料庫主鍵、從鍵(易懂版)資料庫