HighGo Database中的约束条件

文章目录

文档用途

强约束使数据库成为应对不良数据的最后一道防线。 HighGo Database中的约束有多种形式,我们需要了解各种约束的使用,因为它们对数据库的安全性至关重要。 本文的主要内容是简单的介绍各种约束条件。

详细信息

简介

约束的作用是让数据库安全的存储或恢复数据。约束让我们能够根据我们的愿望来控制表中的数据。

各种约束介绍
传统的约束
非空约束

一个非空约束(NOT NULL)指定一个列中不会有空值。约束的顺序没有关系,因为并不需要决定约束被检查的顺序。

示例:

sql 复制代码
highgo=# CREATE TABLE products (
    product_no integer NOT NULL,
    name text NOT NULL,
    price numeric
);

唯一约束

唯一约束(UINQUE)保证在一列中或者一组列中保存的数据在表中所有行间是唯一的。允许在有唯一约束的列上存在多个空值。

示例:

sql 复制代码
highgo=# CREATE TABLE products (

    product_no integer UNIQUE,

    name text,

    price numeric

);

主键约束

一个主键约束是表中行的唯一标识符的一个列或者一组列。此时对应的列值都是唯一的并且非空。

示例:

sql 复制代码
highgo=# CREATE TABLE products (

    product_no integer PRIMARY KEY,

    name text,

    price numeric

);

外键约束

一个外键约束指定一列(或一组列)中的值必须匹配另一个表中某些行的值。一个表可以有超过一个的外键约束。一个外键所引用的列必须是一个主键或者被唯一约束所限制。

示例:

sql 复制代码
highgo=# CREATE TABLE posts(

     user_id int NOT NULL REFERENCES users(id)

     ...

     ...

);

检查约束

一个检查约束(CHECK)是最普通的约束类型。它允许我们指定一个特定列中的值必须要满足一个布尔表达式。需要注意的是,一个检查约束在其检查表达式值为真或空值时被满足。

示例:

sql 复制代码
highgo=# CREATE TABLE products(

     name text,

     price int CHECK(price > 0)
);

排他约束

排他约束(exclusion)保证如果将任何两行的指定列或表达式使用指定操作符进行比较,至少其中一个操作符比较将会返回否或空值。

数据类型

数据类型通常不会被认为是约束条件,但是数据类型可以约束输入的数据的类型,这在某种程度上也可以看作是一种约束条件。

相关推荐
码出钞能力19 分钟前
apache-shardingsphere-5.5.3自定义分片算法
数据库
兜有米啦1 小时前
数据库第二次作业
数据库
nVisual1 小时前
机柜PDU安装位置与空间建模方案
大数据·网络·数据库·信息可视化·数据中心基础设施管理
weixin_6681 小时前
Cursor-superpowers插件用法
数据库·人工智能
NWU_白杨2 小时前
三种常用的数据存储技术
数据库·redis·mysql·sqlite
吃饱了得干活2 小时前
亿级订单表分库分表设计,从0到1全流程
java·数据库·面试
蓝创工坊Blue Foundry2 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
麦聪聊数据2 小时前
企业数据市场建设(三):API 化服务封装,让数据开箱即用、避免重复开发
数据库
脱胎换骨-军哥2 小时前
C++数据库存储引擎内核开发:B+树索引与MVCC并发控制的完整实现
数据库·c++·b树
麦聪聊数据2 小时前
企业数据市场建设(四):流程闭环与价值运营,让数据市场真正转起来
运维·数据库