Operações CRUD para bancos de dados SQL e NoSQL usando Python

Operações CRUD para bancos de dados SQL e NoSQL usando Python
Existem dois tipos principais de bancos de dados que podem ser usados ​​com um aplicativo: bancos de dados relacionais (SQL) e bancos de dados não relacionais (NOSQL). Ambos são amplamente utilizados, mas selecionar um depende do tipo de dados que serão armazenados. Existem quatro operações básicas que podem ser realizadas nos bancos de dados: Criar, ler, atualizar e excluir (CRUD).

Podemos interagir com bancos de dados usando qualquer linguagem de programação ou podemos usar um programa de software que nos permita interagir com o banco de dados usando uma GUI. Neste artigo, discutiremos bancos de dados e mostraremos como interagir com eles usando a linguagem de programação Python.

Bancos de dados relacionais (SQL)

Os bancos de dados relacionais (SQL) são diferentes dos bancos de dados não relacionais (NOSQL) em termos de esquema. Um esquema é um modelo que define a estrutura dos dados que você vai armazenar. Em bancos de dados relacionais, criamos tabelas para armazenar dados. O esquema de uma tabela é definido quando a tabela é criada. Por exemplo, se queremos armazenar dados sobre os alunos em um banco de dados relacional, criaremos uma tabela de alunos e definiremos o esquema da tabela, que pode incluir o nome, número de registro, nota, etc. de cada aluno. Depois de criar o esquema, armazenaremos os dados nas linhas da tabela. É importante observar que não podemos armazenar dados que não sejam definidos no esquema. Neste exemplo, o aluno de grau A recebido em um exame não pode ser armazenado na tabela porque não definimos uma coluna para esses dados no esquema.

A lista a seguir inclui alguns bancos de dados relacionais populares:

  • Mariadb
  • Mysql
  • servidor SQL
  • PostGresql
  • Oráculo

Bancos de dados não relacionais (NOSQL)

Como discutido acima, bancos de dados não relacionais não têm um esquema definido. Os bancos de dados não relacionais têm coleções em vez de tabelas, e essas coleções contêm documentos equivalentes às linhas em um banco de dados relacional. Por exemplo, se queremos criar um banco de dados não relacional para armazenar dados dos alunos, podemos criar uma coleção de usuários e, nesta coleção, armazenaremos um documento para cada aluno. Esses documentos não têm um esquema definido e você pode armazenar o que quiser para cada aluno.

Executando operações CRUD em MySQL

Agora, mostraremos como interagir com o MySQL usando o Python.

Instalando o driver MySQL para Python

Para interagir com o MySQL usando o Python, primeiro precisamos instalar o driver MySQL no Python.

ubuntu@ubuntu: ~ $ sudo pip3 install mysql-conector-python

ou

Ubuntu@ubuntu: ~ $ sudo pip install mysql-conector-python

Criando um banco de dados

Antes de criar um banco de dados, precisamos nos conectar com o MySQL Server usando o Python. O mysql.O Módulo Connector oferece o método Connect () para ajudar a estabelecer uma conexão com o MySQL usando o Python.

>>> importar mysql.conector
// Substitua por suas próprias credenciais de IP e servidor
>>> sql = mysql.conector.conectar(
… Host = 'localhost',
… Usuário = 'root',
… Senha = '12345'
…)
>>> Imprimir (SQL)

Esta mensagem mostra que criamos com sucesso uma conexão com um banco de dados MySQL usando Python. Agora, executaremos uma consulta SQL no MySQL Server usando o método Execute () do MySQL.Módulo do conector.

>>> cursor = sql.cursor()
>>> Query = 'Crie Demo_db'
>>> cursor.executar (consulta)

O código acima criará um banco de dados chamado Demo_DB em MySQL.

Criando uma tabela

Agora que criamos um banco de dados, criaremos uma nova tabela chamada alunos. Para criar uma tabela, precisamos nos conectar ao banco de dados.

>>> sql_db = mysql.conector.conectar(
… Host = 'localhost',
… Usuário = 'root',
… Senha = '12345',
… Database = 'Demo_DB'
…)

Depois de conectar -se ao banco de dados, usaremos o método Execute () para executar uma consulta SQL para criar uma tabela com um esquema.

>>> Query = "Crie alunos da tabela (nome Varchar (64), Id Int, Grade Int, Data DAB)";
>>> cursor.executar (consulta);

O comando acima criará uma tabela chamada alunos no banco de dados Demo_DB; Podemos inserir apenas um nome, ID, grau e data de nascimento na tabela, conforme definido no esquema.

Inserindo linhas em uma mesa

Agora que criamos uma tabela, inseriremos um aluno nesta tabela. Criaremos uma consulta e depois usaremos o método Execute () para executar a consulta no MySQL Server usando o Python.

>>> Query = 'Inserir nos alunos (nome, identificação, grau, DOB) (“John”, 1, 3, “2020-7-04”)' '
>>> cursor.executar (consulta)
>>> SQL_DB.comprometer-se()

