PostgrepSQL的连接和使用

最近用Python开发一个分析流程,需要读取PostgrepSQL中的数据。

已经知道的信息

  • 在服务器上psql是以服务的形式开启的。
  • 我需要知道数据库的host, port, database name, user, password等等才能连到数据库。

如何连接PostgrepSQL

我的需求是用python来连接,使用psycopg2这个包。这个包的connect函数提供了两种参数设置的方式,一种是用包含连接信息的字符串(dsn string),一种是用关键字参数。

  • connect(string)
    connect(dsn="dbname=test user=postgres password=secret")
    Note: dsn 意思是 database string。
  • connect(*kwargs)*
    connect(database="test", user="postpres", password="secret")

这里的例子用的都是最基本的参数,包括:

  1. database or dbname
  2. user
  3. password
  4. host(默认是UNIX socket)
  5. port(默认是5432)

弄清楚这些概念以后,终于连上数据库了。

psycopg2读取数据

psycopg2需要生成一个cursor对象才能对数据进行操作,具体的实例可以看这篇博客。

import psycopg2
import psycopg2.extras
conn = psycopg2.connect(database='mydatabase', user='myname', password='mypass', host='myhost')
cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
cursor.execute('sql语句')
res = cursor.fetchall()

psql查看数据库里面的表

在读取数据的时候很容易忘记了表名,这个时候想查看一下数据库里面有哪些表,进入服务器:

psql 数据库名(比如test)
test=> \d

就能看到test数据库下所有的表的信息。

psql 和 mysql

浏览了一下这篇文章,一个结论:

psql和mysql都是开源数据库,PostgreSQL一向以强力支撑事务密集型企业应用而著名,但许多网站也用它来支撑Web应用程序,相反,MySQL一直都是Web应用程序的首选数据库,但它在事务型企业应用系统中也得到了大量使用。

如果关心psql的具体使用

可以参考这本书,来自oreilly。

你可能感兴趣的:(PostgrepSQL的连接和使用)