Buscar

Aulas - Banco de Dados II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 69 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 69 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 69 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

27/03/2015
1
Análise e Desenvolvimento de Sistemas
Banco de Dados II
2° Módulo 
3° Semestre
Mestrando em Informática – UFAL
Especialista em Gestão de Projetos em TI – CESMAC
Tecnólogo em Análise e Desenvolvimento de Sistemas – UNOPAR
victor.fragoso@live.com
https://sites.google.com/a/ic.ufal.br/vaff/fat/ads/banco-de-dados-ii
27/03/2015
2
APRESENTAÇÃO DA DISCIPLINA
 Aprimorar os conhecimentos sobre a linguagem de consulta SQL;
 Ao final da disciplina o aluno deverá estar apto a escrever comandos complexos para
consulta, manipulação e controle de transação em banco de dados, além de comandos
necessários para a criação dos objetos concebidos durante a modelagem de um banco de
dados, como tabelas, índices e visões.
27/03/2015
3
 LINGUAGEM SQL PARA CONSULTAS COMPLEXAS QUE UTILIZEM FUNÇÕES, JUNÇÕES (JOIN) E
SUBCONSULTAS;
 LINGUAGEM SQL PARA MANIPULAÇÃO DE DADOS (DML – DATA MANIPULATION
LANGUAGE);
 LINGUAGEM SQL PARA CONTROLE DE TRANSAÇÃO EM SISTEMAS GERENCIADORES DE
BANCO DE DADOS (SGBD);
 LINGUAGEM SQL PARA CRIAÇÃO DE OBJETOS EM SGBD (DDL – DATA DEFINITION
LANGUAGE).
 AULAS EXPOSITIVAS COM SLIDES;
 EXEMPLOS E EXERCÍCIOS;
 AULAS PRÁTICAS EM LABORATÓRIO;
 TRABALHOS INDIVIDUAIS;
 TRABALHOS EM EQUIPE;
 PROVAS PARA AVALIAÇÃO DO CONHECIMENTO.
27/03/2015
4
BIBLIOGRAFIA BÁSICA:
KORTH, H. F E SILBERSCHATZ, A. SISTEMAS DE BANCO DE DADOS. 3ª EDIÇÃO. EDITORA MAKRON BOOKS.
SÃO PAULO. 2004.
WATSON, JOHN. ORACLE DATABASE 10G CERTIFICAÇÃO OCP - GUIA OFICIAL E COMPLETO. EDITORA ALTA
BOOKS. SÃO PAULO, 2007.
MORELLI, EDUARDO TERRA. ORACLE 9I FUNDAMENTAL: SQL, PL/SQL E ADMINISTRAÇÃO. 1ª EDIÇÃO.
EDITORA ÉRICA. SÃO PAULO, 2002.
BIBLIOGRAFIA COMPLEMENTAR:
LONEY, KEVIN. ORACLE 9I - O MANUAL DO DBA: GERENCIE UM BANCO DE DADOS, ORACLE ROBUSTO E
DE ALTO DESEMPENHO. 1ª EDIÇÃO . EDITORA CAMPUS. RIO DE JANEIRO. 2002.
LIMA, ADILSON SILVA. MYSQL SERVER: SOLUÇÕES PARA DESENVOLVEDORES E ADMINISTRADORES DE
BANCO DE DADOS. 1ª EDIÇÃO. EDITORA ÉRICA. SÃO PAULO, 2003.
LINGUAGEM SQL
27/03/2015
5
INTRODUÇÃO A LINGUAGEM SQL:
BANCO DE DADOS:
Dados:
Fatos que podem ser armazenados.
Exemplos: nomes, telefones, endereços, datas, entre outros.
Banco de dados:
Coleção de dados relacionados logicamente.
Exemplos: agenda de telefones, cadastro de clientes, entre outros.
Sistema de Gerência de Bases de Dados (SGBD):
Coleção de programas que permitem a criação e gerência de Bases de Dados ou Sistemas de Banco de Dados.
Exemplos: Microsoft SQL Server, PostgreSQL, MySQL, Oracle Data Base, entre outros.
INTRODUÇÃO A LINGUAGEM SQL:
BANCO DE DADOS:
Propriedades Básicas:
 Representação de algum aspecto do mundo real;
 Coleção logicamente coerente de dados com algum significado;
 É projetado, construído e populado com dados para uma finalidade específica.
27/03/2015
6
INTRODUÇÃO A LINGUAGEM SQL:
BANCO DE DADOS:
Atores Básicos Descrição
Administrador Gerenciar e controlar o acesso ao banco de dados, coordenar e monitorar sua utilização,
identificar caso necessário aquisição de novos recursos de software e hardware.
Projetista Identificar os dados a serem armazenados e escolher estruturas apropriadas para
representar e armazenar esses dados.
Analista e Programadores Analistas de Sistemas identificam as necessidades dos usuários finais. Os Programadores
implementam as necessidades dos usuários finais. Analistas e programadores devem estar
familiarizados com todo o conjunto de capacidades fornecidos pelos SGBD's.
Usuários Pessoas que irão ter acesso ao banco de dados para consultas, atualizações e geração de
relatórios.
INTRODUÇÃO A LINGUAGEM SQL:
SGBD:
Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um
banco de dados.
 Controle de redundância;
 Compartilhamento dos dados;
 Independência de dados;
 Segurança;
 Backup e recuperação;
 Restrições de Integridade;
 Produtividade e disponibilidade;
 Flexibilidade e Padronização.
27/03/2015
7
INTRODUÇÃO A LINGUAGEM SQL:
SGBD:
Necessidades:
 Aumento de investimentos:
 Exigem constante atualização e manutenção de hardware e software;
 Exigem constante capacitação de agentes humanos, devido a complexidade de gerenciamento
