SGBD – Sistemas de Gerenciadores de Banco de Dados

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Banco de Dados Prof. Antonio.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Funcionalidades de um SGBD
Prof.: Bruno Rafael de Oliveira Rodrigues
Prof.: Bruno Rafael de Oliveira Rodrigues
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Bacharelado em Ciência da Computação
Introdução a Bancos de Dados
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
SQL Structured Query Language
Banco de dados Profª Kelly Medeiros.
Administração de Sistemas de Informação Banco de Dados
Treinamento do Microsoft® Access® 2010
SQL Álvaro Vinícius de Souza Coêlho
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Design Patterns / Acesso ao banco de dados (java.sql)
(Linguagem de Consulta Estruturada)
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Banco de Dados Aplicado ao Desenvolvimento de Software
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Desenvolvendo um script SQL
Treinamento sobre SQL.
Banco de dados.
Linguagem de Definição de Dados
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Baseado no material do Professor Raul Paradeda
A abordagem de banco de dados para gerenciamento de dados
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Banco de Dados Aplicado ao Desenvolvimento de Software
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Bancos de Dados Estrutura e Funcionamento de um SGBD
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
TECNOLOGIAS E LINGUAGENS PARA BANCO DE DADOS I
Treinamento SQL Server
SCC Bancos de Dados e Suas Aplicações
Banco de Dados I I Comandos SQL
Banco de dados 1 Modelagem de Dados Utilizando MER
Linguagem SQL Prof. Juliano.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Daniel Paulo SQL Módulo I Daniel Paulo
UCSal – Bacharelado em Informática
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Plano de Ensino Conceitos e Características Tipos de Banco de Dados
Linguagem de definição de dados - SQL
Programação para Web I AULA 2 BANCO DE DADOS.
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Kelyn Schenatto. Definição Linguagem de Consulta Estruturada (Structured Query Language); Desenvolvida inicialmente nos anos 70 nos laboratórios da IBM.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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

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.

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.

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.

Bibliografia Complementar

Avaliações

Método de Trabalho Relação Aluno Professor; Chamada; Aula de dúvidas e/ou Vista de Prova; Indisciplina.

Introdução a Banco de Dados

Algumas Perguntas???

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.

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

Sistema de Banco de Dados

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.

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).

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.

Evolução dos Bancos de Dados

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.

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;

Modelo de Dados

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.

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.

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.

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);

Projeto de um BD – Exemplo Entidades Relacionamentos

Projeto de um BD – Exemplo Identificar os Atributos

Projeto de um BD – Exemplo Definir o Projeto Lógico (Modelo Relacional);

Projeto de um BD – Exemplo Definir o Modelo de Dado Físico (SQL);

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.

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).

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).

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).

Banco de Dados MySQL

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.

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.

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;

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.

Compatibilidade Sistemas Operacionais: Linux, Unix, FreeBSD, Mac OS X Server e Windowns; Linguagens de programação: PHP, JAVA, C++, etc.

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.

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.

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.

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.

Instalando o MySQL Tela Inicial

Instalando o MySQL Tipo de Instalação

Instalando o MySQL Pronto para Instalar

Instalando o MySQL Instalando

Instalando o MySQL Instalando

Instalando o MySQL Finalizando Instalação

Instalando o MySQL Tipo de Configuração

Instalando o MySQL Tipo de uso do Hardware

Instalando o MySQL Mecanismo de Funcionamento e Armazenamento

Instalando o MySQL Espaço para Arquivo InnB

Instalando o MySQL Conexões Simultâneas

Instalando o MySQL Configuração de Rede

Instalando o MySQL Conjunto de Caracteres

Instalando o MySQL Configuração do Windows

Instalando o MySQL Acesso do Administrador

Instalando o MySQL Salvando as Configurações

Instalando o MySQL Tela Final

Testando Aplicação PAREI AQUI Para verificar se o MySQL foi instalado corretamente, inicie o MySQL e digite o comando abaixo: mysql> STATUS;

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.