Esta consulta adicionará um aluno com os dados definidos na consulta na tabela. Podemos adicionar alunos adicionais à mesa da mesma maneira.

NOTA: As alterações serão aplicadas ao banco de dados apenas se você executar SQL_DB.commit () depois de aplicar mudanças.

Selecionando linhas de uma tabela

A instrução SELECT em MySQL é usada para retornar dados de uma tabela. Usaremos o método Execute () para executar uma consulta e, em seguida, usaremos o método fetchall () para obter uma lista de todos os alunos. Então, podemos usar um loop para exibir todos os alunos

>>> Query = 'Selecione * dos alunos'
>>> cursor.executar (consulta)
>>> resultado = cursor.Fetchall ()
>>> para x em resultado:
… Print (x)
('John', 1, 3, DateTime.data (2020, 7, 4))

Podemos ver que apenas dados para um único aluno são retornados, pois temos apenas um aluno na tabela. Podemos usar a instrução WHERE em MySQL com a instrução SELECT para especificar restrições. Por exemplo, se queremos devolver apenas os alunos na 4ª série, podemos usar a seguinte consulta:

>>> Query = 'Selecione * dos alunos onde grau = 4'
>>> cursor.executar (consulta)
>>> resultado = cursor.Fetchall ()
>>> para x em resultado:
… Print (x)

O código acima buscará apenas os alunos da 4ª série.

Atualizando uma linha

Nesta seção, mostraremos como atualizar os dados do aluno em uma tabela MySQL usando Python. Usaremos a instrução ATUALIZA. A instrução WHERE é usada para determinar quais linhas serão atualizadas e a instrução Set é usada para definir os valores usados ​​para a atualização.

>>> Query = 'Atualizar os alunos definir nome = "Mark" onde id = 4'
>>> cursor.executar (consulta)
>>> SQL_DB.comprometer-se()

Agora, tentaremos ler os dados do aluno da tabela usando a instrução SELECT.

>>> Query = 'Selecione * dos alunos onde ID = 4'
>>> cursor.executar (consulta)
>>> para x em cursor:
… Print (x)
('Mark', 4, 4, DateTime.data (2020, 7, 15))

Agora, podemos ver que o nome do aluno com id 4 foi alterado para marcar.

Excluindo uma linha

Podemos excluir uma linha da tabela aplicando a declaração de exclusão no MySQL usando o Python. Usaremos uma declaração de exclusão com uma declaração WHERE para excluir estudantes específicos da tabela.

>>> Query = 'Excluir dos alunos onde id = 2'
>>> cursor.executar (consulta)
>>> SQL_DB.comprometer-se()

Agora, podemos devolver todos os alunos da tabela usando a instrução SELECT.

>>> Query = 'Selecione * dos alunos'
>>> cursor.executar (consulta)
>>> para x em cursor:
… Print (x)
('John', 1, 3, DateTime.data (2020, 7, 4))
('John', 3, 3, DateTime.data (2020, 7, 8))
('Mark', 4, 4, DateTime.data (2020, 7, 15))

Podemos ver que a tabela não contém um aluno com um ID de 2, pois removemos o aluno da tabela.

Soltando uma mesa

O mysql.O módulo do conector também pode ser usado para soltar uma tabela. Podemos executar uma instrução DROP no MySQL usando o método Execute ().

>>> cursor = sql_db.cursor()
>>> Query = 'Drop Table Students'
>>> cursor.executar (consulta)

O código acima excluirá a tabela denominada alunos quando executado em Python.

Isso conclui nossa discussão sobre bancos de dados SQL. Mostramos como aplicar consultas diferentes no banco de dados MySQL usando Python. Em seguida, aplicaremos operações CRUD a um banco de dados NoSQL chamado MongoDB

Realizando operações CRUD em MongoDB

Para interagir com o MongoDB usando o Python, devemos primeiro instalar o Pymongo, que é um driver de MongoDB para Python.

ubuntu@ubuntu: ~ $ sudo pip install pymongo

ou

ubuntu@ubuntu: ~ $ sudo pip3 install pymongo

Criando um banco de dados

Podemos nos conectar ao mongodb usando o método mongoclient () do módulo pymongo em mongodb. Antes de executar qualquer ação, precisamos conectar -se ao banco de dados MongoDBB.

>>> Importar Pymongo
>>> cliente = pymongo.Mongoclient ('MongoDB: // localhost: 27017/')

Depois de nos conectar ao datacase, podemos executar a seguinte linha para criar um novo banco de dados chamado Demo_DB.

>>> db = cliente ['Demo_db']

Se o banco de dados já existir, este comando será ignorado.

Criando uma coleção

Agora que criamos um banco de dados, criaremos uma coleção chamada alunos no banco de dados nomeado.

