postgresql-查看表结构(命令和sql方式)、修改表结构、外键

声明:本PostgreSQl实用指南系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

SQL方式查看表结构(表名是student)
mydb=# SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a
.atttypmod AS lengthvar,a.attnotnull AS notnull
mydb-# FROM pg_class c,pg_attribute a,pg_type t
mydb-# WHERE c.relname = 'student' and a.attnum > 0 and a.attrelid = c.oid and a
.atttypid = t.oid
mydb-# ORDER BY a.attnum;
 attnum | field |  type   | length | lengthvar | notnull
--------+-------+---------+--------+-----------+---------
      1 | name  | varchar |     -1 |        24 | f
      2 | age   | int4    |      4 |        -1 | f
      3 | city  | int4    |      4 |        -1 | f
(3 rows)

命令方式
mydb=# \d student
           Table "public.student"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 name   | character varying(20) |
 age    | integer               |
 city   | integer               |


修改表结构

mydb=# alter table student add sex int;
ALTER TABLE
mydb=# \d student;
           Table "public.student"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 name   | character varying(20) |
 age    | integer               |
 city   | integer               |
 sex    | integer               |

mydb=# alter table student alter sex type varchar(5);
ALTER TABLE

mydb=# select * from citys
mydb-# ;
 name | id
------+----
 长沙 |  1
 湛江 |  2
 上海 |  3
(3 rows)


mydb=# select * from student;
    name    | age | city | sex
------------+-----+------+-----
 deepfuture |  20 |    1 |
 未来       |  20 |    2 |
 张三       |  21 |    1 |
(3 rows)

增加主键

mydb=# alter table citys add primary key (id);
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "citys_pkey" f
or table "citys"
ALTER TABLE

增加外键
mydb=# alter table student add constraint cityfk foreign key (city) references c
itys(id);
ALTER TABLE

增加和修改表记录

mydb=# insert into student values ('王国',18,2);
INSERT 0 1
mydb=# insert into student values ('王国',18,3);
INSERT 0 1
mydb=# update student set name='干哈' where name='王国';
UPDATE

mydb=# update student set name='艾丝凡' where name='干哈' and city=3;
UPDATE 1
mydb=# select * from student;
    name    | age | city | sex
------------+-----+------+-----
 deepfuture |  20 |    1 |
 未来       |  20 |    2 |
 张三       |  21 |    1 |
 干哈       |  18 |    2 |
 艾丝凡     |  18 |    3 |
(5 rows)

mydb=# select * from citys;
 name | id
------+----
 长沙 |  1
 湛江 |  2
 上海 |  3
(3 rows)

违反外键增加表记录
mydb=# insert into student values('萨芬',19,5);
ERROR:  insert or update on table "student" violates foreign key constraint "cit
yfk"
DETAIL:  Key (city)=(5) is not present in table "citys".
STATEMENT:  insert into student values('萨芬',19,5);
ERROR:  insert or update on table "student" violates foreign key constraint "cit
yfk"
DETAIL:  Key (city)=(5) is not present in table "citys".

在外键允许下增加表记录
mydb=# insert into student values('萨芬',19,3);
INSERT 0 1


mydb=#

SQL ALTER 命令:数据库表结构修改利器 ALTER命令SQL 语言的一部分,用于修改已存在的数据库表的结构。通过ALTER命令,可以添加、删除或修改表中的列,以及更改列的数据类型或约束。此,ALTER命令还可以用于修改索引、触发器视图等数据库对象。 阅读详情

相关推荐

find命令

命令是 Linux/Unix 系统中用于搜索文件目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接

qiao2458的博客 1101

PostgreSQL查询表名称及表结构

1. 查询表名称 在psql状态下查询表名称 \dt SQL方式查看表名称 SELECT tablename FROM pg_tables; SELECT viewname FROM pg_views; PostgreSQL获取数据库中所有view名 视图 SELECT viewname FROM pg_views WHERE schemaname ='public' 2. 查询表结构 在psql状态下查询表结构 \d tablename SQL方式查看表结构: SELECT A .attnum

荷塘月色 1万+

postgresql 基础入门】表的约束(一)主,数据的实体完整性与参照完整性,引用数据被修改时的动作触发

数据库的约束是一种规则,用于限制或规范数据库中的数据,确保数据的完整性一致性。这些约束可以定义在表级别或列级别,处理机制是一致的。约束不占用任何数据库空间,而是存在于数据字典中,并在执行SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,它增强了数据的完整性。

一个追逐梦想的码农 5650

PostgreSQL查看表结构的方法

本文介绍查看 PostgreSQL 中表的结构的两种方法。

SQLplusDB的小院 1万+

PostgreSQL表全解

本文概述了数据库中的关概念,包括约束、触发器、表空间、视图、索引物化视图。约束用于确保数据的完整性,包括主、非空、唯一、检查、默认值。触发器用于在数据库操作前、后自动执行特定的操作。表空间是数据库中存储数据的位置。视图是一个虚拟表,基于一个或多个实际表的查询结果。索引用于加快数据检索速度,分为基本概念、分类创建方式。物化视图是预计算的视图,用于提高复杂查询的性能。这些概念在数据库设计管理中起着重要作用,帮助提高数据的一致性完整性,并优化查询性能。

程序员Forlan的博客 1646

03:PostgreSQL逻辑结构(表空间、数据库、模式、表、索引)

