Principales consultas SQL en Python que todo desarrollador de Python debe saber

Publicado: 2021-01-29

SQL significa lenguaje de consulta estructurada que ayuda a administrar, manipular y almacenar bases de datos relacionales. Una base de datos relacional comprende colecciones de tablas que están correlacionadas de una forma u otra. Las tablas múltiples nos permiten segregar diferentes entidades de la información de destino y evitar que cientos de columnas se agrupen en una tabla, lo que podría dificultar la administración de la base de datos.

Es un lenguaje de consulta y no la base de datos en sí. Estas consultas se pueden realizar en cualquier sistema de administración de bases de datos relacionales como Oracle, Microsoft SQL Server, pero existe un enfoque pitónico para crear y ejecutar consultas SQL.

Tabla de contenido

SQLite3

Esta es la biblioteca incorporada de Python que nos permite crear una base de datos liviana sin la necesidad de ejecutar un modelo cliente-servidor real. Puede ser utilizado internamente por las aplicaciones para almacenar datos y ejecutar comandos SQL. El paquete es fácil de usar y permite replicar el mismo esquema en cualquier base de datos basada en producción como Postgresql. Veamos cómo configurar la base de datos.

  • Declaración de importación estándar:

importar sqlite3 como sq

La biblioteca se importa como un alias "sq".

  • Ahora, necesitamos crear una conexión a la base de datos. El objeto de conexión servirá para este propósito:

conexión = sq.connect(“ejemplo.db”)

Si este archivo no se crea antes, se creará tan pronto como se ejecute este comando.

  • Para acceder y obtener información de la base de datos, se debe crear un objeto de cursor.

cursor = conexión.cursor()

Ahora que se ha realizado la configuración básica, podemos insertar los datos en la base de datos creando las tablas respectivas, pero antes de eso, revisemos algunos comandos SQL.

Comandos básicos en SQL

SQL es excelente en términos de comandos legibles en inglés. Por lo general, se escriben en mayúsculas y no hay restricciones al respecto. Esto generalmente se practica para que las palabras clave de consulta se resalten y se distingan de los atributos de la tabla. Pero como ahora tenemos potentes IDE que los resaltan en un color diferente, cualquier método funcionaría.

1. Crear tabla

Esto le permite crear los objetos que contienen datos, tablas en su base de datos. Una base de datos puede tener muchas tablas con una o varias relaciones. Las tablas tienen encabezados para cada columna que describe el valor que contiene. Al crear la tabla, debe especificar el nombre de la columna, el tipo de datos que contendrá y el tamaño. Puede agregar otros atributos, como si la columna es una clave principal, puede tener valores nulos, etc.

Una tabla básica se puede crear como:

CREAR TABLA empresa_datos (

Yo dint,

nombre varchar (24),

no_of_employee int

);

2. SELECCIONAR y DESDE

Como sugiere el nombre, se utiliza para seleccionar y obtener los datos de las tablas. Es el paso más importante que le permitiría echar un vistazo a los datos. Es similar a la función de cabeza o cola de Pandas.

Una consulta simple usando estos comandos se vería así:

SELECCIONE <nombre(s)_de_columna>

DESDE <nombre_tabla>;

Para obtener todas las columnas de la tabla, puede colocar la estrella (*) en lugar de todos los nombres de las columnas. La palabra clave LIMIT ayuda a definir el número máximo de filas. Considere esta consulta:

SELECCIONE *

DESDE tabla_ejemplo

LÍMITE 5;

3. Dónde

La cláusula where se utiliza para especificar las condiciones adicionales sobre la consulta. Puede incluir el rango de columnas, cualquier comparación específica o negaciones.

Por ejemplo:

SELECCIONE nombre_cliente, nombre_empresa

DESDE empresa_datos

WHERE company_name = 'upGrad';

4. Insertar

Esta cláusula se utiliza para agregar los valores a las tablas de datos. Los valores se insertan en el mismo orden en que se agregan los nombres de columna a la tabla en el comando de creación de tabla. Se pueden insertar varias filas o una a la vez.

Por ejemplo, la siguiente consulta inserta 3 registros en una tabla:

INSERTAR EN company_data (id, nombre, no_of_employees)

VALORES

(1, 'empresaz_A', 100),

(2, 'empresa_B', 200),

(3, 'empresa_C', 500);

Ejecutar a través de Python