necessário para a utilização de um SGBD’s.
INTRODUÇÃO A LINGUAGEM SQL:
SGBD:
27/03/2015
8
INTRODUÇÃO A LINGUAGEM SQL:
SGBD:
Campos:
É a unidade básica formadora de um registro. Constitui a célula da informação, sendo a menor porção de um
arquivo que pode ser referenciada por um programa. Cada campo possui NOME, TIPO (Texto, Numero, Data) e
TAMANHO (30, 1, 20).
Registros:
Um registro é constituído por conjunto de campos valorados (contendo dados). Consiste na unidade de
armazenamento e recuperação da informação em um arquivo. Geralmente, os registros de um arquivo possuem
um formato padrão definido pela sequencia, tipo e tamanho dos campos que o compõem.
INTRODUÇÃO A LINGUAGEM SQL:
SGBD:
Arquivos:
Um arquivo é uma coleção de REGISTROS do mesmo tipo, ou seja, referentes a um mesmo assunto e com o
mesmo formato padrão.
27/03/2015
9
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
Requisitos de Dados
Projeto Conceitual
Projeto Lógico
Projeto Físico
Catálogo do Banco de Dados
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
Conceitual:
O projeto conceitual inicia a partir das especificações e abstrações do mundo real, resultando no esquema
conceitual de banco de dados.
Registra QUE dados podem aparecer no banco, mas não registra COMO estes dados estão armazenados no
SGBD.
A técnica mais difundida de modelagem conceitual é a abordagem entidade-relacionamento (ER). Nesta técnica,
um modelo conceitual é usualmente representado através de um diagrama, chamado diagrama entidade-
relacionamento (DER).
27/03/2015
10
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
Lógico:
O projeto lógico consiste no mapeamento do esquema conceitual para o modelo de dados do SGBD adotado,
resultando em um esquema lógico. Um esquema lógico é uma descrição da estrutura do banco de dados que
pode ser processada por um SGBD. É uma representação teórica de como será a implementação do banco de
dados.
Os modelos lógicos mais utilizados pertencem a três classes: relacional, redes e hierárquico. Sendo que o
modelo amplamente utilizado é relacional.
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
Físico:
O projeto físico inicia-se a partir do esquema lógico e resulta no esquema físico. Um esquema físico é uma
descrição da implementação do bando de dados e é direcionado para um SGBD específico.
27/03/2015
11
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
Requisitos de Dados
Projeto Conceitual
Projeto Lógico
Projeto Físico
Catálogo do Banco de Dados
Etapas de Modelagem
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
ABORDAGEM ENTIDADE-RELACIONAMENTO:
 É um padrão para a modelagem conceitual;
 Criada em 1976 por Peter Chen que junto com alguns conceitos apresenta uma notação gráfica para
diagramas.;
 Modelo simples, com poucos conceitos;
 Representação gráfica de fácil compreensão;
 Um esquema conceitual de dados também é chamado de esquema ER, diagrama ER ou modelo ER.
27/03/2015
12
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
DIAGRAMA ENTIDADE-RELACIONAMENTO:
Através deste diagrama poderemos representar, de forma sucinta e bem estruturada, todos os elementos
essenciais abstraídos no processo de análise de sistemas. Representa a associação de cada entidade através de
relacionamentos.
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
ENTIDADE:
 São objetos que existem no mundo real com uma identificação distinta e com um significado próprio; São descritas como objeto da realidade na qual se deseja manter informações no bancos de dados;
 Representado por um substantivo na descrição do negócio;
 Atribuímos a cada entidade definida atributos pertinentes ao sistema
27/03/2015
13
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
ENTIDADE – NOTAÇÃO:
 Em um diagrama ER uma Entidade é representada através de um retângulo contendo o nome da
entidade.
DOCENTE DISCIPLINA ALUNO
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
RELACIONAMENTO:
 É o fato ou acontecimento que liga dois objetos existentes do mundo real;
 O fato que é a junção de duas ou mais tabelas;
27/03/2015
14
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
RELACIONAMENTO – NOTAÇÃO:
 Em um diagrama ER um Relacionamento é representada através de um losango;
 Um relacionamento é caracterizado por um verbo.
DOCENTE ALUNOENSINA
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
GRAU DE RELACIONAMENTO:
 O grau de relacionamento também é chamado de cardinalidade;
 A cardinalidade é um conceito importante para ajudar a definir o relacionamento, ela define o número
de ocorrências em um relacionamento;
27/03/2015
15
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
GRAU DE RELACIONAMENTO – NOTAÇÃO:
 Os relacionamentos podem ser:
 1-1 (Um para um);
 1-N (Um para muitos);
 N-N (Muitos para muitos).
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
TIPOS DE RELACIONAMENTO – NOTAÇÃO:
 Relacionamento Unário (Grau 1):
 Uma entidade que se relaciona com ela mesma.
DOCENTE ENSINA
27/03/2015
16
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
TIPOS DE RELACIONAMENTO – NOTAÇÃO:
 Relacionamento Binário (Grau 2):
 Relacionamento entre duas entidades distintas. É o mais comum dos tipos de relacionamentos.
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
ATRIBUTOS:
 São informações que qualificam uma entidade e descrevem uma característica.
 Quando transpostos para o modelo físico são chamados de campos.
DOCENTE
Código
Nome
27/03/2015
17
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
ESPECIALIZAÇÃO/GENERALIZAÇÃO:
 Generalização: Processo de abstração em que vários tipos de entidades são agrupados em uma única
entidade genérica, que mantém as propriedades comuns;
 Especialização: Entidades especializadas são criadas, com atributos que acrescentam detalhes à entidade
