Programação

Noções básicas de trabalho com o banco de dados SQLite em Python

Noções básicas de trabalho com o banco de dados SQLite em Python

Um banco de dados é um dos arquivos mais úteis e populares para armazenar dados; eles podem ser usados ​​para armazenar qualquer tipo de dados, incluindo texto, números, imagens, dados binários, arquivos, etc. SQLite é um sistema de gerenciamento de banco de dados relacional baseado na linguagem SQL. É uma biblioteca C e fornece uma API para trabalhar com outras linguagens de programação, incluindo Python. Não requer um processo de servidor separado para ser executado conforme necessário em grandes mecanismos de banco de dados como MySQL e Postgresql.

É rápido e leve, e todo o banco de dados é armazenado em um único arquivo de disco, o que o torna portátil como CSV ou outros arquivos de armazenamento de dados. Muitos aplicativos usam SQLite para armazenamento interno de dados, principalmente em ambientes como dispositivos móveis ou pequenos aplicativos.

Banco de dados SQLite para Python

Vamos dar um mergulho profundo no SQLite com a linguagem de programação python. Neste tutorial, aprenderemos as vantagens de usar SQLite, noções básicas do módulo python sqlite3, Criando uma tabela em um banco de dados, Inserindo dados na tabela, Consultando dados da tabela e Atualizando dados da tabela.

Vantagens de usar SQLite

As principais vantagens de usar SQLite são:

SQLite também é usado no Google Chrome para armazenar os cookies, dados do usuário e outros dados importantes, incluindo senhas de usuário. O sistema operacional Android também usa SQLite como seu mecanismo de banco de dados principal para armazenar dados.

Módulo Python SQLite3

Para usar o SQLite, precisamos que o Python esteja instalado em nosso sistema. Se você ainda não tem o Python instalado em seu sistema, pode consultar nosso guia passo a passo para instalar o Python no Linux. Poderíamos usar SQLite em Python usando o sqlite3 módulo disponível na biblioteca padrão do Python. Gerhard Häring escreveu o módulo sqlite3; fornece uma interface SQL compatível com o DB-API 2.0. Ele vem pré-instalado com a biblioteca padrão do Python, então não precisamos nos preocupar com nenhuma outra instalação.

Criando conexão com um banco de dados

A primeira etapa ao trabalhar com SQLite em Python é configurar uma conexão com um banco de dados. Podemos fazer isso usando o método connect () de sqlite3 para configurar uma conexão. Veja o código a seguir para obter um exemplo. Você pode simplesmente copiar o código em um IDE ou Editor de Texto e executá-lo. Se você tiver problemas ao escolher IDE para Python, pode consultar nosso guia sobre como comparar o melhor IDE de python. Recomenda-se reescrever o código novamente em seu IDE, e se você deseja copiar o código, por favor, verifique a sintaxe com o código presente aqui.

# importando os módulos necessários import sqlite3 # configurando a conexão com o banco de dados conn = sqlite3.conectar ("amostra.db ") print (" Conectado com sucesso ao banco de dados ") # fechando a conexão conn.perto()

O programa acima irá criar uma conexão com o arquivo de banco de dados SQLite “amostra.db.”Ele dará a seguinte saída no terminal.

Vamos ver o que está acontecendo no código acima. Na primeira linha importamos o módulo sqlite3, que nos ajudará a trabalhar com bancos de dados SQLite em Python.

Na segunda linha, criamos uma conexão com um arquivo de banco de dados SQLite chamado “amostra.db ”usando o conectar() função. A função connect () aceita o caminho para o arquivo de banco de dados como um argumento. Se o arquivo não existir no caminho fornecido, ele próprio criará um novo arquivo de banco de dados com o nome fornecido naquele caminho. A função connect () retornará um objeto de banco de dados em nosso programa; nós armazenamos o objeto retornado em uma variável chamada con.

A terceira linha em nosso programa é um simples impressão declaração para exibir uma mensagem sobre uma conexão bem-sucedida. A última linha do programa interrompe a conexão com o banco de dados usando o perto() função do objeto de conexão.

No exemplo anterior, criamos o banco de dados no disco, mas também podemos criar um banco de dados na memória RAM primária. A criação de um banco de dados na RAM torna a execução do banco de dados mais rápida do que o normal. Ainda assim, o banco de dados será criado temporariamente e, quando a execução do programa for interrompida, ele apagará o banco de dados da memória. Podemos criar um banco de dados na memória fornecendo o nome particular: memory: como um argumento para o conectar() função. Veja o programa abaixo como ilustração.

import sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Banco de dados foi criado com sucesso na memória") conn.perto()

O programa acima irá criar um banco de dados na RAM, e podemos usá-lo para realizar quase todas as tarefas que podemos fazer com bancos de dados criados no disco. Este método é útil ao criar um banco de dados virtual temporário por algum motivo.

Cursor SQLite3