Ahora que conoce los comandos, es hora de ejecutarlos en el código. Hasta ahora estamos conectados a la base de datos y creamos un objeto cursor. Este objeto ayudará a ejecutar los comandos en la base de datos:

cursor.execute(''' <CONSULTA> ''')

La consulta se pasa como una cadena y entre comillas triples. Este cambio no se reflejará en la base de datos hasta que confirme este cambio. Cerrar la conexión a la base de datos al final asegura que no se realizarán nuevas ejecuciones después de este punto.

Mira este sencillo código:

importar sqlite3 como sq

conexión = sq.connect(“ejemplo.db”)

cursor = conexión.cursor()

cursor.ejecutar(”'

CREAR TABLA tabla1 (

Yo dint,

nombre varchar (24)

)

”')

cursor.ejecutar(”'

INSERTAR EN table1 (id, nombre)

VALORES

(1, 'actualizar'),

(2, 'blogs')

”')

cursor.ejecutar(”'

SELECCIONE *

DESDE la tabla1

”')

conexión.commit()

conexión.cerrar()

Consejos importantes

1. Como las consultas se pasan como cadenas, modificarlas usando f-string puede parecer una buena opción para hacer que el programa sea dinámico y controlado por el usuario, pero puede causar algunos problemas de seguridad, como ataques de inyección SQL. Para evitar esto, use el marcador de posición "?" donde quiera reemplazar algunos valores en la consulta. Por ejemplo:

cursor.execute('“SELECCIONAR ? DE ?''', nombre_col, nombre_tabla)

Puede pedirle al usuario que proporcione el nombre de la columna y ese valor se reemplazará aquí.

2. Use funciones como fetchone() y fetchall() para iterar sobre los resultados. Fetchone devuelve la siguiente fila de la consulta y fetchall devuelve todas las filas recuperadas por el cursor. Los resultados se devuelven como tupla para que no puedan ser modificados por funciones externas en el programa.

3. Si desea agregar valores masivos a la base de datos, puede usar la función executemany() y pasar la lista de tuplas que contienen los valores que se agregarán. Por ejemplo:

to_add = [(1, 'hola') , (2, 'Mundo')]

cursor.executemany('INSERTAR EN LOS VALORES de la tabla (?, ?)', to_add)

Lea también: Ideas y temas de proyectos de Python

Aprenda cursos de ciencia de datos en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

SQL es el lenguaje de base de datos preferido y fácil de entender. Se recomienda a la mayoría de los principiantes en ciencia de datos que practiquen SQL, ya que mejora el proceso de recuperación de datos y da una idea de cómo se lleva a cabo la ingeniería de datos. Es el lenguaje estándar para cualquier manipulación de bases de datos y ofrece un acceso más rápido a la base de datos.

Si tiene curiosidad por aprender sobre ciencia de datos, consulte el Diploma PG en ciencia de datos de IIIT-B y upGrad, creado para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos, tutoría con expertos de la industria, 1- on-1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.

¿Qué sabes sobre las restricciones en SQL?

Las restricciones determinan qué tipo de datos se ingresarán en la tabla. Se especifican durante la creación de la tabla y se pueden aplicar a un solo campo o a varios campos. Las restricciones en SQL son:
NOT NULL: evita que se ingrese un valor NULL en un campo.
CHECK- Comprueba si todos los valores en un campo cumplen la condición dada.
DEFAULT: asigna un valor predeterminado a un campo automáticamente si no se ha ingresado ningún valor.
ÚNICO: permite que solo se ingresen valores únicos en un campo.
ÍNDICE: indexa un campo que proporciona una recuperación más rápida de los registros.
CLAVE PRINCIPAL: identifica de forma única cada registro en una tabla.
FOREIGN KEY- Acciones de restricción que podrían dañar los enlaces entre tablas.

¿Explicar un índice y sus tipos?

Se puede hacer referencia a un índice o un índice de base de datos como una tabla de búsqueda especial que hace que la operación de recuperación de datos sea mucho más rápida. Consume más memoria y escrituras adicionales para buscar los datos más rápido. Un índice puede ser de 4 tipos:
1. Índice único
2. Índice no único
3. Índice agrupado

¿Qué es una relación en SQL y cuáles son sus tipos?

Una relación entre múltiples entidades o múltiples objetos tangibles e intangibles que tienen algo que ver entre sí se conoce como relación. Hay 4 tipos de relaciones en SQL:
1. Uno a uno
2. Uno a muchos/muchos a uno
3. Muchos a muchos
4. Relaciones autorreferenciales.