Criando um Banco de Dados Comando: CREATE DATABASE <nome>; Exemplo: CREATE DATABASE Faculdade;

Visualizando um Banco de Dados Para visualizar os bancos de dados existentes no MySQL, utilize o comando: SHOW DATABASES;

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>;

Excluindo um Banco de Dados Para excluir um banco de dados do sistema, utilizas-se o comando abaixo: DROP DATABASE <nome>;

Tipo De Dados

Símbolos e Operadores

Símbolos e Operadores

Símbolos e Operadores

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:

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.

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

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.

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> );

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>);

Manipulação de Tabelas EXEMPLO

Visualizando uma Tabela Para visualizar as tabelas utiliza-se o comando baixo: SHOW TABLES;

Visualizando uma Tabela Para visualizar todas as informações estruturais das colunas de uma tabela, use o comando abaixo: DESCRIBE <nome da tabela>;

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>;

Modificações de Tabela Adicionando uma coluna em uma tabela existente. Exemplo: Antes da Alteração Depois da Alteração ALTER TABLE alucurso ADD grade integer(2);

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>;

Modificações de Tabela Removendo uma coluna em uma tabela existente.. Exemplo: Antes da Alteração Depois da Alteração ALTER TABLE alucurso DROP grade;

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>;

Modificações de Tabela Modificar o tipo de dado da coluna. Exemplo: Antes da Alteração Depois da Alteração ALTER TABLE curso MODIFY nome varchar(100);

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>;

Modificações de Tabela Modificando o nome de uma coluna. Exemplo: Antes da Alteração Depois da Alteração ALTER TABLE curso CHANGE nome nomes varchar(100);

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>;

Modificações de Tabela Modificar nome de uma tabela. Exemplo: Antes da Alteração Depois da Alteração ALTER TABLE curso RENAME TO cursos;

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>;

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.

Esquema Lógico – Loja

Importar um Banco de Dados Comando utilizado: \. <unidade>:\<nome do banco de dados>.sql Exemplo: \. C:\Faculdade.sql

Manipulação de Dados Na SQL, três comandos podem ser utilizados para modificar o banco de dados: INSERT (Inserir) DELETE (Excluir) UPDATE (atualizar)

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.

O comando INSERT - Exemplo Banco de Dados Faculdade

O comando INSERT - Exemplo

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.

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.

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.

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>;

O Comando UPDATE - Exemplo Alterar o curso do aluno cuja matricula é ‘1234’ para o curso de ‘Medicina’,utiliza-se:

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

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:

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.

Exercícios 1

Formulação de Consultas

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.

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;

Consultas Simples - Exemplo SELECT codigo , titulo FROM livro; SELECT codigo ,titulo,preco,lancamento FROM livro;

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;

A Cláusula WHERE SELECT col1, col2,..., clon FROM Nome_Tabela 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;

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;

Operadores de Pesquisa

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.

Juntando Várias Condições Tabela Assunto Tabela Livro Chave Primaria Chave Estrangeira

Juntando Várias Condições Operadores:

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.titulo FROM editora, livro WHERE editora.codigo=livro.editora

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.descricao FROM editora, livro, assunto WHERE editora.codigo=livro.editora AND livro.assunto=assunto.sigla

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.descricao FROM editora, livro, assunto WHERE editora.codigo=livro.editora AND livro.assunto=assunto.sigla AND assunto.sigla='P'

Exercícios 2

Agrupando Dados COUNT(): conta o número de valores de uma coluna 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

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.

Contagem - Exemplo Exibir a quantidade total de livros cadastrados: SELECT COUNT(*) FROM livro Ou SELECT COUNT(codigo)

Contagem - Exemplo Exibir a quantidade total de livros relacionado ao assunto de Programação: SELECT COUNT(*) FROM livro WHERE assunto='P'

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

Soma - Exemplo Exibir o valor total de todos livros cadastrados: SELECT SUM(preco) FROM livro

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.

