A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

Apresentações semelhantes


Apresentação em tema: "PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização."— Transcrição da apresentação:

1 PROFESSOR RAFAEL SILVA BANCOS DE DADOS

2 OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização de bancos de dados Ensinar técnicas para projetos e modelagem de bancos de dados Apresentar a linguagem SQL Apresentar o SGBD MySql, permitindo a criação e manipulação de bancos de dados

3 INTRODUÇÃO O que é banco de dados? Existem vários conceitos para o que chamamos de bancos de dados, mas todos remetem à mesma ideia: Uma coleção compartilhada de dados, inter-relacionados, projetados para atender as necessidades dos múltiplos tipos de usuários. Dado x informação: Dado: valor solto na natureza, cujo significado depende do contexto. Ex: -1, 3.14, 853, prata Informação: É um valor para determinado objetivo, acrescenta conhecimento ao fato analisado. Pode ser extraída de um banco de dados Ex: A temperatura na cidade X foi de -1 grau, Meu carro é prata, 3.14 é o valor de pi

4 IMPORTÂNCIA DOS BDS O mundo hoje é totalmente informatizado Pessoas e empresas são cada vez mais dependentes da informática Tudo gira em torno de dados (vendas, operações bancárias, gerenciamento de empresas, escolas e/ou órgãos públicos, etc.) Os bancos de dados permitem o armazenamento destas informações, considerando aspectos fundamentais como segurança, rapidez no acesso e confiabilidade.

5 VANTAGENS DE UM BD Controle de redundância Compartilhamento entre múltiplos usuários Restrição de acesso aos dados Diferentes tipos de interface para diferentes usuários Representação dos dados com um nível grande de complexidade Garante a restrição de integridade (manter dados íntegros) Mecanismos de backup e recuperação de dados Flexibilidade na mudança das estruturas de dados

6 SISTEMAS DE BANCOS DE DADOS Envolvem quatro elementos: Dados : são os elementos essenciais (afinal de contas, o banco de dados é um repositório) Hardware: composto por volumes de armazenamento (discos), processadores de HD e memória (dar suporte à execução dos SGBDs) Software: programas usados para criar e gerenciar os bancos de dados; também entram os utilitários, ferramentas de desenvolvimento, geradores de relatórios, etc Usuários: pessoas que usarão os bancos de dados

7 TIPOS DE USUÁRIOS Programadores: criam programas para acessar os bancos de dados Usuários finais: acessam os bancos de dados interativamente Profissionais: usuários com conhecimentos específicos sobre bancos de dados. Podem ser: Administrador de dados: responsável pelos dados, decidem o que deve ser armazenado DBA: Responsável pela implementação das decisões do administrador; cria os bancos de dados e implementa controles necessários

8 SGBDS Sigla para Sistemas Gerenciadores de Bancos de Dados. São softwares que tem como objetivos permitir a criação e manutenção de banco de dados, além da manipulação dos dados armazenados. Alguns SGBDs: Access, SQLServer Oracle MySQL PostGre

9 LINGUAGEM SQL Linguagem padronizada para manipulação de bancos de dados, usadas nos SGBDs Dividida em: DDL - Linguagem de Definição de Dados DML - Linguagem de Manipulação de Dados DCL - Linguagem de Controle de Dados DTL - Linguagem de Transação de Dados DQL - Linguagem de Consulta de Dados

10 ABSTRAÇÃO DE DADOS Nível de visões do usuário ou externo : descreve partes do banco de dados, de acordo com as necessidades de cada usuário, individualmente. Nível conceitual ou lógico : descreve quais dados estão armazenados e seus relacionamentos. Neste nível, o banco de dados é descrito através de estruturas relativamente simples, que podem envolver estruturas complexas no nível físico. Nível físico : nível mais baixo de abstração. Descreve como os dados estão realmente armazenados, englobando estruturas complexas de baixo nível.

