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