genérica existente.
Notação Especialização/Generalização
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS:
DIAGRAMA ENTIDADE-RELACIONAMENTO
EXEMPLO:
27/03/2015
18
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS – EXERCÍCIO 1:
PROBLEMA:
Elabore pelo menos três diagramas de entidade-relacionamento com diferentes graus de relacionamento (1:1,
1:N, N:N)
INTRODUÇÃO A LINGUAGEM SQL:
MODELAGEM DE BANCO DE DADOS – EXERCÍCIO 2:
PROBLEMA:
Uma livraria mantém o cadastro de livros disponíveis para a venda. Para cada livro são armazenados código,
nome, língua e ano em que foi escrito. Para os autores é mantido igualmente um cadastro que inclui nome, data
de nascimento, pais de nascimento e uma breve nota biográfica. Cada livro pode ter vários autores e para um
mesmo autor podem existir vários livros cadastrados. As editoras são incluídas no cadastro a partir do seu nome,
endereço, telefone. Para um mesmo livro podem existir várias edições realizadas por editoras diferentes ou em
anos diferentes . Cada edição tem um código (ISBN) , preço, ano, número de páginas e quantidade em estoque.
Desenvolva o diagrama de entidade-relacionado.
27/03/2015
19
INTRODUÇÃO A LINGUAGEM SQL:
SQL – DEFINIÇÃO:
É uma linguagem declarativa utilizada por diversos Sistemas Gerenciadores de Bancos de Dados Relacionais
(SGDB).
Devido à sua ampla utilização por diversos SGBD’s, surgiram vários variações para os comandos, gerando a
necessidade da criação de um padrão para esta linguagem. Essa tarefa foi realizada pela American National
Standards Institute (ANSI) em 1986 e ISO em 1987. SQL estabeleceu-se como linguagem padrão de Banco de
Dados Relacional.
Uma dificuldade encontrada na utilização da linguagem SQL por parte dos desenvolvedores ou administradores
de bancos de dados é a diferença entre os comandos nos diversos SGBD's, mesmo após a definição dos padrões.
Porém, as diferenças não são grandes
INTRODUÇÃO A LINGUAGEM SQL:
SQL – TIPOS BÁSICOS DE CAMPOS:
Tipos de Campos Descrição
Alfanuméricos Contém cifras e letras. Apresentam uma longitude limitada (255 caracteres).
Numéricos Existem vários tipos, entre os mais utilizados: inteiros (sem decimais) e reais (com decimais).
Booleanos Possuem duas representações possíveis: verdadeiro (true) ou falso (false).
Datas Armazenam datas possibilitando ordenar registros por datas ou calcular intervalos entre datas.
Memorandos São campos alfanuméricos de longitude acima de 255 caracteres. Não podem ser indexados.
Auto incrementáveis São campos numéricos inteiros que incrementam em uma unidade seu valor a cada registro.
27/03/2015
20
INTRODUÇÃO A LINGUAGEM SQL:
SQL – TIPOS DE CONSULTAS:
INTRODUÇÃO A LINGUAGEM SQL:
DCL (DATA CONTROL LANGUAGE OU LINGUAGEM DE CONTROLE DE DADOS):
Usados para gerenciar usuários e permissões de acesso ao SGBD, tem comandos para especificação de iniciação
e finalização de transações. Algumas implementações permitem explicitar bloqueios de dados para controle de
concorrência.
Alguns autores ainda definem uma subdivisão da linguagem SQL chamada DTL (Data Transaction Language –
Linguagem de Transação de Dados). Uma transação pode ser compreendida como um conjunto de comandos
que é executado de forma atômica, ou seja, ou todos os comandos são executados ou nenhum dos comandos
serão executados e incorporados ao banco de dados.
27/03/2015
21
INTRODUÇÃO A LINGUAGEM SQL:
DCL (DATA CONTROL LANGUAGE OU LINGUAGEM DE CONTROLE DE DADOS):
COMANDOS DCL
GRANT REVOKE COMMIT SAVE POINT
SET 
TRANSACTION
INTRODUÇÃO A LINGUAGEM SQL:
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
Comandos para a definição de esquemas de relações, exclusão de relações, criação de índices e modificação nos
esquemas de relações.
COMANDOS DDL
CREATE ALTER DROP
27/03/2015
22
INTRODUÇÃO A LINGUAGEM SQL:
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
Comandos que permitem realizar operações de inserção, alteração, exclusão e seleção sobre os registros (linhas
ou tuplas) das tabelas.
COMANDOS DML
INSERT UPDATE DELETE SELECT
LINGUAGEM SQL
DDL – LINGUAGEM DE DEFINIÇÃO DE DADOS
27/03/2015
23
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
É um conjunto de comandos dentro da SQL usada para a definição das estruturas de dados, fornecendo as
instruções que permitem a criação, modificação e remoção das tabelas, assim como criação de índices. Estas
instruções SQL permitem definir a estrutura de uma base de dados, incluindo as linhas, colunas, tabelas, índices,
e outros meta-dados.
COMANDOS DDL
CREATE ALTER DROP
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO CREATE:
Permite realizar a criação de um banco de dados ou de tabelas em um banco de dados.
CREATE DATABASE:
Comando usado para criação do banco de dados.
SINTAXE CREATE DATABASE:
create database <nome_database>
create database if not exists <nome_database>
Onde:
<nome_database>: Nome do Banco de Dados a ser criado.
27/03/2015
24
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO CREATE:
CREATE TABLE:
Comando usado para criação da tabela e deve ser seguida pelo nome que será dado à tabela. Dentro do
comando, devemos definir os nomes doscampos de acordo com a conveniência do banco de dados e
determinar o tipo de dado que poderá ser incluído neste campo.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO CREATE:
CREATE TABLE:
DEFAULT:
Define um valor padrão para um campo, que será utilizado caso não seja informado nenhum valor para esse
campo na inserção de um registro na tabela.
NOT NULL:
Define que o atributo da tabela tem que obrigatoriamente ser preenchido.
IDENTITY:
Utilizado para os atributos das tabelas. Tendo como finalidade incrementar um valor a cada nova inserção.
27/03/2015
25
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO CREATE:
SINTAXE CREATE TABLE:
create table <nome_tabela>
(
<nome_atributo1> <tipo_dado> NOT NULL IDENTITY(1,1),
<nome_atributo2> <tipo_dado> NOT NULL DEFAULT <valor_default>,
<nome_atributo3> <tipo_dado> NULL,
)
Onde:
<nome_tabela>: Nome da tabela a ser criada.
<nome_atributo>: Nome do campo a ser criado na tabela.
<tipo_dado>: Define o tipo de dado do atributo. Exemplos: integer(n), char(n), real(n,m), date, entre outros.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXEMPLO 1:
PROBLEMA:
Com base no diagrama de entidade-relacionamento, escreva o comando SQL para criar as tabelas em um banco
de dados.
27/03/2015
26
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXEMPLO 1:
RESOLUÇÃO:
Com base no diagrama entidade-relacionamento, criamos a tabela aluno e seus respectivos atributos.
create table aluno
(
codigo int NOT NULL IDENTITY(1,1),
nome varchar(200) NOT NULL,
endereco varchar(200) NULL,
primary key(codigo)
)
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXEMPLO 1:
RESOLUÇÃO:
Depois criamos a tabela turma e seus respectivos atributos.
create table turma
(
codigo int NOT NULL IDENTITY(1,1),
sala varchar(200) NOT NULL,
periodo varchar(200) NOT NULL,
primary key(codigo)
)
27/03/2015
27
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 1:
PROBLEMA:
Um analista de sistema observa a necessidade de um cliente e constata que será necessário criar duas tabelas
relacionadas, sendo uma delas Cidade com os atributos nome, estado e região e Clima com os atributos cidade,
temperatura mínima, temperatura máxima e precipitação. Desta forma será necessário desenvolver inicialmente
o diagrama entidade-relacionamento e após a conclusão do diagrama irá construir o banco de dados e as
respectivas tabelas deste banco de dados. Caso você fosse o analista como seria este diagrama e como seria o
comando para criar o banco e estas tabelas?
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO DROP:
Permite realizar a exclusão de um banco de dados ou de tabelas em um banco de dados.
DROP DATABASE:
Comando usado para realizar exclusão de um banco de dados.
SINTAXE DROP DATABASE:
drop database <nome_database>
drop database if exists <nome_database>
Onde:
<nome_database>: Nome do Banco de Dados a ser alterado.
27/03/2015
28
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO DROP:
DROP TABLE:
Comando usado para exclusão de atributos da tabela.
SINTAXE DROP TABLE:
drop table <nome_tabela>
drop table if exists <nome_tabela>
Onde:
<nome_tabela>: Nome da Tabela do Banco de Dados a ser excluída.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO ALTER:
Permite realizar a alteração de um banco de dados ou de tabelas em banco de dados.
ALTER DATABASE:
Comando usado para realizar alterações nos atributos de um banco de dados.
SINTAXE ALTER DATABASE:
alter database <nome_database>
modify name = <novonome_database>
Onde:
<nome_database>: Nome do Banco de Dados a ser alterado.
27/03/2015
29
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO ALTER:
ALTER TABLE:
Comando usado para alteração de atributos de uma tabela existente. Importante pois ao executar o comando
DROP TABLE todos os registros de uma tabela são excluídos, enquanto o comando ALTER TABLE não exclui
nenhum registro de uma tabela.
ADD COLUMN:
Esta forma adiciona uma nova coluna à tabela usando a mesma sintaxe do comando CREATE TABLE.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO ALTER:
ALTER TABLE:
NOCHECK CONSTRAINT:
Restrição também pode ser desabilitada temporariamente e depois reabilitada com o comando ALTER
TABLE, usando as opções NOCHECK (para desabilitar) e CHECK (para habilitar). Este comando não é
executado com as restrições: primary key, unique ou default.
DROP COLUMN:
Esta forma remove uma coluna da tabela. Os índices e as restrições da tabela que referenciam a coluna
também serão automaticamente excluídos. É necessário especificar CASCADE se algum objeto fora da tabela
depender da coluna como, por exemplo, referências de chaves estrangeiras ou visões.
27/03/2015
30
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO ALTER:
ALTER TABLE:
OWNER:
Esta forma muda o dono da tabela, índice, sequência ou visão como sendo o usuário especificado. É
necessário ser o dono da tabela para executar o comando ALTER TABLE, exceto para a forma ALTER TABLE
OWNER que somente pode ser executada por um super-usuário.
SET/DROP NOT NULL:
Estas formas mudam se a coluna está marcada para permitir valores nulos ou para rejeitar valores nulos. A
forma SET NOT NULL somente pode ser utilizada quando não existem valores nulos na coluna.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO ALTER:
ALTER TABLE:
RENAME:
A forma RENAME muda o nome de uma tabela (de um índice, de uma sequência ou de uma visão), ou o
nome de uma coluna da tabela. Não ocasiona efeito sobre os dados armazenados.
DROP CONSTRAINT:
Esta forma remove restrições de tabela. Atualmente, as restrições de tabela não necessitam ter nomes
únicos e, portanto, pode haver mais de uma restrição correspondendo ao nome especificado. Todas estas
restrições serão removidas.
27/03/2015
31
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
COMANDO ALTER:
SINTAXE ALTER TABLE:
alter table <nome_tabela>
add <nome_atributo1> <tipo_dado> NOT NULL
alter table <nome_tabela>
rename to <novonome_tabela>
Onde:
<nome_tabela>: Nome do Banco de Dados a ser alterado.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 2:
PROBLEMA:
Um analista de sistema observa a necessidade de um cliente e constata que será necessário criar duas tabelas
relacionadas, sendo uma delas Cidade com os atributos nome, estado e região e Clima com os atributos cidade,
temperatura mínima, temperatura máxima e precipitação. Desta forma será necessário desenvolver inicialmente
o diagrama entidade-relacionamento e após a conclusão do diagrama irá construir o banco de dados e as
respectivas tabelas deste banco de dados. Mas depois de construir as tabelas no banco de dados, o analista
observou que precisava acrescentar mais um atributo a tabela Clima que seria a data de coleta de informações.
Caso você fosse o analista como seria alterado este diagrama e as respectivas tabelas?
27/03/2015
32
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
Restrições para limitar o tipo de dados a introduzir numa tabela. Essas restrições podem ser especificadas
quando a tabela for primeiro criada através da instrução CREATE TABLE ou após a tabela já ter sido criada através
da instrução ALTER TABLE.
CHAVE PRIMÁRIA (PRIMARY KEY):
A chave primaria de uma tabela é uma coluna ou sequência de colunas que identificam unicamente uma linha
dentro da tabela, ou seja, seu valor não pode ser repetido para outras linhas. Ao definir uma chave primária,
automaticamente é criado um índicena tabela. Só pode haver uma chave primária na tabela. Na criação da
tabela, essa restrição pode ser definida da seguinte forma (quando a chave primária é
composta de uma só coluna).
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
CHAVE PRIMÁRIA (PRIMARY KEY):
SINTAXE CREATE TABLE [PRIMARY KEY]:
create table <nome_tabela>
(
<nome_atributo1> <tipo_dado> NOT NULL IDENTITY(1,1) primary key,
<nome_atributo2> <tipo_dado> NOT NULL,
<nome_atributo3> <tipo_dado> NULL,
)
27/03/2015
33
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
CHAVE PRIMÁRIA (PRIMARY KEY):
SINTAXE CREATE TABLE [PRIMARY KEY]:
create table <nome_tabela>
(
<nome_atributo1> <tipo_dado> NOT NULL IDENTITY(1,1),
<nome_atributo2> <tipo_dado> NOT NULL,
<nome_atributo3> <tipo_dado> NULL,
primary key (<nome_atributo1>)
)
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
CHAVE PRIMÁRIA (PRIMARY KEY):
SINTAXE ALTER TABLE [PRIMARY KEY]:
alter table <nome_tabela>
add primary key (<nome_atributo1>)
ou
alter table <nome_tabela>
add constraint PK_<nome_pk> primary key (<nome_atributo1>)
27/03/2015
34
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
UNICIDADE (UNIQUE):
Uma restrição UNIQUE em uma coluna ou grupo colunas determina que seu valor deva ser único na tabela. Esse
tipo de restrição é usado para chaves alternadas, ou seja, valores que se repetem na tabela além da chave
primária. Pode haver várias restrições UNIQUE na tabela e as colunas de uma restrição UNIQUE permitem
valores nulos.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
UNICIDADE (UNIQUE):
SINTAXE CREATE TABLE [UNIQUE]:
create table <nome_tabela>
(
<nome_atributo1> <tipo_dado> NOT NULL IDENTITY(1,1) primary key,
<nome_atributo2> <tipo_dado> NOT NULL UNIQUE,
<nome_atributo3> <tipo_dado> NULL,
)
27/03/2015
35
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
UNICIDADE (UNIQUE):
SINTAXE ALTER TABLE [PRIMARY KEY]:
alter table <nome_tabela>
add UNIQUE (<nome_atributo1>)
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
CHAVE ESTRANGEIRA (FOREIGN KEY):
A chave estrangeira é uma cláusula que deve ser incluída quando possuímos mais de duas tabelas em um banco
de dados estabelecendo as relações entre duas ou mais tabelas. A chave estrangeira desta forma referencia o
campo que é chave primária de outra tabela.
27/03/2015
36
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
CHAVE ESTRANGEIRA (FOREIGN KEY):
SINTAXE CREATE TABLE [FOREIGN KEY]:
create table <nome_tabela1>
(
<nome_atributo1> <tipo_dado> NOT NULL IDENTITY(1,1) primary key,
<nome_atributo2> <tipo_dado> NOT NULL UNIQUE,
<nome_atributo3> <tipo_dado> NULL,
constraint <nome_fk> foreign key (<nome_atributo3>) references <nome_tabela2>(<nome_atributo_tabela2>)
)
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
CONSTRAINTS:
CHAVE ESTRANGEIRA (FOREIGN KEY):
SINTAXE ALTER TABLE [FOREIGN KEY]:
alter table <nome_tabela1>
add constraint <nome_fk> foreign key <nome_atributo_tabela1> references <nome_tabela2>(<nome_atributo_tabela2>)
27/03/2015
37
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 3:
PROBLEMA:
Escreva o código SQL, para criar as tabelas e seus respectivos relacionamentos (chaves primárias e estrangeiras)
de acordo com o diagrama entidade-relacionamento a seguir:
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 3:
27/03/2015
38
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 3:
RESOLUÇÃO:
create database vendas;
create table Clientes(
ID_Cliente int NOT NULL IDENTITY(1,1) primary key,
Nome varchar(200) NOT NULL,
Cnpj int NOT NULL UNIQUE,
Tipo varchar(120) NOT NULL,
Status varchar(120) NOT NULL,
Data date NOT NULL,
Credito real NOT NULL
);
create table Pedidos(
ID_Pedido INT NOT NULL IDENTITY(1,1) primary key,
ID_Cliente INT NOT NULL,
DataPed date NOT NULL,
constraint FK_Pedidos_Clientes foreign key (ID_Cliente) references Clientes(ID_Cliente)
);
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 3:
RESOLUÇÃO:
create table Produtos(
ID_Produto int NOT NULL IDENTITY(1,1) primary key,
Descricao varchar(120) NOT NULL,
PrecoCompra real NOT NULL,
Saldo real NOT NULL
)
create table Itens_Pedidos(
ID_Pedido int NOT NULL,
ID_Produto int not null,
Quantidade int NOT NULL,
PrecVenda real NOT NULL,
constraint FK_Itens_Pedidos_Pedidos foreign key (ID_Pedido) references Pedidos(ID_Pedido),
constraint FK_Itens_Pedidos_Produtos foreign key (ID_Produto) references Produtos(ID_Produto)
);
27/03/2015
39
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 4:
PROBLEMA:
Escreva o código SQL, para criar as tabelas e seus respectivos relacionamentos (chaves primárias e estrangeiras)
de acordo com o diagrama entidade-relacionamento a seguir:
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 4:
27/03/2015
40
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
INDEX:
Índices em bancos de dados são utilizados para facilitar a consulta de informações em uma tabela, utilizando o
menor número possível de operações de leituras, otimizando assim estas consultas, tornando-as mais rápidas e
eficientes.
No entanto, índices levam tempo para serem criados e ocupam espaço em disco. Cada atualização na tabela
também atualiza dinamicamente todos os índices definidos. Portanto se você criar muitos índices inúteis numa
tabela, pode estar atrapalhando o desempenho da atualização de dados sem agilizar o tempo de resposta
durante a execução de consultas.
O exemplo clássico para explicar a utilização de índices é comparar uma tabela do banco de dados a uma lista
telefônica, onde a mesma possui um índice por ordem alfabética do sobrenome das pessoas. Sabendo a letra
inicial do sobrenome é possível refinar a pesquisa iniciando a mesma pela página correspondente a letra do
sobrenome.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
INDEX:
SINTAXE INDEX:
create index <nome_indice> on <nome_tabela> (<nome_atributo> <asc || desc>)
drop index <nome_indice> on <nome_tabela>;
Exemplo:
create index idx_inicioNome on tb_aluno (nome_aluno asc)
drop index idx_inicioNome on tb_aluno
27/03/2015
41
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
TRIGGERS:
Códigos de PL/SQL armazenados em um banco de dados, onde podemos definir um bloco de comando para que
seja executado automaticamente pelo banco de dados. Deste modo toda vez que uma instrução SQL de
manipulação de dados (DML – Insert, Update ou Delete) for aplicada em uma tabela específica, será executado
um determinado evento automaticamente.
Define uma estrutura do banco de dados que funciona, como o nome sugere, como uma função que é disparada
mediante alguma ação. Geralmente essas ações que disparam os triggers são alterações nas tabelas por meio de
operações de inserção, exclusão e atualização de dados (Insert, Update e Delete).
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
TRIGGERS:
SINTAXE TRIGGERS:
create trigger <nome_trigger> <tempo_trigger> <evento_trigger> on <nome_tabela> for each row
as
begin
Comandos SQL (DML)
end
Onde:
<tempo_trigger>: Before ou After (Antes ou Depois);
<evento_trigger>: Insert, Update ou Delete (DML).
27/03/2015
42
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
TRIGGERS:
SINTAXE TRIGGERS – EXEMPLOS:
create trigger tr_tabela1_Insert on tabela1 after insert as
begin
Comandos SQL (DML)end
alter trigger tr_tabela1_Insert on tabela1 after insert as
begin
Comandos SQL (DML)
end
drop trigger tr_tabela1_Insert
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
PROCEDURE:
É uma biblioteca de comandos em SQL para utilização junto ao banco de dados. Armazena tarefas repetitivas e
aceita parâmetros de entrada para que a tarefa seja efetuada de acordo com a necessidade de utilização.
Utilizado para promover:
 Modularização;
 Refatoração;
 Evitar códigos duplicados.
