Operaciones CRUD a bases de datos SQL y NoSQL utilizando Python

Operaciones CRUD a bases de datos SQL y NoSQL utilizando 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 se usan ampliamente, pero seleccionar 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 utilizando cualquier lenguaje de programación, o podemos usar un programa de software que nos permita interactuar con la base de datos utilizando una GUI. En este artículo, discutiremos bases de datos y le mostraremos cómo interactuar con ellas utilizando el lenguaje de programación de 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 va 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 en 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, el número de registro, la calificación, etc. de cada estudiante. 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 se definan en el esquema. En este ejemplo, el estudiante de grado A recibido 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:

  • Mariada
  • Mysql
  • servidor SQL
  • Postgresql
  • Oráculo

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 en 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 puede almacenar lo que desee para cada estudiante.

Realizar operaciones crud en mysql

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

Instalación del controlador MySQL para Python

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

ubuntu@ubuntu: ~ $ sudo pip3 instalar mysql-confonector-python

o

ubuntu@ubuntu: ~ $ sudo pip instalar mysql-confonsector-python

Creación de una base de datos

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

>>> importar mysql.conector
// reemplazar con sus propias credenciales de IP y 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 utilizando el método Execute () desde el MySQL.módulo de conector.

>>> cursor = sql.cursor()
>>> Query = '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 mesa

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, utilizaremos el método Execute () para ejecutar una consulta SQL para crear una tabla con un esquema.

>>> QUERY = "Crear estudiantes de tabla (nombre Varchar (64), ID int, grado int, doB fecha)";
>>> cursor.ejecutar la solicitud);

El comando anterior creará una tabla con nombre de estudiantes en la base de datos Demo_DB; Podemos insertar solo un nombre, identificación, calificación y fecha de nacimiento en la tabla, como se define en el esquema.

Insertar filas en una mesa

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

>>> consulta = 'Insertar en estudiantes (nombre, identificación, grado, doB) valores ("John", 1, 3, "2020-7-04")'
>>> cursor.ejecutar la solicitud)
>>> sql_db.comprometerse()

Esta consulta agregará un estudiante con los datos definidos en la consulta a 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 se ejecuta SQL_DB.Commit () después de aplicar cambios.

Seleccionar filas de una tabla

La instrucción Seleccionar 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 a todos los estudiantes

>>> consulta = 'seleccionar * de los estudiantes'
>>> cursor.ejecutar la solicitud)
>>> resultado = cursor.Fetchall ()
>>> Para x en resultado:
… Imprimir (x)
('John', 1, 3, DateTime.Fecha (2020, 7, 4))

Podemos ver que solo se devuelven 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 estudiantes solo en el Grado 4, podemos usar la siguiente consulta:

>>> consulta = 'Seleccionar * de los estudiantes donde grado = 4'
>>> cursor.ejecutar la solicitud)
>>> resultado = cursor.Fetchall ()
>>> Para x en 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 del estudiante en una tabla MySQL usando Python. Usaremos la declaración de actualización con las declaraciones de dónde y establecerán 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 establecida se utiliza para define los valores utilizados para la actualización.

>>> Query = 'Update Students set Name = "Mark" Where id = 4'
>>> cursor.ejecutar la solicitud)
>>> sql_db.comprometerse()

Ahora, intentaremos leer los datos del estudiante de la tabla utilizando la instrucción SELECT.

>>> consulta = 'Seleccionar * de los estudiantes donde id = 4'
>>> cursor.ejecutar la solicitud)
>>> Para x en el cursor:
… Imprimir (x)
('Mark', 4, 4, DateTime.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 instrucción Eliminar en MySQL usando Python. Usaremos una declaración de eliminación con una declaración WHERE para eliminar a los estudiantes específicos de la tabla.

>>> consulta = 'Eliminar de los estudiantes donde id = 2'
>>> cursor.ejecutar la solicitud)
>>> sql_db.comprometerse()

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

