Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

• Linguagem de Definição de Dados
• Linguagem de Manipulação de Dados
• Linguagem SQL
Banco de Dados I
1
• DDL:
– Um esquema de banco de dados é especificado 
por um conjunto de definições expressas por uma 
linguagem especial chamada linguagem de 
definição de dados (Data Definition Language, 
DDL);
– O resultado dos comandos de uma DDL é um 
conjunto tabelas que são armazenadas em um 
arquivo especial chamado dicionário (ou 
diretório) de dados.
BD.I - Linguagem de Definição de Dados
2
– Um diretório de dados é um arquivo que contém 
metadados (dados sobre dados);
– Este diretório é consultado antes que os dados 
sejam lidos ou modificados no SGDB;
BD.I - Linguagem de Definição de Dados
3
– A estrutura de armazenagem e os métodos de 
acesso usados em um SGDB são especificados por 
um conjunto de definições em um tipo especial de 
DDL chamado linguagem de armazenagem e 
definição de dados;
– O resultado da compilação destas definições é um 
conjunto de instruções para especificar a 
implementação de detalhes do esquema de banco 
de dados que estão normalmente escondidos dos 
usuários.
BD.I - Linguagem de Definição de Dados
4
• DML:
– Os níveis de abstração (níveis físico, conceitual e 
de visão) não se aplicam somente à definição ou 
estrutura de dados, mas também à sua 
manipulação;
– No nível físico definimos algoritmos que permitem 
um acesso eficiente aos dados. 
– Nos níveis mais altos de abstração é dada ênfase à 
facilidade de uso. O objetivo é fornecer uma 
interação humana eficiente com o sistema
BD.I - Linguagem de Modificação de Dados
5
• DML:
– A linguagem de manipulação de dados (Data 
Manipulation Language) é a linguagem que 
permite aos usuários fazer o acesso aos dados ou 
manipulá-los, conforme o modelo de dados.
– A manipulação de dados significa:
• a busca da informação armazenada no BD; 
• a inserção de novas informações nos BD; 
• a eliminação de informações no BD; 
• a modificação de dados armazenados no BD.
BD.I - Linguagem de Modificação de Dados
6
• Introdução:
– A linguagem SQL é um padrão de linguagem de 
consulta que usa uma combinação de construtores em 
Álgebra e Cálculo Relacional e possui as seguintes 
partes:
• Linguagem de definição de dados (DDL); 
• Linguagem interativa de manipulação de dados (DML); 
• Incorporação DML (Embedded SQL); 
• Definição de Visões; 
• Autorização; 
• Integridade; 
• Controle de Transações. 
BD.I - Linguagem SQL
7
• Estrutura básica:
– Uma expressão básica de consulta SQL consiste 
em três cláusulas: 
• Select
• From;
• Where.
BD.I - Linguagem SQL
8
• SELECT:
– Corresponde à operação de projeção da álgebra 
relacional. É usada para relacionar os atributos 
desejados no resultado de uma consulta (relação);
– O SQL permite duplicidades nas tuplas de 
resposta. 
• Para forçar a eliminação de duplicidade usa-se a palavra 
chave DISTINCT depois de SELECT;
– O asterisco “*” pode ser usado para denotar 
“todos os atributos”.
BD.I - Linguagem SQL
9
• FROM:
– Corresponde à operação de produto cartesiano da 
álgebra relacional;
– Associa as relações (tabelas) que serão 
pesquisadas durante a avaliação de uma 
expressão;
BD.I - Linguagem SQL
10
• WHERE:
– Corresponde à seleção do predicado da álgebra 
relacional;
– Consiste em um predicado envolvendo atributos 
da relação que aparece na cláusula FROM;
– A cláusula where pode conter expressões 
aritméticas envolvendo os operadores de 
comparação <, <=, >, >=, = e <>, e operandos
constantes ou atributos das tuplas.
BD.I - Linguagem SQL
11
• WHERE:
– Nessa cláusula pode-se usar os conectores lógicos 
AND, OR e NOT;
– O SQL possui o operador de comparação 
BETWEEN AND para simplificar a cláusula where
que especifica que um valor pode ser menor ou 
igual a algum valor e maior ou igual a algum outro 
valor.
BD.I - Linguagem SQL
12
BD.I - Linguagem SQL
• Exercícios 1:
– Pesquisar todos os registros da relação “cliente”, 
da base “SAKILA”;
– Selecionar somente os registros com o atributo 
“cliente_id” menor que 50;
– Selecionar somente os dados com o atributo 
“cliente_id” entre 100 e 150;
– Selecionar somente os registros com o atributo 
que identifica que o cliente está ativo com o 
sistema;
13
• SELECT – Renomeando colunas (ALIAS):
– Para renomear atributos (colunas) ou relações 
(tabelas), usamos a cláusula AS:
• EX: nome_antigo as nome_novo;
– Pode ser usado tanto na cláusula SELECT quanto 
na cláusula FROM.
– A cláusula AS é particularmente útil como ALIAS, 
ou seja, um apelido para as relações constantes na 
cláusula FROM ou, ainda, quando criamos 
atributos novos (colunas calculadas, somatórios, 
agrupamentos, etc).
BD.I - Linguagem SQL
14
BD.I - Linguagem SQL
• Exercícios 2:
– Selecionar somente os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME dos registros com o atributo “CLIENTE_ID” menor 
que 100, da relação CLIENTE, alterando os nomes dos atributos 
PRIMEIRO_NOME e ULTIMO_NOME para “Nome” e “Sobre_nome”, 
respectivamente;
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE, usando o ALIAS “cli” para a 
relação CLIENTE e informando o nome canônico dos atributos;
• Ex:
• SELECT x.coluna1, x.coluna2 FROM tabela1 AS x;
15
• SELECT – Comparando Strings:
– As operações em strings mais usadas são as 
checagens para verificação de coincidências, 
utilizando o operador LIKE. Para isso, usamos dois 
caracteres especiais:
• Porcentagem ( % ): compara qualquer string; 
• Sublinhado ( _ ): compara qualquer caractere. 
– Utilizando NOT LIKE pode-se pesquisar diferenças, 
ao invés de coincidências.
BD.I - Linguagem SQL
16
• SELECT – Comparando Strings:
– Exemplos:
• “Uni%” corresponde a qualquer string que comece com 
“Uni”: “universo”, “universal”, “universidade”...;
• “%er” corresponde a qualquer string que termine com 
“er”: “fazer”, “trazer”, “correr”, ...;
• “%abc%” corresponde a qualquer string que contenha a 
sequência de caracteres “abc”;
• “_ _ _ _%” corresponde a qualquer string com pelo 
menos quatro caracteres;
• “_ _ X _” corresponde a qualquer string com quatro 
caracteres e que o terceiro seja “X”;
BD.I - Linguagem SQL
17
BD.I - Linguagem SQL
• Exercícios 3:
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE que tenham o atributo 
“PRIMEIRO_NOME” iniciando com a letra “G”;
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE que tenham o atributo 
“ULTIMO_NOME” terminando com a string “on”;
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE cujo atributo 
“ULTIMO_NOME” contenha a string “ann”;
18
BD.I - Linguagem SQL
• Exercícios 4:
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE que tenham o atributo 
“PRIMEIRO_NOME” com pelo menos 4 caracteres;
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE que tenham o atributo 
“PRIMEIRO_NOME ” com 4 caracteres e com a letra “a” 
como segundo caracter;
– Refazer todos os exercícios de comparação de strings 
utilizando o operador NOT LIKE;
19
• SELECT – Concatenando Strings:
– Podemos concatenar (somar) dois atributos do 
tipo string, criando uma nova coluna, usando o 
comando CONCAT():
• Ex: Select CONCAT(coluna_nome , coluna_sobrenome)
– OBS.: será criado um novo atributo, porém sem 
nome e, para que possamos referenciar esse 
atributo em outras consultas, devemos fornecer 
uma ALIAS para essa coluna.
BD.I - Linguagem SQL
20
BD.I - Linguagem SQL
• Exercícios 5:
– Selecionar os atributos CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE, criando um novo atributo 
chamado Nome_Completo que será a concatenação dos atributos 
PRIMEIRO_NOME e ULTIMO_NOME, de forma que o nome completo 
fique legível.
– Selecionar os atributos Conta CLIENTE_ID, PRIMEIRO_NOME e 
ULTIMO_NOME da relação CLIENTE, criando um novo atributo 
chamado Nome_Completo que será a concatenaçãodos atributos 
PRIMEIRO_NOME e ULTIMO_NOME, de forma que o nome completo 
fique na notação inglesa.
21
• Exercícios 6:
– Criar 3 consultas para selecionar os atributos 
CLIENTE_ID, PRIMEIRO_NOME e ULTIMO_NOME da 
relação CLIENTE, sendo que :
• a 1ª deve conter somente os registros com atributo 
DATA_NASCIMENTO anteriores a “30/07/1980”;
• a 2ª deve conter somente os registros com atributo 
DATA_NASCIMENTO entre “30/07/1980” a “30/08/1985”;
• a 3ª deve conter somente os registros com atributo 
DATA_NASCIMENTO após “30/08/1980”.
BD.I - Linguagem SQL
22
• Exercícios 7:
– Criar uma consulta para selecionar os atributos 
CLIENTE_ID, PRIMEIRO_NOME e ULTIMO_NOME da 
relação CLIENTE, sendo que deve obedecer os 
critérios:
• trazer os registros com atributo DATA_NASCIMENTO 
anteriores a “30/07/1980 e atributo ATIVO = 0;
• Ou trazer os registros com atributo DATA_NASCIMENTO 
entre “30/08/1985” a “30/08/1989” e atributo ATIVO = 0;
• Ou trazer os registros com atributo DATA_NASCIMENTO 
posterior a “30/09/1989” e atributo ATIVO = 1.
BD.I - Linguagem SQL
23
• Exercícios 8:
– Criar uma consulta para selecionar os atributos 
CLIENTE_ID, PRIMEIRO_NOME e ULTIMO_NOME da 
relação CLIENTE, sendo que deve obedecer os 
critérios:
• trazer os registros com atributo DATA_NASCIMENTO 
entre “30/08/1985” a “30/08/1989” e com atributo 
ATIVO = 0;
• E trazer os registros que o atributo CLIENTE_ID seja par;
BD.I - Linguagem SQL
24
As cláusulas são condições de modificação utilizadas para definir os dados que deseja
selecionar ou modificar em uma consulta.
• FROM - Utilizada para especificar a tabela que se vai selecionar os registros.
• WHERE – Utilizada para especificar as condições que devem reunir os registros que serão 
selecionados.
• GROUP BY – Utilizada para separar os registros selecionados em grupos específicos.
• HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo.
• ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica.
• DISTINCT – Utilizada para selecionar dados sem repetição.
Cláusulas
Funções de Agregação
• As funções de soma se usam dentro de uma cláusula SELECT em grupos de registros 
para devolver um único valor que se aplica a um grupo de registros.
• AVG – Utilizada para calcular a média dos valores de um campo determinado.
• COUNT – Utilizada para devolver o número de registros da seleção.
• SUM – Utilizada para devolver a soma de todos os valores de um campo determinado.
• MAX – Utilizada para devolver o valor mais alto de um campo especificado.
• MIN – Utilizada para devolver o valor mais baixo de um campo especificado.
Cláusulas
• Base de dados – WORLD:
– Calcular expectativa mínima e máxima de vida e o 
total da população por Continente;
– Calcular expectativa mínima e máxima de vida e o 
total da população por Continente, cuja 
expectativa mínima seja >= que 50 anos;
– Mostrar a média da população por país, 
calculando sobre as cidades que pertencem a cada 
país, apenas do continente europeu; 
Exercícios 1
• Base de dados – WORLD:
– Calcular expectativa mínima e máxima de vida e o 
total da população por Região e Continente;
– Calcular a quantidade de cidades por País;
– Calcular a quantidade de cidades por País, Região 
e Continente;
• Aplicar as funções de agregação nas tabelas do 
banco Sakila;
Exercícios 2
• Usando a base Sakila, responda:
– Quantidade total de filmes;
– Duração média dos filmes
– Quantidade de filmes por categoria;
– Duração média dos filmes por categoria;
– Quantidade de filmes por categoria das categorias 
com menos de 57 filmes;
– Duração média dos filmes por categoria das 
categorias com menos de 57 filmes;
– Quantidade de filmes alugados por cliente em ordem 
decrescente de quantidade de filmes alugados;
Exercícios 3
• INSERT:
– É usado para inserir dados em uma relação 
(tabela);
– Estrutura:
• INSERT INTO nome_tabela (campo1, campo2,...)
• VALUES (valor1, ‘valor2’,...)
– Opcional:
• INSERT INTO nome_tabela (campo1, campo2,...)
• SELECT campo1, campo2 FROM nome_tabela2
• WHERE nome_tabela2.campoX = valorY
BD.I - Linguagem SQL
30
• Exercícios 9:
– Insira os seus dados na relação CLIENTE;
• Use os dados abaixo para os seguintes campos:
– LOJA_ID: 1;
– ENDERECO_ID: 5;
– ATIVO: 1;
– Faça uma consulta na relação CLIENTE selecionando 
os registros com CLIENTE_ID <= 2 e insira esses dados 
novamente na própria tabela;
BD.I - Linguagem SQL
32
• UPDATE:
– É usado para alterar dados em uma relação 
(tabela);
– Estrutura:
• UPDATE nome_tabela
• SET campo1 = valor1, campo2 = valor2
• FROM nome_tabela
• WHERE campoX = valorY
BD.I - Linguagem SQL
33
• Exercícios 10:
– Altere o atributo EMAIL para NULO (sem valor) da 
tabela CLIENTE do registro criado com os seus dados;
– Altere o atributo ATIVO para o valor 0 dos registros 
novos inseridos no Exercício 9;
BD.I - Linguagem SQL
34
• DELETE:
– É usado para apagar dados em uma relação 
(tabela);
– Estrutura:
• DELETE FROM nome_tabela
• WHERE campoX = valorY
BD.I - Linguagem SQL
35
• Exercícios 11:
– Apague o registro da tabela CLIENTE criado com os 
seus dados;
– Apague os registros novos inseridos no Exercício 9;
BD.I - Linguagem SQL
36
• JOINS:
– O comando JOIN é utilizado para trazer dados de duas 
ou mais tabelas, fazendo junção dessas relações por um 
ou mais atributos;
– O SGDB utiliza os JOINS para controlar como os dados 
de uma tabela serão utilizados para selecionar dados de 
outra tabela;
– Dessa forma, podemos selecionar dados de uma tabela 
(Tab1), filtrando por uma determinada coluna 
(Tab1.ColunaX) e trazer todos os registros de outra 
tabela (Tab2) que tenham relação com a primeira 
(Tab1.ColunaY = Tab2.ColunaZ)
BD.I - Linguagem SQL
37
• Tipos de JOINs:
– INNER JOIN:
• Ou também chamado de Junção natural:
– OUTER JOIN:
• Pode ser de 3 sub-tipos:
– LEFT JOIN;
– RIGHT JOIN;
– FULL JOIN;
– CROSS JOIN:
• Ou também chamado de produto cartesiano;
BD.I - Linguagem SQL
38
• Tipos de JOINs:
– INNER JOIN:
• Ou também chamado de Junção natural;
• Retorna todos as linhas onde ambas as colunas sejam 
coincidentes
• Ex:
– SELECT *
FROM cliente AS c 
INNER JOIN endereco AS e ON c.endereco_id = e.endereco_id
INNER JOIN cidade AS cid ON e.cidade_id = cid.cidade_id
INNER JOIN pais AS p ON cid.pais_id = p.pais_id;
BD.I - Linguagem SQL
39
• Tipos de JOINs:
– OUTER JOINs:
• LEFT JOIN – inclui todas as linhas da tabela da esquerda
e junta com as linhas da tabela da direita. Onde NÃO
houver coincidência será exibido o valor NULL;
• RIGHT JOIN – inclui todas as linhas da tabela da direita
e junta com as linhas da tabela da esquerda. Onde NÃO
houver coincidência será exibido o valor NULL;
BD.I - Linguagem SQL
40
• Ex. de OUTER JOINs:
• LEFT JOIN:
– SELECT f.titulo, a.data_de_aluguel FROM filme AS F LEFT JOIN 
inventario AS i ON f.filme_id = i.filme_id LEFT JOIN aluguel AS a ON 
i.inventario_id = a.inventario_id WHERE f.titulo = 'ACADEMY 
DINOSAUR';
• RIGHT JOIN:
– SELECT f.titulo,I.nome FROM FILME AS F RIGHT JOIN idioma AS I ON 
F.idioma_id = I.idioma_idORDER BY I.nome; 
BD.I - Linguagem SQL
41
• Tipos de JOINs:
– OUTER JOINs:
• FULL JOIN – inclui todas as linhas de ambas as tabelas, 
inserindo o valor NULL em ambos os lados da ligação 
quando não houver coincidências;
– Obs.: No MySQL não há suporte para o FULL JOIN, contudo 
pode-se simular o comportamento usando o comando UNION 
e juntando duas consultas de LEFT e RIGHT JOIN.
BD.I - Linguagem SQL
42
• Exemplos:
CREATE TABLE tab1 ( 
id INT NOT NULL, 
nome VARCHAR(45) NULL, 
PRIMARY KEY (id)); 
CREATE TABLE tab2 ( 
id INT NOT NULL, 
nome VARCHAR(45) NULL, 
PRIMARY KEY (id));
insert into tab1 (id, nome) values (1, 'pedro'), (2, 'paulo');
insert into tab2 (id, nome) values (1, 'pedro'), (3, 'josé');
BD.I - Linguagem SQL
43
• Exemplos:
– INNER JOIN:
SELECT * FROM tab1 INNER JOIN tab2 ON tab1.id = tab2.id;
– LEFT JOINSELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id = tab2.id;
– RIGHT JOIN:
SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id = tab2.id;
– FULL JOIN (simulação):
SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id = tab2.id
UNION
SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id = tab2.id;
BD.I - Linguagem SQL
44

Mais conteúdos dessa disciplina