Introdução a bancos de dados SQLite com Python e módulo sqlite3
Summary
TLDRThis video by Fábio from Boson Treinamentos introduces SQLite databases with Python. It explains SQLite as a lightweight, self-contained relational database management system, often embedded in devices like smartphones and tablets. SQLite is serverless, meaning it doesn't require a separate server process, and it's transactional with ACID properties. The tutorial covers how to use Python's sqlite3 module to create and manage databases, emphasizing the importance of understanding concepts like connectors, cursors, and transactions. It demonstrates creating a database, inserting data, and querying with Python, concluding with the use of a graphical tool, SQL Studio, for database management.
Takeaways
- 📚 SQLite is a lightweight, serverless, and self-contained relational database management system, often embedded in applications.
- 🔗 SQLite is written in C and is available on various platforms including smartphones, tablets, and computers.
- 🌐 The official website for SQLite is sqlite.org, which provides comprehensive documentation and downloads.
- 🐍 Python has SQLite built-in, which means there's no need for separate installation. It can be used via the sqlite3 module.
- 🛠️ SQLite is case insensitive and supports dynamic types, allowing for storing any value in any column regardless of the declared type.
- 🔄 SQLite supports transactions that are atomic, consistent, isolated, and durable (ACID), ensuring data integrity.
- 📈 SQLite allows for creating in-memory databases for faster access and supports multiple simultaneous database connections.
- 🚀 For developing applications with SQLite, the source code can be included as a file (sqlite3.c) and compiled into the project.
- 🔗 SQLite does not require a separate server process, unlike other database systems such as SQL Server or PostgreSQL.
- 🛡️ SQLite lacks direct network access and does not have built-in user authentication or complex permission systems.
- 📝 The sqlite3 module in Python provides an interface that is compatible with the DB API 2.0, allowing for easy database interaction and portability of code between different database systems.
Q & A
What is SQLite and why is it used?
-SQLite is a relational database management system, which is actually a software library written in the C language. It provides an environment for managing relational databases. It is lightweight in terms of setup, administration, and the resources required to run the system. It is embedded in almost all smartphones, tablets, and computers, and is used by applications that access certain types of databases.
Why is SQLite referred to as 'light'?
-SQLite is referred to as 'light' because it is very lightweight in terms of configuration, administration, and the resources needed to operate the system.
How can I find more information about SQLite?
-You can find more information about SQLite, including its extensive documentation and downloads, on its official website at sqlite.org.
Is it necessary to install SQLite separately when using Python?
-No, it is not necessary to install SQLite separately when using Python because it is already embedded within the Python language. You can simply use it without any additional installation.
What are some key characteristics of SQLite?
-SQLite is self-contained, meaning it requires minimal support from the operating system or other libraries. It is serverless, meaning it does not require a server to function, unlike other database systems like SQL Server or PostgreSQL. It also has zero-configuration due to its serverless architecture and supports transactions with ACID properties.
What does it mean for SQLite to be serverless?
-Being serverless means that SQLite does not require a separate server process to operate. The database is integrated directly into the application that accesses the database, which simplifies deployment and management.
How does SQLite handle data types in its tables?
-SQLite employs dynamic types for its tables, which means it is possible to store any value in any column, regardless of the data type. This is different from traditional databases that enforce strict data types for each column.
What is the purpose of the sqlite3 module in Python?
-The sqlite3 module in Python provides an interface that is SQL-compatible with the DB-API 2.0 specification, as described by PEP 24. This encourages similarity between Python modules used for accessing databases, making them easier to understand and use for developers.
What is the role of a cursor in SQLite when using Python?
-A cursor is an object used to navigate and manipulate the results of SQL execution in the database. It is obtained from a database connection and allows executing SQL commands and iterating over the results, as well as managing transactions in the database.
What is a transaction in the context of SQLite and database management?
-A transaction is a sequence of operations that are treated as a single unit of work in the database. It includes various operations like inserting, updating, deleting, and querying records. Transactions ensure data consistency and integrity according to the ACID properties.
How can you ensure that changes made to the SQLite database are saved?
-To ensure that changes made to the SQLite database are saved, you need to use the commit method provided by the connector. This confirms and permanently saves the changes made to the database. If there is a failure, you can use the rollback method to undo the changes.
What is the basic workflow for creating and managing a SQLite database using Python?
-The basic workflow involves creating a connection to the database using the Connect method, creating a cursor from this connection, using the cursor to execute SQL commands, committing changes if necessary, and finally closing the cursor and the connection once the work is done.
How can you insert data into a SQLite table using Python?
-To insert data into a SQLite table using Python, you can use the cursor's execute method with an INSERT INTO statement followed by the table name and values to be inserted. After executing the insert command, you must commit the changes to save them to the database.
What is a context manager and how does it simplify working with SQLite databases in Python?
-A context manager is a language feature that allows for the management of resources using the 'with' statement. When working with SQLite databases in Python, a context manager ensures that the commit or rollback is done automatically, which simplifies the code and makes it more robust by handling these operations without manual intervention.
How can you verify if data has been inserted into a SQLite table correctly?
-To verify if data has been inserted correctly, you can perform a SELECT query using the cursor's execute method to fetch the data from the table and then use fetchall() to retrieve all the records. You can also iterate over the cursor's results and print each row to check the inserted data.
What is the significance of using placeholders in SQL statements when inserting data?
-Placeholders in SQL statements, such as the question marks (?), are used to bind the values from Python with the SQL statement. This practice is important for security reasons as it helps to prevent SQL injection attacks.
How can you use a graphical tool to manage and manipulate a SQLite database?
-You can use graphical tools like SQL Studio to manage and manipulate a SQLite database. These tools allow you to connect to the database, view and edit tables, run SQL queries, and perform various database operations through a user-friendly interface.
What are some limitations of SQLite when compared to other database systems?
-Some limitations of SQLite include the lack of direct network access since it does not provide server management, no support for user authentication, and no defined database permissions. However, it is important to note that these limitations can be addressed by implementing custom access control and security measures within the application itself.
Can you prototype applications using SQLite and then port the code to other database systems?
-Yes, you can prototype applications using SQLite and then port the code to other types of databases such as PostgreSQL or MySQL. This is useful for initial development and testing phases before migrating to a more robust database system.
How does SQLite handle case sensitivity in its queries?
-SQLite is case insensitive, meaning it does not differentiate between uppercase and lowercase letters in queries.
Outlines
🔧 Introduction to SQLite and Python Integration
This paragraph introduces the concept of SQLite as a lightweight, serverless, and self-contained relational database management system (RDBMS) embedded within the Python language. It highlights SQLite's ease of configuration, administration, and minimal resource requirements. SQLite is widely used across various devices, including smartphones and tablets, and is an open-source software available at sqlite.org. The speaker emphasizes that Python already includes SQLite, so no additional installation is needed. The paragraph also touches on SQLite's features, such as its dynamic data types, support for multiple simultaneous database access, and its serverless architecture, which simplifies deployment and management. However, it lacks direct network access and built-in user authentication, which developers must implement within their applications.
🛠 Setting Up SQLite with Python
The speaker explains the preliminary steps required to work with SQLite databases using Python. This includes understanding key concepts such as 'connectors' or 'adapters' that provide an interface for connecting to specific databases, and 'cursors' that are used to navigate and manipulate the results of SQL queries. The paragraph also discusses the importance of transactions in maintaining data consistency and integrity within the database. The speaker outlines a workflow for creating a database and recording data, which involves creating a connection with the database using the 'connect' method, followed by creating a cursor to execute SQL commands and manage transactions. The workflow concludes with closing the cursor and database connection after completing the database operations.
📚 Creating a Database and Table with SQLite in Python
The paragraph demonstrates the practical steps to create a SQLite database and a table using Python. It begins by importing the sqlite3 module and establishing a connection to the database, which will create a new database file if it doesn't exist or connect to the existing one. The speaker then shows how to create a cursor object and use it to execute SQL commands, such as creating a table named 'filme' with columns for title, year, and duration. The process involves writing a SQL statement within the 'execute' method of the cursor object and confirming the creation of the table by querying the SQLite master table. The speaker also explains how to insert data into the table using the 'insert into' SQL command and the importance of committing changes to the database to ensure they are saved.
📈 Inserting and Querying Data in SQLite Database
This section details the process of inserting multiple records into the SQLite database and querying the inserted data. The speaker first inserts individual film records using the 'insert into' statement and the 'execute' method of the cursor. Afterward, the speaker introduces a more efficient way to insert multiple records at once using a list of tuples, each representing a film's data. The 'executemany' method is used in conjunction with placeholders to bind the Python list data with the SQL statement. The speaker also emphasizes the importance of committing these changes with 'commit' to save them to the disk. To verify the insertion, the speaker executes a 'select' statement to retrieve and display the list of inserted films in the database.
🔄 Advanced SQLite Operations and Error Handling
The speaker discusses advanced operations in SQLite, such as using a for loop to iterate over a cursor's results and print each row, which allows for ordered data retrieval. They also introduce the concept of using a context manager with the 'with' statement for handling database connections, which automates commit and rollback processes, enhancing code robustness and simplifying error handling. The paragraph includes a practical example of using a context manager to insert a new film record and handle potential exceptions with a try-except block. The speaker also mentions the importance of closing the database connection after operations are completed to avoid issues like the inability to delete the database file while it's in use.
🖥️ Utilizing Graphical Tools for SQLite Database Management
In the final paragraph, the speaker introduces graphical tools like SQL Studio for managing and manipulating SQLite databases. They provide a brief tutorial on using SQL Studio, which includes downloading the tool from GitHub, setting it up, and connecting it to an existing SQLite database file. The speaker demonstrates how to use the tool to view and edit database structures and data, run SQL queries through an integrated editor, and manage database connections. The paragraph concludes with a mention of other similar tools available for SQLite database management and the benefits of using such tools for tasks like data visualization and error correction.
📘 Conclusion and Further Learning with SQLite and Python
The speaker wraps up the video by summarizing the key points covered, including creating a SQLite database, setting up tables, inserting records, and conducting queries. They express hope that the video was helpful and encourage viewers to subscribe to the channel, activate notifications for new content, and consider becoming a member of the channel's club for additional resources. The speaker also invites viewers to visit their website and follow them on social media for more information and future tutorials on SQLite and Python.
Mindmap
Keywords
💡SQLite
💡Database Management System (DBMS)
💡Python
💡Relational Database
💡Cursor
💡Transaction
💡Dynamic Types
💡SQLite3 Module
💡Connection
💡In-Memory Database
💡Graphical User Interface (GUI) Tools
Highlights
SQLite is a lightweight, serverless, self-contained database engine that requires minimal setup and administration.
SQLite is widely used in smartphones, tablets, and computers, and is embedded within the Python language.
SQLite is open-source software available at sqlite.org, with extensive documentation and downloads.
SQLite databases are file-based, and the engine does not require a separate server process to operate.
SQLite supports ACID transactions, ensuring that database operations are atomic, consistent, isolated, and durable.
SQLite allows for dynamic data types, where any value can be stored in any column regardless of the declared type.
SQLite supports single database connections to access multiple database files simultaneously.
SQLite databases can be created in-memory for faster access, as an alternative to on-disk storage.
SQLite does not support network access or user authentication directly, requiring application-level security.
SQLite is case insensitive and does not differentiate between uppercase and lowercase letters.
The sqlite3 module in Python provides an interface to interact with SQLite databases using SQL commands.
The DB-API 2.0 specification encourages consistency among Python database modules, making them more understandable and portable.
A database connection in Python is established using the sqlite3.connect() method, which creates or connects to a database file.
Cursor objects in Python are used to execute SQL commands and iterate over the results within a database.
The commit method is essential for confirming changes to the database, while rollback undoes any failed changes.
Python's sqlite3 module allows for creating, managing, and querying SQLite databases with Python scripts.
The sqlite3 module supports inserting multiple records into a table using the executemany() method.
Using placeholders (?) in SQL commands helps prevent SQL injection attacks and is a security best practice.
The context manager with the 'with' statement in Python automates commit or rollback processes for database transactions.
Graphical tools like SQLite Studio can be used alongside Python scripts to manage and visualize SQLite databases.
SQLite is particularly useful for lightweight applications, such as those running on smartphones or tablets.
Transcripts
fala pessoal aqui é o Fábio da boson
Treinamentos e nesse vídeo vamos falar
sobre bancos de dados sqlite com python
primeiramente Uma Breve introdução ao
que é o sqlite o sqlite que é um sistema
de gerenciamento de bancos de dados
relacionais Na verdade uma biblioteca de
software feita em linguagem C que
fornece um ambiente para gerenciamento
de bancos de dados do tipo relacional e
o light da palavra S Light significa que
ele é muito leve em termos de
configuração administração e também dos
recursos que são necessários para para
rodar esse tipo de sistema o sqlite você
vai encontrar em todos os smartphones
tablets na maioria dos computadores e
outros equipamentos que utilizem
aplicações que acessam determinados
tipos de bancos de dados sendo software
livre e de código aberto o site oficial
do sqlite é o sqlite.org este que vocês
vem aqui na tela aqui você vai encontrar
toda a informação necessária a respeito
desse sistema incluindo Sua vasta
documentação downloads etc a gente não
vai precisar baixar porque o SQL ele já
é embutido dentro da linguagem Python
Então não é necessário instalar ele já
está lá É só usar o sqlite tem umas
características interessantes ele é um
sistema
autocontido significa que ele ele ele
requer o suporte mínimo do sistema
operacional ou de uma outra
biblioteca e assim você pode utilizar em
qualquer ambiente principalmente em
dispositivos m móveis incorporados tipo
smartphone iPhones consoles de jogos etc
o código fonte dele tá disponível na
forma de um arquivo sqlite
3.cc desenvolver uma aplicação que
utilize o sqlite É só colocar os
arquivos específicos dele no projeto e
fazer a compilação ele é sem Servidor
serverless ou seja ele não requer um
servidor para funcionar Diferentemente
de outros sistemas de bancos de dados
como SQL server o post igres uma SQL que
precisam de um processo rando em um
servidor para operar um processo
separado Ou seja você precisa instalar
um server para isso skif não precisa
disso o banco de dados é integrado
diretamente à aplicação que acessa o
banco de dados sua configuração é zero
justamente por conta do sua arquitetura
serverless a gente não precisa instalar
sqlite a de usar não tem nenhum processo
de servidor para configurar iniciar ou
interromper ele também não usa arquivos
de configuração e ele é transacional
todas as transações do SQL são comp com
com acid Isso significa que as consultas
alterações são atômicas consistentes
isoladas e duráveis toal do aed ele
também possui suporte a subconsultas
transações junções pesquisa de texto
restrição de chave estrangeira e muitas
outras funcionalidades mas não é 100%
compatível com tudo o que o SQL nos
fornece para nós aqui isso aqui é
suficiente nosso objetivo é criar
scripts em Python que consigam Criar e
manipular bancos de dados utilizando SQL
mas skite também tem alguns outros
recursos interessantes ele emprega tipos
dinâmicos para as tabelas Ou seja é
possível armazenar qualquer valor em
qualquer coluna independente do tipo de
dados bem diferente de bancos de dados
tradicionais permite uma única conexão
de banco de dados eh acessando vários
arquivos do banco simultaneamente a
gente consegue assim ter tabelas de
bancos separados e uni-las dentro da
nossa aplicação e até mesmo copiar dados
de um banco para outro e ele também
permite criar bancos de dados de acesso
na memória em vez de disco cujo acesso
obviamente vai ser muito mais rápido
agora por não ter um servidor para
gerenciamento o sqlite não provê acesso
direto pela rede Além disso ele não tem
suporte de autenticação com usuários
permissões definidas ório de banco de
dados no caso permissão para criar
tabela inserir excluir registros etc mas
lógico que a gente tem que implementar
autenticação e segurança nosso próprio
controle de acesso na aplicação em si é
possível a gente prototipar aplicativos
usando sqlite e depois portar o código
para outro tipo de banco de dados como
post gress ou mais SQL e outra coisa
importante o sqlite é case insensitive
não diferencia maiúsculas de minúsculas
introdução super rápid só pra gente ter
uma noção do que é o sqlite e pra gente
poder trabalhar com sqlite no Python a
gente vai usar um módulo específico
Chamado sqlite 3 Esse é um módulo que
fornece uma interface SQL compatível com
a especificação Deb api 2.0 que é
descrito pela PEP 24 249 e PEP significa
Python enhancement proposal proposta de
melhoria do Python e essa api ela foi
definida para para incentivar a
similaridade entre os módulos Python que
são usados para acessar bancos de dados
se a gente tem consistência e e
conseguimos tornar os módulos fáceis de
entender gera código que é portável
entre os bancos de dados entre entre si
né entre os sistemas distintos e traz um
alcance mais amplo de conectividade Aí
estão os sites oficiais tanto da
biblioteca quanto da pep 249 o site da
biblioteca é esse aqui sqlite 3 a gente
vai também ter toda a informação
necessária Aqui tem bastante coisa para
você estudar certo a gente vai ver só um
mínimo disso aqui no vídeo de hoje só
entender como é que a gente cria e
Gerencia um banquinho de dados bem
simples de uma tabelinha só e eu vou
deixar os links todos aqui embaixo na
descrição do vídeo também antes da gente
poder criar o banco de dados usando o
Python ou seja antes da gente codificar
vamos entender alguns conceitos básicos
bem simples e rápidos primeiro conceito
é o de conector também chamado de
adaptador conector ou adaptador é a
biblioteca ou módulo no Python que vai
fornecer essa Interface para conexão ao
banco de dados específico e geralmente
com vários métodos e propriedades
atributos para estabelecer conexão com o
banco Enviar as consultas e recuperar os
resultados aqui tem alguns exemplos o
psych pg2 para post SQL o p MySQL para
MySQL Inclusive a gente tem vídeos aqui
no canal sobre o p MySQL dá uma
pesquisadinha e pro sqlite temos o
sqlite 3 essa biblioteca que eu acabei
de mostrar que é que a gente vai
utilizar como conector outro conceito
importante é o de cursor o cursor é um
objeto que vai ser usado para navegar e
manipular os resultados da execução do
SQL no banco de dados de uma consulta
por exemplo e o cursor ele é obtido a
partir de uma conexão com o banco de
dados então a gente estabelece a conexão
e cria o cursor que vai nos permitir
executar os comandos SQL e fazer a
iteração sobre os resultados e também
gerenciar as transações no banco de
dados Então esse é um objeto importante
E além disso a gente precisa entender o
que que é uma transação transação é uma
sequência de operações que vai ser
tratado como se fosse uma única operação
ou uma única unidade de trabalho no
banco de dados inserção de registros
atualizações exclusão consultas variadas
e assim por diante as transações elas
existem para garantir consistência e
integridade dos dados de acordo com o
conceito do essent que eu citei agora H
pouco e elas são gerenciadas com métodos
que são fornecidos pelos conectores por
exemplo o método commit que confirma que
grava inde definitivas alterações no
banco de dados ou rollback que desfaz
alterações realizadas que tenham tido
algum tipo de falha então isso tudo faz
parte do conceito de transação dea
dessas ideias do conector do cursor da
transação e sabendo que a gente vai
utilizar o módulo que o light 3 a gente
vai seguir um fluxo de trabalho para
poder criar um banco de dados e gravar
uns dados nesse banco o fluxo de
trabalho vai ser o seguinte primeiro a
gente cria uma conexão com o banco de
dados para isso existe um método Connect
depois a gente cria um cursor com essa
conexão Depois a gente vai utilizar o
cursor para enviar os comandos ao banco
de dados executar tarefas com os objetos
como as consultas por exemplo se for
feito algum tipo de modificação no banco
de dados como um update um delete ou
insert a gente precisa efetivar a
alteração com o método commit e PR
consultas não precisa ou então a gente
desfaz com RB se houver falha e no final
de tudo finalizamos o nosso trabalho com
o banco de dados a gente fecha o cursor
e a conexão legal esse vai ser o nosso
fluxo de trabalho como é que a gente vai
fazer isso a gente vai fazer isso
utilizando Python e a nossa biblioteca
então agora é a hora da prática vamos lá
pro Python e vamos criar uma tabelinha
um banquinho de dados simples e ver como
é que é isso aqui na
prática tô aqui no meu Júpiter notebook
eu já tenho um scriptz inho que eu vou
mostrar é para vocês como funciona e o
código dele é o que eu vou explicar
deixa eu abrir aqui o meu script bom
como é que a gente trabalha com isso
aqui primeiro a gente tem que criar o
banco de dados e a conexão para isso a
gente vai importar a o módulo sqlite 13
e veja não é necessário instalar ele já
está dentro do Python tá então é só dar
um Import sqlite 3 se você preferir dar
um Alias para elele também fique à
vontade S qualquer coisa e aí a gente
cria a conexão e ou o banco de dados
para isso a gente vai chamar o método
Connect como citado e dentro dos
parênteses entre aspas a gente vai dar o
nome do banco de dados com a extensão
PDB eu vou criar um banco de dados
chamado cinema para gravar dados sobre
filmes e isso vai estar associado ao
objeto com que vai ser a minha conexão a
gente cria conexão assim eu vou executar
isso aqui mas antes Olha só eu vou
mostrar o que que eu tenho na minha
pasta
essa aqui é a pasta Onde tá o script Ó
tem só o script uma pastinha do sqlite
Studio então eu vou executar esse
primeiro comando aqui executei parece
que não aconteceu nada certo é ótimo
quando não aparece nada porque significa
que não houve erro também mas se eu
olhar aqui na pastinha olha lá apareceu
cinema PDB tá criado nosso banco de
dados tamanho dele F size zero claro não
tem nada no banco ainda é só um arquivo
Zerado mas ele já tá criado Então veja
se o banco de dados não existe Esse
comando cria um novo banco de dados se
ele já existe ele estabelece uma conexão
com o banco já existente então o método
Connect ele é inteligente suficiente
para não sobrescrever um banco que já
existe ele usa o que já existe ou cria
um novo esse banco tá conectado ele tá
online agora através desse objeto com
próximo passo é criar o cursor que é
aquele objeto que consegue iterar pelos
itens dentro do banco de dados para isso
a gente chama do com do objeto com o mé
M cursor com os parênteses vazios a
gente só tem que executar isso pronto tá
criado se ele não não emitir nem uma
mensagem de erro é porque funcionou
temos um objeto na memória um cursor
associado ao banco de dados cinema e
agora a gente vai criar uma tabela para
criar a tabela a gente vai usar do
cursor lembra que é o cursor que executa
os
sqls Então a partir do cursor que eu
chamei de cur eu vou chamar o método
Execute esse método ele executa um SQL n
uma declaração SQL no banco de dados que
a gente tá trabalhando eu vou usar um
basicão Create table tabela filme com
três colunas título ano e duração entre
aspas bonitinho veja que eu não tô
especificando quem é chave primária quem
é chave estrangeira os tipos de dados
não é necessário fazer isso com sqlite a
princípio ele vai criar um banco
genérico genérico lembra-se que as
colunas aceitam quaisquer tipos de dados
na prática a gente vai tomar um pouco
mais de cuidado do que isso a gente vai
criar o banco de dados especificando
direitinho os tipos mas isso a gente vai
ver mais paraa frente num projetinho que
a gente vai fazer aqui nessas aulas tá
com mais detalhes Por enquanto só
entender a dinâmica então quando eu
executo Esse comando ele cria uma tabela
ele vai me dar essa mensagem sqlite pcor
@ e um endereço de memória tá criado
isso aqui significa que deu certo a
tabela está criada pra gente ter certeza
mesmo a gente pode fazer eh um select na
na tabela Master do sqlite que é o
sqlite und Master essa aqui é uma tabela
que vai mostrar todos os objetos que a
gente tem no banco de dados então eu
quero ver os nomes que eu tenho dentro
dessa tabela Master ele vai me mostrar
se a tabela foi criada ou não para isso
a gente executa porque também é um SQL
coloco isso num objeto eu chamei de re
de resultado E aí nesse res a gente vai
executar o método fetch One o método
fetch One significa vá buscar um é um M
que retorna uma linha do resultado que
foi obtido Legal então se eu tenho
várias linhas obtidas o fat One busca a
primeira linha desse resultado então
quando eu executar isso aqui ele vai
mostrar para mim que eu tenho a tabela
filme lá dentro olha só só ela tabelinha
filme Note que os resultados eles vêm na
forma de duplas sempre entre parênteses
é o padrão dá para mudar isso dá existe
um recurso no SQL chamado Row Factory
Fábrica de linhas que permite que a
gente mude o formato do retorno das
consultas isso a gente vai ver também
mais pra frente no curso mas por
enquanto ele vai retornar sempre em
tuplas então a tabela tá criada o banco
de dados tá criado a tabela também
dentro desse banco vamos inserir linhas
na tabela para inserir linhas na tabela
é fácil é um insert into Então a gente
vai executar é sempre cursor P Execute E
aí dentro dos parênteses a gente coloca
o comando que a gente quer executar eu
vou dar um insert into film values e
aqui os filmes que eu vou inserir veja
que eu não especifiquei aqui os nomes
das colunas não é necessário desde que
na hora de passar os valores você os
passe por completo e na ordem exata em
que as colunas foram criadas Então tem
que lembrar a ordem em que você criou as
colunas eu criei primeiro título do
filme depois o ano e depois a duração em
minutos então eu vou colocar dois filmes
O Senhor dos Anéis e Conan O Bárbaro tá
separados por vírgulas aqui eu usei um
esqueminha de Doc string tá vendo para
poder eh digitar Esse comando em
múltiplas linhas bonitinho sem me
preocupar com indentação nem nada mas
você pode escrever ele numa linha só se
você quiser não tem problema o
importante é o seguinte ele vai executar
Esse comando mas esse é um comando que
altera a estrutura do banco de dados
tudo que altera a estrutura do banco de
dados precisa ser comit precisa ser
confirmado Então logo após executar isso
a
conexão tem que chamar o método comit
para etiv a mudança no disco no no HD no
arquivo em si senão nada feito fica só
na memória e você vai perder depois que
fechar a conexão então Execute vai
executar Esse comando Depois confirma
então a gente executa esse bloco Tá
feito não reclamou os filmes devem estar
lá dentro pra gente ter certeza fazer
consulta como é que a gente consulta
cursor P Execute e o que a gente quer
por exemplo eu quero saber os títulos da
tabela filme então select título from
fil fil mas que el comum aqui podem ser
retornadas várias linhas uma ou mais
linhas Então em vez de chamar o fat One
para pegar um registro eu vou chamar o
fatch All que significa busque todos
todos os registros então o objeto R vai
buscar todos os registros aqui dentro
estão todos os registros só que num
formato de objeto específico que você
não consegue ler diretamente para você
conseguir ler você usa o método fatch
All Então quando você executa isso ele
traz aqui Olha só uma lista veja que tá
dentro de colchetes de tuplas sendo que
cada tupla é um dos filmes que eu acabei
de inserir temos dois filmes lá dentro
portanto funcionou perfeitamente temos o
banco de dados criado tabela e dados
inseridos vamos inserir mais alguns
registros para aumentar a nossa lista de
filmes eu vou inserir de uma outra forma
agora olha só eu vou criar uma lista
literalmente que eu vou chamar de dados
filmes essa é uma lista de tuplas sendo
que cada tupla vai ter os dados de um
dos filmes separados por vírgulas as
Strings entre aspas e os números não
então Indiana Jones A Última Cruzada
1989 127 minutos e assim por diante
então iso é uma lista E aí eu vou usar
essa lista para inserir todos esses
dados de uma vez na minha tabela como
agora eu vou executar várias linhas de
uma só vez eu posso utilizar um outro
método chamado Execute many para que ele
pegue cada uma das tuplas que estão
dentro da lista e Execute essas tuplas
separadamente E para isso eu vou passar
o comando insert in filme aqui eu já tô
especificando Quais são as colunas né
opcionalmente mas eu vou especificar
porque em valores em vez de escrever os
valores eu vou colocar três
interrogações que que é isso aqui isso
aqui é um
placeholder isso aqui serve para
vincular os valores que estão na lista
do Python com a declaração SQL E para
isso aqui e isso aqui a gente usa para
evitar ataques de injeção de SQL é muito
importante você estabelecer no seu
script para segurança então o método
Execute Men ele sabe como lidar com isso
ele vai pegar esse SQL e vai vincular
com o conteúdo desta lista conteúdo
dessa lista são tuplas com três itens
dentro de cada tupla três valores cada
um dos valores vai ser colocado em sua
vez em uma das posições dadas por essas
interrogações então por exemplo o
primeiro filme indana Jones A Última
Cruzada vai ser injetado aqui o 989 vai
ser injetado aqui e o 127 aqui e aí esse
registro vai ser inserido na tabela de
filmes nas colunas correspondentes o
próprio método execu faz a iteração vai
pro próximo filme e faz todo o processo
de novo injetando filme eh ano e duração
até finalizar a lista que foi passada
aqui como dados filmes e aí lembre-se
isso também faz uma alteração no banco
então no final Precisamos do commit com.
commit então executando isso ele inseriu
aqui aqui embaixo eu mandei executar o
select título from filme e o fetch All
de novo pra gente poder fazer a
verificação E agora aparece pra gente a
lista completa Olha só dos filmes agora
eu tenho seis filmes inseridos os dois
primeiros e mais quatro mandei vso ao
título você pode evidentemente mandar
vem o título O ano a duração ou só a
duração o que você quiser é só fazer a
consulta normal pode ordenar por data
por por nome o SQL normal vai funcionar
aqui então os filmes foram inseridos com
suo existe uma outra forma da gente
também Verificar se os dados foram
inseridos corretamente que é usando um
laço for Olha só para a linha dentro do
cursor Execute Aí você faz a sua
consulta aqui por exemplo eu vou chamar
an título do filme e vou ordenar por ano
e aí eu mando imprimir o conteúdo de
cada linha tá quando eu executo isso ele
traz dessa forma o ano e o título em
ordem crescente de ano desde o mais
antigo de 964 até o mais recente que é o
Senhor dos Anéis aqui então para cada
linha dentro do retorno do cursor P
Execute faz a sua consulta e aí dar um
print na linha ou você pode fazer outras
coisas com a linha também né mandar para
um arquivo de texto por exemplo e assim
por diante fica seu critério que vai ser
feito finalmente o último recurso que eu
quero mostrar nesse vídeo é que a gente
também pode trabalhar com gerenciador de
contexto trabalhando com objeto
Connection e aqui vai dispensar a gente
fazer o commit ou rollback então caso
você esqueça de fazer o o com. comit os
dados não serão gravados ou alterados no
disco apesar de parecer que foram e se
houver erros Não haverá o rollback Isso
é um problema então a gente pode usar um
gerenciador de contexto que é a
palavrinha wif e com ela o commit ou
rack são automáticos você não precisa se
preocupar em colocar esse comando ali né
Isso já facilita sua vida e torna o seu
código também um pouco mais robusto E
além disso eu vou colocar esse
gerenciador de contexto dentro de um
bloco try
accept para manipular exceção caso
ocorra algum erro de conexão ao banco de
dados por exemplo olha só tá ficando um
pouquinho mais complexo mas aoo longo do
curso a gente vai entendendo como usar
esses conceitos com o banco de dados mas
eles são importantes Então nesse exemplo
aqui eu vou vou fazer um try tentar com
o gerenciador de contexto da nossa
conexão atual eu vou executar este
insert e neste insert eu vou colocar
mais um filme que é o openheimer no caso
veja que eu continuo usando os
placeholders aqui e passo uma uma tupla
com os dados do filme posteriormente e
poderia ser uma lista também E aí é o
seguinte se houver exceção do tipo
programming error eu vou dizer que o
banco de dados não tá acessível Existem
várias exceções que podem ser levantadas
vários erros que podem ocorrer ao
trabalhar com o sqlite depois eu vou vou
mostrar em uma outra aula quais são elas
e como é que a gente trabalha com cada
uma delas mas é importante que a gente
capture exceção senão o usuário fica
vendido não sabe o que tá acontecendo se
houver um erro e você também não
consegue tratá e depois de inserir aí eu
vou executar normalmente o nosso cursor
vou mandar selecionar o título e vou dar
um fetch All para verificar a lista
completa de filmes para verificar se deu
certo a inserção do openheimer que não
existia até aqui por enquanto então eu
vou executar esse bloco todo beleza
executou já fez o commit comit eu não
precisei colocar o com. commit aqui
porque o if que é o comando gerenciador
de contexto faz o comit automático Então
já tá comit de modo que quando eu olho
aqui a minha a lista Olha só openheimer
foi inserido com sucesso e no fim depois
da gente trabalhar e fazer o que tinha
que ser feito no banco de dados a gente
tem que fechar conexão senão o banco ele
fica ativo certo ele fica ativo ele tá
aberto se eu vier aqui em home Olha só
selecionar esse arquivo aqui do cinema
que é o meu banco de dados e tentar
excluir esse arquivo vou dar um delete
tem certeza que quer apagar
permanentemente
delete ó delete failed não dá para para
excluir porque ele tá em uso ele tá
conectado esse banco certo ó tá com 8 KB
de tamanho agora que são os dados que eu
acabei de colocar então o banco tá
conectado Eu preciso fechar a conexão
quando eu não vou usar mais para isso
com Connection pon Close só executar
Esse comando e a conexão tá fechada tá
isso aqui a gente vai ver na próxima
aula ou nas
próximas Então tá aí fizemos a criação
do banco de dados criação de uma tabela
inserção de registros cons consultas
nesses registros vimos como trabalhar
bem sucintamente com gerenciador de
contextos como trabalhar com cursor
conexão e como fechar a conexão Neste
vídeo uma última coisa que eu quero
mostrar antes de
ir-me existem ferramentas gráficas que a
gente pode usar para manipular e
gerenciar o banco de dados
sqlite claro que se você tá escrevendo
script in Python seu objetivo é que o
script in Python faça isso para você
porque você tem um motivo específico
para tal mas as ferramentas gráficas À
vezes auxiliam a trabalhar com o banco
de dados manipular os dados corrigir
erros fazer uma visualização rápida sem
precisar rodar os scripts Existem várias
ferramentas uma delas é o SQL
Studio aqui eu tô na página do github
dessa ferramenta que é muito
legal eu já baixei inclusive já tenho
ela na máquina vou mostrar como é que a
gente US ela muito
rapidamente existe versão para Windows
Mac OS Linux é tanto instalável quanto
portable beleza eu tenho aqui a porta na
minha máquina é só baixar descompactar
numa pasta e utilizar eu vou deixar o
link também desse github aqui na
descrição do vídeo como é que vai
funcionar esta ferramenta vai funcionar
assim ó depois que você descompactou eu
descompacte na mesma pasta aqui do meu
banco de dados mas não precisa estar na
mesma pasta pode estar em qualquer lugar
do computador então eu vou abrir a
ferramenta e vou rodar aqui o seu
executável SQL Studio beleza tá aberta
aqui a ferramenta aqui em cima eu vou
fazer a conexão a um banco de dados eu
vou adicionar um banco de dados Olha só
clico aqui ele pergunta qual o tipo do
banco tá ex tem alguns outros tipos que
ele também consegue manipular e aqui em
arquivo eu vou clicar na pastinha e vou
localizar o banco tá aqui ó Cinema Se
tiverem outra pasta é só você Navegar
até outra pasta cinema selecionar nome
na lista Você pode dar um nome diferente
para ele aparecer aqui na lista se
quiser e também tem a opção de mantê-lo
permanentemente ele fica aqui quando
você abrir de novo ele tá aí disponível
ainda para você continuar trabalhando
testar conexão clico aqui conectou com
sucesso então dou ok tá lá o cinema
clico duas vezes ele expande ó tabela de
filme já tá lá posso expandir a tabela
de filme e ver as colunas que ele tem
título ano e duração também dá para ver
se tem índices ou triggers criados eí se
você clicar em cada uma delas duas vezes
ele traz os dados da coluna e você pode
fazer edições por exemplo selecionar uma
coluna para ser chave primária
estrangeira constraint Unique not nu
valor p ET tamanho tipo de dado que a
gente não não associou explicitamente
ainda ess aqui são os tipos de classes
de dados que o SQL suporta blob integer
numeric real e text vamos falar sobre
elas também depois certo então tem toda
essa opção aqui dentro e além disso a
gente tem aqui olha que legal este
rolinho aqui é um editor de SQL a gente
pode abrir o editor Olha que beleza e
digitar SQL aqui por exemplo
select
from
filme quero ver tudo que tem na minha
tabela de filme E aí clica no play para
rodar ele vai mostrar os filmes que a
gente acabou de inserir Olha só estão
todos no banco de dadosos anéis com bbar
ET até o openheimer que é o mais recente
com a sua duração de 180 minutos
recomendada inclusive tranquilo gente
então tá aí nesse primeiro vídeo um
pouquinho extenso até mas introdutório
na verdade
só com os conceitos iniciais pra gente
entender o que que é o sqlite de leve e
como trabalhar com um scriptz em Python
para começar a manipulação de um
banquinho de dados utilizando esse banco
de dados que é muito útil para
aplicações leves por exemplo aplicações
que vão rodar no teu Smartphone ou no
teu tablet é muito útil como a gente vai
ver em aulas subsequentes e assim espero
que o vídeo tenha sido sido útil para
vocês e nos próximos vídeos a gente
prossegue falando mais sobre esse
sistema de banco de dados e aprendendo
Como trabalhar com a biblioteca sqlite 3
do Python Então é isso aí pessoal espero
que vocês tenham gostado desse vídeo
aproveitem para se inscrever aqui no
canal da Boss no treinamento Se vocês
não forem inscritos ainda e se já forem
inscritos cliquem no Sininho aqui
embaixo para ativar as notificações e
assim serem avisados Quando tivermos
conteúdo novo postado aqui no canal e se
você quiser contribuir com a bosson
treinamentos torne-se membro do nosso
clube de canais temos o link aqui
embaixo na descrição do vídeo e também o
botão seja membro do YouTube com as
instruções e não deixe de acessar o
nosso Website
www.bosontreinamentos.com.br
além de nos seguir nas redes sociais
hein que estão aparecendo aqui em cima
obrigado e até a próxima
Ver Más Videos Relacionados
How to install SQLite database on Windows 11 || Creating a database and table in SQLite 2023 updated
Professional Expense Tracker in Python
Complete CRUD Operation in Asp.Net C# With SQL Server Step by Step
Introduction to Oracle Database | What is Oracle? full Explanation
Dream Report: Acquiring Data from SQL Server
01 : Pengenalan Database
5.0 / 5 (0 votes)