11 INSTÂNCIAS E ESQUEMAS Instância: Os dados atuais armazenados no Banco de Dados em um momento particular. Também chamado estado do banco de dados. Esquema: Descrição da estrutura de um Banco de Dados. Pode ser textual ou gráfico. Conhecido também como o projeto geral do banco de dados.

12 INDEPENDÊNCIA DE DADOS Capacidade de modificar os esquemas de um banco de dados sem afetar um esquema de nível superior. Existem dois níveis de independência: Física: capacidade de modificar o esquema físico sem que haja qualquer necessidade de reescrever alguma aplicação. Usada para promover melhorias no desempenho. Lógica: capacidade de modificar o esquema lógico sem que haja qualquer necessidade de reescrever alguma aplicação. Necessárias quando uma estrutura lógica é alterada (ex: inserção de novas moedas num sistema)

13 MODELO DE DADOS Conceituais (Alto Nível) Entidade-Relacionamento Objeto-Relacional (BDII) Orientado a Objeto (BDII) Implementação (Lógicos) Relacional Rede (BD mais antigos) Hierárquico (BD mais antigos) Físicos

14 MODELO ENTIDADE- RELACIONAMENTO Modelo proposto por Peter Chen, baseado na percepção do mundo real. Formado por um conjunto de objetos básicos denominados entidades e nos relacionamentos entre tais objetos. Tal modelo permite especificar a estrutura lógica do banco de dados.

15 MODELO ENTIDADE- RELACIONAMENTO O Diagrama Entidade-Relacionamento (DER) permite representar graficamente a estrutura lógica de um banco de dados. De um modo geral, para nos auxiliar na elaboração de um DER, podemos dizer que os substantivos de uma frase são as entidades e os verbos são os relacionamentos entre as entidades.

16 MODELO ENTIDADE- RELACIONAMENTO

17 Entidade: Podemos definir uma entidade como sendo um objeto do mundo real, com significado próprio e identificação distinta. Pode ser pessoa, animal, conta bancária, produto, veículo, etc. – depende do contexto. Entidade fraca: Entidade cuja existência depende obrigatoriamente de outra entidade. Por exemplo, em um clube, não existe dependente sem um sócio. Assim, a entidade dependente é fraca.

18 MODELO ENTIDADE- RELACIONAMENTO Atributo: Toda entidade é descrita sob a forma de atributos. É simplesmente um item que ajuda a descrever entidade. Por exemplo, uma entidade chamada ALUNO pode ter os seguintes atributos: matrícula, nome, data de nascimento, nota. Atributo chave: Chave primária é um atributo de uma entidade, cuja função principal é identificar uma instância unicamente; deve ser um valor não nulo que não se repete dentre as instâncias de uma mesma entidade. Por exemplo, para a entidade ALUNO, a matrícula seria a chave primária, já que não podemos ter dois ou mais alunos com a mesma matrícula.

19 MODELO ENTIDADE- RELACIONAMENTO Outros tipos de chaves: Superchave: Conjunto de um ou mais atributos que, tomado coletivamente, permite-nos identificar unicamente uma instância de entidade. Chaves candidatas: Chaves com unicidade em uma instância: Ex: CPF, RG, título eleitoral. Todos os atributos que conseguem identificar uma instância. Chave secundária: Chave sem unicidade em uma instância. Ex: idade, sexo, endereço.

20 MODELO ENTIDADE- RELACIONAMENTO Atributo multivalorado: Atributo que pode ocorrer diversas vezes para uma mesma instância de entidade. Como exemplo, para a entidade ALUNO, podemos ter mais de um . Atributo composto: Atributo que pode ser desmembrado em outros atributos. Como exemplo, o atributo telefone da entidade ALUNO (formado por DDD + número do telefone). Atributo derivado: atributo cujo valor é calculado a partir do valor de outro atributo. Ex: o atributo idade de entidade ALUNO é derivado, já que pode ser obtido a partir do valor do atributo data de nascimento.

21 MODELO ENTIDADE- RELACIONAMENTO Relacionamento: Termo usado para representar a associação entre entidades. Deve ser identificado por um verbo. Os relacionamentos possuem cardinalidade, identificação de quantas ocorrências de uma entidade têm correspondência na entidade relacionada.

