Bancos de dados são uma parte importante da maioria dos desenvolvimentos de software program modernos. Eles servem como um repositório para armazenar, organizar, manipular e recuperar dados e informações. Python, sendo uma linguagem de programação versátil, oferece vários módulos e bibliotecas para trabalhar com bancos de dados. Exploraremos os fundamentos da programação de banco de dados em Python, com foco no uso do sistema de banco de dados SQLite, que é leve, fácil de usar e parte da biblioteca padrão do Python.
Ir para:
Introdução ao SQLite
Bancos de dados podem ser pensados como uma coleção estruturada de dados que é organizada de tal maneira que os aplicativos podem selecionar e recuperar rapidamente partes específicas de informações que são frequentemente relacionadas entre si (mas nem sempre). Bancos de dados são necessários para armazenar e gerenciar dados em aplicativos, incluindo pequenos scripts e até mesmo aplicativos da internet de larga escala e orientados a dados.
SQLite é uma biblioteca C que funciona como um banco de dados baseado em disco. Ao contrário da maioria dos outros sistemas de gerenciamento de banco de dados (DBMS), o SQLite não requer um processo de servidor separado. Além disso, o SQLite fornece acesso ao banco de dados usando uma variante não padrão da linguagem de consulta estruturada (SQL). É uma ótima opção para sistemas embarcados, testes e aplicativos de pequeno a médio porte.
SQLite é um banco de dados perfeito para iniciantes começarem devido à sua simplicidade, fácil configuração e requisitos mínimos de instalação. É um banco de dados sem servidor, o que significa que os desenvolvedores não precisam configurar um servidor separado para usá-lo. Além disso, os bancos de dados SQLite são armazenados em um único arquivo; isso os torna fáceis de compartilhar e mover entre diferentes sistemas. Abaixo, abordamos os conceitos básicos de trabalhar com SQLite usando Python, abrindo portas para conceitos de banco de dados mais avançados no futuro.
Ler: 10 Melhores Certificações Python
Como configurar o ambiente de desenvolvimento
Antes de começarmos, precisamos primeiro ter certeza de que o Python está instalado no seu computador. Para fazer isso, abra um terminal ou immediate de comando e digite:
python --version
Se o Python não estiver instalado, você precisará baixá-lo e instalá-lo do web site oficial do Python. Você também pode aprender como instalar o Python em nosso tutorial: Como instalar o Python.
Instalando o SQLite
Python vem com o sqlite3 módulo, que fornece uma interface para o banco de dados SQLite. Os programadores não precisam instalar nada additional para trabalhar com SQLite em Python.
Conectando a um banco de dados
Conforme afirmado, o sqlite3 O módulo faz parte da biblioteca padrão do Python e fornece um poderoso conjunto de ferramentas para trabalhar com bancos de dados SQLite. Antes de podermos usá-lo, precisamos importar o módulo para nossos scripts Python. Podemos fazer isso da seguinte maneira:
import sqlite3
Estabelecendo uma conexão de banco de dados em Python
Para interagir com um banco de dados SQLite, os programadores precisam primeiro estabelecer uma conexão com o banco de dados. Isso pode ser feito usando o conectar função contida no sqlite3 módulo. Observe que se o arquivo de banco de dados observado não existir, o SQLite o criará.
# Hook up with the named database (or, if it doesn't exist, create one) conn = sqlite3.join('pattern.db')
Criando um cursor no SQLite
Para executar consultas de banco de dados e recuperar resultados em um banco de dados SQLite, você deve primeiro criar um objeto cursor. Este processo ocorre depois você cria seu objeto de conexão.
# The best way to create a cursor object to be able to execute SQL queries cursor = conn.cursor()
Criando uma tabela
Em sistemas de gerenciamento de banco de dados relacional (RDBMS), os dados são organizados em tabelas, cada uma das quais é composta de linhas (horizontal) e colunas (vertical). Uma tabela representa um conceito específico, e as colunas definem os atributos desse conceito. Por exemplo, um banco de dados pode conter informações sobre veículos. As colunas dentro dessa tabela podem ser rotuladas fazer, tipo, anoe modelo. As linhas, enquanto isso, manteriam pontos de dados que se alinhavam com cada uma dessas colunas. Por exemplo, Lincoln, carro, 2023, Nautilus.
Como estruturar dados com SQL
SQL é a linguagem padrão para operar em bancos de dados relacionais. SQL fornece comandos para manipulação de dados e banco de dados que incluem criação, recuperação, atualização e exclusão de dados. Para criar uma tabela, os desenvolvedores de banco de dados usam o CRIAR TABELA declaração.
Abaixo, criamos uma tabela simples para armazenar informações sobre os alunos, incluindo seus id_estudante, nome completoe idade:
# Create a desk cursor.execute(''' CREATE TABLE IF NOT EXISTS college students ( student_id INTEGER PRIMARY KEY, full_name TEXT NOT NULL, age INTEGER NOT NULL ) ''') # Commit our modifications conn.commit()
No trecho de código acima, CRIAR TABELA outline o nome da tabela, nomes de colunas e seus respectivos tipos de dados. O CHAVE PRIMÁRIA do id_estudante A coluna é usada para garantir que cada valor de id seja único, pois os valores primários devem ser sempre únicos.
Se quisermos adicionar dados a uma tabela, podemos usar o INSERIR EM declaração. Esta declaração permite que os desenvolvedores especifiquem em qual tabela e coluna(s) inserir dados.
Inserindo dados em uma tabela
Abaixo está um exemplo de como inserir dados em um banco de dados SQLite com o comando SQL INSERIR EM:
# Insert information into our desk cursor.execute("INSERT INTO college students (full_name, age) VALUES (?, ?)", ('Ron Doe', 49)) cursor.execute("INSERT INTO college students (full_name, age) VALUES (?, ?)", ('Dana Doe', 49)) # Commit modifications conn.commit()
Neste exemplo de código, usamos consultas parametrizadas para inserir dados em nossa tabela de alunos. Os valores são tuplas, o que ajuda a evitar ataques de injeção de SQL, melhora a legibilidade do código e é considerado uma prática recomendada.
Como consultar dados no SQLite
O SQL SELECIONAR é usada quando queremos consultar dados de uma tabela dada. Ela permite que os programadores especifiquem quais colunas eles querem recuperar, filtrem linhas (com base em critérios) e classifiquem quaisquer resultados.
Como executar consultas de banco de dados em Python
Para executar uma consulta em Python, você pode usar o executar método em um objeto cursor, conforme mostrado na instrução SQL de exemplo:
# The best way to question information cursor.execute("SELECT * FROM college students") rows = cursor.fetchall()
O buscar O método no código acima recupera cada linha da última consulta que foi executada. Uma vez recuperado — ou buscado — podemos então iterar sobre os resultados da nossa consulta e exibir os dados:
# Show the outcomes of our question for row in rows: print(row)
Aqui, imprimimos os dados armazenados na tabela de alunos. Podemos personalizar o SELECIONAR declaração para recuperar colunas específicas se quisermos, ou filtrar resultados com base em condições e critérios também.
Atualizando e excluindo dados no SQLite
Há momentos em que queremos atualizar registros existentes. Nessas ocasiões, usaremos o ATUALIZAR declaração. Se quisermos excluir registros, usaríamos o APAGAR DE declaração em vez disso. Para começar, atualizaremos a idade do nosso aluno com o nome ‘Ron Doe’:
# Updating our information cursor.execute("UPDATE college students SET age=? WHERE identify=?", (50, 'Ron Doe')) # Commit our modifications conn.commit()
Neste código, atualizamos Ron Doe’s idade de 49 a 50 anos.
Mas e se quiséssemos apagar um registro? No exemplo abaixo, apagaremos o registro do aluno chamado Dana Doe:
# Deleting a file cursor.execute("DELETE FROM college students WHERE identify=?", ('Dana Doe',)) # Commit our modifications conn.commit()
Melhores práticas para trabalhar com bancos de dados em Python
Abaixo destacamos algumas práticas recomendadas e dicas para trabalhar com bancos de dados em Python, incluindo:
- Use consultas parametrizadas
- Usar tratamento de exceção
- Fechar conexões de banco de dados
Use consultas parametrizadas
Desenvolvedores e administradores de banco de dados devem sempre usar consultas parametrizadas para evitar ataques de injeção de SQL. Consultas parametrizadas são mais seguras porque separam o código SQL dos dados, reduzindo o risco de agentes maliciosos. Aqui está um exemplo de como usar consultas parametrizadas:
# The best way to use parameterized queries cursor.execute("INSERT INTO college students (full_name, age) VALUES (?, ?)", ('Ron Die', 49))
Usar tratamento de exceção
Os programadores devem sempre encapsular as operações de banco de dados em tentar-exceto blocos para lidar com possíveis erros graciosamente. Algumas exceções comuns incluem sqlite3.Erro Operacional e sqlite3.Erro de integridade.
attempt: # Database operation instance besides sqlite3.Error as e: print(f" The SQLite error reads: {e}")
Fechar conexões de banco de dados
As melhores práticas de banco de dados exigem que os desenvolvedores sempre fechem as conexões e cursores do banco de dados quando você terminar de trabalhar com bancos de dados. Isso garante que os recursos sejam liberados e as alterações pendentes sejam confirmadas.
# The best way to shut the cursor and database connection cursor.shut() conn.shut()
Considerações finais sobre os fundamentos do banco de dados Python
Neste tutorial de programação de banco de dados e Python, cobrimos os conceitos básicos de trabalho com bancos de dados em Python usando SQLite. Aprendemos como conectar a um banco de dados, criar tabelas e inserir, consultar, atualizar e excluir dados. Também discutimos as melhores práticas para trabalhar com bancos de dados, que incluíam o uso de consultas parametrizadas, tratamento de exceções e fechamento de conexões de banco de dados.
Quer aprender a trabalhar com Python e outros sistemas de banco de dados? Confira nosso tutorial em Programação de banco de dados Python com MongoDB.