Principais consultas SQL em Python que todo desenvolvedor Python deve conhecer

Publicados: 2021-01-29

SQL significa linguagem de consulta estruturada que ajuda no gerenciamento, manipulação e armazenamento de bancos de dados relacionais. Um banco de dados relacional compreende coleções de tabelas que são correlacionadas em uma ou outra forma. Várias tabelas nos permitem segregar diferentes entidades das informações de destino e evitar que centenas de colunas sejam agrupadas em uma tabela que possa dificultar o gerenciamento do banco de dados.

É uma linguagem de consulta e não o próprio banco de dados. Essas consultas podem ser realizadas em qualquer sistema de gerenciamento de banco de dados relacional como Oracle, Microsoft SQL Server, mas existe uma abordagem Python para criar e executar consultas SQL.

Índice

SQLite3

Esta é a biblioteca interna do Python que nos permite criar um banco de dados leve sem a necessidade de executar um modelo cliente-servidor real. Ele pode ser usado internamente pelos aplicativos para armazenar dados e executar comandos SQL. O pacote é fácil de usar e permite replicar o mesmo esquema em qualquer banco de dados baseado em produção como o Postgresql. Vamos ver como configurar o banco de dados.

  • Declaração de importação padrão:

importar sqlite3 como quadrado

A biblioteca é importada como um alias “sq”.

  • Agora, precisamos criar uma conexão com o banco de dados. O objeto de conexão servirá para este propósito:

conexão = sq.connect(“exemplo.db”)

Se este arquivo não for criado antes, ele será criado assim que este comando for executado.

  • Para acessar e buscar informações do banco de dados, um objeto cursor precisa ser criado.

cursor = conexão.cursor()

Agora que a configuração básica foi feita, podemos enviar os dados para o banco de dados criando as respectivas tabelas, mas antes disso, vamos revisar alguns comandos SQL.

Comandos básicos em SQL

SQL é excelente em termos de comandos legíveis em inglês. Geralmente são digitados em letras maiúsculas e não há restrição quanto a isso. Isso geralmente é praticado para que as palavras-chave da consulta sejam destacadas e se tornem distinguíveis dos atributos da tabela. Mas como agora temos IDEs poderosos que os destacam em uma cor diferente, qualquer método funcionaria.

1. Criar Tabela

Isso permite que você crie os objetos de retenção de dados, tabelas em seu banco de dados. Um banco de dados pode ter muitas tabelas com uma ou várias relações. As tabelas têm cabeçalhos para cada coluna que descreve o valor que ela contém. Ao criar a tabela, você precisa especificar o nome da coluna, o tipo de dados que ela conterá e o tamanho. Você pode adicionar outros atributos, como se a coluna for uma chave primária, pode ter valores nulos e assim por diante.

Uma tabela básica pode ser criada como:

CREATE TABLE empresa_dados (

eu não fiz,

nome varchar (24),

no_of_employee int

);

2. SELECIONAR e DE

Como o nome sugere, é usado para selecionar e buscar os dados das tabelas. É o passo mais importante que lhe permitiria dar uma olhada nos dados. É semelhante à função de cabeça ou cauda do Pandas.

Uma consulta simples usando esses comandos ficaria assim:

SELECT <column_name(s)>

FROM <table_name>;

Para buscar todas as colunas da tabela, você pode colocar a estrela (*) em vez de todos os nomes das colunas. A palavra-chave LIMIT ajuda a definir o número máximo de linhas. Considere esta consulta:

SELECIONAR *

FROM example_table

LIMITE 5;

3. Onde

A cláusula where é usada para especificar as condições adicionais sobre a consulta. Você pode incluir o intervalo para colunas, qualquer comparação específica ou negações.

Por exemplo:

SELECT client_name, company_name

DE empresa_dados

WHERE nome_da_empresa = 'upGrad';

4. Insira

Esta cláusula é usada para adicionar os valores às tabelas de dados. Os valores são inseridos na mesma ordem em que os nomes das colunas são adicionados à tabela no comando criar tabela. Pode-se inserir várias linhas ou uma de cada vez.

Por exemplo, a consulta abaixo insere 3 registros em uma tabela:

INSERT INTO company_data (id, name, no_of_employees)

VALORES

(1, 'empresaz_A', 100),

(2, 'empresa_B', 200),

(3, 'empresa_C', 500);