27/03/2015
43
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
PROCEDURE:
SINTAXE PROCEDURE:
create procedure <nome_procedure> (<nome_parametro> <tipo_parametro>)
as
begin
Comandos SQL (DML)
end;
alter procedure <nome_procedure> (<nome_parametro> <tipo_parametro>)
as
begin
Comandos SQL (DML)
end;
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
PROCEDURE:
EXEMPLOS:
create procedure sp_addAluno (nome varchar(30))
as
begin
insert into tabela_aluno (nome_aluno)
values (nome)
end
Para executar uma procedure:
exec sp_addAluno(‘Maria’)
27/03/2015
44
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
FUNCTION:
É uma biblioteca de comandos em SQL para utilização junto ao banco de dados. Armazena tarefas repetitivas e
aceita parâmetros de entrada para que a tarefa seja efetuada de acordo com a necessidade de utilização,
retornando dados.
Utilizado para promover:
 Modularização;
 Refatoração;
 Evitar códigos duplicados;
 Retornam valores (podem inclusive serem calculados);
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
FUNCTION:
SINTAXE FUNCTION:
create function <nome_function> (<nome_parametro> <tipo_parametro>)
returns <tipo_parametro_retorno>
as
begin
Comandos SQL (DML)
end;
alter function <nome_procedure> (<nome_parametro> <tipo_parametro>)
returns <tipo_parametro_retorno>’
as
begin
Comandos SQL (DML)
end;
27/03/2015
45
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
FUNCTION:
EXEMPLOS:
create function fn_region(@myinput varchar(30))
returns varchar(30)
as
begin
if @myinput is null
set @myinput = “Não aplicável"
return @myinput
end;
Para executar uma function:
select fn_info(null)
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
VIEW:
Pode ser definida como uma tabela virtual composta por linhas e colunas de dados vindos de tabelas
relacionadas em uma query (Exemplo: agrupamento de comandos select). As linhas e colunas da view são
geradas dinamicamente no momento em que é feita uma referência a ela.
Utilizado para promover:
 Reuso;
 Segurança;
 Simplificação do código.
