Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Python SQL – Como usar os bancos de dados SQLite, MySQL e PostgreSQL com Python


Uma das minhas maiores alegrias como desenvolvedor é aprender como diferentes tecnologias se cruzam.

Ao longo dos anos tive a oportunidade de trabalhar com diferentes tipos de software e ferramentas. Das muitas ferramentas que usei, Python e Structured Query Language (SQL) são duas das minhas favoritas.

Neste artigo, vou compartilhar com você como o Python e os diferentes bancos de dados SQL interagem.

Vou falar sobre os bancos de dados mais populares, SQLite, MySQL e PostgreSQL. Explicarei as principais diferenças de cada banco de dados e os casos de uso correspondentes. E terminarei o artigo com algum código Python.

O código mostrará como escrever uma consulta SQL para extrair dados de um banco de dados PostgreSQL e armazenar os dados em um quadro de dados pandas.

Se você não estiver familiarizado com bancos de dados relacionais (RDBMS), sugiro que consulte o artigo de Sameer sobre terminologia básica de RDBMS aqui. O restante do artigo usará os termos mencionados no artigo de Sameer.

SQLite


SQLite é mais conhecido por ser um banco de dados integrado. Isso significa que você não precisa instalar um aplicativo extra ou usar um servidor separado para executar o banco de dados.

Se você estiver criando um MVP ou não precisar de muito espaço de armazenamento de dados, convém usar um banco de dados SQLite.

As vantagens são que você pode se mover mais rápido com um banco de dados SQLite em relação ao MySQL e PostgreSQL. Dito isso, você ficará preso a uma funcionalidade limitada. Você não poderá personalizar recursos ou adicionar muitas funcionalidades multiusuário.

MySQL/PostgreSQL


Existem diferenças distintas entre MySQL e PostgreSQL. Dito isso, dado o contexto do artigo, eles se encaixam em uma categoria semelhante.

Ambos os tipos de banco de dados são ótimos para soluções corporativas. Se você precisa escalar rápido, MySQL e PostgreSQL são sua melhor aposta. Eles fornecerão infraestrutura de longo prazo e reforçarão sua segurança.

Outra razão pela qual eles são ótimos para empresas é que eles podem lidar com atividades de alto desempenho. Instruções de inserção, atualização e seleção mais longas precisam de muito poder de computação. Você poderá escrever essas instruções com menos latência do que um banco de dados SQLite forneceria.

Por que conectar Python e um banco de dados SQL?


Você pode estar se perguntando:"por que devo me preocupar em conectar o Python e um banco de dados SQL?"

Existem muitos casos de uso para quando alguém deseja conectar o Python a um banco de dados SQL. Como mencionei anteriormente, você pode estar trabalhando em um aplicativo da web. Nesse caso, você precisaria conectar um banco de dados SQL para poder armazenar os dados provenientes do aplicativo web.

Talvez você trabalhe em engenharia de dados e precise criar um pipeline de ETL automatizado. Conectar o Python a um banco de dados SQL permitirá que você use o Python para seus recursos de automação. Você também poderá se comunicar entre diferentes fontes de dados. Você não terá que alternar entre diferentes linguagens de programação.

Conectar Python e um banco de dados SQL também tornará seu trabalho de ciência de dados mais conveniente. Você poderá usar suas habilidades em Python para manipular dados de um banco de dados SQL. Você não precisará de um arquivo CSV.

Como os bancos de dados Python e SQL se conectam


Os bancos de dados Python e SQL se conectam por meio de bibliotecas Python personalizadas. Você pode importar essas bibliotecas para seu script Python.

As bibliotecas Python específicas do banco de dados servem como instruções complementares. Essas instruções orientam seu computador sobre como ele pode interagir com seu banco de dados SQL. Caso contrário, seu código Python será uma linguagem estrangeira para o banco de dados ao qual você está tentando se conectar.

Como configurar o projeto


Vamos pegar um banco de dados PostgreSQL, AWS Redshift, por exemplo. Primeiro, você vai querer importar a biblioteca psycopg. É uma biblioteca Python universal para bancos de dados PostgreSQL.
#Library for connecting to AWS Redshift
import psycopg

#Library for reading the config file, which is in JSON
import json

#Data manipulation library
import pandas as pd

Você notará que também importamos as bibliotecas JSON e pandas. Importamos JSON porque criar um arquivo de configuração JSON é uma maneira segura de armazenar suas credenciais de banco de dados. Não queremos mais ninguém de olho neles!

A biblioteca pandas permitirá que você use todos os recursos estatísticos dos pandas para seu script Python. Nesse caso, a biblioteca permitirá que o Python armazene os dados que sua consulta SQL retorna em um quadro de dados.

Em seguida, você desejará acessar seu arquivo de configuração. O json.load() A função lê o arquivo JSON para que você possa acessar suas credenciais de banco de dados na próxima etapa.
config_file = open(r"C:\Users\yourname\config.json")
config = json.load(config_file)


Agora que seu script Python pode acessar seu arquivo de configuração JSON, você desejará criar uma conexão de banco de dados. Você precisará ler e usar as credenciais do seu arquivo de configuração:
con = psycopg2.connect(dbname= "db_name", host=config[hostname], port = config["port"],user=config["user_id"], password=config["password_key"])
cur = con.cursor()

Você acabou de criar uma conexão com o banco de dados! Ao importar a biblioteca psycopg, você traduziu o código Python que escreveu acima para falar com o banco de dados PostgreSQL (AWS Redshift).

Por si só, o AWS Redshift não entenderia o código acima. Mas como você importou a biblioteca psycopg, agora você fala um idioma que o AWS Redshift pode entender.

O bom do Python é que ele possui bibliotecas para SQLite, MySQL e PostgreSQL. Você poderá integrar as tecnologias com facilidade.

Como escrever uma consulta SQL


Sinta-se à vontade para baixar os dados do futebol europeu para o seu banco de dados PostgreSQL. Eu estarei usando seus dados para este exemplo.

A conexão de banco de dados que você criou na última etapa permite que você escreva SQL para armazenar os dados em uma estrutura de dados compatível com Python. Agora que você estabeleceu uma conexão de banco de dados, você pode escrever uma consulta SQL para começar a extrair dados:
query = "SELECT *
         FROM League
         JOIN Country ON Country.id = League.country_id;"

O trabalho ainda não está feito, no entanto. Você precisa escrever algum código Python adicional que execute a consulta SQL:
#Runs your SQL query
execute1 = cur.execute(query)
result = cur.fetchall()

Então você precisa armazenar os dados retornados em um quadro de dados pandas:
#Create initial dataframe from SQL data
raw_initial_df = pd.read_sql_query(query, con)
print(raw_initial_df)

Você deve obter um quadro de dados do pandas (raw_initial_df) que se parece com isso:

Existe um banco de dados para todos


SQLite, MySQL e PostgreSQL têm seus prós e contras. O que você selecionar deve depender das necessidades do seu projeto ou da empresa. Você também deve considerar o que você precisa agora versus vários anos no caminho.

O importante a lembrar é que o Python pode se integrar a cada tipo de banco de dados.

Este artigo mostra o que é possível conectar o Python a um banco de dados SQL. Adoro ver como os softwares se cruzam e se combinam para agregar valor incrível.

Se você quiser mais desse tipo de conteúdo, pode me encontrar no Course to Hire! Quero ajudar mais pessoas a aprender como codificar e conseguir um emprego em tecnologia. Entre em contato para qualquer dúvida ou se quiser apenas dizer oi :)