Aula 04 - Injeção de código (Cross-Site Scripting)
Banco de Dados (parte 02)
1. Banco de dados: teoria, organização e comandos de umBanco de dados: teoria, organização e comandos de um
SGBD relacionalSGBD relacional
Prof. Alex Camargo
alexcamargoweb@gmail.com
UNIVERSIDADE FEDERAL DO PAMPA
CURSO DE ENGENHARIA DE COMPUTAÇÃO
DISCIPLINA DE ENGENHARIA DE SOFTWARE
AULA 02 DE 02
Maio/2017
2. 2
III. Objetivos da aula
Dentre os principais objetivos, podem ser elencados:
Apresentar a teoria concernente a SGBDs, tabelas e seus
relacionamentos.
Executar instruções DML (manipulação de dados) na linguagem
SQL.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
3. 3
I. Organização da aula
Esta aula está organizada da seguinte maneira:
Conceitos gerais de SGBDs
Linguagem SQL
Exercícios
Referências
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
4. 4
III. Objetivos da aula
Dentre os principais objetivos, podem ser elencados:
Executar instruções DML (manipulação de dados) na linguagem
SQL.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
5. 5
1. LINGUAGEM SQL
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
6. 6
1.1 Introdução
Os comandos de manipulação de dados (DML) em SQL são
representados por:
INSERT: permite a inclusão de novas linhas nas tabelas.
UPDATE: altera os valores de dados já cadastrados.
DELETE: remove dados já cadastrados.
SELECT: utilizado para consultar o BD e retornar dados que
satisfazem a determinada expressão em um comando.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
7. 7
1.2. Comando INSERT
Permite inserir uma linha de dados na tabela:
INSERT INTO Nome_da_Tabela (coluna1,coluna2,colunaN)
VALUES (valor1, valor2, valorN);
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
8. 8
1.2 Comando INSERT
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando INSERT.
9. 9
1.3 Comando UPDATE
É usado para mudar valores de linhas de dados que já foram
cadastradas anteriormente e que obedecem a determinados
critérios, especificados em condições.
UPDATE Nome_da_Tabela SET coluna1 = valor1, coluna2 =
valor2, colunaN = valorN;
Se não for colocada a cláusula WHERE (será vista a seguir) no
comando UPDATE, as alterações serão realizadas em todos os
registros da tabela.
UPDATE Nome_da_Tabela SET coluna1 = valor1, coluna2 =
valor2, colunaN = valorN WHERE condições;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
10. 10
1.3 Comando UPDATE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando UPDATE.
11. 11
1.4 Comando DELETE
É usado para remover linhas de uma tabela.
DELETE FROM Nome_da_Tabela tabela WHERE <condições>;
Se não for colocada a cláusula WHERE no comando DELETE,
serão apagados todos os registros de uma tabela.
DELETE FROM Nome_da_Tabela tabela WHERE <condições>;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
12. 12
1.4 Comando DELETE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando DELETE.
13. 13
1.5 Comando SELECT
É usado para consultar o banco de dados e retornar dados
recuperados que satisfazem a determinada condição expressa no
comando.
SELECT coluna1, coluna2, colunan FROM Nome_da_Tabela;
Se não for utilizada a cláusula WHERE no comando SELECT,
serão retornados todos os registros de uma tabela.
SELECT coluna1, coluna2, colunan FROM Nome_da_Tabela
WHERE <condições>;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
14. 14
2.5. Comando SELECT
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando SELECT.
15. 15
1.5 Comando SELECT
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando SELECT.
16. 16
1.6 Cláusula WHERE
Retorna apenas os valores das linhas que atendem as condições
especificadas na cláusula.
UPDATE Nome_da_Tabela SET coluna1 = valor1, coluna2 =
valor2 WHERE condições;
DELETE FROM Nome_da_Tabela tabela WHERE <condições>;
SELECT coluna1, coluna2, colunan FROM Nome_da_Tabela
WHERE <condições>;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
17. 17
2.6. Cláusula WHERE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Cláusula WHERE.
18. 18
1.7 Cláusula ORDER BY
Esta cláusula aparece sempre posicionada no final do comando
SELECT e tem como objetivo ordenar os resultados.
SELECT coluna1, coluna2, colunan FROM Nome_da_Tabela
WHERE <condições> ORDER BY colunan [ASC,DESC];
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
19. 19
1.7 Cláusula ORDER BY
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Cláusula ORDER BY ASC.
20. 20
1.7 Cláusula ORDER BY
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Cláusula ORDER BY DESC.
21. 21
1.8 Comando SELECT: entre tabelas
A ligação entre tabelas (JOIN) permite extrair, através de um único
SELECT, informações contidas em diferentes tabelas.
SELECT coluna1.t1, coluna1.t2, colunan.tn
FROM Nome_da_Tabela1 t1
INNER JOIN Nome_da_Tabela2 t2
ON coluna1.t1 = coluna1.t2
WHERE <condições>
GROUP BY colunan.tn;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
22. 22
1.8 Comando SELECT: entre tabelas
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Representação das tabelas.
23. 23
1.8 Comando SELECT: entre tabelas
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando SELECT: ligação entre 2 tabelas.
24. 24
1.8 Comando SELECT: entre tabelas
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Representação das tabelas.
25. 25
1.8 Comando SELECT: entre tabelas
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando SELECT: ligação entre 3 tabelas.
26. 26
2. EXERCÍCIOS
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
27. 27
2.1 Atividade 1
Considere as seguintes tabelas para um banco de dados de uma
escola:
Curso (CodigoCurso (PK), Nome, NumeroVagas).
Instrutor (CodigoInstrutor (PK), Nome, Formacao, Celular).
Horario (CodigoHorario (PK), Sala, Data, Hora).
Agenda (CodigoAgenda (PK), CodigoCurso (FK), CodigoInstrutor
(FK), CodigoHorario (FK)).
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
28. 28
3.1. Atividade 1
Através de consultas SQL, faça:
a) Crie um novo banco de dados.
b) Crie as tabelas conforme a especificação apresentada.
c) Mostre todas as tabelas do seu BD.
d) Insira pelo menos 2 registros em cada tabela.
e) Mostre o nome de todos os cursos.
f) Mostre o nome e a formação de todos os instrutores.
g) Mostre todas colunas da tabela horário.
h) Mostre o nome do curso e as vagas ordenado pela
quantidade de vagas.
i) Mostre o nome do curso e as vagas na qual o número de
vagas seja maior que 10, ordenado pelo número de vagas em
descendente.
j) Coloque todos os cursos da Sala 01 para a Sala 02.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
29. 29
3.1. Atividade 1
Através de consultas SQL, faça:
k) Mostre os cursos e seus respectivos horários.
l) Mostre os instrutores, seus respectivos cursos e salas.
m) Elimine todos os registros da agenda.
n) Elimine a tabela Agenda.
o) Elimine o banco de dados Escola.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
30. 30
Referências
DAMAS, Luís. SQL, Structured query language. Tradução Elvira Maria Antunes
Uchôa. 6a Edição, Rio de Janeiro: LTC, 2007.
MEIRA, Regilan. Banco de Dados (Apostila). Instituto Federal da Bahia -
Campus Ilhéus, 2013.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo