Pitón

Operaciones CRUD a bases de datos SQL y NoSQL usando Python

Operaciones CRUD a bases de datos SQL y NoSQL usando Python
Hay dos tipos principales de bases de datos que se pueden usar con una aplicación: bases de datos relacionales (SQL) y bases de datos no relacionales (NoSQL). Ambos son ampliamente utilizados, pero la selección de uno depende del tipo de datos que se almacenarán. Hay cuatro operaciones básicas que se pueden realizar en bases de datos: crear, leer, actualizar y eliminar (CRUD).

Podemos interactuar con bases de datos usando cualquier lenguaje de programación, o podemos usar un programa de software que nos permita interactuar con la base de datos usando una GUI. En este artículo, analizaremos las bases de datos y le mostraremos cómo interactuar con ellas utilizando el lenguaje de programación Python.

Bases de datos relacionales (SQL)

Las bases de datos relacionales (SQL) son diferentes de las bases de datos no relacionales (NoSQL) en términos de esquema. Un esquema es una plantilla que define la estructura de los datos que vas a almacenar. En bases de datos relacionales, creamos tablas para almacenar datos. El esquema de una tabla se define cuando se crea la tabla. Por ejemplo, si queremos almacenar datos sobre los estudiantes en una base de datos relacional, crearemos una tabla de estudiantes y definiremos el esquema de la tabla, que podría incluir el nombre, número de registro, grado, etc. de cada alumno. Después de crear el esquema, almacenaremos los datos en las filas de la tabla. Es importante tener en cuenta que no podemos almacenar datos que no estén definidos en el esquema. En este ejemplo, la calificación que recibió un estudiante en un examen no se puede almacenar en la tabla porque no hemos definido una columna para estos datos en el esquema.

La siguiente lista incluye algunas bases de datos relacionales populares:

Bases de datos no relacionales (NoSQL)

Como se discutió anteriormente, las bases de datos no relacionales no tienen un esquema definido. Las bases de datos no relacionales tienen colecciones en lugar de tablas, y estas colecciones contienen documentos que son equivalentes a las filas de una base de datos relacional. Por ejemplo, si queremos crear una base de datos no relacional para almacenar los datos de los estudiantes, podemos crear una colección de usuarios y, en esta colección, almacenaremos un documento para cada estudiante. Estos documentos no tienen un esquema definido y puedes almacenar lo que quieras para cada alumno.

Realización de operaciones CRUD en MySQL

Ahora, le mostraremos cómo interactuar con MySQL usando Python.

Instalación del controlador MySQL para Python

Para interactuar con MySQL usando Python, primero necesitamos instalar el controlador MySQL en Python.

[correo electrónico protegido]: ~ $ sudo pip3 install mysql-connector-python

o

[correo electrónico protegido]: ~ $ sudo pip install mysql-connector-python

Crear una base de datos

Antes de crear una base de datos, necesitamos conectarnos con el servidor MySQL usando Python. El mysql.El módulo conector ofrece el método connect () para ayudar a establecer una conexión con MySQL usando Python.

>>> importar mysql.conector
// Reemplace con su propia IP y credenciales de servidor
>>> sql = mysql.conector.conectar(
… Host = 'localhost',
… Usuario = 'root',
… Contraseña = '12345'
…)
>>> imprimir (sql)

Este mensaje muestra que hemos creado con éxito una conexión con una base de datos MySQL usando Python. Ahora, ejecutaremos una consulta SQL en el servidor MySQL usando el método execute () de mysql.módulo conector.

>>> cursor = sql.cursor()
>>> consulta = 'CREAR BASE DE DATOS demo_db'
>>> cursor.ejecutar la solicitud)

El código anterior creará una base de datos llamada demo_db en MySQL.

Creando una tabla

Ahora que hemos creado una base de datos, crearemos una nueva tabla llamada estudiantes. Para crear una tabla, necesitamos conectarnos a la base de datos.

>>> sql_db = mysql.conector.conectar(
… Host = 'localhost',
… Usuario = 'root',
… Contraseña = '12345',
… Base de datos = 'demo_db'
…)

Después de conectarnos a la base de datos, usaremos el método execute () para ejecutar una consulta SQL para crear una tabla con un esquema.

>>> query = "CREATE TABLE estudiantes (nombre VARCHAR (64), id INT, grado INT, dob DATE)";
>>> cursor.ejecutar la solicitud);

El comando anterior creará una tabla llamada estudiantes en la base de datos demo_db; podemos insertar solo un nombre, identificación, grado y fecha de nacimiento en la tabla, como se define en el esquema.

Insertar filas en una tabla

Ahora que hemos creado una tabla, insertaremos un alumno en esta tabla. Crearemos una consulta y luego usaremos el método execute () para ejecutar la consulta en el servidor MySQL usando Python.

