常见的约束

本文深入探讨了数据库约束的概念,包括非空、默认、主键、唯一和外键等类型,强调它们在保证数据准确性和可靠性方面的作用。通过创建表的示例,展示了如何在列级和表级添加约束,并对比了主键与唯一约束的区别。同时,文章还提供了外键约束的应用案例,帮助读者更好地理解和应用数据库约束。
摘要由CSDN通过智能技术生成


一、约束

1.含义

一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性

2.语法

直接在字段名和类型后面追加,约束类型即可。只支持:默认,非空,主键,唯一。

3.分类

  • not null(非空约束)
  • default:默认,用于保证该字段有默认值,比如性别
  • primary key:主键,用于保证该字段的值具有唯一性,并且非空,比如学号
  • unique:唯一,用于保证该字段的值具有唯一性,可以为空,比如座位号
  • check:检查约束【mysql不支持】,比如年龄,性别
  • foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表关联列的值,在从表添加外键约束,用于引用主表中某列的值

4.添加约束的时机

  • 创建表时
  • 修改表时

5.约束的添加分类

语法:create table 表名(
字段名 字段类型 列级约束,

表级约束
)

  • 列级约束:六大约束语法上都支持,但外键约束没有效果
  • 表级约束:除了非空、默认,其他的都支持

二、案例

1.添加列级约束

注意:可以添加多个列级约束!!!!

CREATE TABLE student(
	id INT PRIMARY KEY,#主键
	stuName VARCHAR(20) NOT NULL,
	gender CHAR(1) CHECK(gender='男' OR gender='女'),#检查,语法不支持,但是把格式写出来
	seat INT UNIQUE, 
	age INT DEFAULT 18,
	major INT FOREIGN REFERENCES major(id)
);
CREATE TABLE major(
	id INT PRIMARY KEY,
	majorName VARCHAR(20)
);

2.添加表级约束

CREATE TABLE student(
	id INT ,#主键
	stuName VARCHAR(20) ,
	gender CHAR(1),
	age INT,
	major INT, 
	CONSTRAINT pk PRIMARY KEY(id),
	CONSTRAINT uq UNIQUE(seat),
	CONSTRAINT ck CHECK(gender='男' OR gender='女'),
	CONSTRAINT fk_student_major FOREIGN KEY(majorid) REFERENCES major(id)
);

3.主键和唯一的对比

经典的面试题!!11
在这里插入图片描述

4.外键

在这里插入图片描述


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值