sgbd – sistemas de gerenciadores de banco de dados revisão manipulação de banco de dados prof....

186
SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves [email protected]

Upload: internet

Post on 22-Apr-2015

107 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

SGBD – Sistemas de Gerenciadores de Banco de Dados

Revisão Manipulação de Banco de Dados

Prof. Fábio Junior [email protected]

Page 2: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Apresentação do Curso

Page 3: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Ementa

• Arquitetura, segurança, concorrência, recuperação de falhas, gerenciamento de transações e otimização de consultas. Integridade referencial, asserções, gatilhos. Procedimentos armazenados. Configuração e manutenção de SGBD’s. Banco de dados orientados a objetos e conceitos de banco de dados distribuídos.

Page 4: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Objetivos

• Habilitar o aluno no gerenciamento de bancos de dados através de ferramentas específicas,

• Capacitando-o na gestão completa de uma base de dados (englobando tanto a gestão dos dados como a gestão do sistema)

• Programar rotinas para serem executadas no próprio SGBD.• Conhecer as principais características dos bancos de dados

orientados a objetos e distribuídos.

Page 5: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Bibliografia Básica

• COSTA, R. L. SQL Guia Prático. São Paulo: Brasport, 2006.

• ELMASRI, R. Sistemas de Banco de Dados. 4. ed. São Paulo: Addison-Wesley, 2005.

• SILBERSCHATZ, A. Sistema de Banco de Dados. 3. ed. São Paulo: Makron Books, 1999.

Page 6: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Bibliografia Complementar

Page 7: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Avaliações

Page 8: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Método de Trabalho

• Relação Aluno Professor;

• Chamada;

• Aula de dúvidas e/ou Vista de Prova;

• Indisciplina.

Page 9: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 10: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Introdução a Banco de Dados

Page 11: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Algumas Perguntas???

Page 12: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Conceitos Básicos

• Bancos de Dados: são conjunto de dados relacionados e acessíveis. Dados são fatos conhecidos, que podem ser registrados e possuem significado.

• Sistema Gerenciadores de Banco de Dados (SGBD): coleção de software que permite a criação e manipulação de bancos de dados.

• Mini-Mundo ou Universo de Discurso: é uma parte do mundo real sobre o qual o BD será criado e a aplicação será desenvolvida.

Page 13: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Universo de Discurso - Exemplo

Um BD é um modelo de uma determinada parte da realidade, geralmente denominada de Universo de Discurso.

Page 14: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Sistema de Banco de Dados

Page 15: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Aplicações dos SGBD

• Banco (clientes, contas, empréstimos);

• Linhas aéreas (reservas, horários);

• Universidades (alunos, cursos, notas);

• Transações de Cartão de Crédito (compras, faturas);

• Telecomunicação (registro de chamadas, cobranças, saldos de cartões pré-pago).

• Etc.

Page 16: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Interação de Pessoas e Bancos de Dados

• No início as pessoas lidavam com o banco de dados indiretamente (relatórios impressos, fatura de cartão, caixa bancário, agente de reservas).

• Hoje as pessoas lidam diretamente com o banco de dados, mesmo sem perceber (sistemas telefônicos interativos, comércio eletrônico, internet banking).

Page 17: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Importância dos Bancos de Dados

• Faz parte da vida das pessoas: imagine quantas vezes você interage com um banco de dados mesmo sem perceber?

• Fabricantes de SGBD estão entre as maiores empresas do mundo (Ex.: Oracle).

• Empresas de produtos diversificados (Microsoft, IBM, Borland, etc.) tem SGBDs como parcela importante de seus negócios.

Page 18: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Evolução dos Bancos de Dados

Page 19: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Visão dos Dados

• SGBD deve fornecer ao usuário uma visão abstrata dos dados, ocultando detalhes de como os dados são armazenados e mantidos.

Page 20: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modelo de Dados

• Modelo de Dados é um conjunto de conceitos que se usa para descrever a estrutura do Banco de Dados.

• Os modelos de dados podem ser classificados em três categorias: – Modelo de Dados Conceituais;

– Modelo de Dados Lógicos;

– Modelo de Dados Físicos;

Page 21: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modelo de Dados

Page 22: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Categorias de Modelos de Dados

• Modelo de Dados Conceituais: é um modelo que descreve o banco de dados como é visto no mundo sem se preocupar com detalhes de implementação. Como exemplo: Entidade – Relacionamento.

• Modelo de Dados Lógicos: modelo intermediário entre o nível conceitual e o nível físico. Como exemplo: Modelo Relacional.

• Modelo de Dados Físicos: descreve o banco de dados como vai estar no nível físico de armazenamento.

Page 23: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD

• Definir a estrutura que o banco de dados vai possuir;

• Conhecer e entender o universo de discurso, mecanismo que permite definir a estrutura do banco de dados.

Page 24: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD – Exemplo

• Imagine que alguém chegasse para você e lhe dissesse: Quero criar um banco de dados para controlar as pessoas que usam os carros lá na minha empresa. Não é preciso nada de especial, pois temos poucos carros e muitos empregados. No entanto, a política da empresa é que cada empregado use apenas um único carro e que possa dirigi-lo se mais ninguém o estiver utilizando.

Page 25: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD – Exemplo

• Problema: Por onde é que se começa quando um problema deste é apresentado? Que fases precisamos percorrer?

• Definir o Universo de Discurso: Empresa de Carro.

• Definir o Projeto Conceitual (Modelo Entidade Relacionamento);

Page 26: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD – Exemplo

• Entidades

• Relacionamentos

Page 27: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD – Exemplo

• Identificar os Atributos

Page 28: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD – Exemplo

• Definir o Projeto Lógico (Modelo Relacional);

Page 29: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Projeto de um BD – Exemplo

• Definir o Modelo de Dado Físico (SQL);

Page 30: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Outros Conceitos Importantes

• Esquema: estrutura de um banco de dados.

• Instância: conteúdo de um banco de dados. Muda conforme alterações do mundo real.

Page 31: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Linguagens do SGBD

• A SQL (Structed Query Language) é chamada de linguagem de consulta, por causa do termo em inglês “query”, que poderia ser traduzida para o português como “consulta”, mas que na verdade significa não só recuperar ou consultar dados, mas também atualizá-los. A SQL é formada pelas linguagens: DDL, DML, DQL, DCL e DTL.

• DDL (Data Definition Language) – é a linguagem de definição de dados que descreve a estrutura do BD, usada pelo DBA e pelos projetistas. Comandos (CREATE,ALTER,DROP, etc).

Page 32: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Linguagens do SGBD

• DML (Data Manipulation Language) – é a linguagem de manipulação de dados, que permite especificar operações de recuperação e alteração dos dados do BD. Comandos (INSERT,UPDATE,DELETE).

• DQL (Data Query Language) – é a linguagem de consulta de dados, que permite recuperar as informações contidas no banco de dados. Comando (SELECT).

Page 33: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Linguagens do SGBD

• DCL (Data Control Language) – é a linguagem de controle de dados, usada pelo DBA para controlar o acesso aos dados pelos usuários. Comandos (GRANT,REVOKE, etc).

• DTL (Data Transaction Language) – é a linguagem de transação de dados, utilizado para gerenciar as transações do banco de dados. Comandos (STAR TRANSACTION, COMMIT, ROLLBACK).

Page 34: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Banco de Dados MySQL

Page 35: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Banco de Dados MySQL

• É um SGBD relacional que utiliza a linguagem padrão SQL;

• É utilizado em aplicações para a internet;

• É o mais popular entre os BD com código fonte aberto;

• Exemplos de empresas que utiliza o MySQL: Google, Suzuki, NASA, etc.

Page 36: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Banco de Dados MySQL

• Tem como destaque suas características:– velocidade,

– escalabilidade e

– confiabilidade,

• o que vem fazendo com que ele seja, adotado por departamentos de TI, desenvolvedores Web, etc.

Page 37: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Histórico

• O MySQL teve origem pelos desenvolvedores David, Allan e Michael, na década de 90;

• Foi desenvolvido utilizando a linguagem C e C++;

• A Oracle é a empresa responsável pela manutenção do MySQL;

Page 38: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Utilizações Recomendadas

• Inicialmente, foi projetado para trabalhar com aplicações de pequeno e médio porte;

• Algo em torno de 100 milhões de registros por tabelas, tendo como tamanho médio aproximadamente 100MB por tabela;

• Atualmente os limites e capacidades do MySQL ultrapassaram essas fronteiras inúmeras vezes.

Page 39: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Compatibilidade

• Sistemas Operacionais: Linux, Unix, FreeBSD, Mac OS X Server e Windowns;

• Linguagens de programação: PHP, JAVA, C++, etc.

Page 40: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Características

• Portabilidade: desenvolvido em C e C++ pode ser utilizado com outras linguagens: Java, PHP, Perl, entre outras;

• Multihreadas: aumenta significativamente a velocidade de processamento, ainda facilita a integração da ferramenta em hardware com mais de uma CPU;

• Formas de Armazenamento: o MySQL disponibiliza várias formas de armazenamento. Enquanto um tipo prioriza velocidade, outro prioriza volume de dados, entre outras características.

Page 41: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Características