Média - Exemplo Exibir a média de preços dos livros cadastrados: SELECT AVG(preco) FROM livro

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.

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'

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.

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'

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.

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 ?

A Cláusula GROUP BY SELECT assunto,preco FROM livro SELECT AVG(preco)

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

A Cláusula GROUP BY – Exemplo 1 Quantos livros existem para cada assunto? SELECT assunto,COUNT(*) FROM livro GROUP BY assunto

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

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

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.

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

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

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

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

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

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 livro WHERE assunto='P' Com Apelido SELECT MAX(preco)AS PRECO_MAXIMO FROM livro WHERE assunto='P'

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 livro WHERE assunto='P' Com Apelido SELECT MAX(preco)AS PRECO_MAXIMO FROM livro L WHERE L.assunto='P'

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.

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, preco FROM livro ORDER BY assunto ASC SELECT assunto, titulo, preco FROM livro ORDER BY assunto SELECT assunto, titulo, preco FROM livro ORDER BY 1

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, preco FROM livro ORDER BY assunto DESC SELECT assunto, titulo, preco FROM livro ORDER BY 1 DESC

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.

Eliminando Repetições - Exemplo Recuperar os assuntos distintos da tabela livros. SELECT Assunto AS assunto FROM livro SELECT DISTINCT Assunto AS assunto FROM livro ERRO

Exercícios 3

Exercícios 4 e 4.1

1 Avaliação

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.

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

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

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.

Usando Subconsultas – Exemplo 1 Retorne os nomes das editoras que possuem livros já lançados. SELECT nome FROM editora WHERE 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 uma relação temporária de uma única coluna contendo os códigos de editoras que publicaram livros que já foram lançados.

Usando Subconsultas – Exemplo 2 Desejamos saber sobre quais assuntos não foram lançados livros. SELECT descricao FROM assunto WHERE sigla NOT IN (SELECT assunto FROM livro WHERE lancamento is not null) Consulta externa procurará, na tabela de assuntos, quais assuntos não constam na listagem gerada pela subconsulta. A subconsulta gera uma lista de assuntos dos livros que já foram lançados.

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

Casamento de Padrões – Exemplo 1 Recupere todos os títulos dos livros que comece com palavra a “Banco”: SELECT titulo FROM livro WHERE titulo LIKE 'BANCO%' Obs. BANCO% , você verá todos os registros que começam com a palavra BANCO.

Casamento de Padrões – Exemplo 2 Recupere todos os títulos dos livros que termine com palavra a “Linguagem C”: SELECT titulo FROM livro WHERE titulo LIKE '%LINGUAGEM C'; Obs. %LINGUAGEM C, você verá todos os registros que terminam com a palavra LINGUAGEM C.

Casamento de Padrões – Exemplo 3 Recupere todos os títulos dos livros que contenha a palavra “Dados”: SELECT titulo FROM livro WHERE titulo LIKE '%DADOS%' Obs. %DADOS%, você verá todos os registros que contenha a palavra DADOS.

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.

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'

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'

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.

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

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’

Datas – Exemplo 3 SELECT lancamento AS data_br FROM livro SELECT date_format(lancamento, '%d/%m/%Y') AS data_br FROM livro

Funções de Caracteres

Funções de Caracteres - Exemplo SELECT LOWER(titulo) FROM livro SELECT SUBSTRING(titulo,10,5), titulo FROM livro SELECT UPPER(titulo) FROM livro SELECT concat('O titulo do livro é:', titulo) FROM livro SELECT concat(char(040), titulo, char(041)) FROM livro

Í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.

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

Criação e Remoção de Índices Sintaxe: CREATE INDEX<nome> ON TABLE (coluna); DROP INDEX<nome> ON TABLE <nome da tabela>;

Índices - Exemplo CREATE INDEX liv_titulo_idx ON livro(titulo); DROP INDEX liv_titulo_idx ON livro;