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

数据类型

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

相关推荐
XDHCOM14 小时前
ORA-32484重复列名错误,ORACLE数据库CYCLE子句故障修复与远程处理方案
数据库·oracle
翻斗包菜14 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
呆瑜nuage14 小时前
MySQL表约束详解:8大核心约束实战指南
数据库·mysql
liliangcsdn15 小时前
Agent Memory智能体记忆系统的示例分析
数据库·人工智能·全文检索
那个失眠的夜15 小时前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis
Rick199315 小时前
SQL 执行流程
数据库·sql
M--Y15 小时前
Redis常用数据类型
数据结构·数据库·redis
猿小喵15 小时前
MySQL慢查询分析与处理-第二篇
数据库·mysql·性能优化
Y0011123616 小时前
MySQL-进阶
开发语言·数据库·sql·mysql
徒 花16 小时前
数据库知识复习01
数据库