1.列出所有表名的查询语句

SELECT tablename FROM pg_tables
WHERE tablename NOT LIKE 'pg%'
AND tablename NOT LIKE 'sql_%'
ORDER BY tablename;


2.列出表中所有的数据

SELECT * FROM someTable;


3.执行外部脚本

#/opt/PostgreSQL/8. 3/bin/psql - Upostgres ;登陆到数据库的控制台界面
postgres= # \i /root/db. sql
     \i 命令用于执行一个外部的sql脚本文件。


4.导出数据库为外部的脚本

#/opt/PostgreSQL/8. 3/bin/ pg_dump - Upostgres - C - fdb. sql database

-C create    -f 是导出后的文件名



5.postgresql 插入16进制数

INSERT INTO tableAAA VALUES( x'0001f' : : integer, '鉴权' , 'Authority' )

6.使用 TG_RELNAME 报错ERROR:  syntax error at or near "$1" at character

Perhaps you will get some idea if you read the document:
37. 6. 4. Executing Dynamic Commands

改:执行动态语句
EXECUTE 'INSERT INTO TG_RELNAME VALUES (NEW.start_time , NEW.id , NEW.end_time)';

7. psql 常用命令

a. \c tesdb1 - - 将当前连接的testdb数据库改变成 testdb1 。
b . \q - - 断开与Postgres服务器的连接
c . \l 列出所有数据库的名字
    \l+ 列出所有数据库的名字以及字符集编码
d. \d [ 名字] 描述表, 索引, 序列, 或者视图
                 列出表/索引/序列/视图/系统表
   \d{t| i| s| v| S} [ 模式] ( 加 "+" 获取更多信息)
                 - - 列出表/索引/序列/视图/系统表
   \d tablename - - 查看表的结构
   \dt - - 列出数据库中所有表


8.在PostgreSQL中如何删除重复记录

在PostgreSQL中删除重复记录其实很简单,不论有多少行重复,只要在要删除重复记录的表中table加一列rownum字段( id为table表中的主键) ,类型设置为serial类型即可,然后执行sql

delete from deltest where rownum not in(
select max(rownum) from deltest
);

最后删除列rownum即可

==============================================

正文:

连接数据库操作:

psql是postgresql数据库提供的连接数据库shell命令,格式 psql 【option】 dbname

在终端输入psql 会使用默认的方式连接本地数据库,使用的用户名是登陆linux系统使用的用户名,

psql -U username -W pass 以及psql -U username -W pass databasenaem都可以实现连接数据库的功能,第一种方式是使用用户名username密码pass连接默认数据库(具体链接那个数据库还没搞清 楚),第二种方式使用用户名username密码pass连接username数据库。如果登录成功之后将显示类似信息

Welcome to psql 8.0.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

连接成功之后所有的命令都是使用”\“+ 字符或者word完成相应的功能。现将常用的几个列车

\l      列出所有数据库

\dt   列出连接数据库中所有表

\di   列出连接数据库中所有index

\dv  列出连接数据库中所有view

\h    sql命令帮助

\?    \ 所有命令帮助

\q   退出连接

\d tablename  列出指定tablename的表结构

可以尝试执行下面两句sql

SELECT current_date

SELECT version()

是不是nothing happened,这是因为postgresql数据库要求必须使用;结尾否则不予执行,加上;之后就能看到结果了。

如果我们想创建数据库怎么办呢?

我们知道createdb和dropdb可以创建和删除数据库,但是如果我们这个时候执行出现什么问题呢?可以试一试,提示是个错误。

为什么呢?

createdb和dropdb是shell脚本,所以现在又两种方式执行

(1).退出连接进入终端,输入createdb test —U user -W pass 稍等提示创建数据库成功

                                         dropdb test —U user -W pass    提示drop成功

(2).在未退出连接中使用 \! createdb test —U user -W pass 稍等提示创建数据库成功

                                     \! dropdb test —U user -W pass    提示drop成功