Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de...
Transcript of Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de...
![Page 1: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/1.jpg)
Sistemas de Bancos de Dados Relacionais e SQL
Professor: André Avelino da Silva Neto
FCTFaculdade de Computação e Telecomunicações
![Page 2: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/2.jpg)
Conteúdo1. Introdução;
2. Sistemas de banco de dados relacionais;
3. SQL:a. Operações DDL;b. Operações DML;
4. Considerações finais.
![Page 3: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/3.jpg)
Introdução● Banco de dados: coleção de dados relacionados:
○ Registro de dados persistentes para determinado sistema de informações;
● SGBD: Sistema Gerenciador de Banco de Dados:○ Software responsável pela definição, armazenamento, manipulação e
compartilhamento dos dados
![Page 4: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/4.jpg)
Introdução
![Page 5: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/5.jpg)
Introdução● Projeto de banco dados:
○ Identificar e implementar um modelo consistente com os requisitos do sistema.
■ Modelo Conceitual■ Modelo Lógico■ Modelo Físico
![Page 6: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/6.jpg)
Sistemas de Banco de dados Relacionais● Baseados no uso de tabelas (relações):
○ Para muitos autores um padrão para utilização de banco de dados.
![Page 7: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/7.jpg)
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados.
Aluno
Disciplina
![Page 8: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/8.jpg)
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:
○ Atributos → Colunas.
Matrícula Nome Nascimento Sexo
Aluno
![Page 9: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/9.jpg)
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:
○ Registros → Linhas.
Matrícula Nome Idade Sexo
21477 João S. 19 M
21478 Gizelly M 23 F
21478 Aline P. 25 F
Aluno
![Page 10: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/10.jpg)
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:
○ Chave primária (PK) → Atributo que identifica unicamente registro.
Matrícula Nome Idade Sexo
21477 João S. 19 M
21478 Gizelly M 23 F
21478 Aline P. 25 F
Aluno
![Page 11: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/11.jpg)
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:
○ Chave estrangeira (FK) → Referencia outra tabela.
Matrícula Nome Idade Sexo
21477 João S. 19 M
21478 Gizelly M 23 F
21479 Aline P. 25 F
Aluno
Matricula_aluno
Cod_disciplina
21478 12
21479 14
Disciplina Aluno
![Page 12: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/12.jpg)
SQL● Structured Query Language: linguagem padrão para
manipulação de SGBD relacionais comerciais:○ Conjunto de comandos e cláusulas específicos:
■ DDL;■ DML.
![Page 13: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/13.jpg)
SQL● DDL: Linguagem de Definição de Dados:
○ Trata das definições e gerenciamento das tabelas:
![Page 14: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/14.jpg)
SQL● DDL: Linguagem de Definição de Dados:
○ Trata das definições e gerenciamento das tabelas:■ Criação de tabelas
CREATE TABLE nome_tabela (atributo1 domínio() contraints,atributo2 domínio() contraints,atributo3 domínio() contraints,…
);
![Page 15: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/15.jpg)
SQL● DDL: Linguagem de Definição de Dados:
○ Trata das definições e gerenciamento das tabelas:■ Criação de tabelas
➔ Atributos:◆ Nome do atributo◆ Domínio: conjunto de dados aceitáveis
● Integer, Varchar, date◆ Restrição de integridade: NULL / NOT NULL◆ Outras limitações
● UNIQUE, INDEX, PRIMARY KEY, FOREIGN KEY, DEFAULT
![Page 16: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/16.jpg)
SQL● DDL: Linguagem de Definição de Dados:
○ Trata das definições e gerenciamento das tabelas:■ Alteração de tabelas
ALTER TABLE nome_tabela ADD atributo1 domínio() contraints;
ALTER TABLE nome_tabela DROP COLUMN atributo1;
ALTER TABLE nome_tabela ALTER/MODIFY COLUMN atributo1 domínio() contraints;
![Page 17: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/17.jpg)
SQL● DDL: Linguagem de Definição de Dados:
○ Trata das definições e gerenciamento das tabelas:■ Exclusão de tabelas
DROP TABLE nome_tabela;
TRUNCATE TABLE nome_tabela;
![Page 18: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/18.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.
![Page 19: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/19.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Inserção de dados
INSERT INTO nome_tabela (atributo1, atributo2, atributo3)
VALUES (valor1, valor2, valor3);
Importante que a inserção respeite a definição da tabela!
![Page 20: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/20.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Atualização de dados
UPDATE nome_tabelaSET atributo1 = valor1, atributo2 = valor2)WHERE condições;
![Page 21: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/21.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Exclusão de dados
DELETE FROM nome_tabela WHERE condições;
![Page 22: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/22.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
SELECT _______ FROM nome_tabela WHERE condições;
![Page 23: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/23.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Cláusula SELECT:○ Retorna uma tabela com o resultado○ Resultado: organizado de acordo com os atributos definidos.
![Page 24: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/24.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
SELECT atributo1, atributo2 FROM nome_tabela WHERE condições;
![Page 25: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/25.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Cláusula SELECT:○ Retorna uma tabela com o resultado○ Resultado: organizado de acordo com os atributos definidos○ Valores aceitos:
■ * → Todos os atributos das tabelas consultadas;■ COUNT() → Total de registros de determinado atributo;■ DISTINCT() → Retorna somente registros cujo determinado valor seja único;■ MAX() → Retorna valor máximo de determinado atributo;■ MIN() → Retorna valor mínimo de determinado atributo;
![Page 26: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/26.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Cláusula FROM:○ Indica a tabela (ou tabelas) que serão consultadas;○ Delimita universo de atributos possíveis para retorno e definição de condições
![Page 27: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/27.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
SELECT t1.atributo1, t2.atributo2 FROM nome_tabela1 AS t1, nome_tabela2 AS t2 WHERE condições;
![Page 28: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/28.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Cláusula WHERE:○ Realiza filtragem dos dados para o resultado;○ Aceita operadores lógicos: AND, OR, NOT;○ Aceita operadores de comparação: =, >=, <=, <>○ Utilizado também nas operações de Exclusão e Atualização de dados
![Page 29: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/29.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
SELECT * FROM Aluno WHERE Sexo = ‘M’;
SELECT nome, matricula FROM Aluno WHERE Idade >= 22 AND Idade <= 30;
![Page 30: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/30.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Cláusula WHERE:○ Realiza filtragem dos dados para o resultado;○ Aceita operadores lógicos: AND, OR, NOT;○ Aceita operadores de comparação: =, >=, <=, <>○ Utilizado também nas operações de Exclusão e Atualização de dados○ Outros operadores:
■ LIKE (%, _) / BETWEEN / IN
![Page 31: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/31.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Outras cláusulas, declarações e palavras-chave:○ ORDER BY … ASC|DESC
SELECT * FROM Alunos ORDER BY Idade DESC;
![Page 32: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/32.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Outras cláusulas, declarações e palavras-chave:○ JOIN → Combina duas ou mais tabelas de acordo com uma relação
SELECT * FROM Alunos JOIN DisciplinaAluno ON Alunos.Matricula;
![Page 33: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/33.jpg)
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)
● Outras cláusulas, declarações e palavras-chave:○ GROUP BY → Agrupa linhas com o mesmo valor para determinado atributo (geralmente
utilizado para contagens)
SELECT COUNT(matricula), Nome FROM Alunos GROUP BY Idade;
![Page 34: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção](https://reader034.fdocumentos.com/reader034/viewer/2022042812/5faf392754da1c37ce63043c/html5/thumbnails/34.jpg)
Considerações Finais● Sistemas de bancos de dados relacionais exigem gerenciamento de uma
quantidade cada vez maior de dados;
● Evidencia a necessidade de conhecer e dominar tecnologias de utilização;
● SQL → ferramenta extremamente ampla que permite consultas complexas;
● Conhecimento adequado permite definições de dados consistentes e consultas mais eficientes.