搜索
查看: 1606|回复: 13

[扩展库] libpq(PostgreSQL) 扩展库 调用演示

[复制链接]

187

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14023
发表于 2017-11-14 01:55:26 | 显示全部楼层 |阅读模式
直接运行下面的代码可以自动安装libpq(PostgreSQL) 扩展库 :
import console;
import libpq;

/*
PostgreSQL 服务端:
https://get.enterprisedb.com/pos ... indows-binaries.zip
*/

var db = libpq(
    dbname =
"postgres";
    port = 5432 ;
    user =
"postgres";
    password =
"密码";
)

var rs = db.exec(`SELECT 123,'{"a": "abc","b":false}'::json`);

for(a,b in rs.each() ){
    console.log(a,b);
}

var t = rs.getTable();
console.dumpJson(t);

console.pause();

注意:这个扩展库用到了aardio新版的一些特性,上面的代码请使用新版aardio测试。

回复

使用道具 举报

1

主题

54

帖子

383

积分

培训班

积分
383
发表于 2017-11-14 08:24:35 | 显示全部楼层
这个数据库没接触过,先收藏!!!!
--雪之梦--
回复

使用道具 举报

4

主题

13

帖子

83

积分

一级会员

Rank: 2

积分
83
发表于 2017-11-14 10:26:27 | 显示全部楼层
pg是最好,功能最全的开源数据库
有小oracle之称
回复

使用道具 举报

16

主题

36

帖子

287

积分

培训班

积分
287
发表于 2017-11-14 16:52:11 | 显示全部楼层
http://www.haosql.com/  推荐用这个架设数据库服务器,精简
回复

使用道具 举报

10

主题

88

帖子

520

积分

三级会员

Rank: 4

积分
520
发表于 2017-11-14 17:48:02 | 显示全部楼层
这个库太好了 pgsql性能很好 现在用这个比mysql还多
~什么都会点,什么都不会~
回复

使用道具 举报

187

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14023
 楼主| 发表于 2017-11-14 17:55:22 | 显示全部楼层
mzky 发表于 2017-11-14 17:48
这个库太好了 pgsql性能很好 现在用这个比mysql还多
单纯说使用人数数据库排名这些,
MySQL目前还是遥遥领先于 PostgreSQL,如果加上MariaDB这些MySQL的兼容分支,那就更多了。
回复

使用道具 举报

4

主题

18

帖子

149

积分

一级会员

Rank: 2

积分
149
发表于 2017-11-14 20:08:07 | 显示全部楼层
每天上来学习一下!1多谢Jacen!!!
回复

使用道具 举报

6

主题

50

帖子

383

积分

二级会员

Rank: 3Rank: 3

积分
383
发表于 2017-11-14 23:15:12 | 显示全部楼层
本帖最后由 人生方程式 于 2017-11-14 23:19 编辑



表名不能有var db = libpq(
    dbname = "Order";
    port = 5432 ;
    user = "postgres";
    password = "haosql";
)这个里面的关键词,sql语句里的user会等于postgres

db.exec("insert into user(name) values('蛋蛋')"),//插入不成功

var t = db.getTable("select * from user");

console.dump(t)
//==返回========
{
user="postgres"
}

for(k,v in db.each("select * from user")){
       
console.dump(k,v)//返回postgres
}

console.pause();
回复

使用道具 举报

187

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14023
 楼主| 发表于 2017-11-14 23:30:26 | 显示全部楼层
人生方程式 发表于 2017-11-14 23:15
表名不能有var db = libpq(
    dbname = "Order";
    port = 5432 ;
哪个数据库都不会让你在SQL里用关键字做表名,
这些使用PostgreSQL遇到的SQL语法问题,可以去查一下PostgreSQL的相关文档。

db.getTable(`SELECT * FROM "user"`) 就行了。
PostgreSQL里表名是关键字放到双引号里,另外为什么一定要用关键字做表名呢?! 不用省多少事。
回复

使用道具 举报

6

主题

50

帖子

383

积分

二级会员

Rank: 3Rank: 3

积分
383
发表于 2017-11-14 23:39:52 | 显示全部楼层
Jacen.He 发表于 2017-11-14 23:30
哪个数据库都不会让你在SQL里用关键字做表名,
这些使用PostgreSQL遇到的SQL语法问题,可以去查一下Postgr ...

没有,只是尝鲜,刚好碰上了而已,user应该不算是关键字,只是服务器连接参数里有user,sql语句里的把参数值读过来了,原来pgsql里是用双引号,难怪我用大括号[user] 这样for(id,name in db.each("select * from [user]"))不行。顺带再请教一下,getTable只能取回一条数据的表呢?
回复

使用道具 举报

187

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14023
 楼主| 发表于 2017-11-15 00:21:46 | 显示全部楼层
人生方程式 发表于 2017-11-14 23:39
没有,只是尝鲜,刚好碰上了而已,user应该不算是关键字,只是服务器连接参数里有user,sql语句里的把参 ...
PostgreSQL碰巧用上的系统保留字 - 不就是关键字?!
PostgreSQL的关键字列表里就有user。user关键字的误用在其他数据库里也很常见,例如在access数据库遇到的同样问题 http://bbs.aardio.com/forum.php?mod=viewthread&tid=13769  

getTable只能取回一条数据这是BUG,已经修复,感谢反馈。
回复

使用道具 举报

6

主题

50

帖子

383

积分

二级会员

Rank: 3Rank: 3

积分
383
发表于 2017-11-15 01:24:27 来自手机 | 显示全部楼层
Jacen太客气了,应该感谢你为我解惑才是!看来每种数据库保留的关键字还真是不一样
回复

使用道具 举报

10

主题

88

帖子

520

积分

三级会员

Rank: 4

积分
520
发表于 2017-11-15 08:51:49 | 显示全部楼层
Jacen.He 发表于 2017-11-14 17:55
单纯说使用人数数据库排名这些,
MySQL目前还是遥遥领先于 PostgreSQL,如果加上MariaDB这些MySQL的兼容分 ...

不好意思 没加主语 是我们产品应用到项目上的数量中 pgsql较多
~什么都会点,什么都不会~
回复

使用道具 举报

187

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14023
 楼主| 发表于 2017-11-15 14:16:14 | 显示全部楼层
mzky 发表于 2017-11-15 08:51
不好意思 没加主语 是我们产品应用到项目上的数量中 pgsql较多

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2019-9-19 08:18 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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