>>> Importar Pymongo
>>> cliente = pymongo.Mongoclient ('MongoDB: // localhost: 27017/')
>>> db = cliente ['Demo_db']
>>> col = db ['alunos']

Nota: MongoDB não cria uma coleção até que você insira dados nele. Portanto, se você tentar acessar a coleção depois de executar o código acima, descobrirá que não há nada no banco de dados.

MySQL sem forro, não precisamos definir um esquema quando criamos uma nova coleção, pois o MongoDB é um banco de dados não relacional.

Inserindo um documento

Depois de criar uma coleção, podemos inserir um documento dentro da coleção. Primeiro, devemos definir um dicionário e, em seguida, podemos usar o método insert_one () para inserir os dados definidos no dicionário na coleção.

Nota: o MongoDB cria automaticamente um '_id' exclusivo para cada documento; Portanto, não precisamos especificar um ID.

>>> dados =
... "Nome": "John",
… "Grade": 3,
... "DOB": "2020-04-03"

>>> resultado = col.insert_one (dados)

No documento acima, inserimos nome, grau e DOB. Agora, inseriremos um documento na coleção de alunos que tem um campo para a idade.

>>> dados =
... "Nome": "Mark",
… "Grau": 4,
... "Dob": "2020-04-09",
... "Idade": 8

>>> resultado = col.insert_one (dados)

Podemos ver que este comando não lança um erro. Como o MongoDB é um banco de dados não relacional, podemos adicionar qualquer informação que desejarmos no documento.

Obtendo documentos

Nesta seção, usaremos os métodos find () e find_one () para obter dados do banco de dados. O método find () leva dois argumentos: o primeiro é usado para filtrar documentos e o segundo é usado para definir os campos do documento que queremos retornar. Por exemplo, se queremos obter o ID de 'John', podemos executar a seguinte consulta:

>>> resultado = col.encontre ("name": "John", "_id": 1)
>>> para x em resultado:
… Print (x)
'_id': objectId ('5f8f0514cb12c01f7420656e')

Como alternativa, podemos obter todos os documentos da coleção usando a seguinte consulta:

>>> resultado = col.encontrar()
>>> para x em resultado:
… Print (x)
'_id': objectId ('5F8F0514CB12C01F7420656E'), 'Nome': 'John', 'Grade': 3, 'DOB': '2020-04-03'
'_id': objectId ('5F8F061CCB12C01F7420656F'), 'Nome': 'Mark', 'Grade': 4, 'DOB': '2020-04-09', 'AGE': 8

Atualizando documentos

O módulo Pymongo oferece os métodos update_one () e update_many () para atualizar os documentos em uma coleção. Ambos os métodos aceitam dois argumentos: o primeiro define qual documento mudar e o segundo define. Agora, vamos mudar a nota do aluno 'marca'.

>>> Query = "Name": "Mark"
>>> value = "$ set": "grau": 5
>>> col.update_one (consulta, valor)
>>> para x em col.encontrar():
… Print (x)
'_id': objectId ('5F8F0514CB12C01F7420656E'), 'Nome': 'John', 'Grade': 3, 'DOB': '2020-04-03'
'_id': objectId ('5F8F061CCB12C01F7420656F'), 'Nome': 'Mark', 'Grade': 5, 'DOB': '2020-04-09', 'AGE': 8

Excluindo um documento

O módulo Pymongo em Python tem dois métodos, eu.e., Delete_One () e Delete_Many (), para excluir documentos. Ambos os métodos assumem um argumento que seleciona o documento para excluir. Com o código a seguir, excluiremos um aluno chamado 'John'.

>>> Query = "Name": "John"
>>> col.delete_one (consulta)
>>> para x em col.encontrar():
… Print (x)
'_id': objectId ('5f8f061ccb12c01f7420656f'), 'nome': 'mark', 'id': 2, 'grau': 5, 'DOB': '2020-04-09', 'idade': 8

Abandonando uma coleção

Podemos lançar uma coleção em MongoDB usando o método Drop () do módulo Pymongo em Python. Primeiro, precisamos nos conectar ao banco de dados; Em seguida, selecionamos o banco de dados que mantém a coleção que queremos remover. Depois de selecionar a coleção do banco de dados, podemos remover a coleção usando o método Drop (). O código a seguir abandonará os alunos.

>>> Importar Pymongo
>>> cliente = pymongo.Mongoclient ('MongoDB: // localhost: 27017/')
>>> db = cliente ['Demo_db']
>>> col = db ['alunos']
>>> col.derrubar()

Conclusão

O conhecimento dos bancos de dados é essencial se você deseja fazer um aplicativo da web. Quase toda linguagem de programação possui estruturas e bibliotecas para desenvolvimento web de back -end. O Python pode ser usado no desenvolvimento da web de back -end e, portanto, podemos interagir com bancos de dados usando Python enquanto trabalhamos com estruturas de back -end Python. Neste artigo, mostramos como interagir com os bancos de dados MongoDB e MySQL usando operações simples de CRUD escritas no Python.