• Velocidade: maior velocidade no acesso aos dados;

• Segurança: trabalha com criptografia no tráfego de senhas;

• Linguagem utilizada: SQL;

• Capacidade: tem um alto poder de execução e de armazenamento. Dependendo da situação é possível armazenar até 65.536 TB. Tem capacidade de executar mais de um bilhão de consultas por dia de um site, ou até mesmo processar milhares de transações por minuto.

Page 42: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Fazendo o Download do MySQL

• Para fazer o Download do MySQL acesse a página:

http://www.mysql.com/

• Ao acessar a página do MySQL clique no link “Downloads (GA)” .

• Na opção, MySQL Community Server clique em “Download” para ter acesso ao MySQL.

Page 43: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Fazendo o Download do MySQL Workbench (GUI Tool)

• O MySQL Workbench (GUI Tool) é um sistema que pode ser usado de forma eficiente para gerenciar as informações do banco de dados. 

• Para fazer o Download do MySQL acesse a página:

http://www.mysql.com/

• Ao acessar a página do MySQL clique no link “Downloads (GA)” .

• Na opção, MySQL Workbench (GUI Tool) clique em “Download” para ter acesso ao sistema.

Page 44: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Tela Inicial

Page 45: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Tipo de Instalação

Page 46: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Pronto para Instalar

Page 47: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Instalando

Page 48: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Instalando

Page 49: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Finalizando Instalação

Page 50: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Tipo de Configuração

Page 51: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Tipo de uso do Hardware

Page 52: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Mecanismo de Funcionamento e Armazenamento

Page 53: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Espaço para Arquivo InnB

Page 54: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Conexões Simultâneas

Page 55: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Configuração de Rede

Page 56: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Conjunto de Caracteres

Page 57: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Configuração do Windows

Page 58: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Acesso do Administrador

Page 59: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Salvando as Configurações

Page 60: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Instalando o MySQL

• Tela Final

Page 61: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Testando Aplicação PAREI AQUI

• Para verificar se o MySQL foi instalado corretamente, inicie o MySQL e digite o comando abaixo:

mysql> STATUS;

Page 62: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Criando um Banco de Dados

• A seguir, serão apresentados os comandos básicos para gerenciamento estrutural de um banco de dados, o que engloba sua criação e exclusão.

Page 63: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Criando um Banco de Dados

• Comando:

• CREATE DATABASE <nome>;

• Exemplo:

• CREATE DATABASE Faculdade;

Page 64: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Visualizando um Banco de Dados

• Para visualizar os bancos de dados existentes no MySQL, utilize o comando:

• SHOW DATABASES;

Page 65: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Ativando um Banco de Dados

• Para a maioria das ações realizadas em um banco de dados no MySQL é necessário ativá-lo para uso.

• Comando:

• USE <nome do banco de dados>;

Page 66: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Excluindo um Banco de Dados

• Para excluir um banco de dados do sistema, utilizas-se o comando abaixo:

• DROP DATABASE <nome>;

Page 67: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Tipo De Dados

Page 68: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Símbolos e Operadores

Page 69: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Símbolos e Operadores

Page 70: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Símbolos e Operadores

Page 71: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

• As tabelas correspondem a um grupo de dados organizados logicamente, estas tabelas representam uma entidade do mundo real ou não, por exemplo:

Page 72: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

• Registros

• Cada linha, formada por um conjunto de colunas, representa um registro.

• A linha destacada representa o registro de um determinado aluno, em um conjunto de dados de alunos da tabela..

Page 73: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

• Chave Primária

• A chave primária é constituída por colunas que representam unicamente um registro em uma tabela de banco de dados.

• Exemplo:

• Campo Matrícula na tabela de alunos

Page 74: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

• Chave Estrangeira

• Uma chave estrangeira é aquela que identifica um dado relacionado em outra tabela, ela deve ser do mesmo tipo de dado da tabela relacionada.

Page 75: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

• Para criar uma tabela, ative o banco de dados onde deseja criá-la e execute o comando a seguir:

• CREATE TABLE <nome>(

<colunas>

);

Page 76: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

• Definindo a Chave Primária:

– PRIMARY KEY (<nome da coluna>);

• Definindo a Chave Estrangeira:

– FOREIGN KEY(<nome do campo>) REFERENCES <nome da tabela referenciada>(<nome do campo da tabela referenciada>);

Page 77: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Tabelas

EXEMPLO

Page 78: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 79: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 80: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Visualizando uma Tabela

• Para visualizar as tabelas utiliza-se o comando baixo:

– SHOW TABLES;

Page 81: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Visualizando uma Tabela

• Para visualizar todas as informações estruturais das colunas de uma tabela, use o comando abaixo:

– DESCRIBE <nome da tabela>;

Page 82: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Adicionando uma coluna em uma tabela existente.

• Para incluir uma coluna em uma tabela já existente, utilize o comando descrito a seguir:

• ALTER TABLE <nome da tabela> ADD <nome da coluna><tipo de dado>;

Page 83: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Adicionando uma coluna em uma tabela existente.

• Exemplo: Antes da Alteração

ALTER TABLE alucurso ADD grade integer(2);

Depois da Alteração

Page 84: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Removendo uma coluna em uma tabela existente.

• Para remover uma coluna em uma tabela já existente, utilize o comando descrito a seguir:

• ALTER TABLE <nome da tabela> DROP <nome da coluna>;

Page 85: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Removendo uma coluna em uma tabela existente..

• Exemplo: Antes da Alteração

ALTER TABLE alucurso DROP grade;

Depois da Alteração

Page 86: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Modificar o tipo de dado da coluna.

• Para converter a coluna em um tipo de dado diferente, utiliza-se o comando:

• ALTER TABLE <nome da tabela> MODIFY <nome da coluna> <tipo>;

Page 87: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Modificar o tipo de dado da coluna.

• Exemplo: Antes da Alteração

ALTER TABLE curso MODIFY nome varchar(100);

Depois da Alteração

Page 88: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Modificar o nome de uma coluna.

• Para mudar o nome de uma coluna, utiliza-se:

• ALTER TABLE <nome da tabela> CHANGE <nome da coluna> <novo nome><tipo>;

Page 89: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Modificando o nome de uma coluna.

• Exemplo: Antes da Alteração

ALTER TABLE curso CHANGE nome nomes varchar(100);

Depois da Alteração

Page 90: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Modificar nome de uma tabela.

• Para modificar o nome de uma tabela, utiliza-se o comando:

• ALTER TABLE <nome da tabela> RENAME TO <novo nome>;

Page 91: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Modificações de Tabela

• Modificar nome de uma tabela.

• Exemplo: Antes da Alteração

ALTER TABLE curso RENAME TO cursos;

Depois da Alteração

Page 92: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Excluindo uma Tabela

• Para excluir uma tabela, tanto sua estrutura quanto todos os seus dados utiliza-se o comando a seguir:

– DROP TABLE <nome da tabela>;

Page 93: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 94: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Exercício

• Utilize o esquema lógico de uma loja e crie o Banco de Dados com todas as tabelas necessárias. Não esqueça de definir as chaves primárias e estrangeiras.

Page 95: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Esquema Lógico – Loja

Page 96: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Importar um Banco de Dados

• Comando utilizado:

\. <unidade>:\<nome do banco de dados>.sql

• Exemplo:

\. C:\Faculdade.sql

Page 97: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Manipulação de Dados

• Na SQL, três comandos podem ser utilizados para modificar o banco de dados:– INSERT (Inserir)

– DELETE (Excluir)

– UPDATE (atualizar)

Page 98: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O comando INSERT

• Na sua forma mais simples é utilizado para adicionar uma única tupla a uma relação.

• Sua forma geral é:

INSERT INTO nome_da_tabela VALUES (valores_a_serem_inseridos);

• Os valores devem ser relacionados na mesma ordem na qual os atributos correspondentes foram especificados no comando Create Table.

Page 99: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O comando INSERT - Exemplo

• Banco de Dados Faculdade

Page 100: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O comando INSERT - Exemplo

Page 101: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O comando INSERT – Outra forma de seu uso

• Permite especificar nomes explícitos de atributos que correspondem aos valores fornecidos no comando INSERT.

• É utilizado quando a relação possui muitos atributos, mas não há necessidade de se cadastrar todos.

Page 102: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O comando INSERT – Exemplo

• Observações:

– Estes atributos devem incluir todos os atributos com especificação Not Null.

– Atributos não incluídos nessa inserção são imputados para seus valores Defaul ou para Null.

Page 103: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O comando INSERT - Cuidados

• Restrição de Integridade.

• No momento da inserção o SGBD deve garantir as restrições de integridade.

• Exemplo:– Não pode ser inserido na tabela alucurso o código de

um curso inexistente.

Page 104: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O Comando UPDATE

• É utilizado para modificar valores de atributos de uma ou mais tuplas selecionadas.

• Sua forma geral é:

UPDATE nome_da_tabela

SET Atributos_a_serem_alterados

WHERE <condição>;

Page 105: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O Comando UPDATE - Exemplo

• Alterar o curso do aluno cuja matricula é ‘1234’ para o curso de ‘Medicina’,utiliza-se:

Page 106: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O Comando DELETE

