我目前正在使用emacs sql-mode作为我的sql shell,下面是一个(简化的)查询响应:
my_db=# select * from visit limit 4;
num | visit_key | created | expiry
----+-----------------------------+----------------------------+------------
1 | 0f6fb8603f4dfe026d88998d81a | 2008-03-02 15:17:56.899817 | 2008-03-02
2 | 7c389163ff611155f97af692426 | 2008-02-14 12:46:11.02434 | 2008-02-14
3 | 3ecba0cfb4e4e0fdd6a8be87b35 | 2008-02-14 16:33:34.797517 | 2008-02-14
4 | 89285112ef2d753bd6f5e51056f | 2008-02-21 14:37:47.368657 | 2008-02-21
(4 rows)
如果我想根据该数据制定另一个查询,例如
my_db=# select visit_key, created from visit where expiry = '2008-03-02'
and num > 10;
您会看到我必须在visit_key
和created
之间添加逗号,并用引号括住到期值。
是否有一个SQL DB shell显示其内容更多homoiconically,以便我可以最小化这种编辑?例如
num, visit_key, created, expiry
(1, '0f6fb8603f4dfe026d88998d81a', '2008-03-02 15:17:56.899817', '2008-03-02')
或
(num=1, visit_key='0f6fb8603f4dfe026d88998d81a',
created='2008-03-02 15:17:56.899817', expiry='2008-03-02')
我正在使用postgresql btw。
答案 0 :(得分:1)
这是一个与我有时相似的想法,虽然我不确定这正是你所要求的:
在SBCL中运行Lisp编译器(如SLIME)。然后加载CLSQL。它有一个“功能数据操作语言”(SELECT documentation)可能会帮助你做你想做的事情,也许与SLIME的自动完成功能相结合。如果没有,很容易定义Lisp函数和宏(假设你知道Lisp,但你已经是Emacser了!)。
开箱即用,它没有提供大多数SQL接口所具有的格式良好的表,但即使这样也不难添加。 Lisp当然足够强大,可以让人们轻松想出让您的常用操作更轻松的方法。
答案 1 :(得分:0)
我发现psql中的以下更改在某种程度上给了我同性恋:
=# select remote_ip, referer, http_method, time from hit limit 1;
remote_ip | referer | http_method | time
-----------------+---------+-------------+---------------------------
213.233.132.148 | | GET | 2013-08-27 08:01:42.38808
(1 row)
=# \a
Output format is unaligned.
=# \f ''', '''
Field separator is "', '".
=# \t
Showing only tuples.
=# select remote_ip, referer, http_method, time from hit limit 1;
213.233.132.148', '', 'GET', '2013-08-27 08:01:42.38808
警告:一切都是字符串,它缺少开始和结束引号。