English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PostgreSQL peut utiliser psycopg2module s'intègre avec Python. psycopg2est un adaptateur de base de données PostgreSQL pour le langage de programmation Python. psycopg2écrit dans le but d'être très petit, rapide et stable comme un roc. Vous n'avez pas besoin d'installer ce module séparément, car par défaut, il est fourni avec Python2.5.x version fournie ensemble.
Si ce n'est pas installé sur votre machine, vous pouvez l'installer en utilisant la commande yum de la manière suivante
$yum install python-psycopg2
Pour utiliser psycopg2doit d'abord créer un objet Connection représentant la base de données, puis il peut choisir de créer un objet curseur, ce qui aidera à exécuter toutes les instructions SQL.
Module psycopg2 ci-dessous sont les API importantes psycopg2Documentation officielle du module. Le module, peut répondre à vos besoins pour utiliser la base de données PostgreSQL dans votre programme Python. Si vous cherchez des applications plus complexes, vous pouvez consulter Python psycopg
N° | API & Description |
---|---|
1 | psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432); Cette API ouvre une connexion à la base de données PostgreSQL. Si la base de données est ouverte avec succès, elle retourne un objet de connexion. |
2 | connection.cursor() Créer un curseur, ce curseur sera utilisé pendant l'utilisation de Python pour la programmation de base de données. |
3 | cursor.execute(sql [, optional 参数]) Exécuter une instruction SQL. Une instruction SQL peut être paramétrée (c'est-à-dire avec des placeholders au lieu du texte SQL). psycopg2Le module prend en charge l'utilisation des symboles %s comme placeholders Par exemple : cursor.execute("insert into people values (%s, %s)", (who, age)) |
4 | cursor.executemany(sql, seq_of_parameters) Exécute la commande SQL pour toutes les séquences ou mappings de paramètres trouvés dans la séquence SQL. |
5 | cursor.callproc(procname[, parameters]) Exécute le procédé de base de données enregistré ayant le nom donné. La séquence des paramètres doit inclure une entrée pour chaque paramètre attendu par le procédé. |
6 | cursor.rowcount Propriété en lecture seule, qui retourne le dernier execute exécuté*Nombre total de lignes modifiées, insérées ou supprimées par la requête. |
7 | connection.commit() Cette méthode soumet la transaction courante. Si cette méthode n'est pas appelée, toutes les opérations effectuées depuis le dernier appel à commit() ne seront pas visibles depuis d'autres connexions à la base de données. |
8 | connection.rollback() Retourne tout changement effectué sur la base de données depuis le dernier appel à commit(). |
9 | connection.close() Cette méthode ferme la connexion à la base de données. Notez que cela ne déclenche pas automatiquement commit(). Si vous fermez simplement la connexion à la base de données sans appeler commit() auparavant, vos modifications seront perdues ! |
10 | cursor.fetchone() Cette méthode récupère la ligne suivante du jeu de résultats de la requête, retourne une séquence unique ou None lorsque plus de données ne sont pas disponibles. |
11 | cursor.fetchmany([size=cursor.arraysize]) Obtenir le groupe suivant de lignes du résultat de la requête et renvoyer une liste. Une liste vide est retournée lorsque plus de lignes ne sont pas disponibles. Cette méthode essaie de récupérer le plus grand nombre de lignes possible indiqué par le paramètre size. |
12 | cursor.fetchall() Obtenir toutes les lignes (restantes) du résultat de la requête et renvoyer une liste. Une liste vide est retournée lorsque aucune ligne n'est disponible. |
Le code Python suivant montre comment se connecter à une base de données existante. Si la base de données n'existe pas, elle sera créée et finalement, un objet de base de données sera retourné.
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database="testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Base de données ouverte avec succès"
Ici, vous pouvez également fournir le nom de la base de données testdb, si la base de données est ouverte avec succès, alors elle donnera le message suivant
Ouverture de la base de données réussie
下面的Python程序将用于在先前创建的数据库-
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Base de données ouverte avec succès" 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表,并显示以下消息
Base de données ouverte avec succès 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 "Base de données ouverte avec succès" 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表中创建给定的记录,并显示以下两行
Base de données ouverte avec succès 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 "Base de données ouverte avec succès" 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 "Opération effectuée avec succès"; conn.close()
Lorsque le programme ci-dessus est exécuté, les résultats suivants sont obtenus
Base de données ouverte avec succès 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 Opération effectuée avec succès
下面的 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 "Base de données ouverte avec succès" 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 "Opération effectuée avec succès"; conn.close()
Lorsque le programme ci-dessus est exécuté, les résultats suivants sont obtenus
Base de données ouverte avec succès 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 Opération effectuée avec succès
Le code Python suivant montre comment utiliser une instruction DELETE pour supprimer n'importe quel enregistrement, puis obtenir et afficher les enregistrements restants de notre table COMPANY
#!/usr/bin/python import psycopg2 conn = psycopg2.connect(database = "testdb", user = "postgres", password = "pass123", host = "127.0.0.1", port = "5432); print "Base de données ouverte avec succès" cur = conn.cursor() cur.execute("DELETE FROM COMPANY WHERE ID=")2; conn.commit() print "Nombre total de lignes supprimées : ", 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 "Opération effectuée avec succès"; conn.close()
Lorsque le programme ci-dessus est exécuté, les résultats suivants sont obtenus
Base de données ouverte avec succès Nombre total de lignes supprimées : 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 Opération effectuée avec succès