• O comando DELETE remove tuplas de uma relação.• Possui a cláusula WHERE para selecionar as tuplas a

serem excluídas.• Sua forma geral é:

DELETE FROM nome_da_tabela

WHERE <condição>;• As tuplas são excluídas somente de uma tabela a cada

vez.– Entretanto, a exclusão pode se propagar para tuplas em

outras relações se ações referenciais disparadas forem especificadas nas restrições de integridade referencial

Page 107: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O Comando DELETE

• Dependendo do número de tuplas selecionadas pela condição da cláusula WHERE, nenhuma, uma ou várias tuplas podem ser excluídas.

• Exemplos:

Page 108: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

O Comando DELETE

DELETE FROM aluno;

(OBS: A omição da cláusula WHERE especifica que todas as tuplas na relação devem ser excluídas; entretanto a tabela permanece no BD como uma tabela vazia)

Deve-se utilizar o comando DROP TABLE para remover completamente a tabela.

Page 109: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 110: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Exercícios 1

Page 111: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Formulação de Consultas

Page 112: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Consultas Simples

• A consulta a dados armazenados é, usualmente, a operação realizada com mais freqüência em sistemas comerciais.

• A medida em que a quantidade de linhas em tabelas cresce e que utilizamos várias tabelas em uma mesma consulta, não só a complexidade do comando SQL aumenta, como também o tempo de resposta da consulta pode ser muito alto,exigindo assim, mais atenção na montagem do comando.

Page 113: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Consultas Simples

• O comando SELECT é usado para consultar o Banco de Dados e retornar dados recuperados que satisfazem a determinada condição expressa no comando.

• Comando:

SELECT col1, col2,..., clon

FROM Nome_Tabela;

Page 114: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Consultas Simples - Exemplo

• SELECT codigo , titulo FROM livro;

• SELECT codigo ,titulo,preco,lancamento FROM livro;

Page 115: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Consultas Simples

• Quando especificamos as colunas no comando SELECT, elas serão apresentadas no resultado, na ordem especifica.

• Quando o caractere “*” é utilizado, as colunas estarão ordenadas da mesma forma que foram definidas na criação da tabela. Este caractere retorna todas das colunas.

• Exemplo:

SELECT * FROM livro;

Page 116: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula WHERE

• Como vimos as consultas realizadas até agora tinham como resultado todas as linhas de uma tabela.

• Quando queremos que o resultado de uma consulta seja composto por linhas que atendam a determinadas condições, devemos utilizar a cláusula WHERE.

• Comando:

SELECT col1, col2,..., clon

FROM Nome_Tabela WHERE Expressao_Logica;

Page 117: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula WHERE - Exemplo

• Selecionar a sigla do assunto do livro de código igual a 3:

SELECT assunto FROM livro WHERE codigo=3

• Selecionar o título dos livros que possuem a data de lançamento nula:

SELECT titulo FROM livro WHERE lancamento is null;

Page 118: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Operadores de Pesquisa

Page 119: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Juntando Várias Condições (Junções)

• Para coletar informações de mais de uma tabela, realizamos junções.

• As junções são ligações entre tabelas, realizadas através dos valores de uma ou mais colunas.

• Usualmente, essas ligações ocorrem entre a CHAVE PRIMÁRIA de uma tabela e a CHAVE ESTRANGEIRA de outra tabela.

Page 120: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Juntando Várias Condições

Tabela Assunto

Chave Primaria Tabela Livro

Chave Estrangeira

Page 121: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Juntando Várias Condições

• Operadores:

Page 122: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Juntando Várias Condições - Exemplo

• Escreva o comando que retorna o nome das editoras e os títulos dos livros.

SELECT editora.nome, livro.tituloFROM editora, livroWHERE editora.codigo=livro.editora

Page 123: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Juntando Várias Condições - Exemplo

• Escreva o comando que retorna o nome das editoras, os títulos dos livros e o assunto de cada livro.

SELECT editora.nome, livro.titulo, assunto.descricaoFROM editora, livro, assuntoWHERE editora.codigo=livro.editora AND livro.assunto=assunto.sigla

Page 124: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Juntando Várias Condições - Exemplo

• Escreva o comando que retorna o nome das editoras, os títulos dos livros, cujo assunto é programação.

SELECT editora.nome, livro.titulo, assunto.descricaoFROM editora, livro, assuntoWHERE editora.codigo=livro.editora AND livro.assunto=assunto.sigla AND assunto.sigla='P'

Page 125: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 126: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Exercícios 2

Page 127: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Agrupando Dados

• Funções Agregadas:

– COUNT(): conta o número de valores de uma coluna

– SUM(): soma os valores de uma coluna de dados numéricos

