Forum Python

Please or S’enregistrer to create posts and topics.

différence entre cursor.execute("") et cursor.executescript("")

Quelle est la différence entre cursor.execute("") et cursor.executescript("") en bases de données SQLite3. Donnez svp des exemples pour comprendre!

Bonjour ouven,

La différence principale entre cursor.execute() et cursor.executescript() dans SQLite3 réside dans la manière dont ils exécutent les instructions SQL et dans le nombre de commandes qu'ils peuvent gérer en une seule fois.

1) - cursor.execute(): est utilisé pour exécuter une seule instruction SQL à la fois. utile pour éviter les injections SQL.

Exemple d'utilisation de cursor.execute()

import sqlite3

# Connexion à la base de données
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Création de la table students
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL,
    section TEXT NOT NULL
)
''')

# Insertion d'une seule ligne de données
cursor.execute('''
INSERT INTO students (name, email, section) VALUES (?, ?, ?)
''', ('Robert', 'robert@example.com', 'Mathematics'))

# Sauvegarder les changements
conn.commit()

# Fermeture de la connexion
conn.close()

 

2) - cursor.executescript(): est utilisé pour exécuter plusieurs instructions SQL en une seule fois. Il peut contenir plusieurs commandes SQL séparées par des points-virgules (;). Pas de protection contre les injections SQL.

Exemple d'usage de cursor.executescript()

import sqlite3

# Connexion à la base de données
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Utilisation de executescript pour créer la table et insérer plusieurs lignes
cursor.executescript('''
CREATE TABLE IF NOT EXISTS students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL,
    section TEXT NOT NULL
);

INSERT INTO students (name, email, section) VALUES ('Najib', 'najib@example.com', 'Mathematics');
INSERT INTO students (name, email, section) VALUES ('Roberto', 'bob@example.com', 'Computer Science');
INSERT INTO students (name, email, section) VALUES ('Clara', 'clara@example.com', 'Physics');
''')

# Sauvegarder les changements
conn.commit()

# Fermeture de la connexion
conn.close()