English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python SQLite

installation

SQLite3 peut être utilisé sqlite3 module avec Python. sqlite3 Le module a été écrit par Gerhard Haring. Il fournit une intégration avec PEP 249 DB décrit par-API 2.0 compatible avec les interfaces SQL normes. Vous n'avez pas besoin d'installer ce module séparément, car Python 2.5.x et versions supérieures sont livrées avec le module par défaut.

Pour utiliser sqlite3 Le module sqlite, vous devez d'abord créer un objet de connexion représentant la base de données, puis vous pouvez créer optionnellement un objet curseur, ce qui vous aidera à exécuter toutes les instructions SQL.

module sqlite3 module sqlite

Voici les API importantes sqlite3 Le programme de module peut répondre à vos besoins d'utilisation de la base de données SQLite dans les programmes Python. Si vous souhaitez en savoir plus sur les détails, veuillez consulter Python sqlite3 Documentation officielle du module.

NuméroAPI & Description
1sqlite3.connect(database [,timeout ,autres arguments optionnels])

Cette API ouvre un lien vers le fichier de base de données SQLite database. Vous pouvez utiliser ":memory:" pour ouvrir une connexion à la base de données dans la RAM au lieu de l'ouvrir sur le disque. Si la base de données est ouverte avec succès, un objet de connexion est retourné.

Lorsqu'une base de données est accédée par plusieurs connexions et qu'une d'elles modifie la base de données, le base de données SQLite est verrouillé jusqu'à ce que la transaction soit soumise. Le paramètre timeout indique la durée pendant laquelle la connexion attend le verrouillage, jusqu'à ce qu'une exception se produise ou que la connexion soit coupée. Le paramètre timeout est par défaut 5.0 (5 secondes).

Si le nom de la base de données fourni filename n'existe pas, cette appelle créera une base de données. Si vous ne souhaitez pas créer une base de données dans le répertoire courant, vous pouvez spécifier un nom de fichier avec un chemin, ce qui vous permettra de créer une base de données n'importe où.

2connection.cursor([cursorClass])

Cette procédure crée un cursor,qui sera utilisée dans la programmation de base de données en Python. Cette méthode accepte un seul paramètre optionnel cursorClass. Si ce paramètre est fourni, il doit être une extension de sqlite3.Cursor est une classe de curseur personnalisée. La classe curseur. Cette méthode accepte un paramètre optionnel unique cursorClass. Si ce paramètre est fourni, il doit être une extension de sqlite

3cursor.execute(sql [, paramètres optionnels])

