Selecionando dados de uma tabela: SQL puro
Como você viu no vídeo, para acessar e manipular os dados no banco, primeiro precisamos estabelecer uma conexão usando o método .connect() no engine. Isso acontece porque a função create_engine() que você usou antes retorna uma instância de um engine, mas ela não abre de fato uma conexão até que alguma ação exija uma, como uma consulta.
Usando o que acabamos de aprender sobre SQL e aplicando o método .execute() na nossa conexão, podemos aproveitar uma consulta SQL pura para consultar todos os registros na tabela census. O objeto retornado por .execute() é um ResultProxy. Nesse ResultProxy, podemos então usar o método .fetchall() para obter os resultados — ou seja, o ResultSet.
Neste exercício, você vai usar uma consulta SQL tradicional. Perceba que, ao executar uma consulta usando SQL puro, você consulta a tabela diretamente no banco de dados. Em particular, nenhuma etapa de reflexão é necessária.
No próximo exercício, você vai passar para o SQLAlchemy e começar a entender suas vantagens. Vamos lá!
Este exercício faz parte do curso
Introdução a Bancos de Dados em Python
Instruções do exercício
- Use o método
.connect()deenginepara criar uma conexão. - Construa uma instrução SQL para consultar todas as colunas de
censuse armazene-a emstmt. Observe que sua instrução SQL deve ser uma string. - Use os métodos
.execute()e.fetchall()emconnectione armazene o resultado emresults. Lembre-se de que.execute()vem antes de.fetchall()e questmtprecisa ser passado para.execute(). - Imprima
results.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')
# Create a connection on engine
connection = ___
# Build select statement for census table: stmt
stmt = ____
# Execute the statement and fetch the results: results
results = ____
# Print results
print(____)