首页 > 其他分享 >约束介绍

约束介绍

时间:2024-03-28 11:33:06浏览次数:18  
标签:null INT CREATE MogDB 介绍 约束 TABLE NULL

约束介绍
在给表中插入或者更新数据时,必须满足约束,否则,操作将失败。

约束可以在创建表时规定,或者创建表后规定(使用 Alter Table 语句创建约束)。

约束分为列级和表级。

常用的约束包含:not null、unique、primary key、foreign key、check

not null:指定列不能存储 null 值
unique:确保某列的值都是唯一的。
primary key:not null 和 unique 的结合。确保某列有唯一标识,且不能为 null。null 和没有数据不同,null 代表着未知数据。
foreign key:保证一个表中的数据匹配另一个表中的值的参照完整性。
check:保证列中的值符合一定条件。
下面列举一些示例更好的理解各个约束:

1、not null
创建表时,如果不指定约束,默认值为 NULL,意味着可以插入空值。如果不想存在 null 值,需要为该列定义 not null 约束

MogDB=# CREATE TABLE staff(
ID INT NOT NULL,
NAME char(8) NOT NULL,
AGE INT ,
ADDRESS CHAR(50),
SALARY REAL
);MogDB(# MogDB(# MogDB(# MogDB(# MogDB(# MogDB(#
CREATE TABLE
MogDB=#
2、unique
unique 约束表示表里的一个字段或多个字段的组合必须在全表范围内唯一,唯一约束认为 null 是互不相等的。意思是一列可以存在多个 null。

MogDB=# CREATE TABLE staff1(
ID INT NOT NULL,
NAME char(8) NOT NULL,
AGE INT NOT NULL UNIQUE ,
ADDRESS CHAR(50),
SALARY REAL
);MogDB(# MogDB(# MogDB(# MogDB(# MogDB(# MogDB(#
NOTICE: CREATE TABLE / UNIQUE will create implicit index "staff1_age_key" for table "staff1"
CREATE TABLE
MogDB=#
3、primary key
主键是数据表中每一条记录的唯一标识。

MogDB=# CREATE TABLE staff2(
ID INT PRIMARY KEY ,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);MogDB(# MogDB(# MogDB(# MogDB(# MogDB(# MogDB(#
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "staff2_pkey" for table "staff2"
CREATE TABLE
MogDB=#
4、foreign key
外键约束指一个表中的某个数据必须匹配另一个表中的某个数据。通过要给表的外键指向另一个表的唯一约束的键。

如下表所示,表 staff3 包含 5 个字段,表 DEPARTMENT 包含 3 个字段,其中 EMP_ID 为外键,参照 staff3 表的 ID 字段。

MogDB=# CREATE TABLE staff3(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);MogDB(# MogDB(# MogDB(# MogDB(# MogDB(# MogDB(#
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "staff3_pkey" for table "staff3"
CREATE TABLE
MogDB=# CREATE TABLE DEPARTMENT(
ID INT PRIMARY KEY NOT NULL,
DEPT CHAR(50) NOT NULL,
EMP_ID INT references staff3(ID)
);MogDB(# MogDB(# MogDB(# MogDB(#
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "department_pkey" for table "department"
CREATE TABLE
MogDB=#
5、check
check 约束表示,每次插入的数据必须使表达式结果为真或未知,才能插入成功。

MogDB=# CREATE TABLE staff4(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL CHECK(SALARY > 0)
);MogDB(# MogDB(# MogDB(# MogDB(# MogDB(# MogDB(#
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "staff4_pkey" for table "staff4"
CREATE TABLE
MogDB=#

标签:null,INT,CREATE,MogDB,介绍,约束,TABLE,NULL
From: https://www.cnblogs.com/helloopenGauss/p/18101211

相关文章

  • FPGA时序约束实战
    改编自8FPGA时序约束实战篇之主时钟约束_checktimingnoclock 以Vivado自带的wave_gen工程为例,该工程的各个模块功能较为明确,如下图所示。为了引入异步时钟域,我们在此程序上由增加了另一个时钟–clkin2,该时钟产生脉冲信号pulse,samp_gen中在pulse为高时才产生信号。下面我......
  • IO模型介绍(select、poll、epoll)
    什么是IO?IO中的I就是input,O就是output,IO模型即输入输出模型,而比较常听说的便是磁盘IO,网络IO。什么是操作系统的IO?我们如果需要对磁盘进行读取或者写入数据的时候必须得有主体去操作,这个主体就是应用程序。应用程序是不能直接进行一些读写操作(IO)的,因为用户可能会利用此......
  • 线程池的介绍与实现(多线程代码案例)
    目录概念:ThreadPoolExecutorintcorePoolSizeintmaximumPoolsizelongkeepAliveTimeTimeUnitunitBlockingQueuewokrQueueThreadthreadFactoryRejectedExecutionHandlerhandler1.ThreadPoolExecutor.Abortpolicy2.ThreadPoolExecutor.CallerRunsPolicy3.Thre......
  • Django框架之python后端框架介绍
    一、网络框架及MVC、MTV模型1、网络框架网络框架(Webframework)是一种软件框架,用于帮助开发人员构建Web应用程序和Web服务。它提供了一系列预先编写好的代码和工具,以简化开发过程并提高开发效率。网络框架通常包括以下功能和特点:路由处理(Routing):网络框架定义了URL与处理程序......
  • SDC可伸缩的高维约束基准和算法
    可伸缩的高维约束基准和算法​ 在过去二十年里,进化约束多目标优化受到了广泛的关注和研究,并且已经提出了一些基准测试约束多目标进化算法(CMOEAs)。特别地,约束函数与目标函数值有紧密的联系,这使得约束特征太单调并且与真实世界的问题不同。因此,之前的CMOEAs不能特别好的解决现实......
  • 【PG】临时禁用约束-法一
    createorreplacefunctiondisable_triggers(aboolean,nspcharactervarying)returnsvoidas$$declareactcharactervarying;rrecord;beginif(aistrue)thenact='disable';elseact='enable';endi......
  • 【PG】临时禁用约束-法二
    CREATEORREPLACEFUNCTIONdisable_triggers(aboolean,nspcharactervarying)RETURNSvoidAS$BODY$declareactcharactervarying;rrecord;beginif(aistrue)thenact='disable';elseact='enable';......
  • 全量知识系统 之“对象约束”-详细设计 (原文)
    原文这部分准备利用百度AI的文档整理能力和理解能力。分三种方式。一是思维导图,二是PPT,三是沟通。以下是依据的文字。后面将分别将百度AI助手给出的三种方式的回复一一给出今天我们开始详细设计。----全量知识系统中对象约束的完整细节。主要是作为三个不同的库代理类(Brok......
  • 传输层协议介绍
    1.TCP和UDP协议(1)TCP/IP协议族的传输层协议TCP:传输控制协议;UDP用户数据报协议1)TCP协议:TCP是面向连接的、可靠的进程到进程通信的协议;比如打电话,双方通话前需要先建立连接。TCP提供全双工服务,即数据可在同一时间双向传输;每一个TCP都有发送缓存和接收缓存,用来临时存储数据。TC......
  • 1.编程介绍
    【一】编程和编程语言1.编程​ 将人类的语言转变成计算机能识别的语言2.编程语言​ 人与计算机之间进行沟通的语言3.目的​ 为了让计算机按照人类的意愿完成特定的任务,实现自动化,提高工作效率,解放人力,创造应用与软件【二】计算机组成原理1)计算机的五大组成部分1.控制器......