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

数据类型

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

相关推荐
知识分享小能手13 小时前
Redis入门学习教程,从入门到精通,Redis 数据操作:知识点详解与代码实战(2)
数据库·redis·学习
m0_6625779713 小时前
Python迭代器(Iterator)揭秘:for循环背后的故事
jvm·数据库·python
似水明俊德13 小时前
12-C#
开发语言·数据库·oracle·c#
FirstFrost --sy13 小时前
MySQL关于表的操作
数据库·mysql
青槿吖14 小时前
【保姆级教程】Spring事务控制通关指南:XML+注解双版本,避坑指南全奉上
xml·java·开发语言·数据库·sql·spring·mybatis
浪潮IT馆14 小时前
Windows 达梦 8(DM8)数据库完整安装教程 + 命令行导入 .dmp 文件完整指南
数据库·windows
Dylan~~~14 小时前
Redis MCP Server:让 AI 拥有“持久记忆“的革命性方案
数据库·人工智能·redis
小小怪75015 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
Y0011123615 小时前
Day8-MySQL-多表查询-1
数据库·sql·mysql
2501_9454235415 小时前
数据分析与科学计算
jvm·数据库·python