【postgresql 基础入门】psql客户端的使用方法

这篇具有很好参考价值的文章主要介绍了【postgresql 基础入门】psql客户端的使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

psql 客户端使用

专栏内容

  • postgresql内核源码分析
  • 手写数据库toadb
  • 并发编程

开源贡献

  • toadb开源库

个人主页:我的主页
管理社区:开源数据库
座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物.

系列文章

  • 初始化集群
  • 数据库服务管理
  • psql客户端使用

前言

postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。

因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;

如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。

本专栏主要介绍postgresql 入门使用,数据库维护管理,通过这些使用来了解数据库原理,慢慢了解postgresql是什么样的数据库,能做那些事情,以及如何做好服务,最关键的是这些知识都是面试的必备项。

概述

数据库服务在后台运行,除了开发应用程序,通过jdbc,odbc等与它交互外,如何能操作数据库呢?

像oracle,mysql一样,postgresql也有自己的客户端,可以很方便数据库开发人员看到数据库中的结构,查询数据库中的数据,尤其像图形化客户端,帮助我们减少SQL编程,通过图形化选择就可以轻松搞定数据库的设计;

当然也有命令行的客户端,相对图形化界面来讲,很轻量,也可以被其它应用嵌入使用,但是需要对数据库有一定了解,对数据库结构了然于胸;其实用习惯了命令行,反而觉得界面比较麻烦。

本文主要分享命令行客户端的常用命令和方法;

命令行客户端

客户端当然离不开命令行方式,因为在大多数linux下都是使用命令行;

postgresql 在安装时,就自带了一个功能强大的命令行客户端工具 psql ,它就在安装目录的bin目录下面;

命令说明

先来看一下psql自身的帮助

[senllang@hatch bin]$ ./psql --help
psql is the PostgreSQL interactive terminal.

Usage:
  psql [OPTION]... [DBNAME [USERNAME]]

General options:
  -c, --command=COMMAND    run only single command (SQL or internal) and exit
  -d, --dbname=DBNAME      database name to connect to (default: "senllang")
  -f, --file=FILENAME      execute commands from file, then exit
  -l, --list               list available databases, then exit
  -v, --set=, --variable=NAME=VALUE
                           set psql variable NAME to VALUE
                           (e.g., -v ON_ERROR_STOP=1)
  -V, --version            output version information, then exit
  -X, --no-psqlrc          do not read startup file (~/.psqlrc)
  -1 ("one"), --single-transaction
                           execute as a single transaction (if non-interactive)
  -?, --help[=options]     show this help, then exit
      --help=commands      list backslash commands, then exit
      --help=variables     list special variables, then exit

Input and output options:
  -a, --echo-all           echo all input from script
  -b, --echo-errors        echo failed commands
  -e, --echo-queries       echo commands sent to server
  -E, --echo-hidden        display queries that internal commands generate
  -L, --log-file=FILENAME  send session log to file
  -n, --no-readline        disable enhanced command line editing (readline)
  -o, --output=FILENAME    send query results to file (or |pipe)
  -q, --quiet              run quietly (no messages, only query output)
  -s, --single-step        single-step mode (confirm each query)
  -S, --single-line        single-line mode (end of line terminates SQL command)

Output format options:
  -A, --no-align           unaligned table output mode
      --csv                CSV (Comma-Separated Values) table output mode
  -F, --field-separator=STRING
                           field separator for unaligned output (default: "|")
  -H, --html               HTML table output mode
  -P, --pset=VAR[=ARG]     set printing option VAR to ARG (see \pset command)
  -R, --record-separator=STRING
                           record separator for unaligned output (default: newline)
  -t, --tuples-only        print rows only
  -T, --table-attr=TEXT    set HTML table tag attributes (e.g., width, border)
  -x, --expanded           turn on expanded table output
  -z, --field-separator-zero
                           set field separator for unaligned output to zero byte
  -0, --record-separator-zero
                           set record separator for unaligned output to zero byte

Connection options:
  -h, --host=HOSTNAME      database server host or socket directory (default: "local socket")
  -p, --port=PORT          database server port (default: "5432")
  -U, --username=USERNAME  database user name (default: "senllang")
  -w, --no-password        never prompt for password
  -W, --password           force password prompt (should happen automatically)

