但前提是要设置密码文件。当然对于有系统对应账户的数据库角色可以绕过密码登录环节,如
1
$ sudo -u postgres psql
或
1
2
$ sudo su - postgres
$ psql
但是对于没有系统账户对应的数据库角色,如要使用脚本登录则必须使用PostgreSQL密码文件
heredoc方式
heredoc是一种很常用的方式,在bash环境下还可以使用变量替换,用法示例
1
2
3
psql -U ${role} -h ${host} -d mydb <<EOF
CREATE SCHEMA ${role}
EOF
也可以在循环语句中,向数据库批量插入数据,类似
1
2
3
4
5
6
for ...
do
psql -U ${role} -h ${host} -d mydb <<EOF
INSERT INTO ${table} VALUES(${value1},${value2},...)
EOF
done
但这种方式,每次插入一条语句都重新登录一次数据库,效率肯定不咋地。
UPDATE(05/05/2014):既然可以使用变量替换,可以将所有插入语句组合到一个变量中,然后就可以在一次登录中批量插入数据了。
还可以用以下方式来获取查询结果
result=`psql -U role -h localhost -d mydb <<EOF
SELECT * FROM products
EOF`
echo ${result}
使用psql命令行选项-f执行sql脚本文件
1
psql -U ${role} -h ${host} -d mydb -f ${scriptname}
使用psql命令行选项-c执行SQL语句或psql命令
psql的-c选项可以指定SQL语句或者psql命令,但二者不能混合,除非使用管道。如果命令参数中有多条SQL语句,则它们在一个事务里执行,除非使用BEGIN/COMMIT明确的指定事务。这与交互式使用psql终端不同,如果不明确指定事务,则每条SQL属于一个单独的事务并自动提交。只有最后一条SQL语句的结果被返回。
1、运行Xshell客户端(事先安装好Xshell客户端)
2、连接远程服务器
3、在命令行输入框中输入数据库的连接口令如:mysql
-h
192.168.10.100
-u
ju70_sql
-pwju70_sql
4、这个连接口令包含了,数据库的host,数据库用户名,以及密码,输入后点击回车,如下图就表示连接成功了
5、接着输入“use
数据库名称”的方式,告诉后台要使用这个数据库,输入后回车
6、如下图就可以使用正常的sql语句直接在Xshell中执行就可以查询得到想要的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)