27/03/2015
46
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
VIEW:
SINTAXE VIEW:
create view <nome_view> (<nome_atributo>)
as
Comandos SQL (DML)
go;
alter view <nome_view> (<nome_atributo>)
as
Comandos SQL (DML)
go;
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
VIEW:
EXEMPLOS:
create view vw_produtos
as
select idproduto as código,
nome as produto,
fabricante,
quantidade,
vlunitario as [valor unitário],
tipo
from produtos
Para executar uma view:
select vw_produtos
27/03/2015
47
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 5:
PROBLEMA:
De acordo com o diagrama entidade-relacionamento a seguir, responda usando comandos SQL:
a) Criar o banco de dados;
b) Criar as tabelas, seus respectivos relacionamentos e insira registros nas tabelas INSCRICAO e LIVRO;
c) Crie um índice (INDEX) que realize uma consulta e retorne o nome pesquisado da tabela INSCRICAO;
d) Crie uma tabela de LOG (id_log(PK), descrição_log(varchar(500)), data_log(date)) e depois crie um gatilho
(TRIGGER) que realize a inserção de dados na tabela LOG ao inserir um registro na tabela INSCRICAO;
e) Crie uma PROCEDURE que consulte na tabela INSCRICAO, os nomes que foram inscritos e o dia de inscrição;
f) Crie uma FUNCTION que consulte na tabela LIVRO e retorne quantidade de livros cadastrados;
g) Crie uma visão (VIEW) que consulte o código, nome e telefone da tabela INSCRICAO.
DDL (DATA DEFINITION LANGUAGE OU LINGUAGEM DE DEFINIÇÃO DE DADOS):
EXERCÍCIO 5:
27/03/2015
48
LINGUAGEM SQL
DML – LINGUAGEM DE MANIPULAÇÃO DE DADOS
INTRODUÇÃO A LINGUAGEM SQL:
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
Comandos que permitem realizar operações de inserção, alteração, exclusão e seleção sobre os registros (linhas
ou tuplas) das tabelas.
COMANDOS DML
INSERT UPDATE DELETE SELECT (DQL)
27/03/2015
49
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO INSERT:
Permite incluir registros em uma tabela de um banco de dados.
SINTAXE INSERT:
insert into <nome_tabela>
(campo1_tabela,campo2_tabela, campo3_tabela,...,campoN_tabela)
values (valor_campo1, valor_campo2, valor_campo3, ..., valor_campoN);
insert into <nome_tabela1>
(campo1_tabela,campo2_tabela, campo3_tabela,...,campoN_tabela)
select valor_campo1_tabela2, valor_campo2_tabela2, valor_campo3_tabela2, ..., valor_campoN_tabela2
from <nome_tabela2>
where <condições_select>
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO INSERT:
EXEMPLO COMANDO INSERT:
insert into livro
(EXEMPLAR, ISBN, TITULO, AUTORES)
values
('1', 98012345678, ’Meu Livro’, 'José da Silva');
Onde:
 Valor do tipo TEXTO devem ser preenchidos por aspas;
 Valor do tipo NUMÉRICO devem utilizar para separação de casas decimais o ponto em vez da vírgula.