UMAcursor o objeto é a nossa interface com o banco de dados, que permite executar qualquerConsulta SQL no banco de dados. Para executar qualquer script SQL usando sqlite3, devemos criar um objeto cursor. Para criar um objeto cursor, precisamos usar o cursor() método do conexão objeto. Podemos criar um objeto cursor de nosso banco de dados usando o seguinte código.

# importando os módulos necessários import sqlite3 # configurando a conexão com o banco de dados conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") cur.close () # fechando a conexão conn.perto()

Quando o programa for executado, a saída será vista como mostrado na imagem abaixo.

Vamos ver como o código acima funciona. No código acima, o primeiro, o segundo, o terceiro está configurando uma conexão com o banco de dados, conforme mostrado anteriormente. Na quarta linha, usamos o cursor() método do objeto de conexão para criar um objeto de cursor e armazenar o objeto de cursor retornado em uma variável chamada “cur”. A quinta linha é geral impressão() demonstração. Na sexta linha, destruímos o objeto cursor da memória usando o perto() método do objeto cursor.

Tipos de dados SQLite

Antes de prosseguir, vamos primeiro entender os tipos de dados SQLite. O mecanismo de banco de dados SQLite possui várias classes de armazenamento para armazenar muitos tipos de dados, incluindo texto, dados binários, inteiros, etc. Cada valor possui um dos seguintes tipos de dados.

SQLite DataTypes:

Comparação de tipos de dados SQLite e Python

Haverá muitas vezes em que precisaremos usar tipos de dados Python para armazenar alguns dados SQL e realizar algumas atividades. Para tal, precisamos saber quais tipos de dados SQL estão relacionados a quais tipos de dados Python.

Os seguintes tipos de Python são um tanto semelhantes aos tipos de dados SQLite:

Tipo Python Tipo SQLite
Nenhum NULO
int INTEIRO
flutuador REAL
str TEXTO
bytes BLOB

Criação de uma tabela usando SQLite

Para criar uma tabela usando SQLite, precisamos usar o CRIAR A TABELA declaração de SQL no executar() método do objeto cursor. A sintaxe básica da instrução CREATE TABLE em SQL é mostrada abaixo:

CREATE TABLE nome_tabela (restrição column_name Data_type,… restrição column_name Data_type);

Para usar a instrução SQLite acima em Python, precisamos executar o programa de exemplo abaixo. Ele criará uma tabela chamada funcionário em nosso banco de dados.

import sqlite3 conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") table = cur.execute ("" "CREATE TABLE funcionário (id INT PRIMARY KEY, nome CHAR (25), salário CHAR (25), joining_date DATE);" "") print ("\ n [+] A tabela foi criada com sucesso") cur.close () conn.perto()

No programa acima, criamos um empregado mesa com os atributos eu ia, nome, salário, e Data de ingresso. Esta tabela agora pode ser usada para armazenar dados ou consultar dados de acordo com a necessidade. Você verá a seguinte saída no terminal.

No código acima, usamos o executar() método do objeto cursor para executar o comando SQL para criar uma tabela com as colunas fornecidas.

Inserindo Dados em uma Tabela

Nós criamos uma tabela em nosso banco de dados SQLite. Agora vamos inserir alguns dados nele usando SQL. A sintaxe básica da instrução INSERT do SQL é:

INSERT INTO nome_tabela (nome_colunas_1, nome_colunas_2,…) VALUES (dados_colunas_1, dados_colunas_1,…)

Na sintaxe acima, o Nome da tabela é o nome da tabela na qual queremos inserir nossos dados. O column_name_1, column_name_2, são os nomes das colunas presentes na tabela. O column_data_1, column_data_2,… são os dados que queremos inserir nas colunas fornecidas.

Vamos ver uma demonstração prática para inserir dados em uma tabela. Vamos adicionar alguns dados em nossa tabela chamada empregado usando SQLite e Python. Execute o código abaixo para inserir alguns dados na tabela.