22 CARDINALIDADE Tipos de cardinalidade: 1:1 (um para um) – cada ocorrência de uma entidade está relacionada a apenas uma ocorrência da outra entidade. 1:N (um para muitos) - cada ocorrência de uma entidade está relacionada a várias ocorrências da outra entidade. N:N (muitos para muitos) - cada ocorrência de uma entidade está relacionada a várias ocorrências da outra entidade e vice-versa. Este tipo de relacionamento dá origem a outra entidade.

23 EXEMPLOS Relacionamento 1:1 Um coordenador cuida de apenas uma disciplina e cada disciplina é de responsabilidade de apenas um coordenador

24 EXEMPLOS Relacionamento 1:N Um curso pode ter vários alunos, mas cada aluno só pode estar matriculado em um curso

25 EXEMPLOS Relacionamento N:N Um aluno faz cursa várias disciplinas e cada disciplina pode ter vários alunos Obs: Este tipo de entidade tem representação diferente e é conhecido como ENTIDADE ASSOCIATIVA

26 EXEMPLO O relacionamento CURSA descrito a seguir será transformado em entidade associativa. Aluno Disciplinas Cursa Nota RA Nome Código Nome

27 AUTO RELACIONAMENTOS Tipo de situação onde uma instância de uma entidade tem relação com outra instância da mesma entidade. É fundamental saber o papel de cada instância da entidade.

28 AUTO RELACIONAMENTOS Funcionário Casado Funcionário 1 1 Casado Marido Esposa 1

29 GENERALIZAÇÃO/ESPECIALIZAÇÃO Em algumas situações, uma entidade pode conter instâncias com atributos diferentes. Neste caso, é possível visualizar uma herança de propriedades Para situações como essa, usamos os conceitos de generalização e especialização

30 EXEMPLO Cliente P. FísicaP. Jurídica CódigoNome CPF CNPJ

31 EXEMPLO Neste caso, a entidade CLIENTE é de um nível superior ou genérico (GENERALIZAÇÃO). As entidades PESSOA FÍSICA e PESSOA JURÍDICA são entidades de nível inferior (ESPECIALIZAÇÃO) Os atributos descritos na entidade CLIENTE são comuns às entidades PESSOA FÍSICA e PESSOA JURÍDICA

32 EXEMPLO – DER (CONSULTÓRIO) Um médico trata de pacientes. Do médico deseja-se saber CRM, nome e suas especializações. O paciente é tratado por vários médicos. Do paciente necessitamos saber o nome, endereço e idade. O médico pede exames para o paciente. Para cada pedido de exame está associado um único tipo de exame. Tal pedido se faz com uma justificativa.

33 Médico Trata Paciente Tipo Exame Pede Exames Justificativa Data Pedido CRMNome Endereço Especializações Data Nasc. Código Idade CódigoNome NM M N 1

34 EXEMPLO - DER (PIZZARIA) Um cliente faz pedidos. Cada pedido possui diversos itens de pedido. Cada pedido é entregue por um motoboy. Cada item corresponde a um produto.

35 Cliente Faz Pedido Item Possui Cód. ClienteNome Data Pedido Cód. Pedido Cód. Item Quantidade N1 1 EndereçoTelefone Produto Corresponde Cód. Produto Descrição 1 N N Valor Motoboy Entrega Cód. Motoboy Nome

36 EXEMPLO – DER(EMPRESA) Um funcionário trabalha para um departamento. Cada funcionário possui diversos dependentes. Um departamento controla diversos projetos, sendo que um projeto só é controlado por um único departamento. Diversos funcionários participam por um certo número de horas em um projeto.

37 Funcionário Trabalha para Departamento Código Nome Código 1N CPF Dependente Possui Código Nome Projeto Controla NomeCódigo Participa Data Início Data Término Qtd. Horas N 1 N M 1 N

