SQL 常见约束(非空、默认、唯一、主键和外键) 您所在的位置:网站首页 access有效性规则非空且非负写法 SQL 常见约束(非空、默认、唯一、主键和外键)

SQL 常见约束(非空、默认、唯一、主键和外键)

2024-06-03 06:37| 来源: 网络整理| 查看: 265

常见约束

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

分类: 六大约束:

not null 非空 :用于保障该字段的值不能为空, 比如姓名、学号等Default 默认: 用于保证该字段有默认值,比如性别、PRIMARY KEY 主键: 用于保证该字段的值有唯一性,并且 非空。是能够唯一的标识一组数据的数据元素;比如说:学号,姓名,年龄,性别,课程号课程中学号是唯一的UNIQUE 唯一约束: 用于保障该字段的值有唯一性,可以为空, 比如座位号Check 检查约束:mysql中不支持,但不报错Foreign KEY 外键:用于限制两个标的关系 用于保证该字段的值必须来自于主表关联的值。 一组数据的主键是另一组数据的的元素;主键约束了外键所在表中不能存在主键类之外的值;外键用于与另一张表的关联。比如:学生表的专业编号、员工表的部门编号。

添加约束表的实际: 1)创建表时;2)修改表时

约束添加分类:

列级约束: 六大约束语法上都支持,但外建没有效果表级约束:除了非空和默认,其他的都支持 create table 表名( 字段名1 字段类型 列级约束, 字段名2 字段类型, 字段名3 字段类型 表级约束 )

外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,可以在建外键时选定外键记录一起级联删除还是拒绝删除。 (4)更新主键记录时,同样有级联更新和拒绝执行的选择。 SQL的主键和外键就是起约束作用。

代码实例 #创建约束 create database stu; use stu; create table major( id int Primary Key, majorName VarChar(20)); create table stuinfo( id int primary key, #主键 stuName VarChar(20) NOT NULL, #非空 gender CHAR(1) check(gender='男'or gender='女'), #检查,mysql不支持 seat int Unique, #唯一 Age int default 18, #默认 major int references major(id) #外键,mysql不支持 ); #添加表级约束 drop table if exists stuinfo; create table stuinfo( id int, stuName VarChar(20), gender CHAR(1), seat int, Age int, majorid int, constraint pk primary key(id), constraint uq unique(seat), constraint ck check(gender='男' or gender='女'), constraint fk_stuinfo_major foreign key(majorid) REFERENCES major(id) ); #查看约束情况 DESC stuinfo; show index from stuinfo; 通用写法: create table if not exists stuinfo( id int primary key, #主键 stuName VarChar(20) NOT NULL, #非空 gender CHAR(1), #检查,mysql不支持 seat int Unique, #唯一 Age int default 18, #默认 majorid int, constraint fk_stuinfo_major foreign key(majorid) REFERENCES major(id)

fk_stuinfo_major 列名_当前表名_引用表名

主键和唯一的对比 保证唯一性是否为空一个表有多少个允许组合?主键可以X最多一个允许,但不推荐唯一可以可以可以有多个允许,但不推荐

组合主键

DROP TABLE IF EXISTS stuinfo; CREATE TABLE IF NOT EXISTS stuinfo ( id INT, stuName VARCHAR ( 20 ), gender CHAR ( 1 ), seat INT, Age INT, majorid INT, PRIMARY KEY(id,stuName), UNIQUE(seat), check(gender='男'or gender='女'), FOREIGN KEY ( majorid ) REFERENCES major ( id ) );

结果显示 id 和stuName 都是主键,两个字段一摸一样时不能插入数据。保证两个字段的组合是唯一的。 在这里插入图片描述

https://www.bilibili.com/video/BV12b411K7Zu?p=128



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有