– AVG(): calcula a média de uma coluna de dados numéricos

– MAX(): determina o maior valor de uma coluna

– MIN() : determina o menor valor de uma coluna

Page 128: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Função Agregada

• Contagem:

• Muitas vezes é necessário contar a quantidade de linhas que satisfazem determinadas condições.

• Para isso, utilizamos a função COUNT.

• A função COUNT recebe um parâmetro e retorna um número.

Page 129: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Contagem - Exemplo

• Exibir a quantidade total de livros cadastrados:

SELECT COUNT(*)

FROM livro

Ou

SELECT COUNT(codigo)

FROM livro

Page 130: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Contagem - Exemplo

• Exibir a quantidade total de livros relacionado ao assunto de Programação:

SELECT COUNT(*)

FROM livro

WHERE

assunto='P'

Page 131: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Função Agregada

• Soma:

• Para realizar a soma dos valores de uma coluna para um grupo de dados, utilizamos a função SUM.

Page 132: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Soma - Exemplo

• Exibir o valor total de todos livros cadastrados:

SELECT SUM(preco)

FROM livro

Page 133: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Função Agregada

• Média:

• Para obter a média aritmética dos valores de uma coluna, utilizamos a função AVG, informando, como parâmetro para a mesma, o nome da coluna para a qual desejamos obter a média.

Page 134: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Média - Exemplo

• Exibir a média de preços dos livros cadastrados:

SELECT AVG(preco)

FROM livro

Page 135: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Função Agregada

• Valor Máximo:

• Para obter o valor máximo de uma coluna em um conjunto de dados, utilizamos a função MAX.

Page 136: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Valor Máximo - Exemplo

• Retorne o maior preço da tabela de livros, para livros cujo assunto seja ‘P’:

SELECT MAX(preco)

FROM livro

WHERE assunto='P'

Page 137: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Função Agregada

• Valor Mínimo:

• Em oposição à função MAX, temos a função MIN, que retorna o menor valor de uma coluna para a tabela especificada.

Page 138: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Valor Mínimo - Exemplo

• Retorne o menor preço da tabela de livros, para livros cujo assunto seja ‘B’:

SELECT MIN(preco)

FROM livro

WHERE assunto='B'

Page 139: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY

• A cláusula GROUP BY é utilizada para agrupar as linhas das consultas com base nos valores de uma ou mais colunas.

• Normalmente a cláusula GROUP BY é utilizada junto com expressões de agregação.

Page 140: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY

• Calcule o preço médio dos livros para cada assunto.

SELECT

assunto,AVG(preco)

FROM

livro

• A consulta acima esta correta ?

Page 141: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY

SELECT

assunto,preco

FROM

livro

SELECT

AVG(preco)

FROM

livro

Page 142: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY

• Solução para a consulta:” Calcule o preço médio dos livros para cada assunto.”

SELECT

assunto,AVG(preco)

FROM

livro

GROUP BY assunto

Page 143: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY – Exemplo 1

• Quantos livros existem para cada assunto?

SELECT

assunto,COUNT(*)

FROM

livro

GROUP BY assunto

Page 144: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY – Exemplo 2

• Qual o preço do livro mais caro de cada assunto, dentre aqueles que já foram lançados?

SELECT

assunto,MAX(PRECO)

FROM

livro

WHERE

lancamento is not null

GROUP BY assunto

Page 145: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula GROUP BY – Exemplo 3

• Qual a média de preço para cada código e assunto?

SELECT

codigo,assunto,AVG(preco)

FROM

livro

GROUP BY codigo,assunto

Page 146: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula HAVING

• A cláusula WHERE não nos permite realizar restrições com base nos resultados das funções agregadas.

• Para isso, devemos utilizar a cláusula HAVING.

• WHERE seleciona as linhas da tabela que irão participar da geração do resultado .

• HAVING é aplicado ao resultado de cada grupo para saber quais vão aparecer no resultado.

Page 147: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula HAVING – Exemplo 1

• Quais os assuntos cujo preço médio dos livros ultrapassa de R$50,00?

SELECT

assunto

FROM

livro

WHERE

AVG(preco) > 50 ERRO

Page 148: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula HAVING – Exemplo 1

• Quais os assuntos cujo preço médio dos livros ultrapassa de R$50,00?

SELECT

assunto

FROM

livro

GROUP BY assunto

HAVING AVG(preco) > 50

Page 149: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula HAVING – Exemplo 2

• Quais os assuntos que possuem pelo menos dois livros?

SELECT

assunto,

COUNT(*)

FROM

livro

GROUP BY assunto

HAVING COUNT(*) > 1

Page 150: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

