本文是PostgreSQL修炼之道这本书的学习笔记,记录下疑惑或不解的地方.
这里也列一些资源:
官方文档:http://www.postgresql.org/files/documentation/pdf/9.4/postgresql-9.4-A...
中文文档:http://www.php100.com/manual/PostgreSQL8/
阮一峰的博客:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql...
====
ubuntu下安装很简单:
sudo apt-get install postgresql
安装完成后哦系统自动创建了一个系统用户,也是postgresql的超级用户,无需密码即可登录到数据库.
如果还想安装图形管理界面:
sudo apt-get install pgadmin3
可以很清楚看到所创建的数据库和表,就像这样:
现在进入系统用户postgres下:
sudo su - postgres
然后连接到数据库:
$psql
如果想创建一个新的数据库用户可以这样做:
sudo adduser dbuser
在系统中创建一个新用户.
sudo su - postgres
要切换到postgres用户下为这个新用户dbuser创建数据库.
$psql
如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。
在这里创建dbuser数据库用户
CREATE USER dbuser WITH PASSWORD "password";
注意结尾一定要加封号";"
然后创建dbuser数据库用户的一个数据库,这里为exampledb,并指定所有者为dbuser.
CREATE DATABASE exampledb OWNER dbuser;
最后是将exampledb的所有权限都赋予dbuser,否则dbuser只能登录控制台没有任何数据库操作权限.
GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
最后使用q退出控制台
3. 登录数据库在创建了某个系统用户的某个数据库用户的某个数据库之后.我们现在要登录她;
使用以下命令:
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
我试过了在ubuntu的不同系统下都可以通过这种方式,登录一个数据库.
当然如果你要登录的额数据库就在你现在系统下,可以简单使用psql exampledb登录.
更简单的如果在你的用户名叫做dbuser,数据库也叫dbuser,那么在dbuser用户下就使用psql就可以一步登录dbuser数据库.
这样几个包含关系用文字描述不太清楚,之后用图表来表示一下,先放在这里.
4. psql工具的使用介绍:============
使用psql可以允许你交互地输入SQL命令,类似与ORACLE里的sqlplus一样.
在dbuser用户下进入example数据库.
sudo su - dbuser psql exampledb
效果如下:
查看数据库信息
psql -l
当然也可以在psql命令行地下使用l查看
$psql exampledb exampledb=>l
使用d可以查看该数据库下表的信息:
exampledb=>d
创建数据库:
目测创建一个数据库是超级用户的权限,其他数据库用户没有这个权限.
所以先返回postgres系统用户下:
$su - postgres
进入数据库用户postgres:
$psql #CREATE DATABAE testdb OWNER dbuser;4.2 psql常用命令:
先列出来:
d
dn
db
dg
du
dp
encoding
pset
x
echo
?
4.2.1.d命令
如果什么都不带,d列出当前数据库中的所有表;
例如在postgres数据库中:
postgres=#d
2.d后面加表名
d score
3.d也可以显示索引信息
d t_pkey
4.d后面加通配符?和*
d score* d score?
5.d+显示比d更多的信息,除了之前的那些,还有与表列一切相关连的注释,以及表中出现的OID.
d+ score
6.匹配不同对象类型的d命令(还没用过)
如果只想显示匹配的表,可以使用
dt命令;
如果想只显示索引,可以使用di命令;
如果想只显示序列,可以使用ds命令;
如果想只显示视图,可以使用df命令;
如果想只显示函数,可以使用df命令;
7.如果想显示SQL已执行的时间,可以用 iming命令,实例:
# iming on #select count(*) from score;
8.列出所有schema可以使用dn
#dn
9.显示所有表空间可以用db命令
#\db`请输入代码`
10.列出数据库的所哟角色或用户
#du或#dg
11.显示表的权限分配
#dp或z
4.2.2指定字符集编译的命令
当客户端的字符编码与服务其的不一样是,可能会显示乱码,可以使用encoding 指定客户端的字符编码,如encoding gbk;encoding utf-8;
4.2.3pset命令
\pset命令用于设置输出的格式 pset border 0:输出内容无
4.2.4\x命令
把表中的每一行数据都拆分为单行展示
#x
4.2.5执行储存在外部文件中的SQL命令
/i<文件名>执行存储在外部文件中的sql语句或命令.如下:
#i getrunsql
发现该书中的一个错误.
4.2.6显示信息的命令:
echo hello world #hello world
这个命令通常在使用.sh脚本的文件中输出一些提示信息.
比如,某一个文件a.sql有一下内容:
echo=======================
select * from xl;
echo=======================
4.2.7更多命令
\?可以用来查询其他所有命令:
#\?
4.2.8psql的使用技巧和注意事项
历史命令补全:
连按两个Tab键
#d <-----这里连按两个Tab键
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38926.html
摘要:最近研究基于的开源框架,其中构建需要使用插件。为例,安装以下包即可系列则请安装初次安装后,默认生成一个名为的数据库和一个名为的数据库用户。注意,不要往这个数据库中添加数据,这个数据库之所以称为模板,就说明它是用来派生用的。 最近研究基于 GeoServer 的开源 GIS 框架,其中构建 GIS database 需要使用 PostgreSQL + PostGIS 插件。花了些时间学习...
摘要:最近研究基于的开源框架,其中构建需要使用插件。为例,安装以下包即可系列则请安装初次安装后,默认生成一个名为的数据库和一个名为的数据库用户。注意,不要往这个数据库中添加数据,这个数据库之所以称为模板,就说明它是用来派生用的。 最近研究基于 GeoServer 的开源 GIS 框架,其中构建 GIS database 需要使用 PostgreSQL + PostGIS 插件。花了些时间学习...
摘要:首先是安装来源一安装首先,安装客户端。正常情况下,安装完成后,服务器会自动在本机的端口开启。如果一切正常,系统提示符会变为,表示这时已经进入了数据库控制台。命令存在简写形式。列出某一张表格的结构。 首先是安装PostgreSQL 来源:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html...
阅读 2537·2023-04-25 20:05
阅读 2873·2023-04-25 17:56
阅读 2174·2021-10-14 09:49
阅读 2655·2019-08-29 15:10
阅读 2879·2019-08-29 12:25
阅读 399·2019-08-28 18:23
阅读 721·2019-08-26 13:26
阅读 1348·2019-08-23 18:21