>>> query = 'INSERT INTO students (name, id, grade, dob) VALUES ("John", 1, 3, "2020-7-04")'
>>> cursor.ejecutar la solicitud)
>>> sql_db.cometer()

Esta consulta agregará un estudiante con los datos definidos en la consulta en la tabla. Podemos agregar estudiantes adicionales a la mesa de la misma manera.

NOTA: Los cambios se aplicarán a la base de datos solo si ejecuta sql_db.commit () después de aplicar los cambios.

Seleccionar filas de una tabla

La instrucción SELECT en MySQL se usa para devolver datos de una tabla. Usaremos el método execute () para ejecutar una consulta, y luego usaremos el método fetchall () para obtener una lista de todos los estudiantes. Luego, podemos usar un bucle for para mostrar todos los estudiantes

>>> consulta = 'SELECT * FROM estudiantes'
>>> cursor.ejecutar la solicitud)
>>> resultado = cursor.fetchall ()
>>> para x en el resultado:
… Imprimir (x)
('John', 1, 3, fecha y hora.fecha (2020, 7, 4))

Podemos ver que solo se devuelven los datos de un solo estudiante, ya que solo tenemos un estudiante en la tabla. Podemos usar la instrucción WHERE en MySQL con la instrucción SELECT para especificar restricciones. Por ejemplo, si queremos devolver a los alumnos de 4º grado únicamente, podemos utilizar la siguiente consulta:

>>> consulta = 'SELECCIONAR * DE estudiantes DONDE grado = 4'
>>> cursor.ejecutar la solicitud)
>>> resultado = cursor.fetchall ()
>>> para x en el resultado:
… Imprimir (x)

El código anterior buscará solo a los estudiantes del grado 4.

Actualizar una fila

En esta sección, le mostraremos cómo actualizar los datos de los estudiantes en una tabla MySQL usando Python. Usaremos la instrucción UPDATE con las instrucciones WHERE y SET en MySQL para actualizar los datos de estudiantes específicos. La instrucción WHERE se usa para determinar qué filas se actualizarán, y la instrucción SET se usa para definir los valores usados ​​para la actualización.

>>> query = 'ACTUALIZAR estudiantes SET nombre = "Marcar" DONDE id = 4'
>>> cursor.ejecutar la solicitud)
>>> sql_db.cometer()

Ahora, intentaremos leer los datos de los estudiantes de la tabla usando la instrucción SELECT.

>>> query = 'SELECT * FROM estudiantes WHERE id = 4'
>>> cursor.ejecutar la solicitud)
>>> para x en el cursor:
… Imprimir (x)
('Marca', 4, 4, fecha y hora.fecha (2020, 7, 15))

Ahora, podemos ver que el nombre del estudiante con id 4 se ha cambiado a Mark.

Eliminar una fila

Podemos eliminar una fila de la tabla aplicando la declaración DELETE en MySQL usando Python. Usaremos una instrucción DELETE con una instrucción WHERE para eliminar estudiantes específicos de la tabla.

>>> consulta = 'ELIMINAR DE los estudiantes DONDE id = 2'
>>> cursor.ejecutar la solicitud)
>>> sql_db.cometer()

Ahora, podemos devolver todos los estudiantes de la tabla usando la instrucción SELECT.

>>> consulta = 'SELECT * FROM estudiantes'
>>> cursor.ejecutar la solicitud)
>>> para x en el cursor:
… Imprimir (x)
('John', 1, 3, fecha y hora.fecha (2020, 7, 4))
('John', 3, 3, fecha y hora.fecha (2020, 7, 8))
('Marca', 4, 4, fecha y hora.fecha (2020, 7, 15))

Podemos ver que la tabla no contiene un estudiante con un id de 2, ya que hemos eliminado al estudiante de la tabla.

Dejar caer una mesa

El mysql.El módulo conector también se puede utilizar para colocar una mesa. Podemos ejecutar una declaración DROP en MySQL usando el método execute ().

>>> cursor = sql_db.cursor()
>>> query = 'DROP TABLE estudiantes'
>>> cursor.ejecutar la solicitud)

El código anterior eliminará la tabla llamada estudiantes cuando se ejecute en Python.

Eso concluye nuestra discusión sobre bases de datos SQL. Le mostramos cómo aplicar diferentes consultas a la base de datos MySQL usando Python. A continuación, aplicaremos operaciones CRUD a una base de datos NoSQL llamada MongoDB

Realización de operaciones CRUD en MongoDB

Para interactuar con MongoDB usando Python, primero debemos instalar pymongo, que es un controlador de MongoDB para Python.

[correo electrónico protegido]: ~ $ sudo pip install pymongo

o

[correo electrónico protegido]: ~ $ sudo pip3 install pymongo

Crear una base de datos

Podemos conectarnos a MongoDB usando el método MongoClient () del módulo pymongo en MongoDB. Antes de realizar cualquier acción, debemos conectarnos a la base de datos MongoDB.