Exemplo: 9.75 (nove ponto setenta e cinco).
27/03/2015
50
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 1:
PROBLEMA:
De acordo com o diagrama de entidade-relacionamento, crie uma tabela INSCRICAO e insira 2 (dois) registros a
esta tabela, onde o campo NOME deve ser único.
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 1:
SOLUÇÃO:
create database biblioteca;
create table INSCRICAO
(
idINSCRICAO int NOT NULL IDENTITY(1,1) primary key,
NOME varchar(100) NOT NULL UNIQUE,
ENDERECO varchar(500) NOT NULL,
DATA_INSCRICAO date NOT NULL,
);
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘VICTOR’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘AUGUSTO’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
27/03/2015
51
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO UPDATE:
Permite atualizar registros em uma tabela de um banco de dados.
SINTAXE UPDATE:
update <nome_tabela> set campo1_tabela = valor_campo1, campo2_tabela = valor_campo2,
campo3_tabela = valor_campo3, ..., campoN_tabela = valor_campoN
where <condições_update>;
update <nome_tabela1> set campo1_tabela1 = campo1_tabela2, campo2_tabela1 = campo2_tabela2,
campo3_tabela1 = campo3_tabela2, ..., campoN_tabela1 = campoN_tabela2
from <nome_tabela1>
inner join <nome_tabela2> on <campoComum_tabela1> = <campoComum_tabela2>
where <condições_update>;
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO UPDATE:
EXEMPLO COMANDO UPDATE:
update livro set EXEMPLAR = ‘3’
where ISBN = 98012345678
Onde:
 Valor do tipo TEXTO devem ser preenchidos por aspas;
 Valor do tipo NUMÉRICO devem utilizar para separação de casas decimais o ponto em vez da vírgula.
Exemplo: 9.75 (nove ponto setenta e cinco).
27/03/2015
52
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 2:
PROBLEMA:
De acordo com o diagrama de entidade-relacionamento, crie uma tabela INSCRICAO, insira 2 (dois) registros a
esta tabela (onde o campo NOME deve ser único) e altere o endereço de um destesregistros.
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 2:
SOLUÇÃO:
create database biblioteca;
create table INSCRICAO
(
idINSCRICAO int NOT NULL IDENTITY(1,1) primary key,
NOME varchar(100) NOT NULL UNIQUE,
ENDERECO varchar(500) NOT NULL,
DATA_INSCRICAO date NOT NULL,
);
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘VICTOR’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘AUGUSTO’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
update INSCRICAO set ENDERECO = ‘AL 101 NORTE - 249’ where NOME = ‘VICTOR’
27/03/2015
53
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO DELETE:
Permite apagar registros em uma tabela de um banco de dados.
SINTAXE DELETE:
delete from <nome_tabela>;
delete from <nome_tabela1>
where <condições_delete>;
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO DELETE:
EXEMPLO COMANDO DELETE:
delete from livro
where ISBN = 98012345678
Onde:
 Valor do tipo TEXTO devem ser preenchidos por aspas;
 Valor do tipo NUMÉRICO devem utilizar para separação de casas decimais o ponto em vez da vírgula.