38 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio de uma Construtora : - Uma obra possui vários Engenheiros mas um Engenheiro só pode trabalhar em apenas uma obra até a sua conclusão. - Um obra utiliza vários materiais e um material pode ser utilizado em várias obras. - Em uma obra trabalham vários pedreiros e um pedreiro pode ser escalado para trabalhar em várias obras

39 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio de uma Escola : - Uma classe possui vários alunos mas um aluno só pode estudar em apenas uma classe - Um professor pode lecionar várias matérias e uma matéria pode ser lecionada por vários professores - Uma classe possui apenas um professor responsável mas um professor pode ser responsável por várias classes

40 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio de uma Clínica médica : - Um médico atende vários pacientes e um paciente pode ser atendido por vários médicos. - Podem existir vários médicos de uma especialidade médica mas cada médico trabalha com apenas uma especialidade - Um médico pode ser credenciado em vários convênios e um convênio pode ter vários médicos da clínica credenciados.

41 EXERCÍCIOS Elabore um DER para uma biblioteca, considerando as seguintes regras de negócio: - Uma editora publica vários livros e um livro pertence apenas uma editora. - Um escritor pode escrever vários livros e um livro por vários escritores - Uma editora possui vários escritores filiados e um escritor durante sua vida Profissional pode ter se filiado a várias editoras

42 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio - Em um turno estudam vários alunos e um aluno só estuda em um turno. - Em um turno trabalham vários professores e um professor pode trabalhar em vários turnos. - Cada turno tem uma coordenadora, que pode coordenar mais de um turno

43 EXERCÍCIOS Elabore um DER para uma empresa, considerando as seguintes regras de negócio: - Um gerente coordena vários departamentos e um departamento só tem um gerente. - Em um departamento trabalham vários funcionários e um funcionário trabalha só em um departamento. - Um dependente só pode ser relacionado a um funcionário, mas um funcionário pode ter vários dependentes

44 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio: - Um departamento pode requisitar vários materiais. E um material pode ser requisitado por vários departamentos. - Um fornecedor pode fornecer vários materiais, e um material pode ser fornecido por diversos fornecedores. - Um representante pode representar vários fornecedores e um fornecedor pode ser representado por vários representantes.

45 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio - Um professor de educação física pode ter formação para várias modalidades esportivas. E uma modalidade esportiva pode ser ensinada por vários professores. - Uma modalidade esportiva pode ser oferecida em vários turnos. E um turno pode ter várias modalidades. - Um turno pode ter várias turmas, mas cada turma pertence apenas a um turno. - Um professor leciona para várias turmas e uma turma tem vários professores

46 EXERCÍCIOS Elabore o DER considerando as seguintes regras de negócio - Um professor pode lecionar em várias classes e em uma classe podem lecionar vários professores. - Um aluno pode frequentar várias classes e uma classe é frequentada por vários alunos. - Um professor é habilitado para várias disciplinas e uma disciplina tem vários professores habilitados. - Um aluno é pontuado em várias disciplinas e cada disciplina pontua vários alunos

47 MODELO RELACIONAL Criado por Edgar Codd (1970) É um modelo intermediário entre os modelos conceitual e físico. O modelo relacional é um esquema lógico bem próximo ao físico, também dependente do SGBD escolhido. Deve ser criado conforme as definições do modelo conceitual A maioria dos SGBDs atuais são relacionais

48 MODELO RELACIONAL Principais características de uma relação(tabela) As tuplas são armazenadas na ordem em que estas forem sendo inseridas no BD A ordem dos valores em uma tupla segue a ordem dos atributos na definição de um esquema O valor de cada atributo é atômico(único), não pode ser composto

49 MODELO RELACIONAL Cliente CodCliente NomeTelefone Entidade: Atributos Cliente CodCliNomeTelefone 1José(31) Maria(31) João(31)

50 MODELO RELACIONAL Relacionamentos N:N darão origem a uma nova tabela com 2 relacionamentos 1:N; Deve-se propagar o atributo identificador (chave primária) para a tabela na qual a cardinalidade do relacionamento seja N (chave estrangeira); Atributos multivalorados em geral dão origem a uma nova entidade/tabela (fraca).