Cette procédure exécute une instruction SQL. Cette instruction SQL peut être paramétrée (c'est-à-dire utiliser des placeholders à la place du texte SQL). sqlite3 Le module prend en charge deux types de placeholders : les points d'interrogation et les placeholders nommés (style nommé).

Par exemple : cursor.execute("insert into people values (?, ?)", (who, age))

4connection.execute(sql [, paramètres optionnels])

Cette procédure est un raccourci pour la méthode exécutée précédemment par l'objet curseur (cursor), qui crée un curseur intermédiaire en appelant la méthode du curseur (cursor) et appelle ensuite la méthode execute avec les paramètres donnés.

5cursor.executemany(sql, seq_of_parameters)

Cette procédure exécute une commande SQL pour tous les paramètres ou les mappings dans seq_of_parameters.

6connection.executemany(sql[, parameters])

Cette procédure est un raccourci pour un curseur intermédiaire créé par la méthode curseur (cursor), puis appelé avec les paramètres fournis pour la méthode executemany du curseur.

7cursor.executescript(sql_script)

Cette procédure exécute plusieurs instructions SQL dès qu'elle reçoit un script. Elle exécute d'abord l'instruction COMMIT, puis exécute le script SQL passé en paramètre. Toutes les instructions SQL doivent être séparées par des points-virgules ;.

8connection.executescript(sql_script)

Cette procédure est un raccourci pour un curseur intermédiaire créé par la méthode curseur (cursor), puis appelé avec les paramètres fournis pour la méthode executescript du curseur.

9connection.total_changes()

Cette procédure retourne le nombre total de lignes modifiées, insérées ou supprimées depuis l'ouverture de la connexion à la base de données.

10connection.commit()

Cette méthode soumet la transaction en cours. Si vous n'appelez pas cette méthode, toutes les actions que vous avez faites depuis votre dernier appel à commit() ne seront pas visibles pour d'autres connexions à la base de données.

11connection.rollback()

Cette méthode annule les modifications apportées à la base de données depuis le dernier appel à commit().

12connection.close()

Cette méthode ferme la connexion à la base de données. Veuillez noter que cela ne déclenche pas automatiquement un appel à commit(). Si vous n'avez pas appelé la méthode commit() auparavant, la fermeture de la connexion à la base de données supprimera toutes les modifications que vous avez faites !

13cursor.fetchone()

Cette méthode récupère la prochaine ligne du jeu de résultats de la requête, et retourne une séquence unique. Lorsqu'il n'y a plus de données disponibles, None est retourné.

14cursor.fetchmany([size=cursor.arraysize])

Cette méthode récupère le prochain groupe de lignes du jeu de résultats de la requête, et retourne une liste. Lorsqu'il n'y a plus de lignes disponibles, une liste vide est retournée. Cette méthode tente de récupérer le plus grand nombre possible de lignes spécifié par le paramètre size.

15cursor.fetchall()

Cette procédure récupère toutes les lignes (restantes) du jeu de résultats de la requête, et retourne une liste. Lorsqu'il n'y a plus de lignes disponibles, une liste vide est retournée.

Connexion à la base de données

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 en fin de compte, un objet de base de données sera retourné.

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "La base de données a été ouverte avec succès"

Vous pouvez également copier le nom de la base de données en un nom spécifique ici :memory:De cette manière, une base de données sera créée en RAM. Maintenant, exécutons le programme ci-dessus pour créer notre base de données dans le répertoire actuel test.dbVous pouvez modifier le chemin selon vos besoins. Enregistrer le code ci-dessus dans le fichier sqlite.py et exécuter comme suit. Si la base de données est créée avec succès, le message suivant s'affichera :

$chmod +x sqlite.py
$./sqlite.py
Ouverture de la base de données réussie

Créer une table

Le segment de code Python suivant sera utilisé pour créer une table dans la base de données créée précédemment :

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "La base de données a été ouverte avec succès"
c = conn.cursor()
c.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 créée avec succès"
conn.commit()
conn.close()

Lors de l'exécution du programme ci-dessus, il crée la table dans la base de données : test.db Créer la table COMPANY dans la base de données et afficher le message suivant :

La base de données a été ouverte avec succès
Table créée avec succès

Opération INSERT

Le programme Python suivant montre comment créer des enregistrements dans la table COMPANY créée précédemment :

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "La base de données a été ouverte avec succès"
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \

      VALUES (1, 'Paul', 32, 'California', 20000.00 )")
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \

      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \

      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )")
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \

      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )")
conn.commit()
print "Enregistrements créés avec succès"
conn.close()

Lors de l'exécution du programme ci-dessus, il crée les enregistrements spécifiés dans la table COMPANY et affiche les deux lignes suivantes :

La base de données a été ouverte avec succès
Enregistrements créés avec succès

Opération SELECT

Le programme Python suivant montre comment obtenir et afficher les enregistrements à partir de la table COMPANY créée précédemment :

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "La base de données a été ouverte avec succès"
cursor = c.execute("SELECT id, name, address, salary  from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], \n"
print "Opération effectuée avec succès"
conn.close()

Lors de l'exécution du programme ci-dessus, il génère les résultats suivants :

La base de données a été 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 UPDATE

Le code Python suivant montre comment utiliser l'instruction UPDATE pour mettre à jour un enregistrement, puis obtenir et afficher les enregistrements mis à jour de la table COMPANY :

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "La base de données a été ouverte avec succès"
c.execute("UPDATE COMPANY set SALARY =" 251)",
conn.commit()
print "Nombre total de lignes mises à jour :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], \n"
print "Opération effectuée avec succès"
conn.close()

Lors de l'exécution du programme ci-dessus, il génère les résultats suivants :

La base de données a été ouverte avec succès
Nombre total de lignes mises à jour : 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 DELETE

Le code Python suivant montre comment utiliser l'instruction DELETE pour supprimer un enregistrement, puis obtenir et afficher les enregistrements restants de la table COMPANY :

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "La base de données a été ouverte avec succès"
c.execute("DELETE from COMPANY where ID="2;
conn.commit()
print "Nombre total de lignes supprimées :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary  from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], \n"
print "Opération effectuée avec succès"
conn.close()

Lors de l'exécution du programme ci-dessus, il génère les résultats suivants :

La base de données a été ouverte avec succès
删除的行总数: 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
操作成功完成