设为首页 收藏本站
查看: 751|回复: 0

[经验分享] postgresql 常用sql语句

[复制链接]

尚未签到

发表于 2016-11-19 10:25:58 | 显示全部楼层 |阅读模式
转载:http://blog.iyunv.com/u3/107080/showart_2244091.html


1.列出所有表名的查询语句
SELECT tablename FROM pg_tables
WHERE tablename NOTLIKE 'pg%'
ANDtablename NOTLIKE '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 INTOtableAAA VALUES(x'0001f'::integer,'鉴权','Authority')
  6.使用 TG_RELNAME 报错ERROR:  syntax error at or near "$1" at character
[引]http://www.dbmonster.com/Uwe/Forum.aspx/postgresql/2051/TG-RELNAME-problem
Perhaps you will get some idea ifyou 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中如何删除重复记录
  【转】http://hi.baidu.com/cicon/blog/item/e14f217f4eeee20429388a0c.html
在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成功

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302488-1-1.html 上篇帖子: opensuse 源码安装postgresql 下篇帖子: PostgreSQL导入导出数据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表