Tutoriel classi...SE CONNECTER
Tutoriel classique SQLite
auteur:php.cn  temps de mise à jour:2022-04-13 17:05:02

SQLite-Python


Installer

SQLite3 peut être intégré à Python à l'aide du module sqlite3. Le module sqlite3 a été écrit par Gerhard Haring. Il fournit une interface SQL compatible avec la spécification DB-API 2.0 décrite dans PEP 249. Vous n'avez pas besoin d'installer ce module séparément car les versions Python 2.5.x et supérieures sont fournies avec ce module par défaut.

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

API du module SQLite3 Python

Les programmes suivants sont des programmes de module SQLite3 importants qui peuvent répondre à vos besoins d'utilisation des bases de données SQLite dans les programmes Python. Si vous avez besoin de plus de détails, consultez la documentation officielle du module Python sqlite3.

Numéro de sérieAPI et description
1sqlite3. connect (base de données [, timeout, autres arguments facultatifs])

Cette API ouvre un lien vers la base de données de fichiers de base de données SQLite. Vous pouvez utiliser ":memory:" pour ouvrir une connexion à la base de données dans la RAM plutôt que sur le disque. Si la base de données est ouverte avec succès, un objet de connexion est renvoyé.

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

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

2connection.cursor([cursorClass])

Cette routine crée un curseur , sera utilisé dans la programmation de bases de données Python. Cette méthode accepte un seul paramètre facultatif CursorClass. Si ce paramètre est fourni, il doit s'agir d'une classe de curseur personnalisée qui étend sqlite3.Cursor.

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

Cette routine exécute un SQL déclaration. L'instruction SQL peut être paramétrée (c'est-à-dire en utilisant des espaces réservés au lieu du texte SQL). Le module sqlite3 prend en charge deux types d'espaces réservés : les points d'interrogation et les espaces réservés nommés (styles nommés).

Par exemple : curseur.execute("insérer dans les valeurs des personnes (?, ?)", (qui, âge))

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

Cette routine est un raccourci vers la méthode ci-dessus fournie par l'objet curseur, qui est exécutée en appelant le curseur (curseur) crée un objet curseur intermédiaire, puis appelle la méthode d'exécution du curseur avec les paramètres donnés.

5cursor.executemany(sql, seq_of_parameters)

Cette routine mappe tous les paramètres ou mappages dans seq_of_parameters Exécuter un Commande SQL.

6connection.executemany(sql[, settings])

Cette routine est un appel au méthode du curseur pour créer un raccourci vers l'objet curseur intermédiaire, puis appeler la méthode executemany du curseur avec les paramètres donnés.

7cursor.executescript(sql_script)

Une fois le script reçu, cette routine s'exécutera Plusieurs instructions SQL. Il exécute d'abord l'instruction COMMIT, puis exécute le script SQL transmis en paramètre. Toutes les instructions SQL doivent être séparées par des points-virgules (;).

8connection.executescript(sql_script)

Cette routine est un curseur d'appel) la méthode crée un raccourci vers l'objet curseur intermédiaire, puis appelle la méthode d'exécution du curseur avec les paramètres donnés.

9connection.total_changes()

Cette routine renvoie les valeurs qui ont été modifiées depuis l'ouverture de la connexion à la base de données, le nombre total de lignes de base de données insérées ou supprimées.

10connection.commit()

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

11connection.rollback()

Cette méthode revient en arrière depuis le dernier appel à commit( ) modifications apportées à la base de données depuis.

12connection.close()

Cette méthode ferme la connexion à la base de données. Notez que cela n'appelle pas automatiquement commit(). Si vous fermez la connexion à la base de données sans appeler la méthode commit() auparavant, toutes les modifications que vous avez apportées seront perdues !

13cursor.fetchone()

Cette méthode obtient la ligne suivante dans l'ensemble de résultats de la requête et renvoie Une seule séquence Lorsqu'aucune donnée n'est disponible, Aucune n'est renvoyée.

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

Cette méthode obtient le requête Groupe de lignes suivant dans le jeu de résultats, renvoyé sous forme de liste. Lorsqu'aucune ligne n'est disponible, une liste vide est renvoyée. Cette méthode tente d'obtenir autant de lignes que spécifié par le paramètre size.

15cursor.fetchall()

Cette routine récupère tout (le reste) dans la requête ensemble de résultats de lignes, renvoyant une liste. Lorsqu'aucune ligne n'est disponible, une liste vide est renvoyée.

Connexion à une 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 un objet base de données sera renvoyé.

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')

print "Opened database successfully";

Ici, vous pouvez également copier le nom de la base de données vers un nom spécifique :memory: qui créera une base de données dans la RAM. Maintenant, exécutons le programme ci-dessus pour créer notre base de données test.db dans le répertoire courant. Vous pouvez modifier le chemin selon vos besoins. Enregistrez le code ci-dessus dans le fichier sqlite.py et exécutez-le comme indiqué ci-dessous. Si la base de données est créée avec succès, un message comme celui ci-dessous s'affichera :

$chmod +x sqlite.py
$./sqlite.py
Open database successfully

Création de table

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.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.close()

Lorsque le programme ci-dessus est exécuté, il crée la table COMPANY dans test.db et affiche le message ci-dessous :

Opened database successfully
Table created successfully

Opération INSERT

ci-dessous Le programme Python montre comment créer un enregistrement dans la table COMPANY créée ci-dessus :

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

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

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

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

conn.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()

Lorsque le programme ci-dessus est exécuté, il crée l'enregistrement donné dans la table COMPANY et affiche les deux lignes suivantes :

Opened database successfully
Records created successfully

Opération SELECT

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

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 "Operation done successfully";
conn.close()

Lorsque le programme ci-dessus est exécuté, il produit ce qui suit résultats :

Opened database successfully
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

Operation done successfully

Opération UPDATE

Le code Python suivant montre comment mettre à jour n'importe quel enregistrement à l'aide de l'instruction UPDATE, puis obtenir et afficher l'enregistrement mis à jour à partir de la table COMPANY :

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
conn.commit
print "Total number of rows updated :", 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 "Operation done successfully";
conn.close()

L'exécution du programme ci-dessus Lorsque 🎜>

Opened database successfully
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

Operation done successfully

Lorsque le programme ci-dessus est exécuté, il produira les résultats suivants :

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.execute("DELETE from COMPANY where ID=2;")
conn.commit
print "Total number of rows deleted :", 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 "Operation done successfully";
conn.close()