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

相关推荐
你才是臭弟弟2 分钟前
时序数据库(TDengine TSDB)基本SQL使用
sql·时序数据库·tdengine
迷路剑客2 分钟前
ES-7.10-高亮HighLight知识点总结
java·数据库·mybatis
程序边界6 分钟前
解锁时序数据新玩法:金仓数据库实战体验分享
数据库
汉堡go18 分钟前
python_chapter6
前端·数据库·python
范纹杉想快点毕业18 分钟前
嵌入式工程师一年制深度进阶学习计划(纯技术深耕版)
linux·运维·服务器·c语言·数据库·算法
storyseek24 分钟前
关于Milvus向量数据库的基础
数据库·milvus
步步为营DotNet37 分钟前
深入探究.NET中Stream:灵活高效的数据流处理核心
服务器·数据库·.net
❀͜͡傀儡师1 小时前
基于提供的镜像构建PostGIS、pgvector 的 PostgreSQL 18镜像的Dockerfile
数据库·postgresql·postgis
Yu_Lijing1 小时前
基于C++的《Head First设计模式》笔记——状态模式
c++·笔记·设计模式
阳明Coding1 小时前
golang从入门到通天—数据库操作(gorm框架使用)(最简单最详细的golang学习笔记)
笔记·学习·golang