51 MODELO RELACIONAL Alguns conceitos TABELAS ou RELAÇÕES: Principal construção usada para representação de dados; estrutura composta de linhas e colunas usada para armazenamento COLUNAS ou ATRIBUTOS: Correspondem aos itens que deverão ser armazenados (campos) LINHA ou TUPLAS: conjunto de campos/atributos; conjunto de valores que representa uma ocorrência de uma entidade DOMÍNIO: conjunto ou formato de dados que podem aparecer nas colunas

52 EXEMPLO

53

54 MODELO FÍSICO Modelo implementado no computador, através de um SGBD Será o responsável pelo armazenamento dos dados Deve seguir o que foi projetado nos modelos anteriores Pode ter pequenas variações de um SGBD para outro Operações serão executadas através da linguagem SQL

55 EXEMPLO Criar um banco de dados para uma escola de Informática, que oferece vários cursos. Deseja-se armazenar dados dos cursos (código, nome e carga horária), professores (código, nome, número da carteira de trabalho e ), alunos (matrícula, nome, telefone para contato, data de nascimento, sexo). O aluno, em cada curso, terá uma nota, correspondente à avaliação final, sendo necessário tirar 60 pontos ou mais para ser aprovado.

56 EXEMPLO Regras de negócio: Um professor pode lecionar vários cursos e cada curso é lecionado por apenas um professor Um aluno pode fazer vários cursos e cada curso pode ter vários alunos

57 EXEMPLO - DER

58 LINGUAGEM SQL COMANDOS DDL Usados para criar bancos de dados e tabelas, além de alteração na estrutura das tabelas (acrescentar um campo, mudar as características de um campo, excluir um campo) Não trabalham com dados Principais instruções: CREATE ALTER DROP

59 LINGUAGEM SQL - DDL Criação de um banco de dados create database nome do banco; Criação de uma tabela create table nome da tabela (descrição dos campos); Na descrição dos campos, especificamos o nome do campo, tipo de dado, tamanho(se necessário) e restrições

60 LINGUAGEM SQL - DDL Algumas restrições: primary key : define o campo como chave primária not null : define que o campo deverá ser de preenchimento obrigatório auto_increment : define que o campo será autoincrementado (autonumeração)

61 TIPOS DE DADOS Numéricos Inteiros Tinyint Smallint Int Bigint Numéricos Decimais Float Double Decimal

62 TIPOS DE DADOS Data e hora Date data no formato ano-mês-dia Datetime combinação de data e hora (aa-mm-dd hh:mm:ss) Timestamp combinação de data e hora com formato variado Time hora no formato hh:mm:ss Year armazena um ano

63 TIPOS DE DADOS Caracter Char(n) Conjunto de caracteres com tamanho fixo(n) Varchar(n) Conjunto de caracteres de tamanho variável

64 EXEMPLO CREATE DATABASE ESCOLA; USE ESCOLA; CREATE TABLE Aluno ( IDAluno Int PRIMARY KEY not null auto_increment, NomeAluno Varchar(60) not null, Sexo Char not null, DataNascimento Date, Telefone Varchar(15));

65 EXEMPLO CREATE TABLE Professor ( IDProfessor Int PRIMARY KEY not null auto_increment, NomeProfessor Varchar(60) not null, CTPS Varchar(6) not null, Varchar(200)); CREATE TABLE Curso ( IDCurso Int PRIMARY KEY not null auto_increment, NomeCurso Varchar(30) not null, Horas Int not null, IDProfessor Int not null, FOREIGN KEY(IDProfessor) REFERENCES Professor (IDProfessor));

66 EXEMPLO CREATE TABLE Estuda ( IDEstuda Int PRIMARY KEY not null auto_increment, IDCurso Int not null, IDAluno Int not null, NotaAlunoCurso Double not null, FOREIGN KEY(IDCurso) REFERENCES Curso (IDCurso), FOREIGN KEY(IDAluno) REFERENCES Aluno (IDAluno));