A Cláusula HAVING – Exemplo 3

• Quais os assuntos que possuem pelo menos dois livros já lançados?

SELECT

assunto,

COUNT(*)

FROM

livro

WHERE

lancamento is not null

GROUP BY assunto

HAVING COUNT(*) > 1

Page 151: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Apelidos

• Na SQL é possível atribuir apelidos tanto a colunas quanto a tabelas, e referenciá-las através de seus apelidos.

Page 152: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Apelidos para Colunas - Exemplo

• Considere a consulta que retorna o maior preço da tabela de livros cujo assunto seja ‘P’:

Sem Apelido

SELECT MAX(preco)FROM livroWHERE assunto='P'

Com Apelido

SELECT MAX(preco)AS PRECO_MAXIMOFROM livroWHERE assunto='P'

Page 153: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Apelidos para Tabelas - Exemplo

• Considere a consulta que retorna o maior preço da tabela de livros cujo assunto seja ‘P’:

Sem Apelido

SELECT MAX(preco)FROM livroWHERE assunto='P'

Com Apelido

SELECT MAX(preco)AS PRECO_MAXIMOFROM livro LWHERE L.assunto='P'

Page 154: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Ordenando Resultados

• Ao realizarmos consultas SQL não sabemos, a priori, quais e em que ordem as linhas do resultado serão apresentadas.

• No entanto, muitas vezes, desejamos obter os resultados ordenados por uma ou mais colunas.

• Para isso, devemos utilizar a cláusula ORDER BY.

Page 155: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Ordenando Resultados - Exemplo

• Gerar a listagem dos livros contendo assunto, título e preço. A listagem deverá estar ordenada em ordem crescente de assunto.

SELECT assunto, titulo, precoFROM livroORDER BY assunto ASC

SELECT assunto, titulo, precoFROM livroORDER BY 1

SELECT assunto, titulo, precoFROM livroORDER BY assunto

Page 156: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Ordenando Resultados - Exemplo

• Gerar a listagem dos livros contendo assunto, título e preço. A listagem deverá estar ordenada em ordem decrescente de assunto.

SELECT assunto, titulo, precoFROM livroORDER BY assunto DESC

SELECT assunto, titulo, precoFROM livroORDER BY 1 DESC

Page 157: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Eliminando Repetições

• Quando realizamos consultas sobre tabelas, podemos obter linhas repetidas.

• Para eliminarmos repetições, em relações resultados de consultas, foi definido o predicado DISTINCT.

• Este predicado deve ser utilizado após a cláusula SELECT.

Page 158: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Eliminando Repetições - Exemplo

• Recuperar os assuntos distintos da tabela livros.

ERRO

SELECTAssunto AS assuntoFROMlivro

SELECT DISTINCTAssunto AS assuntoFROMlivro

Page 159: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com
Page 160: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Exercícios 3

Page 161: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Exercícios 4 e 4.1

Page 162: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

1 Avaliação

Page 163: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Realizando Operações Aritméticas

• Podemos realizar operações aritméticas sobre os resultados de uma consulta.

• Os operadores (+, -, * , /) podem ser utilizados em expressões matemáticas.

• Além disso, parênteses também podem ser utilizados, para determinar prioridades na execução das operações.

Page 164: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Realizando Operações Aritméticas – Exemplo 1

• Listar os novos preços dos livros se os valores fossem reajustados em 10%.

SELECT

titulo,

preco AS antigo_preco,

preco * 1.1 AS novo_preco

FROM

livro

Page 165: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Realizando Operações Aritméticas – Exemplo 2

• Listar os novos preços dos livros se os valores fossem reajustados em 10%.

SELECT

titulo,

preco AS antigo_preco,

preco + (preco/10) AS novo_preco

FROM

livro

Page 166: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Subconsultas

• A utilização de subconsultas é uma das formas de combinação de duas ou mais consultas para um único resultado final.

• Uma subconsulta (subquery) é uma consulta SELECT aninhada dentro de outro comando SQL. Ela pode retornar um valor só ou uma lista de valores para ser usada numa comparação.

Page 167: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Subconsultas – Exemplo 1

• Retorne os nomes das editoras que possuem livros já lançados.

SELECT nomeFROM editoraWHERE codigo IN (SELECT editora FROM livro WHERE lancamento is not null)

Consulta externa procurará por nomes de editoras para as quais o código consta na relação produzida pela subconsulta

A subconsulta gera umarelação temporária de uma única coluna contendo oscódigos de editoras quepublicaram livros que jáforam lançados.

Page 168: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Subconsultas – Exemplo 2

• Desejamos saber sobre quais assuntos não foram lançados livros.