本文假设已经掌握SQL基本语法数据库基础概念。包括表空间、数据库、模式、表、索引、关闭自动提交AUTOCOMMIT

zyplanke的专栏 2680

PostgreSQL】约束-

CREATE TABLE 表名 (列名 数据类型,...列名 数据类型 REFERENCES 参考表名 (参考列名)

圈小圈DBA的博客 3151

PostgreSQL - 查看数据库与表结构的常用命令

PostgreSQL数据库与表结构查看指南 本文详细介绍了PostgreSQL查看数据库表结构的常用方法。主要内容包括: psql命令行工具:通过\l查看数据库列表,\dt查看表信息,\d查看表结构,以及各种元命令查看索引、视图等对象。 系统视图查询: 使用information_schema视图获取表、列、主等标准元数据 通过pg_catalog视图查询更底层的系统信息 示例SQL展示了如何查询表结构、约束关系等 Java程序实现: 使用JDBC连接PostgreSQL 通过DatabaseMet

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

查看PostgreSQL数据库中所有表

作为曾经干过运维的我来说,或许对大部分运维人员来说,不能依靠管理工具来操作数据库,如pgAdmin,经常远程登录到某一台数据库服务器,使用命令行的方式查询数据库中的表。 获取当前db中所有的表信息。 select * from pg_tables; 用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下 select tablename from pg_tables wh...

huangbaokang的博客 13万+

PostgreSQL -与约束的基础配置

PostgreSQL与约束基础配置 本文深入讲解PostgreSQL中主与约束的基础配置方法,主要内容包括: 主配置 自增主(SERIAL/BIGSERIAL)的创建与使用 复合主的定义与应用场景 主修改方法(添加/移除) 关系 的作用与语法 级联操作(ON DELETE CASCADE)的使用 多表关联查询示例 约束配置 非空约束(NOT NULL) 唯一约束(UNIQUE) 检查约束(CHECK) 文章通过实际SQL示例Java代码演示,帮助读者掌握这些关数据库

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

查看PostgreSQL 表结构及权限列表

本文我们解释如何查看PostgreSQL 表结构以及权限列表,即哪些用户对表拥有哪些权限。 查看表结构 使用命令查看 \d+ table_name; 示例: test=# \d+ books 数据表 "public.books" 栏位 | 类型 | Collation | Nullable | Default | 存储 | 统计目标 | 描述 --.

neweastsun的专栏 9981

postgresql 删除

postgresql命令: ALTER TABLE table_name DROPCONSTRAINT foreing_key; 注意有时候table_name foreing_key 需要加双引号; 添加命令: ALTER TABLE table_name1 ADD CONSTRAINT foreing_key_nameFOREIGN KEY (column_name1) REFERENCES table_name2(column_name2) ON DELETE SET NU...

dawn_02的博客 3863

查询PostgreSQL中所有表逻辑的方法例子解析

确保你的主服务器从服务器上都安装了PostgreSQL数据库。在从服务器上,使用以上步骤提供了一个基本的流复制配置指南。根据你的具体需求,可能需要调整配置参数步骤。更多详细信息高级配置选项,建议参考PostgreSQL官方文档。

IT老农民的博客 1744

postgresql 约束、主

由于工作需要,近期在学习postgresql数据库方面的东西,一下为学习过程中摘录的一些东西,希望记录自己学习的过程,同时可以帮助有需要这方便帮助的小伙伴。 以下文章为摘录,并非原创。 出处http://www.postgres.cn/docs/10/ddl-constraints.html 表基础 要创建一个表,我们要用到CREATE TABLE命令。在这个命令中 我们需要为新表至少指定一个名字、列的名字及数据类型。例如: CREATE TABLE products ( product...

weixin_43777684的博客 3099

PostgreSQL 引用查询

根据一个表名,查询所有引用它的表,以及那些的列名 key_column_usage(系统列信息表), pg_constraint(系统所有约束表) SELECT x.table_name, x.column_name FROM information_schema.key_column_usage x INNER JOIN (SELECT t.relname, a.conname

技术小站 2449

PostgreSql

CREATE TABLE cities (         city            varchar(20) primary key,         location   varchar(20) ); CREATE TABLE weather (         city            varchar(20) references cities(city),         wen...

azhegps的博客 6435

数据库物理与逻辑全解析

物理与逻辑的核心区别在于实现层面数据一致性保障方式。物理通过数据库语法强制约束,确保数据强一致性,但存在性能开销运维困难;逻辑仅依赖应用层维护,灵活性高且无数据库性能损耗,但需靠代码保证数据正确性。现代互联网应用(尤其是微服务架构)多采用逻辑以适应高并发、分库分表需求,而传统企业系统仍倾向物理以确保数据可靠性。选择取决于项目类型:强一致性场景选物理,高性能需求场景选逻辑

2301_80215285的博客 1225

标准SQL关于的理解与运用

- MySQL =“父子关系的保险丝”正常时静默守护,异常时立刻断电,防止数据变成“孤儿”。

u012581726的博客 599

PostgreSQL查询信息

postgresql查询信息

江湖救急不救穷的博客 1612

STM32N6570-DK识别STLINK问题,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2164

基于python的天气预报系统设计可视化数据分析源码+文档说明

基于python的天气预报系统设计可视化数据分析源码+文档说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预报系统设计可视化数据分析源码+文档说明基于python的天气预

上一篇: postgresql-视图、删除记录
下一篇: postgersql-事务
deepfuture
博客等级 码龄17年 209粉丝 1288原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值