For more information, type "\?" (for internal commands) or "\help" (for SQL
commands) from within psql, or consult the psql section in the PostgreSQL
documentation.

Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>

使用说明

有几个常用的参数,在这里列一下

一般登陆使用的参数

  • -d database name , 指定要连接的数据库的名字,每个连接都需要指定到数据库
  • -U username, 登陆数据库要使用的数据库用户名
  • -h hostname , 指定数据库服务的IP或,如果为localhost,可以不指定;
  • -p port 数据库服务的port端口号,默认5432时,也不需要指定;
    默认数据库名和用户名是一样的, 同当前的系统用户名;如果当前系统用户名不是postgres,那就需要指定数据库名;

这里需要注意下,因为数据库集群中默认会创建一个postgres的数据库,当前初始化时没有指定用户名,默认是当有系统用户名;

举例说明,新初始化的集群,启动后,用psql进行连接,超级用户名为senllang, 数据库为postgres, 主机名为localhost, 端口号为5432;

[senllang@hatch bin]$ ./psql -d postgres
psql (16beta1)
Type "help" for help.

从文件执行SQL的参数

假如我们要从文件导入,除了指定上面的参数以外,还有

  • -f file ,指定带路径的文件名;

假如我们有一个createtable.sql的文件,通过执行文件来创建表,文件内容如下:

--
create table tbl_user(id int, name varchar, ssex varchar);

使用psql执行文件

[senllang@hatch bin]$ ./psql -d postgres -f createtable.sql
CREATE TABLE

可以看到它执行成功了;

直接执行SQL

使用psql 也可以直接执行SQL语句,这个功能也非常好用,比如在shell中就可以调用psql操作数据库;

  • -c command , 指定要执行的命令,用双引号括起来
    现在向刚才创建的表中插入一条数据
[senllang@hatch bin]$ ./psql -d postgres -c "insert into tbl_user values(1,'xiucai','male');"
INSERT 0 1

常用命令

通过psql, 我们连接上数据库后,如何使用呢?

下面我们介绍几个常用的命令和用法;

  • SQL命令帮助,可以执行 \h
  • 查看当前数据库下的用户表 \d ,会显示出来所属的schema,own 用户名等;
postgres=# \d
          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | tbl_user | table | senllang
(1 row)
  • 查看当前集群中的database列表 \l
postgres=# \l
                                                       List of databases
   Name    |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------
 postgres  | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 template0 | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
           |          |          |                 |             |             |            |           | senllang=CTc/senllang
 template1 | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
           |          |          |                 |             |             |            |           | senllang=CTc/senllang
(3 rows)

可以到已经有3个数据库,其中两个template0,template1是模版数据库,也就是生成其它数据库的模版,而postgres就是默认创建的可以使用的数据库;

  • 切换用户或数据库 \c
postgres=# create database db_factory;
CREATE DATABASE
postgres=# \c db_factory
You are now connected to database "db_factory" as user "senllang".
db_factory=#

再新创建一个数据库db_factory,然后切换到该数据库,默认使用当前登陆的用户名;

总结

自带的 psql命令行客户端,非常实用,以上分享了一些它的用法和常用命令,其它我们在以后的分享中逐淅再接触。

了解psql之后我们就可以真正的开始数据库使用了,以上在演示过程中已经输入了一些SQL命令,如果你已经掌握一些SQL,那么就可以在psql连接数据库之后开始输入SQL,开始你的数据库设计了。

结尾

非常感谢大家的支持,在浏览的同时别忘了留下您宝贵的评论,如果觉得值得鼓励,请点赞,收藏,我会更加努力!

作者邮箱:study@senllang.onaliyun.com
如有错误或者疏漏欢迎指出,互相学习。

注:未经同意,不得转载!文章来源地址https://www.toymoban.com/news/detail-696534.html

