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

相关推荐
2401_897930061 分钟前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j
诗句藏于尽头10 分钟前
Django模型与数据库表映射的两种方式
数据库·python·django
周周记笔记30 分钟前
学习笔记:第一个Python程序
笔记·学习
丑小鸭是白天鹅32 分钟前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin
潘达斯奈基~33 分钟前
《大数据之路1》笔记2:数据模型
大数据·笔记
寻星探路1 小时前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
..过云雨1 小时前
05.【Linux系统编程】进程(冯诺依曼体系结构、进程概念、进程状态(注意僵尸和孤儿)、进程优先级、进程切换和调度)
linux·笔记·学习
咸甜适中1 小时前
rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十八)使用图片控件显示图片
笔记·学习·rust·egui
一又四分之一.1 小时前
高数基础知识(下)②
笔记
盖世英雄酱581362 小时前
Read timed out问题 排查
java·数据库·后端