Executando via Python

Agora que você está ciente dos comandos, é hora de executá-los no código. Até agora estamos conectados ao banco de dados e criamos um objeto cursor. Este objeto ajudará na execução dos comandos no banco de dados:

cursor.execute(''' <QUERY> ''')

A consulta é passada como uma string e entre aspas triplas. Essa alteração não será refletida no banco de dados até que você confirme essa alteração. Fechar a conexão com o banco de dados no final garante que nenhuma nova execução será feita após esse ponto.

Veja este código simples:

importar sqlite3 como quadrado

conexão = sq.connect(“exemplo.db”)

cursor = conexão.cursor()

cursor.execute(”'

CRIAR TABELA tabela1 (

eu não fiz,

nome varchar (24)

)

”')

cursor.execute(”'

INSERT INTO tabela1 (id, nome)

VALORES

(1, 'atualização'),

(2, 'blogues')

”')

cursor.execute(”'

SELECIONAR *

DA tabela1

”')

conexão.commit()

conexão.fechar()

Dicas importantes

1. Como as consultas são passadas como strings, modificá-las usando f-string pode parecer uma boa opção para tornar o programa dinâmico e controlado pelo usuário, mas pode causar alguns problemas de segurança, como ataques de injeção de SQL. Para evitar isso, use o espaço reservado “?” onde você quiser substituir alguns valores na consulta. Por exemplo:

cursor.execute('“SELECT ? FROM ?''', col_name, table_name)

Você pode pedir ao usuário para fornecer o nome da coluna e esse valor será substituído aqui.

2. Use funções como fetchone() e fetchall() para iterar sobre os resultados. Fetchone retorna a próxima linha na consulta e fetchall retorna todas as linhas buscadas pelo cursor. Os resultados são retornados como tupla para que não possam ser modificados por funções externas no programa.

3. Se você deseja adicionar valores em massa ao banco de dados, você pode usar a função executemany() e passar a lista de tuplas contendo os valores a serem adicionados. Por exemplo:

to_add = [(1, 'olá') , (2, 'Mundo')]

cursor.executemany('INSERT INTO table VALUES (?, ?)', to_add)

Leia também: Ideias e tópicos do projeto Python

Aprenda cursos de ciência de dados online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

SQL é a linguagem de banco de dados preferida e fácil de entender. A maioria dos iniciantes em Data Science são aconselhados a praticar SQL, pois melhora o processo de recuperação de dados e dá uma ideia de como a Engenharia de Dados é realizada. É a linguagem padrão para qualquer manipulação de banco de dados e oferece acesso mais rápido ao banco de dados.

Se você está curioso para aprender sobre ciência de dados, confira o PG Diploma in Data Science do IIIT-B & upGrad, que é criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1- on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.

O que você sabe sobre restrições em SQL?

As restrições determinam que tipo de dados serão inseridos na tabela. Eles são especificados durante a criação da tabela e podem ser aplicados a um único campo ou a vários campos. As restrições em SQL são:
NOT NULL- Impede que o valor NULL seja inserido em um campo.
CHECK- Verifica se todos os valores em um campo satisfazem a condição dada.
DEFAULT- Atribui um valor padrão a um campo automaticamente se nenhum valor tiver sido inserido.
UNIQUE- Permite que apenas valores únicos sejam inseridos em um campo.
INDEX- Indexa um campo proporcionando uma recuperação mais rápida de registros.
PRIMARY KEY- Identifica exclusivamente cada registro em uma tabela.
FOREIGN KEY- Restringe ações que podem prejudicar os links entre tabelas.

Explique um índice e seus tipos?

Um índice ou um índice de banco de dados pode ser referido como uma tabela de pesquisa especial que torna a operação de recuperação de dados muito mais rápida. Ele consome mais memória e gravações adicionais para pesquisar os dados mais rapidamente. Um índice pode ser de 4 tipos:
1. Índice Único
2. Índice não exclusivo
3. Índice Agrupado

O que é um relacionamento em SQL e quais são seus tipos?

Uma relação entre várias entidades ou vários objetos tangíveis e intangíveis que têm algo a ver uns com os outros é conhecida como relacionamento. Existem 4 tipos de relacionamentos no SQL:
1. Individual
2. Um para muitos/muitos para um
3. Muitos para muitos
4. Relações de autorreferência.