到了这里,关于【postgresql 基础入门】psql客户端的使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 邮件客户端的配置使用

    winmail收到新邮件不会提示用户,这样用户就容易错过消息 下载foxmail可以解决这个问题 1.实体机进入官网https://www.foxmail.com/,点击下载版本随意 下载好后拖到虚拟机上 1.开始创建账号 因为这几种邮箱都不是我们上个实验的邮箱选择其他邮箱 公网上的邮箱直接输入地址和密码

    2024年03月19日
    浏览(45)
  • 网络基础静态综合实验,使用eNSP模拟给公司内网配置IP,路由。并连接到外网的以及服务端与客户端的远程登录和通信的综合实验。

    实验拓扑及要求图 实验给出网段为192.168.1.0/24,基于此网段进行IP规划。 一、看到拓扑中有6段骨干网段,以及需要配置8段环回地址的网段,将192.168.1.0/24先分为8个子网段,其中192.168.1.00000000/27用于配置骨干网段IP。 192.168.1.00100000/27    192.168.1.01000000/27   192.168.1.01100000/27  

    2024年02月20日
    浏览(40)
  • Transport Client 客户端的使用

    官方文档:TransportClient 这里描述操作elasticsearch采用TransportClient这种方式,官方明确表示在ES 7.0版本中将弃用TransportClient客户端,且在8.0版本中完全移除它. properties配置 1)通过配置类 2)使用@PostConstruct注解 如果整合其他客户端时使用这种方式 3)测试代码的时候使用这种 参

    2024年02月09日
    浏览(45)
  • 《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互

    QT版本:5.15.2 VS版本:2019 客户端程序主要包含三块:连接服务器,发送消息,关闭客户端 服务端程序主要包含三块:打开消息监听,接收消息并反馈,关闭服务端 1、先打开服务端监听功能 2、点击客户端connect连接服务端 3、在客户端输入消息点击send发送到服务端 4、在服务

    2024年02月03日
    浏览(35)
  • PostgreSQL数据库连接报错:psql: error: FATAL: password authentication failed for user “postgres“

    环境如下,使用yum方式安装PostgreSQL hostname IP地址 操作系统版本 PostgreSQL版本 jeven 192.168.3.166 centos 7.6 13.10 PostgreSQL(经常被简称为Postgres)是一个开源的关系型数据库管理系统,它基于SQL语言实现了所有主流功能,支持事务处理、并发控制、复杂查询、外键、触发器、存储过程

    2024年02月04日
    浏览(57)
  • MJ基础入门之注册:超详细注册 Midjourney 及使用方法

    如何注册并使用 Midjourney Midjourney是一款优秀的AI图像生成工具,它的综合能力十分强大且易于上手。使用Midjourney,您可以在一分钟内生成4张图像,这是非常快的。不仅如此,国外的很多图像创作者都在使用Midjourney,并将其作为创作灵感的参考。 如果你想使用Midjourney生成图

    2024年02月08日
    浏览(70)
  • Mac OS下WireGuard客户端的安装与配置使用

    官网安装/下载地址:https://www.wireguard.com/install/ 参考原创:Mac OS下WireGuard客户端的安装与配置 最简单:直接用一个美国区的账号,通过appstore下载 在wg0.conf文件中写入如下内容,需要注意的是,需要自己修改文件内容,保持可用。 除了客户端需要修改之后,还要将服务器网卡

    2024年02月10日
    浏览(39)
  • Windows 10 安装 PostgreSQL 12.x 报错 ‘psql‘ 不是内部或外部命令 & 由于找不到文件libintl-9.dll等问题

    不知道是不是,笔者取消了 stack Builder 的安装,导致 psql 在 Windows 10 的cmd 命令下运行报错 \\\'psql\\\' 不是内部或外部命令,也不是可运行的程序或批处理文件。 ,配置了 pgAdmin 4 文件夹内的 runtime 环境变量也不行。所以笔者只能尝试重装 PostgreSQL 。 还有一个是手动点击 \\\"D:xxxpg

    2024年02月15日
    浏览(39)
  • 使用Python创建websocket服务端并给出不同客户端的请求

    作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 WebSocket 和HTTP一样,也是一种通讯协议,允许服务端主动向客户端推送数据。 在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据

    2024年01月17日
    浏览(30)
  • 接收来自客户端的参数使用【JSR303校验框架】进行校验参数是否合法

    目录 1:JSR303校验 1.1:统一校验的需求 1.2:统一校验实现 1.3:分组校验 1.4:校验规则不满足? 前端请求后端接口传输参数,是在controller中校验还是在Service中校验? 答案是都需要校验,只是分工不同。 Contoller中校验请求参数的合法性,包括:必填项校验,数据格式校验,

    2023年04月27日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包