Python SQLite – Cláusula WHERE

La cláusula Where se usa para hacer que nuestros resultados de búsqueda sean más específicos, usando la cláusula Where en SQL/SQLite podemos continuar y especificar condiciones específicas que deben cumplirse al recuperar datos de la base de datos.

Si queremos recuperar, actualizar o eliminar un conjunto particular de datos, podemos usar la cláusula where. Si no tenemos valores de coincidencia de condiciones en las tablas de su base de datos, probablemente no obtengamos nada.

Cláusula WHERE en SQL:

Sintaxis:  

SELECCIONE columna_1, columna_2,…,columna_N

DESDE table_name

DONDE [condición_de_búsqueda]

Aquí, en esta [condición_de_búsqueda] puede usar operadores lógicos o de comparación para especificar condiciones.

Por ejemplo: = , > , < , != , ME GUSTA, NO, etc. 

Cláusula WHERE en SQLite usando Python:

En Python SQLite Cursor objeto/clase que contiene todos los métodos para ejecutar consultas SQL para realizar operaciones, etc. El Cursor es el método de clase de conexión que devuelve un objeto de cursor.

Por lo tanto, para ejecutar comandos de SQLite en python, necesitamos hacer 3 cosas básicas:

  • Establezca una conexión con la base de datos usando el método connect().
  • Cree un objeto de cursor utilizando el método cursor().
  • Ahora las consultas/declaraciones de SQLite se pueden ejecutar usando el método execute() de la clase Cursor.

Crearemos una base de datos para administrar datos sobre los estudiantes. Estaremos almacenando información sobre cada estudiante, y luego también crearemos una forma de recuperar, actualizar y eliminar datos de estudiantes usando la cláusula where. 

Vamos a crear una base de datos (geekforgeeks_student.db) y una tabla (STUDENT).

Python3

# import the sqlite3 module
import sqlite3
  
# Define connection and cursor
connection = sqlite3.connect('geekforgeeks_student.db')
cursor = connection.cursor()
  
# create table
cursor.execute("DROP TABLE IF EXISTS STUDENT")
createTable = '''CREATE TABLE STUDENT(
   Student_ID int, First_Name VARCHAR(100),
   Last_Name VARCHAR(100), Age int,
   Department VARCHAR(100)
)'''
cursor.execute(createTable)
  
# check the database creation data
if cursor:
    print("Database Created Successfully !")
else:
    print("Database Creation Failed !")
  
# Commit the changes in database and Close the connection
connection.commit()
connection.close()

Producción:

Database Created Successfully!

El código anterior creará el archivo «geekforgeeks_student.db» localmente.

Para ver el contenido de «geekforgeeks_student.db», podemos usar esto y cargar nuestro archivo .db como se muestra a continuación:

En la imagen de arriba, podemos ver que la tabla y el esquema de la tabla se han creado en la base de datos.

Ahora insertaremos datos en la tabla ESTUDIANTE.

Python3

# import the sqlite3 module
import sqlite3
  
# Define connection and cursor
connection = sqlite3.connect('geekforgeeks_student.db')
cursor = connection.cursor()
  
# Insert data into the table
cursor.execute("INSERT INTO STUDENT VALUES (1,'Rohit', 'Pathak', 21, 'IT')")
cursor.execute("INSERT INTO STUDENT VALUES (2,'Nitin', 'Biradar', 21, 'IT')")
cursor.execute("INSERT INTO STUDENT VALUES (3,'Virat', 'Kohli', 30, 'CIVIL')")
cursor.execute("INSERT INTO STUDENT VALUES (4,'Rohit', 'Sharma', 32, 'COMP')")
  
# printing the cursor data
if cursor:
    print("Data Inserted !")
else:
    print("Data Insertion Failed !")
  
# Commit the changes in database and Close the connection
connection.commit()
connection.close()

Producción:

Database Inserted!

El código anterior insertará los datos en la tabla ESTUDIANTE

Los siguientes códigos muestran el uso de la cláusula Where

Ejemplo 1: Para recuperar los datos de los estudiantes cuyo Departamento es TI 

Python3

import sqlite3
  
connection = sqlite3.connect('geekforgeeks_student.db')
cursor = connection.cursor()
  
# WHERE CLAUSE TO RETRIEVE DATA
cursor.execute("SELECT * FROM STUDENT WHERE Department = 'IT'")
  
# printing the cursor data
print(cursor.fetchall())
  
connection.commit()
connection.close()

Producción:

[(1, ‘Rohit’, ‘Pathak’, 21, ‘IT’), (2, ‘Nitin’, ‘Biradar’, 21, ‘IT’)]

Tenemos 2 registros en la tabla ESTUDIANTE cuyo Departamento es TI.

Ejemplo 2: Para recuperar los datos de los estudiantes cuyo Nombre comienza con ‘R’. También podemos usar caracteres comodín con la cláusula where como se muestra a continuación

Python3

import sqlite3
  
connection = sqlite3.connect('geekforgeeks_student.db')
cursor = connection.cursor()
  
# WHERE CLAUSE TO RETRIEVE DATA
cursor.execute("SELECT * from STUDENT WHERE First_name Like'R%'")
  
# printing the cursor data
print(cursor.fetchall())
  
connection.commit()
connection.close()

Producción:

[(1, ‘Rohit’, ‘Pathak’, 21, ‘IT’), (4, ‘Rohit’, ‘Sharma’, 32, ‘COMP’)]

Tenemos 2 registros en la tabla ESTUDIANTE cuyo Nombre comienza con la letra ‘R’.

Ejemplo 3: Para actualizar los datos de un estudiante cuyo ID de estudiante es 4 

Python3

import sqlite3
  
connection = sqlite3.connect('geekforgeeks_student.db')
cursor = connection.cursor()
  
# WHERE CLAUSE TO UPDATE DATA
cursor.execute("UPDATE STUDENT SET Department ='E&TC' WHERE Student_ID = 2")
  
# printing the cursor data
cursor.execute("SELECT * from STUDENT")
print(cursor.fetchall())
  
connection.commit()
connection.close()

Producción:

[(1, ‘Rohit’, ‘Pathak’, 21, ‘IT’), (2, ‘Nitin’, ‘Biradar’, 21, ‘E&TC’), 

(3, ‘Virat’, ‘Kohli’, 30, ‘CIVIL’), (4, ‘Rohit’, ‘Sharma’, 32, ‘COMP’)]

Comprobar el contenido de la base de datos 

Departamento se actualiza para ID de estudiante 2.

Ejemplo 4: Para eliminar los datos de un estudiante cuya ID de edad es 30

Python3

import sqlite3
  
connection = sqlite3.connect('geekforgeeks_student.db')
cursor = connection.cursor()
  
# WHERE CLAUSE TO DELETE DATA
cursor.execute("DELETE from STUDENT WHERE Age = 32")
  
#printing the cursor data
cursor.execute("SELECT * from STUDENT")
print(cursor.fetchall())
  
connection.commit()
connection.close()

Producción:

[(1, ‘Rohit’, ‘Pathak’, 21, ‘IT’), (2, ‘Nitin’, ‘Biradar’, 21, ‘E&TC’), (3, ‘Virat’, ‘Kohli’, 30, ‘CIVIL’)]

Comprobar el contenido de la base de datos

Se han eliminado los datos del estudiante cuya edad es 32 años.

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 *