SELECT descricaoFROM assuntoWHERE sigla NOT IN (SELECT assunto FROM livro WHERE lancamento is not null)

A subconsulta gera umalista de assuntos dos livros quejá foram lançados.

Consulta externa procurará, na tabela de assuntos, quais assuntosnão constam na listagem gerada pela subconsulta.

Page 169: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Casamento de Padrões

• Operador LIKE.

• Permite condições de comparação somente em partes de um string de caracteres.

• Para isto, faz uso de dois caracteres reservados:

– %(porcentagem) deve ser usado para substituir um caracter ou grupo de caracteres, não importando a sua natureza.

– _ (sublinhado): Combina com um único caractere

Page 170: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Casamento de Padrões – Exemplo 1

• Recupere todos os títulos dos livros que comece com palavra a “Banco”:

SELECT tituloFROM livroWHERE titulo LIKE 'BANCO%'

• Obs. BANCO% , você verá todos os registros que começam com a palavra BANCO.

Page 171: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Casamento de Padrões – Exemplo 2

• Recupere todos os títulos dos livros que termine com palavra a “Linguagem C”:

SELECT tituloFROM livroWHERE titulo LIKE '%LINGUAGEM C';

• Obs. %LINGUAGEM C, você verá todos os registros que terminam com a palavra LINGUAGEM C.

Page 172: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Casamento de Padrões – Exemplo 3

• Recupere todos os títulos dos livros que contenha a palavra “Dados”:

SELECT tituloFROM livroWHERE titulo LIKE '%DADOS%'

• Obs. %DADOS%, você verá todos os registros que contenha a palavra DADOS.

Page 173: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Faixas

• Operador BETWEEN...AND...

• Use a condição Between para retornar linhas baseadas em uma faixa de valores.

• Muito propício para campos do tipo numérico ou data.

Page 174: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Faixas – Exemplo 1

• Retorne todos os livros cuja a faixa de preço seja de 42.00 a 120.00.

SELECT

titulo,

preco

FROM

livro

WHERE

preco BETWEEN '42.00' AND '120.00'

Page 175: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Usando Faixas – Exemplo 2

• Retorne todos os livros que foram lançados entre as datas de 01/11/1998 a 10/01/1999.

SELECT

titulo,

lancamento

FROM

livro

WHERE

lancamento BETWEEN ’1998-11-01' AND ‘1999-01-10'

Page 176: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Datas

• A formatação de campos relacionados a datas e horários é uma das que apresenta o maior número de variações entre as implementações dos SBDD e o padrão SQL.

• Dentre as funções mais utilizadas temos DAY, MONTH e YEAR.

Page 177: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Datas – Exemplo 1

• Selecione o dia da publicação do livro de código 1.

SELECT

DAY(lancamento) AS dia

FROM

livro

WHERE

codigo=1

Page 178: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Datas – Exemplo 2

• Selecione o mês e o ano da publicação dos livros cujo assunto é R.

SELECT

MONTH(lancamento) AS mes,

YEAR(lancamento) AS ano

FROM

livro

WHERE

assunto=‘R’

Page 179: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Datas – Exemplo 3

SELECT

lancamento AS data_br

FROM

livro

SELECT

date_format(lancamento, '%d/%m/%Y') AS data_br

FROM

livro

Page 180: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Funções de Caracteres

Page 181: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Funções de Caracteres - Exemplo

SELECT LOWER(titulo)FROM livro

SELECT UPPER(titulo)FROM livro

SELECT SUBSTRING(titulo,10,5), tituloFROM livro

SELECT concat('O titulo do livro é:', titulo)FROM livro

SELECT concat(char(040), titulo, char(041))FROM livro

Page 182: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Índices

• É usado pelo SGBD para aumentar a velocidade de recuperação de linhas usando ponteiro.

• Reduz E/S de disco usando um caminho de acesso rápido para localizar dados rapidamente.

• Usado e mantido automaticamente pelo SGBD.

Page 183: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Criação de Índices

• Situação em que são criados:

• Automaticamente: quando uma Chave Primária ou Única é definida para uma tabela.

• Manualmente: Acesso as linhas

Page 184: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Criação e Remoção de Índices

• Sintaxe:

CREATE INDEX<nome>

ON TABLE (coluna);

DROP INDEX<nome>

ON TABLE <nome da tabela>;

Page 185: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com

Índices - Exemplo

CREATE INDEX liv_titulo_idx

ON livro(titulo);

DROP INDEX liv_titulo_idx

ON livro;

Page 186: SGBD – Sistemas de Gerenciadores de Banco de Dados Revisão Manipulação de Banco de Dados Prof. Fábio Junior Alves faguanil@gmail.com