67 LINGUAGEM SQL - DDL Exclusão de um banco de dados drop database nome do banco; Exclusão de uma tabela drop table nome da tabela; Exemplos: drop database Escola; drop table Aluno; drop table Professor;

68 LINGUAGEM SQL - DDL Alteração das colunas de uma tabela Acrescentar um campo alter table nome da tabela add campo/especificações; Remover um campo alter table nome da tabela drop campo; Alterar um campo alter table nome da tabela change campo novas especificações;

69 EXEMPLO Adicionar um campo chamado Celular à tabela Professor: alter table Professor add Celular varchar(15); Adicionar um campo chamado RG à tabela Aluno: alter table Professor add RG varchar(10); Adicionar um campo chamado NumDependentes à tabela Professor: alter table Professor add NumDependentes tinyint not null;

70 EXEMPLO Alterar o tamanho do campo para 150 caracteres: alter table Professor change varchar(150); Alterar o nome do campo Telefone na tabela Aluno para TelefoneAluno alter table Aluno change Telefone TelefoneAluno varchar(15);

71 EXEMPLO Remover da tabela Professor o campo alter table Professor drop ; Remover da tabela Aluno o campo DataNascimento: alter table Aluno drop DataNascimento;

72 LINGUAGEM SQL – DML Inserção de dados em uma tabela insert into nome da tabela values(lista de valores); Obs.: Os valores devem estar separados por vírgulas e devem respeitar a ordem dos campos na tabela. Quando um campo for auto_increment, seu valor deve ser substituído pela sentença null

73 EXEMPLO Inserir dados na tabela ALUNO insert into ALUNO values (null,DANIELA DIAS,F, ,(31) ); insert into ALUNO values (null,JULIANO DO CARMO,M, ,(31) ); insert into ALUNO values (null,ISABEL MENDES,F, ,(31) ); insert into ALUNO values (null,CARLOS PEIXOTO,M, ,(31) );

74 EXEMPLO Inserir dados na tabela PROFESSOR insert into PROFESSOR values insert into PROFESSOR values insert into PROFESSOR values insert into PROFESSOR values

75 EXEMPLO Inserir dados na tabela CURSO insert into CURSO values (null,VB.NET,60,1); insert into CURSO values (null,PHP,120,3); insert into CURSO values (null,JAVA,80,4); insert into CURSO values (null,SQL,40,1); insert into CURSO values (null,LÓGICA,60,2);

76 EXEMPLO Inserir dados na tabela ESTUDA insert into ESTUDA values (null,3,1,70); insert into ESTUDA values (null,3,2,75); insert into ESTUDA values (null,1,4,90); insert into ESTUDA values (null,1,2,55); insert into ESTUDA values (null,2,3,50);

77 LINGUAGEM SQL – DML Exclusão de dados em uma tabela delete from nome da tabela where condição; Obs.: A condição dever ser representada por uma expressão lógica que consiga localizar o registro a ser excluído Caso a condição localize mais de um registro, eles serão excluídos. A condição é opcional. Se não for especificada, serão excluídos TODOS os registros da tabela.

78 EXEMPLO Excluir o aluno cuja matrícula seja 7 delete from ALUNO where IDAluno=7; Excluir o professor de nome ALEXANDRE delete from PROFESSOR where NomeProfessor = ALEXANDRE; Excluir os cursos que tenham carga horária inferior a 30 delete from CURSO where HORAS<30;

79 EXEMPLO Excluir todos os alunos cadastrados delete from ALUNO; Excluir todos os cursos com mais de 60 horas ministrados pelo professor com código 1 delete from CURSO where Horas>60 And IDProfessor = 1; Excluir todos os cursos que tenham a palavra CLIPPER em qualquer lugar do nome delete from CURSO where NomeCurso like %CLIPPER%;

80 LINGUAGEM SQL - DQL Parte da linguagem SQL destinada a executar operações de consultas (recuperação) de registros, ou seja, permite visualizar o conteúdo parcial ou total de tabelas. Representada pela instrução SELECT. Como o formato desta instrução é muito extenso, vamos apresentando suas sentenças aos poucos.

