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

相关推荐
天空'之城11 小时前
单片机基础核心知识点汇总(三十三)
数据库·单片机·嵌入式硬件
爱吃苹果的日记本13 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
张小姐的猫13 小时前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python
Thomas214313 小时前
mysql 索引面试复习
数据库·mysql·面试
Elastic 中国社区官方博客13 小时前
Elasticsearch Python DSL 客户端开发
大数据·数据库·python·elasticsearch·搜索引擎·全文检索
风哥2号13 小时前
数据库教程FGMT03‑生产环境Linux+Oracle19c+ASM安装配置与项目实战
linux·数据库
龙亘川14 小时前
旅游强国建设|一网统管智慧旅游服务模块,赋能节假日文旅数字化治理
大数据·数据库·人工智能·科技·智慧城市·旅游
星火跨境XINGHUOS14 小时前
技术向辨伪:从商标查证到源码资产,如何核验网络上的z真假“星火跨境“
数据库
自小吃多14 小时前
高云FPGA ModelSim中的仿真
笔记·嵌入式硬件·fpga开发