SQL 约束

目录

一、约束

二、约束操作

[1、primary key约束](#1、primary key约束)

2、unique约束

[3、check 约束](#3、check 约束)

[4、default 约束](#4、default 约束)

[5、foreign key 约束](#5、foreign key 约束)


一、约束

SQL Server 2012 的 6种约束类型

  • null \ not null -- 为空 \不为空,设置字段列是否允许为空
  • primary key -- 主键约束,设置字段为主键
  • unique -- 唯一性,设置字段具有唯一性
  • check -- 设置字段的取值范围
  • default -- 设置字段的默认值
  • foreign key -- 设置外键,设置字段为外键,与其他表建立联系
二、约束操作
1、primary key约束

-- 1、建表时,添加主键约束

create table student

(

学号 int primary key,

姓名 nchar(8),

身份证号 char(18),

性别 nchar(1)

)

-- 2、修改表时,添加主键约束

语法:alter table <表名> add constraint <约束名> primary key (字段名)

create table student

(

学号 int,

姓名 nchar(8),

身份证号 char(18),

性别 nchar(1),

)

ALTER TABLE student

ADD CONSTRAINT pk_ts PRIMARY KEY (学号)

-- 3、删除主键约束

语法:alter table <表名> drop constraint <约束名>

ALTER TABLE student

DROP CONSTRAINT pk_ts

2、unique约束

-- 建表时,设置唯一性

create table student

(

学号 int,

姓名 nchar(8),

身份证号 char(18) unique,

性别 nchar(1),

)

-- 修改表时,设置唯一性

语法:alter table <表名> add constraint <约束名> unique (字段名)

create table student

(

学号 int,

姓名 nchar(8),

身份证号 char(18),

性别 nchar(1),

)

ALTER TABLE student

ADD CONSTRAINT ue_ts UNIQUE (身份证号)

-- 删除唯一性约束

语法:alter table <表名> drop <约束名>

ALTER TABLE student

ADD CONSTRAINT ue_ts

3、check 约束

-- 创建时,设置范围约束

create table sc

(

学号 int,

课程号 nchar(8),

成绩 int check ( 成绩 >=0 and 成绩 <= 100),

)

-- 修改时,设置范围约束

语法:alter table <表名> add constraint <约束名> check(成绩 >=0 and 成绩 <= 100)

ALTER TABLE sc

ADD CONSTRAINT cj_sc check (成绩 >=0 and 成绩 <= 100)

-- 删除范围约束

语法:alter table <表名> drop <约束名>

ALTER TABLE sc

DROP CONSTRAINT cj_sc

4、default 约束

-- 创建时,设置范围约束

create table student

(

学号 int,

姓名 nchar(8),

身份证号 char(18),

性别 nchar(1) default '男',

)

-- 修改时,设置默认值

语法:alter table <表名> add constraint <约束名> default '默认值'

ALTER TABLE test

ADD CONSTRAINT dt_st default '男'

-- 删除默认约束

语法:alter table <表名> drop <约束名>

ALTER TABLE student

DROP dt_ts

5、foreign key 约束

-- 创建时,添加 foreign key

create table student

(

学号 int primary key,

姓名 nchar(8),

身份证号 char(18),

性别 nchar(1),

)

create table sc

(

学号 int foreign student(学号),

课程号 nchar(8),

成绩 int,

)

-- 修改时,设置外键

语法:alter table <表名> add constraint <约束名> foreign key (外键字段) references <关联的表名> (关联字段)

ALTER TABLE sc

ADD CONSTRAINT fk_sc foreign key (学号) REFERENCES student (学号)

-- 删除外键约束

语法:alter table <表名> drop <约束名>

ALTER TABLE sc

DROP CONSTRAINT fk_sc

相关推荐
骆晨学长6 分钟前
基于springboot的智慧社区微信小程序
java·数据库·spring boot·后端·微信小程序·小程序
@月落12 分钟前
alibaba获得店铺的所有商品 API接口
java·大数据·数据库·人工智能·学习
世俗ˊ18 分钟前
CSS入门笔记
前端·css·笔记
楠枬22 分钟前
MySQL数据的增删改查(一)
数据库·mysql
万河归海42826 分钟前
C语言——二分法搜索数组中特定元素并返回下标
c语言·开发语言·数据结构·经验分享·笔记·算法·visualstudio
goTsHgo27 分钟前
从底层原理上解释 clickhouse 保证完全的幂等性
数据库·clickhouse
hayhead1 小时前
高频 SQL 50 题(基础版)| 626. 换座位
sql·力扣
阿华的代码王国2 小时前
MySQL ------- 索引(B树B+树)
数据库·mysql
李小星同志2 小时前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c2 小时前
MFC 使用细节
笔记·学习·mfc