PostgreSQL入门篇

  • Post author:
  • Post category:其他


PostgreSQL

鉴于网上PostgreSQL的资料看的让人头疼,所以想象中,这是一篇比较全面的PostgreSQL教程。我会尽量去写的详细全面易读易懂一点,也只能是尽力而为。为了方便,在后面的书写中,我会用pgsql表示PostgreSQL,理解一下打字困难户,能偷懒就偷个懒啦。

5b037e031c9f2

我写的内容都来自pgsql的官网,英语好的同学不妨去做做阅读理解。英语不好的同学,下面这个是给你们准备的。

5b037ecd30e37

本篇的环境是Window7 + PostgreSQL 10。


入门

架构基础

行话:pgsql使用了客户端/服务器模式。一个pgsql会话包含包含两个进程:

服务器进程。管理数据库文件,接收客户端程序的连接请求,代表客户端执行数据库操作。数据库服务器程序叫做

postgres

。客户端应用程序。进行数据库操作。客户端应用程序本质上可以非常多样化,一个客户端可以是一个面向文本的工具,一个图形界面应用程序,一个通过访问数据库来显示网页的web服务器,或者一个专门的数据库维护工具。有些是pgsql自带的,大部分是用户开发的。

客户端和服务器可以在不同的主机上,通过TCP/IP连接通信。记住这一点很重要,因为客户机上的文件再服务器上可能是访问不到的,或者只能换个文件名访问。

pgsql服务器可以处理多并发的连接,它会为每个连接fork一个新的进程。客户端和新的服务器进程的通信与就服务器进程没有关系。主服务器进程会一直保持运行,等待客户端连接。

创建数据库

创建数据库可以检查你是否连接到了服务器。一个pgsql服务器可以管理很多数据库。

创建一个名为

mydb

的数据库:

$ createdb mydb

如果回车之后没有任何输出,说明创建数据库成功。你可以跳过本节了。

5b0389b049c68

万一不幸出错了,这里给出了一些解决办法。

1. 找不到命令,错误如下:


createdb: command not found


说明pgsql的bin目录没有添加到环境变量。你可以选择将bin目录添加到环境变量,或者去bin目录下打开命令窗口,再或者使用绝对路径调用

createdb

命令。


$ /user/local/pgsql/bin/createdb mydb


建议添加还是添加环境变量,一劳永逸。

2. 服务未启动,错误如下:


createdb: could not connect to database postgres: could not connect to server: No such file or directory

Is the server running locally and accepting

connections on Unix domain socket "/tmp/.s.PGSQL.5432"?


表示服务器未启动,至少是在

createdb

执行的时候还未启动。多试试吧,我也不知道该咋办。

3. 没有账户,错误如下:


createdb: could not connect to database postgres: FATAL: role "joe" does not exist


这里joe是操作系统账户,pgsql用户账户与操作系统账户不同。你需要登录Postgres账户,创建一个用户账户。也可能是你被分配的pgsql账户名与操作系统用户名不同,这时,你可以使用

-U

选项指定账户或设置

PGUSER

环境变量来指定pgsql的用户名。


$ createdb -U user mydb


其中,user就是你的pgsql账户名。

4. 权限不足,错误如下:


createdb: database creation failed: ERROR: permission denied to create database


这是你的账户没有创建数据库的权限,你可以登录管理员账户进行修改。

pgsql允许创建任意数量的数据库。数据库名称必须以英文字母开头,且不超过63字节。

可以省略数据库名,创建与当前用户同名的数据库,如下:


$ createdb


删除数据库用

dropdb

命令:


$ dropdb mydb



dropdb

命令必须指定数据库名称,即使是与用户名同名的数据库也必须指定,它不会默认用账户名。它会删除与数据库相关联的所有文件,并且不能撤销,所以一定要三思而行。

访问数据库

有三种方式可以访问数据库:

pgsql终端,

psql

命令行工具;pgAdmin或支持ODBC或JDBC的office套件;编程语言API。

这里只介绍第一种方式,第二种方式不做介绍,第三种方式后面再说。

打开cmd(或PowerShell)命令行窗口,希望你之前已经设置过环境 变量了。输入一下命令启动

psql




$ psql mydb



mydb

就是之前创建的数据库。如果不指定数据库名称,默认会访问与当前账户名同名的数据库。

回车后输入密码,你会得到如下输出:


​x psql (10.4)Type "help" for help.​mydb=>



mydb=>

就是命令提示符,你可以输入SQL指令(以;结尾)或psql命令(以\开头)。

如果命令提示符是

mydb=#

,表示当前账户是超级用户。

你可以输入以下几个命令试试:


mydb=> SELECT version();



mydb=> SELECT current_date;



mydb=> SELECT 2 + 2;


上面三个命令都是SQL命令,它们都以

;

结尾。

psql内部命令都以

\

开头。例如

\h

命令可以获取帮助,

\q

命令用来退出psql。


mydb=> \h



mydb=> \q

psql与cmd

pgsql安装后会默认安装两个工具,pgAdmin和SQL Shell(psql)。前者是图形界面工具,后者是命令行工具。在打开psql之后首先需要登录账户,然后才能使用。

1. 双击打开psql。

这里写图片描述

2. 按照提示一次输入服务器地址(本地使用127.0.0.1),数据库名字,端口号(默认5432),账户名,密码。

这里写图片描述

3. 回车之后就可以登录到你的数据库,注意,输入密码是不会有任何显示的。

这里写图片描述

现在你可以输入SQL命令或psql命令来操作数据库了。pgsql也提供了许多命令可以通过cmd运行,比如前面讲的createdb命令。pgsql安装默认不会将bin目录写到环境变量,因此为了使用方便,我们可以自行这样做。在cmd中运行psql同样简单,只需要打开cmd然后输入相应的命令即可,前提是你已经设置了环境变量。本节所讲操作就是在cmd中进行的。

这里写图片描述

前面以说过,

-U

选项用来指定pgsql账户,psql命令启动psql。输入密码后即可进入psql。这与直接使用pgsql提供的SQL Shell效果是一样的。

这里写图片描述

好了,入门就入到这里了。下一期是SQL语言的简介。



版权声明:本文为puss0原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。