English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O PostgreSQL pode usar psycopg2Módulo integrado com Python. psycopg2É um adaptador de banco de dados PostgreSQL para a linguagem de programação Python. psycopg2O propósito da escrita é muito pequeno, rápido e estável, uma rocha sólida. Você não precisa instalar este módulo separadamente, porque, por padrão, ele é fornecido com Python2.5.x versão fornecida.
Se não tiver instalado no seu computador, você pode usar o comando yum para instalá-lo da seguinte forma
$yum install python-psycopg2
Para usar psycopg2Módulo, é necessário criar primeiro um objeto Connection que representa o banco de dados, e então pode optar por criar um objeto cursor, o que ajudará a executar todas as instruções SQL.
Módulo psycopg2 A seguir estão as APIs importantes do psycopg2Documento oficial do módulo. Módulo, que pode atender às suas necessidades de uso do banco de dados PostgreSQL em programas Python. Se você está procurando aplicações mais complexas, pode verificar Python psycopg
N.º | API & Descrição |
---|---|
1 | psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1"5432); Esta API abre uma conexão com o banco de dados PostgreSQL. Se o banco de dados for aberto com sucesso, ele retornará um objeto de conexão. |
2 | connection.cursor() Criar um cursor, que será usado durante a programação de banco de dados em Python. |
3 | cursor.execute(sql [, parâmetros opcionais]) Executar comando SQL. O comando SQL pode ser parametrizado (ou seja, placeholders em vez de texto SQL). psycopg2O módulo suporta o uso de símbolos de placeholder %s Por exemplo: cursor.execute("insert into people values (%s, %s)", (who, age)) |
4 | cursor.executemany(sql, seq_of_parameters) Executar comando SQL para todas as sequências de parâmetros ou mapeamentos encontrados na sequência SQL. |
5 | cursor.callproc(procname[, parameters]) Executar um procedimento armazenado de banco de dados com o nome dado. A sequência de parâmetros deve conter uma entrada para cada parâmetro esperado pelo procedimento. |
6 | cursor.rowcount Atributo de leitura-only, que retorna a última vez que execute execute*Número total de linhas modificadas, inseridas ou deletadas pelo módulo. |
7 | connection.commit() Este método compromete a transação atual. Se este método não for chamado, nenhuma operação feita desde a última chamada commit() será visível em outras conexões de banco de dados. |
8 | connection.rollback() Retorna todas as alterações feitas no banco de dados desde a última chamada commit(). |
9 | connection.close() Este método fecha a conexão com o banco de dados. Note que isso não chama automaticamente commit(). Se você fechar a conexão com o banco de dados sem chamar commit() primeiro, suas alterações serão perdidas! |
10 | cursor.fetchone() Este método obtém a próxima linha do conjunto de resultados da consulta, retorna uma sequência única ou None quando não houver mais dados disponíveis. |
11 | cursor.fetchmany([size=cursor.arraysize]) Obter o próximo grupo de linhas de resultados da consulta e retornar uma lista. Quando não houver mais linhas disponíveis, uma lista vazia será retornada. Este método tenta obter o número máximo de linhas indicado pelo parâmetro size. |
12 | cursor.fetchall() Obter todas as (linhas restantes) de resultados da consulta e retornar uma lista. Quando não houver mais linhas disponíveis, uma lista vazia será retornada. |
O código Python a seguir mostra como conectar a um banco de dados existente. Se o banco de dados não existir, ele será criado e, finalmente, um objeto do banco de dados será retornado.
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Banco de dados aberto com sucesso"
Aqui, você também pode fornecer o nome do banco de dados testdb, se o banco de dados for aberto com sucesso, ele apresentará a seguinte mensagem
Banco de dados aberto com sucesso
下面的Python程序将用于在先前创建的数据库-
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Banco de dados aberto com sucesso" cur = conn.cursor() cur.execute('CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''') print "Table created successfully" conn.commit() conn.close()
当执行上述程序时,它会在test.db中创建COMPANY表,并显示以下消息
Banco de dados aberto com sucesso Table created successfully
下面的Python程序演示了如何在上面示例中创建的COMPANY表中创建记录
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Banco de dados aberto com sucesso" cur = conn.cursor() cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (1, 'Paul', 32, 'California', 20000.00 "); cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (2, 'Allen', 25, 'Texas', 15000.00 "); cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (3, 'Teddy', 23, 'Norway', 20000.00 "); cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 "); conn.commit() print "Records created successfully"; conn.close()
当上述程序执行时,将在COMPANY表中创建给定的记录,并显示以下两行
Banco de dados aberto com sucesso Records created successfully
下面的Python程序展示了如何从上面示例中创建的COMPANY表中获取和显示记录
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Banco de dados aberto com sucesso" cur = conn.cursor() cur.execute("SELECT id, name, address, salary FROM COMPANY") rows = cur.fetchall() for row in rows: print "ID = ", row[0] print "NAME = ", row[1] print "ADDRESS = ", row[2] print "SALARY = ", row[3], print "Operação concluída com sucesso"; conn.close()
Quando o programa acima for executado, serão gerados os seguintes resultados
Banco de dados aberto com sucesso ID = 1 NAME = Paul ADDRESS = California SALARY = 20000.0 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000.0 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000.0 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000.0 Operação concluída com sucesso
下面的 Python 代码展示了如何使用 UPDATE 语句更新任何记录,然后从 COMPANY 表-获取并显示更新的记录
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Banco de dados aberto com sucesso" cur = conn.cursor() cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1); conn.commit() print "Total number of rows updated:", cur.rowcount cur.execute("SELECT id, name, address, salary FROM COMPANY") rows = cur.fetchall() for row in rows: print "ID = ", row[0] print "NAME = ", row[1] print "ADDRESS = ", row[2] print "SALARY = ", row[3], print "Operação concluída com sucesso"; conn.close()
Quando o programa acima for executado, serão gerados os seguintes resultados
Banco de dados aberto com sucesso Total number of rows updated: 1 ID = 1 NAME = Paul ADDRESS = California SALARY = 25000.0 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000.0 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000.0 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000.0 Operação concluída com sucesso
O seguinte código Python mostra como usar a cláusula DELETE para excluir qualquer registro e, em seguida, obter e exibir os registros restantes da nossa tabela COMPANY
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Banco de dados aberto com sucesso" cur = conn.cursor() cur.execute("DELETE FROM COMPANY WHERE ID=")2; conn.commit() print "Número total de linhas deletadas :", cur.rowcount cur.execute("SELECT id, name, address, salary FROM COMPANY") rows = cur.fetchall() for row in rows: print "ID = ", row[0] print "NAME = ", row[1] print "ADDRESS = ", row[2] print "SALARY = ", row[3], print "Operação concluída com sucesso"; conn.close()
Quando o programa acima for executado, serão gerados os seguintes resultados
Banco de dados aberto com sucesso Número total de linhas deletadas : 1 ID = 1 NAME = Paul ADDRESS = California SALARY = 20000.0 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000.0 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000.0 Operação concluída com sucesso