postgresql学习笔记1---安装和psql基本操作

本文是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...

1. 安装:

====

ubuntu下安装很简单:

sudo apt-get install postgresql

安装完成后哦系统自动创建了一个系统用户,也是postgresql的超级用户,无需密码即可登录到数据库.

如果还想安装图形管理界面:

 sudo apt-get install pgadmin3

可以很清楚看到所创建的数据库和表,就像这样:
图片描述

2. 添加新用户和新数据库

现在进入系统用户postgres下:

sudo su - postgres

然后连接到数据库:

 $psql

如果想创建一个新的数据库用户可以这样做:

  1. sudo adduser dbuser
    在系统中创建一个新用户.
  2. sudo su - postgres
    要切换到postgres用户下为这个新用户dbuser创建数据库.
  3. $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一样.

4.1 psql的简单使用


  • 在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已执行的时间,可以用\timing命令,实例:

#\timing 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.3\pset命令

\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键

图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PostgreSQL 安装过程遇到 "starting service postgresql-16 erro" 错误通常表示在尝试启动 PostgreSQL 服务时遇到了问题。这可能是由于多种原因,比如: 1. **权限问题**:确保你有足够的权限来启动服务。如果是 Windows 系统,可能需要以管理员身份运行命令行。 2. **服务未正确配置**:检查 `postgresql.conf` 文件的设置,确保它们与系统环境相匹配,并且服务已经按照配置进行了正确的初始化。 3. **服务未安装或损坏**:确认 PostgreSQL 安装是否完全,特别是 16 版本。你可以尝试卸载后重新安装,确保安装包是完整且适合你的系统版本的。 4. **依赖缺失**:确保所有必要的依赖项(如 libpq、openssl 等)已安装并且版本兼容。 5. **服务启动脚本问题**:Windows 系统可能是 `service.exe` 或者 `postgresql-16-x64-service` 启动脚本有问题,需要检查这些文件。 为了解决这个问题,你可以尝试以下步骤: - 使用服务管理工具(如 `services.msc` 或者 `systemctl`,取决于你的操作系统)手动启动服务。 - 检查错误日志(通常是 `%APPDATA%\postgresql\postgresql-16-x64\logs` 或 `/var/log/postgresql/pg_log`)以获取更详细的错误信息。 - 在安装过程是否有任何提示或错误消息?如果有,参考那些信息可能会找到解决方案。 - 如果还是无法解决,尝试在网上搜索错误的具体信息,可能有人遇到过类似的问题并给出了解决方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值