Você está na página 1de 59

Banco de Dados

Linguagem SQL

Profª Rogeria Ramos


Prof. Guilherme Anzollin
Revisão de conceitos fundamentais
de banco de dados
e linguagem SQL para definição e
manipulação de dados
Banco de Dados
Surgiu da necessidade de persistir dados de um sistema de
computação.

Principais aplicações:
● Sistemas de Informação (ERPs, BI, comércio eletrônico etc.)
● Internet (sites, emails, redes sociais etc.)
● Sistemas supervisórios embarcados (PDAs, celulares, urna
eletrônica etc.)
O Projeto de Banco de Dados
Banco de Dados Relacional

Existem diversos modelos e


formas de se construir um banco
de dados, porém o mais utilizado é
o modelo relacional.

Neste modelo o banco de dados é


um conjunto de entidades
(tabelas) que relacionam-se entre
si através de seus atributos
Partindo de um problema ...

Considerando um sistema de
informação para uma clínica onde
se deseja armazenar informações
sobre seus pacientes e suas
respectivas consultas.

Como se chegar ao modelo do


banco de dados?
Considerando os conceitos

O modelo relacional é baseado em dois conceitos principais:

● Entidade: é cada elemento do sistema, geralmente


representado por uma tabela (tabela de clientes, tabela de
consultas)

● Relacionamento: determina como uma entidade/tabela é


associada com outra (qual a relação entre cliente e consulta?)
Visualizando o problema
Definindo um modelo conceitual

Modelo de Entidades e Relacionamentos (MER)


Adequando a um modelo lógico

Definindo a estrutura detalhada de cada tabela com a


nomenclatura, tipo e tamanho das colunas,
de acordo com a tecnologia escolhida.
DDL – Data Definition Language
A partir de um dos maiores padrões de linguagem para se trabalhar
com banco de dados, o SQL – Structured Query Language, temos
um conjunto de comandos específicos para definição da estrutura
do banco.
Este conjunto é chamado de DDL (Definition Data Language) e,
dentre todos os comandos, os principais são para:
● Criação e exclusão de bancos;
● Criação, alteração e exclusão de tabelas;
● Criação, alteração e exclusão de índices.
Criação e exclusão de Banco
Criação de tabela – CREATE TABLE
Criação de tabela – CREATE TABLE

Exemplo em MySQL
Criação de tabela – CREATE TABLE

Exemplo em MySQL – Garantindo a integridade referencial


Criação de tabela – CREATE TABLE
Exemplo em MySQL – Garantindo a integridade referencial

● CASCADE: os registros referentes ao afetado também são


afetados em cascata.
● RESTRICT: não permite a alteração do registro com referência em
outras tabelas.
● SET NULL: atribui null aos registros referentes ao que foi afetado.
● SET DEFAULT: atribuir o valor default aos registros referentes ao
que foi afetado.
● NO ACTION: nada acontece aos registros referentes ao que foi
afetado.
Criação de tabela – CREATE TABLE

Tipos de dados do MySQL: Numéricos


Criação de tabela – CREATE TABLE

Tipos de dados do MySQL: Texto


Criação de tabela – CREATE TABLE

Tipos de dados do MySQL: Data e hora


Alteração de tabela – ALTER TABLE
Alteração de tabela – ALTER TABLE
Alteração de tabela – ALTER TABLE
Estudo de Caso

01. No MySQL Workbench, escreva o script SQL para criar a


base de dados (modelo físico) equivalente ao projeto lógico
acima
DML – Data Manipulation Language

O conjunto de comandos responsável por manipular os dados


do banco é conhecido como DML e suas principais tarefas são:
● Inclusão de dados nas tabelas banco (INSERT);
● Seleção de dados nas tabelas do banco (SELECT);
● Alteração de dados nas tabelas banco (UPDATE);
● Exclusão de dados nas tabelas banco (DELETE);
O comando de seleção de dados (SELECT) também é considerado na
literatura como pertencente ao conjunto DQL (Data Query Language).
Inserção de dados – INSERT
Inserção de dados – INSERT
Inserção de dados – INSERT
Alteração de dados – UPDATE
Alteração de dados – UPDATE
Exclusão de dados – DELETE
Exclusão de dados – DELETE
Estudo de Caso

No mesmo script, escreva os comandos SQL para:


