pgsql删除表中所有数据_PostgreSQL数据库中的表和数据(Tables & Data)

照顾好你的数据,数据库也会照顾你。保持数据库的整洁,查询起来也会更快,应用也会少些错误。半夜被叫醒解决数据问题并不酷。接下来,就和章郎虫博主一起来了解postgresql的表和数据吧。

一、选择一个好的数据库对象名(Choosing good names for database objects)

让其他人可以快速了解数据库的最简单方法就是给数据库各对象取一个有意义的名字。具体注意事项可以参考《PostgreSQL-9-Admin-Cookbook》的96页。

在postgresql中,标准的索引表的格式是:{tablename}_{columnname(s)}_{suffix} ,即{表名}_{列名}_{后缀}。后缀有pkey、key、excl、idx和seq几种,分别对应主键约束、唯一约束、排他性约束、其它类型的索引和序列。

postgresql中的表可以同时包含多个触发器。触发器名中可以包含一些动作,比如update、delete等。触发器一个有用的命名规范格式为:{tablename}_{actionname}_{after|before}__trig 。

二、处理包含引用名的对象(Handling objects with quoted names)

博主第一次看到这个标题,实在不明白是什么意思(英语不好),不过看了以下例子大家应该就会明白。

首先创建包含引用的对象,CREATE TABLE "MyCust" AS SELECT * FROM cust;

然后用下面几个语句查询,可以发现都出现了相同的错误。

postgres=# SELECT count(*) FROM mycust;

ERROR: relation "mycust" does not exist

LINE 1: SELECT * FROM mycust;

postgres=# SELECT count(*) FROM MyCust;

ERROR: relation "mycust" does not exist

LINE 1: SELECT * FROM mycust;

而这个是对的。

postgres=# SELECT count(*) FROM "MyCust";

count

-------

5

(1 row)

从上面这个例子可以发现,如果创建对象的时候名字中用了引号,那么查询时也一定要包含引号。而且postgresql中对象名对大小写不敏感,也就是说“SELECT * FROM mycust;”、“SELECT * FROM MYCUST;”和“SELECT * FROM MyCust;”是一样的。

三、执行相同的名称,相同的列定义(Enforcing same name, same column definition)

两个比较复杂的sql。

Columns:

We can identify columns that are defined in different ways in different tables using a query

against the catalog.

SELECT table_schema,table_name,column_name,data_type |

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值