81 LINGUAGEM SQL - DQL select campos from nome da tabela; Neste formato, podemos visualizar alguns ou todos os campos de todos os registros de uma tabela. No lugar de campos, descrevemos o nome da cada campo que deve aparecer na listagem, separados por vírgulas. Caso queira que todos os campos apareçam na listagem, use o caracter *

82 EXEMPLO Visualizar código e nome de todos os alunos cadastrados select IDAluno, NomeAluno from ALUNO; Visualizar código, nome e carga horária de todos os cursos cadastrados select IDCurso, NomeCurso, Horas from CURSO; Visualizar nome e de todos os professores cadastrados select NomeProfessor, from PROFESSOR;

83 EXEMPLO Visualizar todos os campos dos alunos cadastrados select * from ALUNO; Visualizar todos os campos dos cursos cadastrados select * from CURSO; Visualizar todos os campos dos professores cadastrados select * from PROFESSOR;

84 LINGUAGEM SQL - DQL A sentença WHERE Vem após a especificação do nome da tabela Permite criar uma ou mais condições, que serão usadas para selecionar os registros retornados pela consulta Aceita os operadores lógicos AND, OR, NOT

85 EXEMPLO Visualizar todos os campos dos alunos do sexo feminino (F)cadastrados select * from ALUNO where SEXO = F; Visualizar todos os campos dos cursos que tenham carga horário igual ou superior a 80 horas select * from CURSO where HORAS >= 80; Visualizar todos os campos dos cursos lecionados pelo professor de código 2 que tenham até 40 horas select * from CURSO where IDPROFESSOR = 2 and HORAS <=40;

86 LINGUAGEM SQL - DQL A sentença ORDER BY Numa consulta, os registros são apresentados conforme ordem de armazenamento na tabela Através da sentença ORDER BY, é possível definir novos campos e forma de ordenação(crescente/decrescente) Deve ser colocada após a sentença WHERE Podem ser definidos quantos campos o usuário quiser. Caso haja coincidência de valores no primeiro campo, a ordenação será feita pelo segundo. Isso vale para os demais campos citados. Para ordenação decrescente, deve ser usada a sentença DESC

87 EXEMPLO Visualizar todos os campos dos alunos do sexo feminino (F)cadastrados select * from ALUNO where SEXO = F order by NOMEALUNO; Visualizar todos os campos dos cursos que tenham carga horário igual ou superior a 80 horas select * from CURSO where HORAS >= 80 order by NOMECURSO; Visualizar todos os campos dos cursos lecionados pelo professor de código 2 que tenham até 40 horas select * from CURSO where IDPROFESSOR = 2 and HORAS <=40 order by NOMECURSO desc;

88 LINGUAGEM SQL - DDL Operadores IN, LIKE e BETWEEN São usados nas comparações definidas na sentença WHERE. IN : Testa se o valor do campo está contido numa lista de valores pré-estabelecidos. Pode substituir uma sequência de condições, com o mesmo campo, que utilize o operador OR. BETWEEN: Testa se o valor do campo está no intervalo definido LIKE: faz comparação aproximada, localizando parte de uma sequência de caracteres em um campo.

89 EXEMPLOS Listar todos os dados dos cursos que tenham carga horária de 40, 60 ou 80 horas select * from CURSOS where HORAS in (40,60,80); Listar todos os dados dos cursos que tenham a palavra PROGRAMAÇÃO no nome select * from CURSOS where NOMECURSO like %PROGRAMAÇÃO%; Listar todos os dados dos cursos que tenham carga horária entre 50 e 90 horas select * from CURSOS where HORAS between 50 and 90;

90 LINGUAGEM SQL - DQL Funções de agregação São funções da linguagem que servem para agrupar informações, agregando numa única linha o conteúdo de vários registros Principais funções de agregação: COUNT MIN MAX SUM AVG

