PostgreSQL 约束
NOT NULL 约束:
默认情况下,列可以保存为 NULL 值。如果您不想某列有 NULL 值,那么需要在该列上定义此约束,指定在该列上不允许 NULL 值。
NULL 与没有数据是不一样的,它代表着未知的数据。
create table company1(
id int primary key not null,
name text not null,
age int not null,
address char(50),
salary real
);
UNIQUE 约束:
UNIQUE 约束可以设置列是唯一的,避免同一列出现重复值。
create table company1(
id int primary key not null,
name text not null,
age int not null unique,
address char(50),
salary real);
PRIMARY KEY:
PRIMARY KEY 称为主键,是数据表中每一条记录的唯一标识。
设置 UNIQUE 的列可能有多个,但是一张表只有一列可以设置 PRIMARY KEY。
create table company1(
id int primary key not null,
name text not null,
age int not null,
address char(50),
salary real);
FOREIGN KEY 约束:
FOREIGN KEY 即外键约束,指定列(或一组列)中的值必须匹配另一个表的某一行中出现的值。
通常一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键),即维护了两个相关表之间的引用完整性
create table company6(
id int primary key not null,
name text not null,
age int not null,
address char(50),
salary real
);
下面实例创建一张 DEPARTMENT1 表,并添加 3 个字段,EMP_ID 就是外键,参照 COMPANY6 的 ID:
create table department1(
id int primary key not null,
dept char(50) not null,
emp_id int references company6(id)
);
CHECK 约束:
CHECK 约束保证列中的所有值满足某一条件,即对输入一条记录要进行检查。如果条件值为 false,则记录违反了约束,且不能输入到表。
create table company1(
id int primary key not null,
name text not null,
age int not null,
address char(50),
salary real check (salary > 0)
);
EXCLUSION 约束:
EXCLUSION 约束确保如果使用指定的运算符在指定列或表达式上比较任意两行,至少其中一个运算符比较将返回 false 或 null。
create table company1(
id int primary key not null,
name text not null,
age int not null,
address char(50),
salary real
exclude using gist
(name with =,
age with <>)
);
删除约束:
删除约束必须知道约束名称,已经知道名称来删除约束很简单,如果不知道名称,则需要找到系统生成的名称,使用 \d 表名 可以找到这些信息。
通用语法如下:
alter table table_name drop constraint some_name;
PostgreSQL 约束的更多相关文章
- 第六章 Odoo 12开发之模型 - 结构化应用数据
在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中 ...
- PGSQL基础语句汇总
一.pgsql里面的数据类型不再介绍:https://www.runoob.com/postgresql/postgresql-data-type.html 二.常用基本语句 2.1.CREATE D ...
- postgresql数据库primary key约束/not null约束/unique约束及default值的添加与删除、列的新增/删除/重命名/数据类型的更改
如果在建表时没有加primary key约束.not null约束.unique约束.default值,而是创建完表之后在某个字段添加的话 1.primary key约束的添加与删除 给red_pac ...
- 从头开始学习数据库及ADO.NET之PostgreSql字段约束——竹子整理
约束数据表列执行的规则.这些是用来防止无效的数据被输入到数据库中..这确保数据库中的数据的准确性和可靠性. 约束可以是列级或表级.仅适用于表级约束被应用到整个表的列级约束.为列定义的数据类型,本身是一 ...
- PostgreSQL的约束
约束类型:检查约束.非空约束.唯一约束.主键.外键 1. 检查约束 设置某个字段里的数值必须满足约束表达式的条件. 例:限制人的年龄在0~120之间,语句如下: create table perso ...
- 外键的约束(Mysql、PostgreSQL)
关于外键是什么,具体不再详述,可以自行百度. 讲一下关于外键的 On Delete和On Update的使用 最近在项目的表中看到这些,不懂顺便查了查: ONSTRAINT "c_clust ...
- PostgreSQL创建表及约束
创建表 语法: create table table_name ( column_name type column_constraint, table_constraint table_constra ...
- postgresql 用 like 可以 复制结构包括主键约束
create tabletablename ( like tablename INCLUDING INDEXES INCLUDING COMMENTS); PostgreSQL 动态表复制(CREAT ...
- postgresql 唯一约束增强
http://blog.chinaunix.net/uid-15145533-id-2775821.html
- PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库
最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQ ...
随机推荐
- Java基于线程池和AQS模拟高并发
概述 <手写高并发下线程安全的单例模式>主要介绍使用枚举类实现JAVA单例模式,以及在高并发环境下验证此单例模式是线程安全的.本文借助ReentrantLock.CountDownLa ...
- 如何排查内存飙高-Linux top命令快速入门
Linux系统出现了性能问题,一般我们可以通过 top.iostat.free.vmstat和ifstat等命令来初步定位问题.其中,top命令是Linux下常用的性能分析工具,用于实时监测系统资 ...
- netty发送socket短连接请求,自定义报文头
package com.chinaums.japi.util; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; ...
- linux系统僵尸进程处理
查看僵尸进程 [root@mac-25 ~]# top top - 19:04:11 up 177 days, 23:58, 2 users, load average: 15.18, 21.64, ...
- Java中基本数据类型和引用数据类型的存放位置
基本数据类型存放在哪? 基本类型的变量存在栈里或者堆里不是由"大小可知,生存期可知"就能确定了.关键是上下文. 比如: void method(){ int a = 3; } 这自 ...
- 数栈SQL优化案例:OR条件优化
本文整理自:袋鼠云技术荟 | SQL优化案例(2):OR条件优化 数栈是云原生-站式数据中台PaaS,我们在github上有一个有趣的开源项目:https://github.com/DTStack/f ...
- hot100之双指针
移动0(283) 先看代码 class Solution { public void moveZeroes(int[] nums) { int idx0 = 0; for (int idx = 0; ...
- 探索 Vue.js 组件的最新特性
引言: Vue.js 作为一款流行的前端框架,始终在不断发展和演进,为开发者带来新的特性和功能,以提升开发效率和用户体验.Vue.js 组件是构建 Vue 应用的基础,其最新特性为开发者提供了更强大的 ...
- vue_过渡&动画、过滤器、指令
过度和动画 <html lang="en"> <head> <meta charset="UTF-8"> <title ...
- Windows 10文件夹中的一些高级搜索技巧
搜索文件中的内容 默认的win10搜索是只针对文件名搜索的,但有的时候我们需要搜索文件中包含特定内容的文件,这时候需要设置一下搜索的选项打开搜索文件名和内容选项: 打开文件夹–查看 选择选项 打开文件 ...