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)保证如果将任何两行的指定列或表达式使用指定操作符进行比较,至少其中一个操作符比较将会返回否或空值。

数据类型

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

相关推荐
倔强的石头_1 分钟前
5 个真实案例带你避坑:DolphinDB 实时写入、流订阅与高可用调优
数据库
虹科网络安全7 分钟前
艾体宝新闻|Redis 月度更新速览:2026 年 3 月
数据库·redis·缓存
Nturmoils10 分钟前
DolphinDB 实时时序数据处理踩坑实录:5 类生产故障排查与优化
数据库
csdn2015_35 分钟前
postgresql 拼接字段
数据库
\xin41 分钟前
pikachu自编SQL(POST)
java·数据库·sql
2301_815901971 小时前
SQL如何将多行记录聚合成逗号分隔字符串_GROUP_CONCAT技巧
jvm·数据库·python
秋91 小时前
Kingbase下载、安装和使用详解
数据库
zjy277771 小时前
Layui tab选项卡如何动态根据ID值进行程序化切换
jvm·数据库·python
m0_602857761 小时前
Redis如何修复槽位分配重叠的脏状态_使用redis-cli --cluster fix工具扫描并修复不一致的Slot
jvm·数据库·python
hljqfl1 小时前
Oracle存储结构
数据库·oracle