通过命令行执行初始化sql脚本是比较常见的需求,命令行下执行如下操作即可:
若是执行的命名只是创建用户,编辑用户,创建数据库的话可以不指定-d参数。
1 |
|
如果是远程数据库加入-h参数指定主机地址即可
1 |
|
补充:PostgreSQL操作-psql基本命令
一、建立数据库连接
接入PostgreSQL数据库: psql -h IP地址 -p 端口 -U 数据库名
之后会要求输入数据库密码
二、访问数据库
1、列举数据库:\l
2、选择数据库:\c 数据库名
3、查看该某个库中的所有表:\dt
4、切换数据库:\c interface
5、查看某个库中的某个表结构:\d 表名
6、查看某个库中某个表的记录:select * from apps limit 1;
7、显示字符集:\encoding
8、退出psgl:\q
列出当前数据库所有表
\dt
列出表名
1 2 3 4 |
|
列出数据库名
\l
或
1 |
|
切换数据库
\c 数据库名
1、通过命令行查询
\d 数据库 —— 得到所有表的名字
\d 表名 —— 得到表结构
2、通过SQL语句查询
1 |
|
—— 得到当前db中所有表的信息(这里pg_tables是系统视图)
1 |
|
—— 得到所有用户自定义表的名字(这里"tablename"字段是表的名字,"schemaname"是schema的名字。用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
|
postgresql数据管理系统使用命令方式有两种:
1. 内部命令,以反斜线开始 \ ,如: \l 显示所有数据库
2. 标准SQL命令,以分号 ; 或 \g 结束,可以使用多行
数据库的关键操作:
1. 启动服务 2. 登录 3. 建立数据库 4. 建立表 5. 插入记录到表中
6. 更新/删除/查询/修改操作 7. 退出 8. 停止服务
在windows7中安装的postgresql默认使用GBK字符集,经常不能使用显示中文的数据表,解决办法:
注意:在windows 7下的postgresql中写操作时要使用GBK,读操作时要用UTF8;
设置字符集为 utf-8 就可以了.
1 2 3 4 |
|
启动服务:
1 |
|
停止服务:
1 |
|
获取命令帮助:
1 |
|
登录( 注意: postgres 是默认用户即管理员 ):
1 2 3 4 5 6 7 8 9 10 11 |
|
您正在使用psql, 这是一种用于访问PostgreSQL的命令行界面
键入:
\copyright
显示发行条款
\h
显示 SQL 命令的说明
\?
显示 pgsql 命令的说明 (pgsql内部命令)
\g
或者以分号(;)结尾以执行查询
\q
退出注: 数据库名称区分大小写的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
其它SQL命令通用如(标准化SQL语句):
*创建数据库:
1 |
|
*删除数据库:
1 |
|
*创建表:
1 |
|
*在表中插入数据:
1 |
|
*显示表内容:
1 |
|
*重命名一个表:
1 |
|
*删除一个表:
1 |
|
*在已有的表里添加字段:
1 |
|
*删除表中的字段:
1 |
|
*重命名一个字段:
1 |
|
*给一个字段设置缺省值:
1 |
|
*去除缺省值:
1 |
|
*修改表中的某行某列的数据:
1 |
|
*删除表中某行数据:
1 2 |
|
*可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:
1 |
|
1.列出所有表名的查询语句
1 2 3 4 |
|
2.列出表中所有的数据
1 |
|
3.执行外部脚本
1 2 3 |
|
4.导出数据库为外部的脚本
1 2 |
|
5.postgresql 插入16进制数
1 |
|
6.使用 TG_RELNAME 报错ERROR: syntax error at or near "$1" at character
1 2 3 |
|
改:执行动态语句
1 |
|
7. psql 常用命令
1 2 3 4 5 6 7 8 9 10 |
|
8.在PostgreSQL中如何删除重复记录
在PostgreSQL中删除重复记录其实很简单,不论有多少行重复,只要在要删除重复记录的表中table加一列rownum字段( id为table表中的主键) ,类型设置为serial类型即可,然后执行sql
1 2 3 |
|
最后删除列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数据库。如果登录成功之后将显示类似信息
1 2 3 4 5 6 |
|
连接成功之后所有的命令都是使用”\“+ 字符或者word完成相应的功能。现将常用的几个列车
\l
列出所有数据库
\dt
列出连接数据库中所有表
\di
列出连接数据库中所有index
\dv
列出连接数据库中所有view
\h
sql命令帮助
\?
\ 所有命令帮助
\q
退出连接
\d tablename
列出指定tablename的表结构
可以尝试执行下面两句sql
1 2 |
|
是不是nothing happened,这是因为postgresql数据库要求必须使用;结尾否则不予执行,加上;之后就能看到结果了。
如果我们想创建数据库怎么办呢?
我们知道createdb和dropdb可以创建和删除数据库,但是如果我们这个时候执行出现什么问题呢?可以试一试,提示是个错误。
为什么呢?
createdb和dropdb是shell脚本,所以现在又两种方式执行
(1).退出连接进入终端,输入createdb test —U user -W pass 稍等提示创建数据库成功
1 |
|
(2).在未退出连接中使用 \! createdb test —U user -W pass 稍等提示创建数据库成功
1 |
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教