91 LINGUAGEM SQL - DQL COUNT Retorna a quantidade de registros existentes MIN Retorna o menor valor de um campo em um grupo de registros MAX Retorna o maior valor de um campo em um grupo de registros SUM Retorna a soma dos valores de um campo em um grupo de registros AVG Retorna a média dos valores de um campo em um grupo de registros

92 EXEMPLOS Contar o número de cursos select count(*) from curso; Contar o número de cursos que tem número de horas igual ou superior a 80 select count(*) from curso where horas>=80; Retornar a menor quantidade de horas, considerando todos os cursos select min(horas) from curso; Retornar a menor quantidade de horas, considerando todos os cursos com número de horas acima de 50 select min(horas) from curso where horas > 50;

93 EXEMPLOS Retornar a maior quantidade de horas, considerando todos os cursos select max(horas) from curso; Retornar a nota média dos alunos que estão matriculados no curso 1 select avg(NotaAlunoCurso) from estuda where idcurso=1; Retornar a soma das notas do aluno de matrícula 1: select sum(NotaAlunoCurso) from estuda where idaluno = 1;

94 GROUP BY Esta cláusula serve para agrupar os registros, a partir do campo especificado. Assim, o resultado de uma consulta é dado em função destes grupos. Com os grupos formados é possível aplicar outras funções de agregação (sum, count, max, etc)

95 EXEMPLO Mostrar a quantidade de alunos, por sexo select sexo, count(*) from aluno group by sexo; Mostrar a nota média dos alunos, por curso select idcurso, avg(notaalunocurso) from estuda group by idcurso; Mostrar a quantidade de alunos, por curso select idcurso, count(*) from estuda group by idcurso;

96 HAVING Funciona como uma sentença WHERE, mas é aplicada ao grupo de registros selecionado pela sentença GROUP BY Permite especificar uma ou mais condições que serão analisadas após o agrupamento dos registros pelo GROUP BY. Só serão selecionados os grupos que atenderem às condições estabelecidas. IMPORTANTE: Quando usamos a cláusula HAVING, a seleção não é feita registro a registro, mas sim grupo a grupo.

97 EXEMPLO Mostrar a quantidade de alunos por sexo, apenas quando essa quantidade for superior a 5 select idcurso, count(*) from estuda group by idcurso having count(*) > 5 Mostrar a nota média dos alunos, por curso, somente quando esta média for igual ou superior a 70 select idcurso, avg(notaalunocurso) from estuda group by idcurso having avg(notaalunocurso) >=70; Mostrar a quantidade de alunos, por curso, considerando apenas os cursos com 6 ou mais alunos select sexo, count(*) from aluno group by sexo having count(*) > 6;

98 SUBCONSULTAS Consiste em uma instrução SELECT adicionada dentro de outra instrução SELECT A segunda instrução é executada e retorna um valor, que servirá de entrada para a primeira consulta Assim, numa subconsulta, temos dois momentos: no primeiro, a consulta mais interna é executada e retorna um ou mais valores; no segundo, é executada a consulta principal, retornando os registros que atendam às condições que utilizam os valores retornados na primeira consulta

99 SUBCONSULTAS Uma subconsulta é utilizada quando não se sabe os valores a serem usados na criação das condições Devemos observar a compatibilidade entre o campo usado na comparação e o valor retornado Uma subconsulta pode retornar mais de um valor; neste caso, na comparação da consulta principal, devemos usar o operador IN

100 EXEMPLOS Listar código e nome dos cursos que são lecionados pelo mesmo professor que leciona o curso PHP select idcurso, nomecurso from curso where idprofessor = (select idprofessor from curso where nomecurso = "PHP"); Listar nome e carga horária dos cursos que tem carga horária igual ou superior ao curso JAVA select nomecurso, horas from curso where horas > (select horas from curso where nomecurso = "JAVA");

101 EXEMPLOS Listar código de aluno e código de curso dos alunos matriculados no(s) mesmo(s) curso(s) que o aluno de matricula 1 select idaluno, idcurso from estuda where idcurso in (select idcurso from estuda where idaluno = 1);


Carregar ppt "PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização."

Apresentações semelhantes


Anúncios Google