¿Cómo ejecutar muchas declaraciones de SQLite en Python?

En SQLite usando el método executescript(), podemos ejecutar varias declaraciones/consultas de SQL a la vez. El método de ejecución básico() nos permite aceptar solo una consulta a la vez, por lo que cuando necesita ejecutar varias consultas, debemos organizarlas como un script y pasar ese script al método de ejecución().

executescript() puede ejecutar series de varias consultas SQL/SQLite seguidas. Mientras se ejecuta la operación executescript(), los otros subprocesos/operaciones no pueden acceder a la base de datos hasta que executescript() haya terminado de ejecutar todas sus consultas. En caso de que necesitemos proporcionar algún parámetro de tiempo de ejecución para cada una de las consultas en executescript(), no podemos agregar un parámetro externo en tiempo de ejecución ya que el método executescript() no acepta ningún parámetro para la consulta en tiempo de ejecución, por lo que debe proporcionar un conjunto de consultas estáticas como un script. En la ejecución del método executescript(), primero emite una instrucción COMMIT y luego ejecuta el script SQL/SQLite.

Sintaxis:

cursor_obj.executescript(""" 
    SQLite Statement/Query . . . 1
    SQLite Statement/Query . . . 2
    SQLite Statement/Query . . . 3
    .
    .
    .
    SQLite Statement/Query . . . n 
""")

El siguiente código muestra cómo ejecutar varias declaraciones/consultas de SQLite en python:

Python3

import sqlite3 
  
  
# make the database connection and cursor object
connection = sqlite3.connect("CollegeData.db")
cursor = connection.cursor()
  
# create a set of queries in executescript()
# below set of queries will create and insert
# data into table
cursor.executescript(""" 
    CREATE TABLE department( deptId INTEGER,
    deptName VARCHAR(20), deptScore INTEGER); 
  
    INSERT INTO department VALUES ( 01,'IT', 850 );
    INSERT INTO department VALUES ( 02,'COMP', 840 );
    INSERT INTO department VALUES ( 03,'CIVIL', 500 );
    INSERT INTO department VALUES ( 04,'E&TC', 650 );
""")
  
# fetch the table data
print("Table data :")
cursor.execute("SELECT * FROM department") 
print(cursor.fetchall())
  
# below set of queries will update the data
# of in the table
cursor.executescript("""
    UPDATE department set deptScore = 900 where deptId = 01;
    UPDATE department set deptScore = 890 where deptId = 02;
    UPDATE department set deptScore = 660 where deptId = 03;
    UPDATE department set deptScore = 790 where deptId = 04;
""")
  
# fetch the table data after updation
print("Table data after updation :")
cursor.execute("SELECT * FROM department") 
print(cursor.fetchall())
  
# commit the changes and close the database
# connection 
connection.commit() 
connection.close()

Producción

Datos de la tabla:

[(1, ‘IT’, 850), (2, ‘COMP’, 840), (3, ‘CIVIL’, 500), (4, ‘E&TC’, 650)]

Datos de la tabla después de la actualización:

[(1, ‘IT’, 900), (2, ‘COMP’, 890), (3, ‘CIVIL’, 660), (4, ‘E&TC’, 790)]

El código anterior ejecuta varias declaraciones de SQLite a la vez. El primer método executescript() del código crea e inserta los datos en una tabla en una instancia. Y luego el segundo método executescript() actualiza todos los registros en una instancia. De esta forma, se puede ejecutar un conjunto de muchas consultas en SQLite usando executescript().

Publicación traducida automáticamente

Artículo escrito por rohitpathak9665 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *