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

相关推荐
zhaoyin19941 分钟前
Vue面试题笔记
javascript·vue.js·笔记
猹叉叉(学习版)2 分钟前
【ASP.NET CORE】 10. 数据校验
笔记·后端·c#·asp.net·.netcore
仙俊红5 分钟前
项目上线后,发现一个接口比较慢,应该如何排查
数据库
yuezhilangniao6 分钟前
centos7 yum安装PostgreSQL 15 与运维指南
数据库·postgresql
zzh0817 分钟前
LNMP环境部署笔记
笔记
222you9 分钟前
Mysql的索引以及底层的数据结构(面试)
数据结构·数据库·mysql
A101693307110 分钟前
Nginx与frp结合实现局域网和公网的双重https服务
数据库·nginx·https
happymaker062612 分钟前
JDBC(MySQL)——DAY03(Blob类型,批处理,连接池)
数据库·mysql
智者知已应修善业13 分钟前
【不用第三变量交换2个数】2024-10-18
c语言·数据结构·c++·经验分享·笔记·算法
Dovis(誓平步青云)15 分钟前
《MySQL查询进阶:复合逻辑与多表关联的实战心法》
数据库·mysql