Sqlite: Banco de dados Cinema

Caio Santos D.Silva
5 min readMay 6, 2024

Aqui vamos criar um simples banco de dados sobre cinema.

Usaremos DB Browser

E também o SQLite

Criaremos as tabelas:

  • movies
  • persons
  • actors
  • directors

O banco de dados será bem simples, não iremos adicionar muitas tabelas nesse projeto.

Na tabela persons vamos adicionar apenas as pessoas que participam de um filme, ou seja, atores, diretores, compositores, produtores e etc. Nesta tabela terá apenas a coluna id e name.

Na tabela movies, vamos colocar o id e title do filme.

Na tabela actors, vamos colocar a coluna de id, id_peoples e id_movies.

Na tabela directors, vamos colocar a coluna id, id_peoples e id_movies.

Tabela persons

Essa é a forma gráfica de criar uma tabela. A tabela que estamos criando é a de persons.

CREATE TABLE "persons" (
"id" INTEGER NOT NULL,
"name" TEXT,
PRIMARY KEY("id" AUTOINCREMENT)
);

Essa é a criação da tabela em forma de código. Analisando o código acima, nos criamos a coluna id e name, e para cada coluna atribuímos suas características, por exemplo, o id tem um INTEGER indicando que receberá apenas número inteiro e NOT NULL, significa que tal coluna não pode estar vazia. A coluna name recebe o atributo de TEXT onde receberá strings de texto. O PRIMARY KEY indica que a coluna id será uma chave primaria e com auto incremento, ou seja, cada nova person criada, o número de id é incrementado de forma automática.

Para outros types de atributos em uma coluna sqlite podemos ver aqui.

Tabela movie

CREATE TABLE "movies" (
"id" INTEGER NOT NULL,
"title" TEXT,
PRIMARY KEY("id" AUTOINCREMENT)
);

Tabela actors

A forma visual de criar a tabela
CREATE TABLE "actors" (
"id" INTEGER NOT NULL,
"id_person" INTEGER,
"id_movie" INTEGER,
FOREIGN KEY("id_person") REFERENCES "persons"("id"),
FOREIGN KEY("id_movie") REFERENCES "movies"("id"),
PRIMARY KEY("id" AUTOINCREMENT)
);

Neste codigo da tabela actors temos algo novo, o FOREIGN KEY, e o que é isso? Essa tabela tem o seu id, e agora note que tem o id_person e id_movie, em seguida temos a linha de texto da FOREIGN KEY na qual diz que, a coluna id_person faz referencia a tabela persons e a coluna id da tabela persons. A mesma lógica para id_movie. Na ultima linha definimos que o id da tabela actors será primary key e auto incremento. A FOREIGN KEY significa chave estrangeira, ou seja, o id de outra tabela; basicamente a tabela actors vai receber informações de outras tabelas.

CREATE TABLE "directors" (
"id" INTEGER NOT NULL,
"id_person" INTEGER,
"id_movie" INTEGER,
FOREIGN KEY("id_person") REFERENCES "persons"("id"),
FOREIGN KEY("id_movie") REFERENCES "movies"("id"),
PRIMARY KEY("id" AUTOINCREMENT)
);

A tabela de directors segue a mesma lógica da tabela de actors.

Adicionar conteúdo

Agora usando o DB Browser nos criaremos o conteúdo em todas as tabelas.

Para adicionar conteudo em nossa tabela movies usando o DB Browser nos apenas clicamos (1) em Browse Data e logo (2) para adicionar uma nova linha.

Na imagem acima na tabela de atores e diretores vamos ter que adicionar o id de nossas tabelas estrangeiras. Lembram da FOREIGN KEY? Quando adicionamos o número de id da tabela persons e movies estamos compartilhando para a tabela actors as informações da tabela movies e persons.

Visualizar os dados

Já adicionamos informações em novas tabelas, agora vamos checar as informações. Na imagem abaixo clicamos aqui:

Agora vamos usar o comando SELECT do sqlite e visualizar as informações de cada tabela:

Query sofisticado e Join tabelas

Na imagem acima podemos ver o código e o output na parte de baixo. Na linha 1 temos o SELECT que vai mostrar tudo (*) da tabela actors, na linha 2 fazemos um JOIN, ou seja, vamos unir a tabela actors na tabela movies, ja que a tabela actors tem ids estrangeiro da tabela movies. Na linha 3 indicamos que, o que vai unir a tabela actors e movies será pelo id_movie da tabela actors e id da tabela movies, pois, o id_movies de actors que é chave estrangeira recebe o id chave primaria da tabela movies, ou seja, isso é o ponto de conexão comum entre as tabelas.

Veja a imagem acima, a linha vermelha indica a tabela de actors, na linha verde indica a tabela de movies, e a linha azul nos mostra o ponto comum entre a tabela actors e movies, ou seja, o id_movie de actors e id de movies, ambos tem o mesmo número. Note o número id_movie de actors e id de movies são absolutamente iguais, isso porque são ids compartilhados.

Na imagem acima vamos adicionar a tabela persons fazendo um JOIN. Como podemos ver, o ponto comum entre a tabela actors e persons será o id primário de persons e o id_person de actors que é um id estrangeiro.

Na imagem acima vamos filtrar nossa tabela. Vamos tirar aquelas colunas da tabela actors que mostra o número de ids. Na linha azul vemos que no SELECT especificamos que queremos ver apenas a coluna title da tabela movies, a coluna name da tabela persons da nossa tabela compartilhada actors. No output vemos apenas o nome do filme e os atores associados a tal filme.

A mesma lógica aplicamos a tabela de directors, no qual cada diretor estará associado a um filme.

Esse foi um tutorial básico de sqlite, como fazemos as relações entre tabelas e o query com o SELECT. Espero que ajude.

--

--