>>> importar pymongo
>>> cliente = pymongo.MongoClient ('mongodb: // localhost: 27017 /')

Después de conectarnos al caso de datos, podemos ejecutar la siguiente línea para crear una nueva base de datos llamada demo_db.

>>> db = cliente ['demo_db']

Si la base de datos ya existe, este comando se ignora.

Crear una colección

Ahora que hemos creado una base de datos, crearemos una colección llamada estudiantes en la base de datos llamada.

>>> importar pymongo
>>> cliente = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = cliente ['demo_db']
>>> col = db ['estudiantes']

NOTA: MongoDB no crea una colección hasta que ingresa datos en ella. Por lo tanto, si intenta acceder a la colección después de ejecutar el código anterior, encontrará que no hay nada en la base de datos.

MySQL sin líneas, no tenemos que definir un esquema cuando creamos una nueva colección, ya que MongoDB es una base de datos no relacional.

Insertar un documento

Después de crear una colección, podemos insertar un documento dentro de la colección. Primero, debemos definir un diccionario, y luego podemos usar el método insert_one () para insertar los datos definidos en el diccionario en la colección.

NOTA: MongoDB crea automáticamente un '_id' único para cada documento; por lo tanto, no necesitamos especificar una identificación.

>>> datos =
... "nombre": "Juan",
… "grado 3,
… "Dob": "2020-04-03"

>>> resultado = col.insert_one (datos)

En el documento anterior, insertamos nombre, grado y fecha de nacimiento. Ahora, insertaremos un documento en la colección de estudiantes que tiene un campo para la edad.

>>> datos =
… "Nombre": "Marca",
… "grado 4,
… "Dob": "2020-04-09",
... "edad": 8

>>> resultado = col.insert_one (datos)

Podemos ver que este comando no arroja error. Debido a que MongoDB es una base de datos no relacional, podemos agregar cualquier información que queramos en el documento.

Obtener documentos

En esta sección, usaremos los métodos find () y find_one () para obtener datos de la base de datos. El método find () toma dos argumentos: el primero se usa para filtrar documentos y el segundo se usa para definir los campos del documento que queremos devolver. Por ejemplo, si queremos obtener la identificación de 'John', podemos ejecutar la siguiente consulta:

>>> resultado = col.buscar ("nombre": "Juan", "_id": 1)
>>> para x en el resultado:
… Imprimir (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Alternativamente, podemos obtener todos los documentos de la colección mediante la siguiente consulta:

>>> resultado = col.encontrar()
>>> para x en el resultado:
… Imprimir (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 4, 'dob': '2020-04-09', 'age': 8

Actualización de documentos

El módulo pymongo ofrece los métodos update_one () y update_many () para actualizar los documentos en una colección. Ambos métodos toman dos argumentos: el primero define qué documento cambiar y el segundo define los nuevos valores. Ahora, cambiaremos la calificación del estudiante 'Mark'.

>>> consulta = "nombre": "Marca"
>>> valor = "$ set": "grade": 5
>>> col.update_one (consulta, valor)
>>> para x en col.encontrar():
… Imprimir (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 5, 'dob': '2020-04-09', 'age': 8

Eliminar un documento

El módulo pymongo en Python tiene dos métodos, yo.mi., delete_one () y delete_many (), para borrar documentos. Ambos métodos toman un argumento que selecciona el documento a eliminar. Con el siguiente código, eliminaremos un alumno llamado 'John'.

>>> consulta = "nombre": "Juan"
>>> col.delete_one (consulta)
>>> para x en col.encontrar():
… Imprimir (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Dejar caer una colección

Podemos soltar una colección en MongoDB usando el método drop () del módulo pymongo en Python. Primero, necesitamos conectarnos a la base de datos; luego, seleccionamos la base de datos que contiene la colección que queremos eliminar. Después de seleccionar la colección de la base de datos, podemos eliminar la colección usando el método drop (). El siguiente código eliminará a los estudiantes.

>>> importar pymongo
>>> cliente = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = cliente ['demo_db']
>>> col = db ['estudiantes']
>>> col.soltar()

Conclusión

El conocimiento de bases de datos es fundamental si quieres hacer una aplicación web. Casi todos los lenguajes de programación tienen marcos y bibliotecas para el desarrollo web backend. Python se puede usar en el desarrollo web backend, por lo que podemos interactuar con bases de datos usando Python mientras trabajamos con marcos backend de Python. En este artículo, le mostramos cómo interactuar con bases de datos MongoDB y MySQL mediante el uso de operaciones CRUD simples escritas en Python.

Puertos de código abierto de motores de juegos comerciales
Las recreaciones gratuitas, de código abierto y de motores de juegos multiplataforma se pueden usar para jugar títulos de juegos antiguos y también al...
Los mejores juegos de línea de comandos para Linux
La línea de comandos no es solo su mayor aliado cuando usa Linux, también puede ser la fuente de entretenimiento porque puede usarla para jugar muchos...
Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....