PostgreSQL如何创建表以及相关的约束?

这篇具有很好参考价值的文章主要介绍了PostgreSQL如何创建表以及相关的约束?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建表

最简单的建表语句:

CREATE TABLE table_name(
    col01_name data_type,
    col02_name data_type,
    col03_name data_type,
    col04_name data_type
);

示例:

create table test01(id int,note varchar(20));

主键

一般的表都有主键,如果表的主键只是由一个字段组成的,则可以通过直接在字段定义后面加上“PRIMARY KEY”关键字来指定,示例如下:

create table test01(id int primary key,note varchar(20));

如果主键由两个及以上的字段组成(称为复合主键),这时就不能使用上面的语法了,而需要使用约束子句的语法,指定复合主键的约束子句语法如下

CONSTRAINT constraint_name PRIMARY KEY (col1_name,col2_name,...);
create table test02(id1 int,id2 int,note varchar(20),CONSTRAINT pk_test02 primary key (id1,id2));

唯一键

建表的时候也可以指定唯一键,唯一键也是约束的一种,唯一键的约束子句语法如下:

CONSTRAINT constraint_name UNIQUE(col1_name,col2_name,...);
create table test03(
    id1 int,
    id2 int,
    id3 int,
    note varchar(20),
    CONSTRAINT pk_test03 primary key(id1,id2),
    CONSTRAINT uk_test03_id3 UNIQUE(id3)
);

check约束

check也是一种约束,用于定义某些字段的值必须满足某种要求,语法如下:

CONSTRAINT constraint_name CHECK(expression);

例如年龄字段(age)不能大于18岁:

create table child(
    name varchar(20),
    age int,
    note text,
    CONSTRAINT ck_child_age CHECK(age<18)
);

使用模板创建表

create table baby (LIKE child);

此处创建表没有把源表上的约束复制过来,如果想完全复制源表列上的约束和其他信息,需要加上“INCLUDING”关键字,可用的“INCLUDES”选项如下:

  • INCLUDING DEFAULTS
  • INCLUDING CONSTRAINTS
  • INCLUDING INDEXES
  • INCLUDING STORAGE
  • INCLUDING COMMENTS
  • INCLUDING ALL

其中INCLUDING ALL是把所有的属性全部复制过去,示例如下:

create table baby2(LIKE child INCLUDING ALL);

也可以使用“CREATE TABLE…AS”来创建表,示例如下:文章来源地址https://www.toymoban.com/news/detail-490694.html

create table baby2 as select * from child with no data;

到了这里,关于PostgreSQL如何创建表以及相关的约束?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Postgresql如何创建索引,有什么技巧?

    在 PostgreSQL 中,可以使用 CREATE INDEX 语句来创建索引。 创建索引的语法如下: 其中,index_name 是索引的名称,table_name 是要创建索引的表的名称,column_name 是要创建索引的列的名称。 例如,如果要在 users 表的 name 列上创建索引,可以使用以下语句: 在创建索引时,有几点需

    2024年02月13日
    浏览(60)
  • PostgreSQL 重复键违反唯一约束

    直接在数据表中插入了几条测试数据,后又手动删除,导致后面插入数据的时候报主键冲突: ERROR: duplicate key value violates unique constraint “tableName_pkey” DETAIL: Key (id)=(1) already exists. 关于自增字段,postgresql中没有自增字段,用的是sequence。 即使采用INSERT IGNORE的方式或者REPLACE

    2024年02月13日
    浏览(63)
  • 【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2024年01月15日
    浏览(53)
  • Node.js-fs模块文件创建、删除、重命名、文件内容的写入、读取以及文件夹的相关操作

    异步写入:writeFile() 同步写入:writeFileSync() 异步追加写入:appendFile() 同步追加写入:appendFileSync() 方式一(appendFile): 方式二(writeFile): fs.createWriteStream( path [, options ] ) 程序打开一个文件是需要消耗资源的 ,流式写入可以减少打开关闭文件的次数。 流式写入方式适用于

    2024年02月14日
    浏览(104)
  • git如何忽略指定文件以及gitignore相关知识

    文章概要 :本文主要介绍了git中如何忽略指定文件,包括已经commit了的文件。解释了gitignore文件的写法以及提供了常见的gitignore模版。 本文内容来自:谷流仓AI - ai.guliucang.com 在平常写代码使用git的过程中,我们项目有些文件是不适合提交到仓库的,因此需要让git忽略这些文

    2024年04月25日
    浏览(43)
  • 如何设计电商SPU与SKU表以及相关的表?

    我们在开发电商项目时,必须首先要了解两个概念,SPU与SKU是什么?这也是设计一个好的电商系统的必要前提。商系统实现了什么功能,大数情况下都是和商品模块相关联的。因此商品模块本身的实现要足够抽象、灵活、易于扩展,这样才能满足各种业务需求。而这一切的基

    2024年02月09日
    浏览(30)
  • mysql开启ssl以及如何创建证书

    MYSQL版本8.0.32,默认是开启ssl的,同时也是自带证书的在/var/lib/mysql/下 jdbc连接Mysql数据库需要使用SSL时,可以按一下步骤进行设置: 前置条件(可跳过): 1.新建SSL用户 2.对用户使用ssl 3.查看用户情况 4取消ssl 5.准备SSL证书等 6.查看是否启用ssl MYSQL验证SSL 进入后输入s查看

    2024年02月11日
    浏览(47)
  • 【postgresql 基础入门】UPSERT语句,INSERT违反约束条件时可以转变为UPDATE语句,UPDATE与INSERT的合体

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 入门准备 postgrersql基础架构 快速使用 初始化集群 数据库服务管理 psql客户端使用 pgAdmin图形化客户端

    2024年03月12日
    浏览(51)
  • 关于Gitee如何创建仓库和配置本地绑定账号以及如何提交本地代码。

    第一步: 登录Gitee.com开始注册账号。 第二步 : 登录进去以后,创建一个仓库并绑定邮箱。 第三步: 安装git工具,安装完毕后,鼠标右键会出现两个选项 第四步:   接下来就开始配置git的本地文件,首先需要建立一个空文件夹,来当做一个本地仓库,在此文件夹的路径下

    2024年02月14日
    浏览(45)
  • 【Sql Server】创建表,修改表及列约束和表约束的设置

    友情提示:菜鸡用土话写的文章 文章目录 目录 文章目录 前言 一、 实验目的 二、 实验要求 三、 实验内容 实验2-1 创建表 表2.1 “student”表的结构 表2.2 “course”表的结构 表2.3 “sc”表的结构 二、实验步骤 1.使用SSMS创建“student”表 ​编辑 2.修改表 ​编辑 4.设置唯一性约

    2023年04月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包