import sqlite3 conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") cur.execute ("INSERT INTO funcionário (id, nome, salário, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO funcionário (id, nome, salário, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO funcionário (id, nome, salário, joining_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO funcionário (id, nome, salário, data_de_junção) VALORES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO employee (id, name, salary, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Os dados foram inseridos com sucesso" ) cur.close () conn.commit () conn.perto()

O código acima irá inserir alguns dados no empregado mesa que criamos anteriormente. Vamos ver o que está acontecendo no código. As primeiras cinco linhas são usadas para criar uma conexão com o banco de dados e configurar o cursor. Nas linhas de seis a dez, temos que usar o comando INSERT do SQL para inserir dados na tabela de funcionários. Temos que usar o nome das colunas da tabela de funcionários no primeiro parêntese e os dados das colunas no segundo parêntese. Só precisamos usar o comprometer-se() método do objeto de conexão antes de se desconectar do banco de dados, caso contrário, as alterações que fizemos não serão salvas no banco de dados.

Consultando dados de uma tabela

Aprendemos como inserir dados em um banco de dados SQLite, mas também precisamos consultar dados do banco de dados para serem usados ​​por nosso programa ou usuários. Para consultar dados, podemos usar a instrução SELECT do SQL sob o método execute (). A sintaxe básica da instrução SELECT é mostrada abaixo.

SELECT column_names FROM table_name

O column_names na sintaxe será o nome das colunas que precisamos consultar. Essas colunas devem estar presentes na tabela cujo nome é dado no lugar de Nome da tabela. Agora vamos ver como poderíamos usar esta sintaxe para consultar dados de nossa tabela de funcionários. Basta executar o seguinte código para ver uma ilustração.

import sqlite3 conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") cur.execute ("SELECT id, nome FROM funcionário") table = cur.fetchall () para i na tabela: print (i) cur.close () conn.commit () conn.perto()

A saída fornecida pelo programa acima é mostrada abaixo.

O programa acima irá consultar a tabela de funcionários para as colunas eu ia e nome. Podemos coletar os dados que foram retornados usando o fetchall () método do objeto cursor. Os dados retornados são uma lista python contendo as linhas que consultamos. Para exibir linhas individuais, temos que usar o loop Python for para iterar sobre a lista; você pode ler mais sobre o Python for loop aqui. Agora vamos ver algumas coisas úteis que podem ser realizadas com a instrução SELECT.

Obter todos os dados de uma tabela

Às vezes, é necessário buscar todos os registros de uma tabela de banco de dados. Para obter todos os registros usando a instrução SELECT do SQL, precisamos seguir a sintaxe básica fornecida abaixo:

SELECT * FROM nome_tabela

O * símbolo será usado para denotar todas as colunas, e usando isso, podemos consultar todas as colunas de uma tabela SQLite. Para buscar todos os registros do funcionário da tabela que criamos anteriormente, precisamos executar o seguinte código.

import sqlite3 conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") cur.execute ("SELECT * FROM funcionário") rows = cur.fetchall () print ("\ n [+] Consultando os dados \ n") para i nas linhas: print (i) cur.close () conn.commit () conn.perto()

O código acima irá mostrar todos os registros presentes na tabela de funcionários que criamos anteriormente. A saída do programa será mais ou menos assim:

Consultar dados em ordem específica

Às vezes, precisamos consultar dados de uma tabela em uma ordem definida, como Crescente ou Decrescente. Podemos usar a instrução SELECT com a palavra-chave ORDER BY para exibir os dados em ordem. A sintaxe básica da palavra-chave ORDER BY na instrução SELECT é:

SELECT column_name FROM table_name ORDER BY column_name

Vamos ver como podemos usar a palavra-chave ORDER BY para exibir os dados da tabela de funcionários, ordenados pelo nome.

import sqlite3 conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") cur.execute ("SELECT * FROM funcionário ORDER BY nome") table = cur.fetchall () para i na tabela: print (i) cur.close () conn.commit () conn.perto()

Você pode ver a saída do código acima, conforme mostrado abaixo.

Você pode notar na saída que os dados foram exibidos na ordem crescente da coluna nome.

Atualizando registros em uma tabela

Existem muitas situações em que queremos atualizar a tabela de nossos bancos de dados. Por exemplo, se estivermos usando o banco de dados para um aplicativo escolar, precisaremos atualizar os dados se um aluno for transferido para uma nova cidade. Podemos atualizar rapidamente uma linha de qualquer tabela de nosso banco de dados usando o ATUALIZAR declaração de SQL no método execute (). Precisaremos usar a cláusula WHERE do SQL como condição para selecionar o funcionário. A sintaxe básica do ATUALIZAR declaração é mostrada abaixo.

ATUALIZAR nome_tabela SET update_required WHERE Some_condition

Veja o exemplo abaixo como uma ilustração da instrução UPDATE.

import sqlite3 conn = sqlite3.conectar ("amostra.db ") print (" \ n [+] Conectado com sucesso ao banco de dados ") cur = conn.cursor () print ("\ n [+] Cursor foi configurado com sucesso") print ("\ n [+] Dados antes da atualização \ n") cur.execute ("SELECT * FROM funcionário") antes de = cur.fetchall () for i in before: print (i) cur.execute ("UPDATE funcionário SET nome = 'Aditya' onde nome = 'Sam'") print ("\ n [+] Dados após atualização \ n") cur.execute ("SELECT * FROM funcionário") após = cur.fetchall () for i in after: print (i) cur.close () conn.commit () conn.perto()

O programa acima irá atualizar o funcionário da mesa. Substitui o nome Sam com o nome Aditya onde quer que apareça na tabela. Veja a imagem abaixo para a saída do programa.

Conclusão

Este é o nosso guia abrangente para realizar algumas tarefas básicas relacionadas ao banco de dados SQLite usando Python. No próximo tutorial, veremos alguns usos mais avançados que devem levá-lo ao próximo nível de aprendizado de banco de dados SQLite para Python. Fique ligado no FOSSLinux.

Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...
Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...