Exemplo: 9.75 (nove ponto setenta e cinco).
27/03/2015
54
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 3:
PROBLEMA:
De acordo com o diagrama de entidade-relacionamento, crie uma tabela INSCRICAO, insira 2 (dois) registros a
esta tabela (onde o campo NOME deve ser único) e exclua o segundo registro desta tabela.
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 3:
SOLUÇÃO:
create database biblioteca;
create table INSCRICAO
(
idINSCRICAO int NOT NULL IDENTITY(1,1) primary key,
NOME varchar(100) NOT NULL UNIQUE,
ENDERECO varchar(500) NOT NULL,
DATA_INSCRICAO date NOT NULL,
);
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘VICTOR’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘AUGUSTO’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
delete from INSCRICAO where NOME = ‘AUGUSTO’
27/03/2015
55
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO SELECT:
Permite consultar registros em uma tabela de um banco de dados. Conhecido também como DQL (DATA QUERY
LANGUAGE OU LINGUAGEM DE CONSULTA DE DADOS).
SINTAXE SELECT:
select * from <tabela>;
select campo1_tabela, campo2_tabela, ..., campoN_tabela from <tabela>
where <condições_select>;
select *
from <tabela1>,<tabela2>, ..., <tabelaN> [ join <tabela> on <condições_comuns>]
where <condições_select>
group by <campos_agrupados>
order by <campos_ordenados>;
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
COMANDO SELECT:
EXEMPLO COMANDO SELECT:
select * from livro
where ISBN = 98012345678
Onde:
 Valor do tipo TEXTO devem ser preenchidos por aspas;
 Valor do tipo NUMÉRICO devem utilizar para separação de casas decimais o ponto em vez da vírgula.
Exemplo: 9.75 (nove ponto setenta e cinco).
27/03/2015
56
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 4:
PROBLEMA:
De acordo com o diagrama de entidade-relacionamento, crie uma tabela INSCRICAO, insira 2 (dois) registros a
esta tabela (onde o campo NOME deve ser único) e selecione apenas o último registro inserido.
DML (DATA MANIPULATION LANGUAGE OU LINGUAGEM DE MANIPULAÇÃO DE DADOS):
EXEMPLO 4:
SOLUÇÃO:
create database biblioteca;
create table INSCRICAO
(
idINSCRICAO int NOT NULL IDENTITY(1,1) primary key,
NOME varchar(100) NOT NULL UNIQUE,
ENDERECO varchar(500) NOT NULL,
DATA_INSCRICAO date NOT NULL,
);
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘VICTOR’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
insert into INSCRICAO (NOME,ENDERECO,TELEFONE,DATA_INSCRICAO)
values (‘AUGUSTO’,’AL 101 NORTE’,’(82)9999-9999’,getdate());
select top 1 * from INSCRICAO order by idINSCRICAO desc;
27/03/2015
57
LINGUAGEM SQL
DQL: FUNÇÕES, JUNÇÕES (JOIN) E SUBCONSULTAS.
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
Funções de grupo operam em conjuntos de linhas para fornecer o resultado de uma consulta (select) por grupo.
São conhecidas também por Funções de Agregação.
Tipos de Funções de Grupo:
 AVG;
 SUM;
 MAX;
 MIN;
 COUNT;
 STDDEV;
 VARIANCE.
27/03/2015
58
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
AVG:
A função AVG retorna o valor médio não ponderado de uma coluna para um grupo de linhas. Deste modo esta
função é utilizada por dados numéricos.
SINTAXE DA FUNÇÃO AVG:
SELECT AVG(SALARIO) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
SUM:
A função SUM retorna o valor da soma de uma coluna para um grupo de linhas. Deste modo esta função é
utilizada por dados numéricos.
SINTAXE DA FUNÇÃO SUM:
SELECT AVG(SALARIO),SUM(SALARIO) FROM FUNCOES;
27/03/2015
59
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
MAX:
A função MAX retorna o valor máximo de uma coluna para um grupo de linhas.
SINTAXE DA FUNÇÃO MAX:
SELECT AVG(SALARIO),SUM(SALARIO),MAX(SALARIO) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
MIN:
A função MIN retorna o valor mínimo de uma coluna para um grupo de linhas.
SINTAXE DA FUNÇÃO MIN:
SELECT AVG(SALARIO),SUM(SALARIO),MAX(SALARIO), MIN(SALARIO) FROM FUNCOES;
27/03/2015
60
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
COUNT:
A função COUNT retorna a quantidade de registros de uma coluna para um grupo de linhas.
SINTAXE DA FUNÇÃO COUNT:
SELECT AVG(SALARIO),SUM(SALARIO),MAX(SALARIO), MIN(SALARIO), COUNT(SALARIO) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
STDDEV:
A função STDDEV retorna o desvio padrão estatístico de todos os valores de uma coluna para um grupo de
linhas.
SINTAXE DA FUNÇÃO STDDEV:
SELECT AVG(SALARIO),SUM(SALARIO),MAX(SALARIO), MIN(SALARIO), COUNT(SALARIO),
STDDEV(SALARIO) FROM FUNCOES;
27/03/2015
61
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE GRUPO]:
VARIANCE:
A função VARIANCE retorna a variância estatística de todos os valores de uma coluna para um grupo de linhas.
SINTAXE DA FUNÇÃO VARIANCE:
SELECT AVG(SALARIO),SUM(SALARIO),MAX(SALARIO), MIN(SALARIO), COUNT(SALARIO),
STDDEV(SALARIO), VARIANCE(SALARIO) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [CLÁUSULAS DE GRUPO]:
GROUP BY:
A cláusula GROUP BY especifica os atributos de agrupamento. Apenas os atributos de agrupamento e funções
de agregação podem aparecer na cláusula SELECT.
SINTAXE DA CLÁUSULA GROUP BY:
SELECT DEPARTAMENTO, AVG(SALARIO)
FROM FUNCOES
GROUP BY DEPARTAMENTO;
27/03/2015
62
DQL – FUNÇÕES:
COMANDO SELECT [CLÁUSULAS DE GRUPO]:
HAVING:
A cláusula HAVING é utilizada para selecionar grupos de linhas que satisfaçam a condição especificada. Apenas
os atributos de agrupamento e funções de agregação podem aparecer na cláusula SELECT.
SINTAXE DA CLÁUSULA HAVING:
SELECT DEPARTAMENTO, AVG(SALARIO)
FROM FUNCOES
GROUP BY DEPARTAMENTO
HAVING COUNT(*)>2;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
Funções de caracteres operam em conjuntos de caracteres.
Tipos de Funções de Caracteres:
 LOWER;
 UPPER;
 INITCAP;
 SUBSTR;
 TRIM;
 REPLACE.