>>> consulta = 'seleccionar * de los estudiantes'
>>> cursor.ejecutar la solicitud)
>>> Para x en el cursor:
… Imprimir (x)
('John', 1, 3, DateTime.Fecha (2020, 7, 4))
('John', 3, 3, DateTime.Fecha (2020, 7, 8))
('Mark', 4, 4, DateTime.Fecha (2020, 7, 15))

Podemos ver que la tabla no contiene un estudiante con una identificación de 2, ya que hemos eliminado al estudiante de la mesa.

Dejar caer una mesa

El mysql.El módulo del conector también se puede usar para soltar una mesa. Podemos ejecutar una instrucción de caída en MySQL usando el método Execute ().

>>> cursor = sql_db.cursor()
>>> consulta = 'Drop de los estudiantes de mesa'
>>> cursor.ejecutar la solicitud)

El código anterior eliminará la tabla con nombre de los estudiantes cuando se ejecute en Python.

Que concluye nuestra discusión sobre las bases de datos SQL. Le hemos mostrado cómo aplicar diferentes consultas a la base de datos MySQL usando Python. A continuación, aplicaremos las operaciones de 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.

ubuntu@ubuntu: ~ $ sudo pip install pymongo

o

ubuntu@ubuntu: ~ $ sudo pip3 instalar pymongo

Creación de 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, necesitamos conectarnos a la base de datos MongoDB.

>>> Importar Pymongo
>>> cliente = Pymongo.MongoClient ('MongoDB: // Localhost: 27017/')

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

>>> db = client ['demo_db']

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

Creando una colección

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

>>> Importar Pymongo
>>> cliente = Pymongo.MongoClient ('MongoDB: // Localhost: 27017/')
>>> db = client ['demo_db']
>>> col = db ['estudiantes']

Nota: MongoDB no crea una colección hasta que ingrese datos en él. 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 forro, 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.

>>> data =
... "Nombre": "John",
… "grado 3,
... "Dob": "2020-04-03"

>>> resultado = col.insert_one (datos)

En el documento anterior, insertamos Name, Grade y Dob. Ahora, insertaremos un documento en la colección de estudiantes que tenga un campo para la edad.

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

>>> resultado = col.insert_one (datos)

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

Obtener documentos

En esta sección, utilizaremos 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', entonces podemos ejecutar la siguiente consulta:

>>> resultado = col.find ("nombre": "John", "_id": 1)
>>> Para x en resultado:
… Imprimir (x)
'' _id ': ObjectId (' 5F8F0514CB12C01F7420656E ')

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

>>> resultado = col.encontrar()
>>> Para x en resultado:
… Imprimir (x)
'_id': ObjectId ('5F8F0514CB12C01F7420656E'), 'Nombre': 'John', 'Grado': 3, 'Dob': '2020-04-03'
'_id': ObjectId ('5F8F061CCB12C01F7420656F'), 'Nombre': 'Marca', 'Grado': 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 para cambiar, y el segundo define los nuevos valores. Ahora, cambiaremos la calificación de la 'marca' del estudiante.

>>> Query = "Nombre": "Mark"
>>> valor = "$ set": "grado": 5
>>> col.update_one (consulta, valor)
>>> para x en col.encontrar():
… Imprimir (x)
'_id': ObjectId ('5F8F0514CB12C01F7420656E'), 'Nombre': 'John', 'Grado': 3, 'Dob': '2020-04-03'
'_id': objectId ('5f8f061ccb12c01f7420656f'), 'nombre': 'marca', 'grado': 5, 'doB': '2020-04-09', 'edad': 8

Eliminar un documento

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

>>> Query = "Nombre": "John"
>>> col.delete_one (consulta)
>>> para x en col.encontrar():
… Imprimir (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'nombre': 'Marcos', 'id': 2, 'grado': 5, 'Dob': '2020-04-09', 'edad': 8

Dejar caer una colección

Podemos soltar una colección en MongoDB utilizando 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 utilizando el método Drop (). El siguiente código dejará caer a los estudiantes.

>>> Importar Pymongo
>>> cliente = Pymongo.MongoClient ('MongoDB: // Localhost: 27017/')
>>> db = client ['demo_db']
>>> col = db ['estudiantes']
>>> col.gota()

Conclusión

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