02. inserir 2 cidades, 4 clientes, 5 produtos e 5 vendas.
03. alterar a situação para 'I' (indisponível) de todos os produtos
com estoque igual a zero.
04. apagar todas as vendas com data anterior a data atual.
05. Faça e teste o dump (cópia) do database criado.
Consulta de dados – SELECT
Consulta de dados – SELECT
Condições (where)
Condições (where)
Os operadores lógicos utilizados para decidir várias condições:
AND, OR, NOT

Exemplo em MySQL
Estudo de Caso

06. Escreva o script SQL para consultar todos os produtos


apresentando a descrição e o preco de cada.
07. Buscar os dados dos produtos com estoque menor que 10
unidades.
08. Apresente os dados de todos os clientes
Junções (joins)
Considerando a seguinte situação:

Como implementar um SELECT que retorne o nome de todos os


livros com o nome da respectiva editora que cada livro pertence?
Junções (joins)
Uma junção permite juntar tabelas através de suas relações
lógicas para consultar dados que estão em tabelas diferentes.

Os principais tipos de junções são os seguintes:


● INNER JOIN
● LEFT OUTER JOIN
● RIGHT OUTER JOINT
Junções (joins)
INNER JOIN
É uma Junção Interna que retorna apenas os dados que atendem
às condições de junção, ou seja, quais linhas de uma tabela se
relacionam com as linhas de outras tabelas.
Utiliza-se a cláusula ON, que é semelhante à cláusula WHERE.
Junções (joins)
INNER JOIN (Exemplo em MySQL)
Junções (joins)
LEFT OUTER JOIN
É uma Junção Externa que retorna todos os dados da tabela à
esquerda da junção (primeira tabela mencionada), juntamente
com os dados equivalentes da tabela da direita, mesmo que não
existam (neste caso é retornado nulo).
Junções (joins)
LEFT OUTER JOIN (Exemplo em MySQL)
Junções (joins)
RIGHT OUTER JOIN
É uma Junção Externa que retorna todos os dados da tabela à
direita da junção (segunda tabela mencionada) juntamente com
os dados equivalentes da tabela da esquerda, mesmo que não
existam (neste caso é retornado nulo).
Junções (joins)
RIGHT OUTER JOIN (Exemplo em MySQL)
Junções (joins)
Podem também ser implementadas junções sem as “palavras
reservadas” (INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER
JOIN).

Tal método é
chamado de
junção implícita ou
produto cartesiano.
Distinção (distinct)
É possível formatar os resultados de uma consulta (SELECT)
para que só retorne valores distintos (diferentes) de uma ou mais
colunas.
Ordenação (order by)
É possível ordenar os resultados de uma consulta (SELECT) por
uma ou mais colunas, definindo a ordem (crescente ou
decrescente).
Agrupamento (group by)

É possível agrupar os resultados iguais de uma consulta


(SELECT) por uma ou mais colunas.
Condição de Agrupamento (having)

Assim como o WHERE faz a condição do SELECT o HAVING faz


a condição dos GROUP BY, após os registros agrupados.
Condição de Agrupamento (having)
Estudo de Caso

09. Escreva o script SQL para consultar todas as vendas


apresentando em ordem crescente de data o nome do cliente,
descrição do produto, preço, quantidade e valor total de cada
venda.
Funções de Agregação
Utilizadas em conjunto com o agrupamento (GROUP BY), servem
para agregar valores de alguma maneira (contagem, soma, média,
etc.)
● COUNT() – Faz a contagem dos registros que foram agrupados;
● SUM() – Faz a soma dos valores da coluna especificada para
cada grupo;
● AVG() – Faz a média soma dos valores da coluna especificada
para cada grupo;
● MAX() – Traz o maior valor da coluna especificada para cada
grupo;
● MIN() – Traz o menor valor da coluna especificada para cada
grupo
Funções de Agregação – COUNT()
Funções de Agregação – SUM()
Funções de Agregação – AVG()
Funções de Agregação – MAX()
Funções de Agregação – MIN()
Estudo de Caso

10. Escreva o script SQL para consultar todos os produtos apresentando a


descrição e a quantidade vendida de cada.
11. Qual o valor que a loja tem investido em estoque?
12. Qual a quantidade de cada produto no estoque?
13. Apresente os dados do produto mais caro e do mais barato.
14. Apresente o nome e a cidade do cliente que mais comprou nesta loja.

Você também pode gostar