27/03/2015
63
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
LOWER:
A função LOWER retorna uma cadeia de caracteres em caixa baixa (letras minúsculas).
SINTAXE DA FUNÇÃO LOWER:
SELECT LOWER(NOME) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
UPPER:
A função UPPER retorna uma cadeia de caracteres em caixa alta(letras maiúsculas).
SINTAXE DA FUNÇÃO UPPER:
SELECT LOWER(NOME), UPPER(NOME) FROM FUNCOES;
27/03/201564
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
INITCAP:
A função INITCAP retorna uma cadeia de caracteres com o primeiro caractere maiúsculo.
SINTAXE DA FUNÇÃO INITCAP:
SELECT LOWER(NOME), UPPER(NOME), INITCAP(NOME) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
INITCAP:
A função INITCAP retorna uma cadeia de caracteres com o primeiro caractere maiúsculo.
SINTAXE DA FUNÇÃO INITCAP:
SELECT LOWER(NOME), UPPER(NOME), INITCAP(NOME) FROM FUNCOES;
27/03/2015
65
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
SUBSTR:
A função SUBSTR retorna uma cadeia de caracteres a partir a partir de um caractere X até um caractere Y.
SINTAXE DA FUNÇÃO SUBSTR:
SELECT NOME, LOWER(NOME), UPPER(NOME), INITCAP(NOME), SUBSTR(NOME,2,10) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
TRIM:
A função TRIM retorna uma cadeia de caracteres retirando os espaços em branco do campo.
SINTAXE DA FUNÇÃO TRIM:
SELECT NOME, LOWER(NOME), UPPER(NOME), INITCAP(NOME), SUBSTR(NOME,2,10), TRIM(NOME) FROM FUNCOES;
27/03/2015
66
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CARACTERES]:
REPLACE:
A função REPLACE retorna uma cadeia de caracteres substituindo uma string por outra definida pelo comando.
SINTAXE DA FUNÇÃO REPLACE:
SELECT NOME, LOWER(NOME), UPPER(NOME), INITCAP(NOME), SUBSTR(NOME,2,10), TRIM(NOME)
REPLACE(NOME,’V’,’X’) FROM FUNCOES;
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CONVERSÃO DE VARIÁVEIS]:
Funções que permitem converter um tipo de variável.
Tipos de Funções de Conversão de Variáveis:
 TO_DATE(STRING);
 TO_CHAR(DATE);
 TO_CHAR(NUMERIC);
 TO_NUMBER(STRING).
27/03/2015
67
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CONVERSÃO DE VARIÁVEIS]:
TO_DATE(STRING):
A função TO_DATE(STRING) converte uma cadeia caracteres para uma variável do tipo DATE (datas).
SINTAXE DA FUNÇÃO TO_DATE(STRING):
SELECT TO_DATE(‘2015/03/27’);
SELECT TO_DATE(‘2015/03/27’, ‘YYYY MM DD’);
SQL SERVER:
SELECT CONVERT(DATE,‘2015/03/27’);
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CONVERSÃO DE VARIÁVEIS]:
TO_STRING(DATE):
A função TO_STRING(DATE) converte uma variável do tipo DATE (datas) em um cadeia de caracteres do tipo
STRING.
SINTAXE DA FUNÇÃO TO_STRING(DATE):
SELECT TO_CHAR(‘2015-03-26’);
SELECT TO_CHAR(DATE '2015-03-26', 'YYYY/MM/DD');
SQL SERVER:
SELECT CONVERT(CHAR,‘2015-03-27’);
27/03/2015
68
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CONVERSÃO DE VARIÁVEIS]:
TO_CHAR(NUMERIC):
A função TO_CHAR(NUMERIC) converte uma variável do tipo NUMERIC (numérico) em um cadeia de caracteres
do tipo CHAR.
SINTAXE DA FUNÇÃO TO_CHAR(NUMERIC):
SELECT TO_CHAR(200);
SELECT TO_CHAR(200,'999');
SQL SERVER:
SELECT CONVERT(CHAR,200);
DQL – FUNÇÕES:
COMANDO SELECT [FUNÇÕES DE CONVERSÃO DE VARIÁVEIS]:
TO_NUMBER(STRING):
A função TO_NUMBER(STRING) converte uma variável do tipo STRING(caracteres) em uma variável do tipo
NUMERIC (numérico).
SINTAXE DA FUNÇÃO TO_NUMBER(STRING):
SELECT TO_NUMBER(‘200’);
SELECT TO_NUMBER('200','999');
SQL SERVER:
SELECT CONVERT(NUMERIC,‘200’);
27/03/2015
69
KORTH, H. F E SILBERSCHATZ, A. SISTEMAS DE BANCO DE DADOS. 3ª EDIÇÃO. EDITORA MAKRON BOOKS.
SÃO PAULO. 2004.
LIMA, ADILSON SILVA. MYSQL SERVER: SOLUÇÕES PARA DESENVOLVEDORES E ADMINISTRADORES DE
BANCO DE DADOS. 1ª EDIÇÃO. EDITORA ÉRICA. SÃO PAULO, 2003.
LONEY, KEVIN. ORACLE 9I - O MANUAL DO DBA: GERENCIE UM BANCO DE DADOS, ORACLE ROBUSTO E
DE ALTO DESEMPENHO. 1ª EDIÇÃO . EDITORA CAMPUS. RIO DE JANEIRO. 2002.
MORELLI, EDUARDO TERRA. ORACLE 9I FUNDAMENTAL: SQL, PL/SQL E ADMINISTRAÇÃO. 1ª EDIÇÃO.
EDITORA ÉRICA. SÃO PAULO, 2002.
PASSOS, CLAUDIO AZEVEDO. INTRODUÇÃO AO SQL. http://pt.slideshare.net/tmoreirafreitas/introduo-ao-
sql, IN 12/02/2015.
WATSON, JOHN. ORACLE DATABASE 10G CERTIFICAÇÃO OCP - GUIA OFICIAL E COMPLETO. EDITORA ALTA
BOOKS. SÃO PAULO, 2007.
VERAS, NÉCIO DE LIMA. APROFUNDAMENTO DE DDL E DML. http://pt.slideshare.net/necioveras/
aprofundamento-de-ddl-e-dml, IN 12/02/2015.

Continue navegando