Linguagem SQL

Transcrição

Linguagem SQL
Linguagem SQL
Bancos de Dados II
Linguagem SQL
SQL - Principais conceitos
Machado cap.14
Introdução
Importância da linguagem SQL;
19/2/2009
1970 - Fundamentada no modelo relacional
de CODD;
1974 – 1ª versão - SEQUEL definida na
IBM;
1975 – Primeiro protótipo em 1975;
1976 – Primeira revisão passando após
ampliações para SQL por razões jurídicas;
1977 – SYSTEM R – ORACLE é lançado;
1983 – Popularizou-se: SQL/DS e DB2
(IBM), ZIM, RDB, SYBASE;
1983 – Padrão de acesso a SGBD
Relacionais “de fato”;
1986 ANSI padrão oficial;
Vários dialetos;
1989 – SQL recebe reforço de integridade –
versão SQL/89;
1992 – É apresentada a versão SQL2;
1999 – É apresentada a versão SQL3.
Bancos de Dados II SQL - Conceitos e
comandos
2
SQL - Principais conceitos
Machado cap.14
Conceitos
Bancos de Dados Relacionais
Linhas
(registros);
Colunas (campos);
Não ordenadas;
Localizadas por campo chave PK;
Facilidade de manipulação e
entendimento;
Voltada para ambiente relacional
mas pode ser usada em outros
ambientes;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
3
SQL - Principais conceitos
Machado cap.14
Linguagem SQL
Originalmente só interativa;
Após acréscimos passou a ser
suportada por linguagens
hospedeiras (COBOL, PL/I, C, VB,
DELPHI, etc.) - DML Embutido;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
4
SQL - Principais conceitos
Machado cap.14
Variedade de Enfoques
Consultas
“AD HOC”
LIGAÇÃO COM OUTROS
COMPUTADORES
SQL
FORMS
Relatórios
SQL
SQL
SQL
SGBD – Sistema Gerenciador de Banco de Dados
SQL
SQL
SQL
Ferramentas
Front-End
BD
Gateway
Programas
de Aplicação
DBA
Bancos
de Dados
Outros
Bancos
de Dados
Queries “AD-HOC”
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
5
SQL - Principais conceitos
Machado cap.14
Linguagem SQL - Usos
Linguagem interativa de Consulta;
Linguagem de programação –
DML Embutido;
Linguagem de Administração de
Banco de Dados;
Linguagem cliente/servidor;
Linguagem para Banco de Dados
Distribuído;
Caminho de acesso a outros Bancos
de Dados em outras máquinas.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
6
SQL - Principais conceitos
Machado cap.14
Classes de Objetos
(principais)
DDL
Criar
Destruir
Modificar
Implementação
do
Ambiente
SQL
Segurança
Controle
Administração
19/2/2009
DML
Consultar
Inserir
Alterar
Apagar
Bancos de Dados II SQL - Conceitos e
comandos
7
SQL - Principais conceitos
Machado cap.14
Classes de Objetos
DDL – Data Definition Language
(Linguagem de Definição de Dados);
DML – Data Manipulation Language
(Linguagem de Manipulação de Dados);
Controle de Usuários e instâncias
Integridade dos Dados;
19/2/2009
Grant, Revoke
Compartilhamento de Dados;
Select, Insert, Update
Controle de acessos;
Create, Alter, Drop
Foreign Keys, constraints
Bancos de Dados II SQL - Conceitos e
comandos
8
SQL - Principais conceitos
Machado cap.14
Vantagens
Independência de fabricante;
Portabilidade entre computadores;
Redução dos custos com
treinamento;
Sentenças padrão em inglês para
acesso e manipulação;
Consulta interativa (atualmente há
ferramentas visuais que facilitam
ainda mais);
Múltiplas visões dos dados;
Definição dinâmica dos dados.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
9
SQL - Principais conceitos
Machado cap.14
Desvantagens
A maioria dos fabricantes
implementa suas próprias versões
muitas vezes ignorando os padrões
ISO e ANSI;
A portabilidade é relativa em função
das limitações do item acima;
Padronização leva à inibição da
criatividade;
Interfaces gráficas;
Não atende a todas as necessidades
de processamento.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
10
SQL - Principais conceitos
SQL
Ferramenta de acesso aos bancos
de dados Relacionais
Algumas características:
Linguagem
não procedural;
Não atende a todas as necessidades
de processamento.
PL/SQL
Linguagem de acesso a bancos de
dados Relacionais
Algumas características:
Linguagem
procedural;
Supre as limitações de
processamento da linguagem SQL.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
11
SQL - Principais conceitos
Classes de Comandos
DRL – Data Retrieval Language –
Recuperação ou extração de dados do BDR;
DML – Data Manipulation Language –
Linguagem de Manipulação de Dados do
BDR;
Inclusão (Insert), Alteração (Update) e
Exclusão (Delete);
DDL – Data Definition Language –
Linguagem de Definição Tabelas no BDR;
Seleção (Select);
Criar (Create), Alterar (Alter), Eliminar (Drop);
DCL – Data Configuration Language – Define
autorização de acesso aos dados do BDR;
19/2/2009
Garanta (Grant), Revogue (Revoke).
Bancos de Dados II SQL - Conceitos e
comandos
12
SQL - Principais conceitos
Estrutura básica dos comandos DRL
O que mostrar? SELECT atributos
De onde? FROM tabelas apelidos
(quais tabelas preciso consultar para obter os
dados necessários para a consulta);
Em que condições? WHERE condições de
seleção
(colunas de tabelas, constantes, variáveis de
sistema, resultados de cálculos, etc...);
(critérios de seleção ou filtragem para
obtenção dos dados desejados);
Organizado como? ORDER atributos
19/2/2009
(quais atributos deverão ser utilizados para
ordenação dos resultados);
Bancos de Dados II SQL - Conceitos e
comandos
13
SQL - Principais conceitos
Modelo e tabelas utilizadas para os
exemplos e exercícios.
Registro de trabalhos selecionados
para eventos acadêmicos.
Modelo Conceitual
(1:N)
POSSUI
(N:1)
ACEITOS
POSSUI
EVENTO
AUTOR
TITULO
ARTIGOS
EVENTOS
AUTOR
EVENTO
LOCAL
MÊS
NUMPARTICIPANTES
UNIVERSIDADEORGANIZADORA
TÍTULO
UNIVERSIDADEORIGEM
ÓRGÃOFINANCIADOR
NOTA
NOTA_DE_CORTE
NOTA_CORTE
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
14
SQL - Principais conceitos
Modelo e tabelas utilizadas para os
exemplos e exercícios.
Registro de trabalhos selecionados
para eventos acadêmicos.
Modelo Lógico
ACEITOS
ARTIGOS
EVENTO
AUTOR
TITULO
AUTOR
TÍTULO
EVENTOS
UNIVERSIDADEORIGEM
EVENTO
LOCAL
MÊS
NUMPARTICIPANTES
UNIVERSIDADEORGANIZADORA
ÓRGÃOFINANCIADOR
NOTA
NOTA_DE_CORTE
NOTA_CORTE
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
15
SQL - Principais conceitos
Modelo e tabelas utilizadas para os
exemplos e exercícios.
Modelo Físico
ARTIGOS
AUTOR
TÍTULO
UNIVERSIDADEORIGEM
ÓRGÃOFINANCIADOR
NOTA
VARCHAR2(30)
Varchar2(30)
Varchar2(30)
Varchar2(30)
Number(2,1)
EVENTOS
EVENTO
LOCAL
MÊS
NUMPARTICIPANTES
UNIVERSIDADEORGANIZADORA
Varchar2(30
VARCHAR2(30)
NUMBER(02)
NUMBER(03)S
VARCHAR2(30)
ACEITOS
EVENTO
AUTOR
TITULO
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(30)
NOTA_DE_CORTE
NOTA_CORTE
19/2/2009
NUMBER(2,1)
Bancos de Dados II SQL - Conceitos e
comandos
16
SQL - Principais conceitos
Morelli
Comandos para criar ou alterar Tabelas
CREATE TABLE parâmetros
CREATE TABLE [schema.] tabela
(coluna1 tipo_de_dado [default expressão]
[constraint_coluna],
...
(colunaN tipo_de_dado [default expressão]
[constraint_coluna],
[constraint_tabela] );
ALTER TABLE parâmetros
ALTER TABLE [schema.] tabela
[add (coluna tipo_de_dado [default expressão]
[constraint_coluna], ...)]
...
[modify (coluna tipo_de_dado [default expressão]
[constraint_coluna], ...)]
[rename to novo_nome_tabela]
[add constraint_coluna/constraint_tabela]
[drop constraint_coluna/constraint_tabela
[cascade]]
[enable/disable
constraint_coluna/constraint_tabela];
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
17
SQL - Principais conceitos
Bandeira
Criação das Tabelas do exemplo:
ARTIGOS
CREATE TABLE artigos
(
Autor
varchar2(30),
Titulo
varchar2(30),
Universidadeorigemvarchar2(30),
Orgaofinanciador varchar2(30),
Nota
number(2,1)
);
EVENTOS
CREATE TABLE eventos
(
Evento
varchar2(30),
Local
varchar2(30),
Mês
number(02),
numparticipantes number(03),
universidadeorganizadora varchar2(30)
);
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
18
SQL - Principais conceitos
Bandeira
Criação das Tabelas do exemplo (cont):
ACEITOS
CREATE TABLE aceitos
(
Evento
varchar2(30),
Autor
varchar2(30),
Titulo
varchar2(30)
);
NOTA_DE_CORTE
CREATE TABLE nota_de_corte
(
Nota_corte
number(2,1)
);
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
19
SQL - Principais conceitos
Morelli pág. 12
Tipos de dados (principais)
CHAR(N)
Campos caracter de tamanho fixo.
VARCHAR2(N)
Campos caracter de tamanho variável (só
considera os caracteres utilizados).
LONG
Utilizado para campos muito grandes.
RAW e LONG RAW
Equivalentes aos VARCHAR2 e LONG
respectivamente mas binários para guardar
imagens, sons, etc...
NUMBER(p,e)
Campos numéricos (p=parte inteira e e=número
de decimais).
DATE
Campos de datas.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
20
SQL - Principais conceitos
Morelli pág. 12
Restrições de dados (constraints)
Destinadas a garantir a integridade dos
dados em determinadas condições
NULL | NOT NULL
Coluna aceita ou não valores nulos.
UNIQUE
Coluna somente aceita valores únicos.
CHECK
Coluna aceita somente os valores constantes na
lista informada.
PRIMARY KEY
Identifica a chave primária da tabela.
FOREIGN KEY
Identifica que a coluna é uma chave estrangeira.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
21
SQL - Principais conceitos
Morelli pág. 15
Operadores
Relacionais
19/2/2009
=
Igual
<>
Diferente
>
Maior
<
Menor
>=
Maior ou igual
<=
Menor ou igual
Bancos de Dados II SQL - Conceitos e
comandos
22
SQL - Principais conceitos
Morelli pág. 15
Operadores
Lógicos
And
Not
Operador restritivo –
equivale a uma intersecção
Operador associativo –
equivale a uma união
Negação
Is null
Se o campo é nulo
Or
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
23
SQL - Principais conceitos
Machado cap.14
Comando para recuperar dados de
Tabelas
SELECT parâmetros
SELECT [distinct] {*,colunas [alias], expressões,
funções, ...}
FROM {tabelas [alias],}
[WHERE condição]
[GROUP BY colunas]
[HAVING condição]
[ORDER BY colunas [asc | desc]];
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
24
SQL - Principais conceitos
Machado cap.14
Funções de linha –
para manipular dados
UPPER/LOWER;
Cálculos (SELECT 10 * 20 FROM
DUAL);
CONCAT ou ||;
INITCAP;
LENGTH;
SUBSTR;
LTRIM/RTRIM;
ROUND;
TRUNC
MOD (resto da divisão);
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
25
SQL - Principais conceitos
Machado cap.14
Funções de linha –
para manipular datas
ADD_MONTHS (data,n);
MONTHS_BETWEEN (data1,data2);
NEXT_DAY (data,’dia_da_semana’);
TO_DATE(campo,máscara);
TO_CHAR(campo,máscara);
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
26
SQL - Principais conceitos
Machado cap.14
Funções de linha –
para efetuar cálculos;
AVG (campo);
COUNT (campo|*);
MAX (campo);
MIN(campo);
SUM(campo);
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
27
SQL - Principais comandos
Morelli 3.1 e 3.2
Seleções básicas, ordenações e filtros
SELECT [distinct] {*,colunas [alias], expressões,
funções, ...}
FROM {tabelas [alias],}
[WHERE condição]
[GROUP BY colunas]
[HAVING condição]
[ORDER BY colunas [asc | desc]];
Exercícios:
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
28
SQL - Principais comandos
Recuperando dados de várias tabelas;
Conceitos
Qualificadores
de nomes
Permitem a efetivação de uma junção entre
tabelas em uma consulta pois, pode haver
colunas de mesmo nome em tabelas
diferentes.
Duas
sintaxes diferentes:
• Padrão standard
Equalização de colunas na cláusula
WHERE (utilizada pelo MS-SQL e
ORACLE).
• Padrão ANSI SQL
Parâmetro JOIN na cláusula FROM
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
29
SQL - Principais comandos
Recuperando dados de várias tabelas;
Padrão ANSI SQL
Parâmetro JOIN na cláusula FROM
Tipos:
• INNER JOIN
Inclui somente as linhas que satisfacam
a condição de junção;
• CROSS JOIN
Inclui cada uma das combinações de
todas as linhas entre as tabelas;
• OUTER JOIN
Inclui as linhas que satisfaçam a
condição de junção mais as linhas
restantes de uma das tabelas da
junção
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
30
SQL - Principais comandos
Recuperando dados de várias tabelas;
Padrão ANSI SQL (cont)
Exemplos:
INNER
JOIN
Ver os títulos de cada autor aceitos para um
evento qualquer;
Select artigos.autor, aceitos.titulo
From artigos INNER JOIN aceitos
ON artigos.autor = aceitos.autor;
CROSS
JOIN (produto cartesiano)
Mostrar os eventos de todos os artigos;
Select artigos.autor, artigos.titulo,
aceitos.evento
From artigos CROSS JOIN aceitos;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
31
SQL - Principais comandos
Recuperando dados de várias tabelas;
Padrão ANSI SQL (cont)
Exemplos (cont) :
OUTER
JOIN
Possui um parâmetro adicional para indicar
de qual tabela se deseja incluir todas as
linhas.
Utilidades: verificar quais linhas de uma
tabela possuem relacionamento com a
outra e quais não possuem.
Qualificadores:
LEFT OUTER JOIN – inclui todas as linhas
da tabela do primeiro lado (esquerdo)
RIGHT OUTER JOIN – inclui todas as linhas
da tabela do segundo lado (direito)
Select artigos.autor, aceitos.titulo
From artigos LEFT OUTER JOIN aceitos
ON artigos.autor = aceitos.autor;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
32
SQL - Principais comandos
Morelli 3.3
Seleções join (junção) de tabelas;
Tipos de junções (relações)
Padrão STANDARD.
Equijoin – campos iguais de tabelas
diferentes;
SELECT [distinct] {*,alias.colunas [alias_coluna],
expressões, funções, ...}
FROM tabela1 alias1, tabela2 alias2
WHERE alias1.coluna1 = alias2.coluna2;
Exemplo:
Ver os títulos de cada autor aceitos para
um evento qualquer;
Select art.autor, ace.titulo
From artigos art, aceitos ace
Where art.autor = ace.autor;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
33
SQL - Principais comandos
Morelli 3.3
Seleções join (junção) de tabelas (cont);
Tipos de junções (relações) (cont);
Outerjoin – campos em comum
existam em duas tabelas e os que
faltam;
SELECT [distinct] {*,alias.colunas [alias_coluna],
expressões, funções, ...}
FROM tabela1 alias1, tabela2 alias2
WHERE alias1.coluna1 = alias2.coluna2(+)
[ORDER BY colunas];
Exemplos:
Ver os títulos de cada autor aceitos para
um evento qualquer e os que não o
foram;
Select art.autor, art.titulo, ace.evento
From artigos art, aceitos ace
Where art.autor(+) = ace.autor;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
34
SQL - Principais comandos
Morelli 3.32
Seleções join (junção) de tabelas (cont);
Tipos de junções (relações) (cont);
NonEquijoin – reunir campos de
tabelas que não tenham nada em
comum.
SELECT [distinct] {*,alias.colunas [alias_coluna],
expressões, funções, ...}
FROM tabela1 alias1, tabela2 alias2, tabela3 alias3
WHERE alias1.coluna1 = alias2.coluna2 AND
alias3.coluna3 between valor_mínimo AND
valor_máximo;
Exemplo:
Ver os títulos, as notas, os eventos e a nota
de corte dos trabalhos aceitos;
Select art.titulo, art.nota, ace.evento,
nc.nota_corte
From artigos art, aceitos.ace,
nota_de_corte nc
Where art.autor = ace.autor
And art.titulo = ace.titulo;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
35
SQL - Principais comandos
Morelli 3.3
Seleções join (junção) de tabelas (cont);
Tipos de junções (relações) (cont);
Selfjoin – reunir campos diferentes de uma
mesma tabela que possam ter conteúdo do
mesmo tipo.
SELECT [distinct] {*,alias.colunas [alias_coluna],
expressões, funções, ...}
FROM tabela1 alias1, tabela1 alias2
WHERE alias1.coluna1 = alias2.coluna2;
Nota: note que a tabela é a mesma embora
os aliases sejam diferentes;
Exemplos:
Ver os artigos financiados pela própria
universidade;
Select art1.autor, art1.titulo,
art1.universidadeorigem, art2.orgaofinanciador
From artigos art1, artigos art2
Where art1.universidadeorigem =
at2.orgaofinanciador;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
36
SQL - Principais comandos
Morelli 3.4.1
Seleções usando funções de linha;
Funções de caracteres;
Função
Descrição
lower/upper (coluna)
Converte caracteres em minúsculas
ou maiúsculas.
initcap (coluna)
Converte o primeiro caractere de
cada palavra em maiúsculo e o resto
minúsculo.
concat
(coluna1,coluna2)
Concatena duas colunas ou cadeia
de caracteres (semelhante ao
operador de concatenação ‘||’).
substr (coluna,
posição,tamanho)
Extrai parte dos caracteres de uma
coluna ou grupo de caracteres.
length (coluna)
Informa a quantidade de caracteres
da coluna.
lpad/rpad (campo,
n,c)
Preenche à esquerda ou à direita
com o caractere indicado em ‘c’ até
o tamanho ‘n’, o campo indicado.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
37
SQL - Principais comandos
Morelli 3.4.2
Seleções usando funções de linha;
Funções de datas;
No ORACLE, o tipo DATE armazena internamente: século,
ano, mês, dia, hora, minuto e segundo. O formato
padrão é DD-MMM-AA. O usuário poderá, a seu critério,
utilizar estes dados de formas diferentes, utilizando as
funções abaixo. A variável de sistema sysdate,
armazena a data/hora corrente.
Função
Descrição
months_between
(data1,data2)
Retorna o número de meses entre
duas datas.
add_months (data, n)
Adiciona ‘n’ meses à data informada
next_day (data,
‘dia_da_semana’)
Retorna uma data, após a data
informada, em que o dia da semana
seja igual a “dia_da_semana”.
last_day (data)
Retorna a data do último dia do mês
em que se encontra a variável data.
round (data, formato)
Arredonda a data informada para o
primeiro ou último dia do mês
(quando o formato for MONTH) ou
ano (quando formato for YEAR).
trunc (data, formato)
Trunca data informada (idem round)
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
38
SQL - Principais comandos
Morelli 3.4.3
Seleções usando funções de linha;
Funções de numéricas;
Função
Descrição
round (coluna, d)
Arredonda o valor ou coluna
informada, em que ‘d’ indica o
número de casas decimais desejado.
trunc (coluna, d)
Trunca o valor ou coluna informada,
em que ‘d’ indica o número de casas
decimais desejado.
mod (a,b)
Retorna o resto da divisão de ‘a’ por
‘b’, em que ‘a’ e ‘b’ podem ser
constantes, colunas ou expressões.
power (n1, n2)
Calcula n1 elevado a n2.
sqrt (n)
Calcula a raiz quadrada de ‘n’.
ceil/floor (num)
Arredonda ‘num’ para cima ou para
baixo.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
39
SQL - Principais comandos
Morelli 3.4.4
Seleções usando funções de linha;
Funções de conversão de dados;
Função
Descrição
to_char (número ou
data, ‘formato’)
Converte um campo numérico ou
data em uma cadeia de caracteres
do tipo varchar2,
varchar2 com o formato
definido pela variável formato.
to_number (char)
Converte a cadeia de caracteres
numericos informados em um
número inteiro.
to_date (char,
‘formato’)
Converte uma cadeia de caracteres,
informando uma data, no tipo date,
date
de acordo com a variável formato.
nvl (coluna, valor)
Converte um null encontrado na
coluna, em um valor especificado.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
40
SQL - Principais comandos
Morelli 3.4.5
Seleções usando funções de linha;
Funções de grupo;
Função
Descrição
Avg (coluna)
Calcula a média dos valores de uma
coluna.
Count (coluna)
Informa o total de linhas
selecionadas.
Max (coluna)
Informa o valor máximo de uma
coluna.
Min (coluna)
Informa o valor mínimo de uma
coluna.
Sum (coluna)
Calcula a soma dos valores de uma
coluna.
Todas as funções desconsideram valores nulos, exceto
count,
count quando o argumento for *.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
41
SQL - Principais comandos
Morelli 3.5
Seleções usando operadores de
conjunto;
Operador
Descrição
Union
Retorna a união entre dois conjuntos
de dados com estruturas
semelhantes.
Intersect
Retorna os dados que são comuns a
dois conjuntos de dados.
Minus
Retorna o que um conjunto possui e
o outro não.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
42
SQL - Principais comandos
Seleções usando conjuntos;
Morelli 3.5
Lista de valores
Parâmetro IN no comando WHERE;
Ver os eventos dos meses de férias
escolares (01, 07 e 12);
Select evento, mês
From eventos
Where mês IN (1, 7, 12);
Intervalos
Parâmetro BETWEEN no comando
WHERE;
Ver os eventos dos meses letivos do
primeiro semestre (02 a 06);
Select evento, mês
From eventos
Where mês BETWEEN 2 AND 6;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
43
SQL - Principais comandos
Morelli 4.2
Atualização de dados;
Alteração de linhas;
UPDATE tabela
SET coluna = valor [, coluna = valor ...]
[WHERE condição];
19/2/2009
Se a cláusula WHERE for omitida,
todas as linhas da tabela serão
alteradas.
Bancos de Dados II SQL - Conceitos e
comandos
44
SQL - Principais comandos
Morelli 4.3
Atualização de dados;
Eliminação de linhas;
DELETE [from] tabela
[WHERE condição];
19/2/2009
Se a cláusula WHERE for omitida,
todas as linhas da tabela serão
eliminadas.
Bancos de Dados II SQL - Conceitos e
comandos
45
SQL - Principais comandos
Morelli 6.3
Outras estruturas de dados;
Visões de dados;
Uma
visão (view) é uma tabela virtual
na qual os dados não estão
fisicamente armazenados. É apenas
uma visão de um grupo de colunas
de uma ou mais tabelas do banco.
Vantagens:
Evitar
que usuários não autorizados
tenham acesso a todos os dados de
uma tabela;
Associar a uma visão, consultas que
utilizam critérios de seleção
complexos, para facilitar o acesso
pelos usuários.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
46
SQL - Principais comandos
Outras estruturas de dados;
Morelli 6.3
Criando visões;
CREATE [OR REPLACE] [force | noforce]
VIEW nome_visão
[alias, ...] as subquery;
Onde:
Opção
Descrição
replace
Recria a view, se ela já existir
force
Cria a view, mesmo que a tabela base
não exista
noforce
Só cria a view se a tabela base existir.
subquery
Sentença select na qual será baseada
a view.
Há outros parâmetros que foram
omitidos e que poderão ser
consultados no livro.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
47
SQL - Principais comandos
Outras estruturas de dados;
Morelli 6.4
Criando seqüências;
Valores
que podem ser gerados
automaticamente pelo Oracle.
Muito útil na geração de valores para
chaves primárias;
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
48
SQL - Principais comandos
Morelli 6.4
Outras estruturas de dados;
Criando seqüências;
CREATE SEQUENCE seqüência
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[cycle | nocycle]
[cache n | nocache];
Onde:
Opção
Descrição
seqüência
Nome da seqüência que não pode ser
o mesmo de uma tabela ou view.
Informa de quanto será o incremento
increment by n
ou decremento da seqüência.
Informa o primeiro número a ser
start with n
gerado.
maxvalue/minvalue Informa o valor máximo ou mínimo
que a seqüência pode assumir.
n
cycle | nocycle
cache n | nocache
19/2/2009
Indica que, quando atingir o valor
máximo, a numeração continuará a
partir do valor inicial ou não.
Indica ao Oracle quantos valores são
pré-alocados em memória
Bancos de Dados II SQL - Conceitos e
comandos
49
SQL - Principais comandos
Morelli 6.5
Outras estruturas de dados;
Criando sinônimos;
Estabelece
nomes alternativos para
tabelas, views, índices ou
seqüências;
Objetiva facilitar a manipulação
desses objetos por outros usuários
que não o seu dono, dando-lhes
nomes mais curtos ou mais
significativos;
Preservar a definição de um objeto
por seu usuário original;
Utilizado como forma de
compartilhamento de objetos por
vários usuários.
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
50
SQL - Principais comandos
Morelli 6.5
Outras estruturas de dados;
Criando sinônimos;
CREATE [public] SYNONYM sinônimo
for objeto;
Onde:
Opção
Descrição
public
Indica que o sinônimo poderá ser
usado por qualquer usuário.
Informa o nome do objeto sobre o qual
se aplica o sinônimo.
objeto
19/2/2009
Bancos de Dados II SQL - Conceitos e
comandos
51
SQL - Principais comandos
Morelli 7
Subqueries;
Consulta utilizada dentro de um comando
SQL em diversas situações.
Subqueries de uma linha;
Quando se espera que a consulta retorne
apenas um valor.
Formato:
SELECT coluna [, coluna ...]
FROM tabela1
WHERE [tabela1.]coluna = (SELECT [tabela2.]coluna2
FROM tabela2
[WHERE condição] );
19/2/2009
Observe:
a presença do operador relacional =;
que, de fato, a subquery retorne
somente um valor;
Que a subquery é colocada entre
parênteses;
Pode ser utilizada para outros comandos
alem do select.
Bancos de Dados II SQL - Conceitos e
comandos
52
SQL - Principais comandos
Morelli 7
Subqueries;
Subqueries de múltiplas linhas;
Quando se espera que a consulta retorne
um, ou mais de um valor em apenas uma
coluna.
Formato:
SELECT coluna [, coluna ...]
FROM tabela1
WHERE [tabela1.]coluna IN | NOT IN
(SELECT [tabela2.]coluna2
FROM tabela2
[WHERE condição] );
19/2/2009
Observe:
a presença do operador relacional IN, ou
NOT IN;
que, de fato, a subquery retorne
somente uma coluna;
Que a subquery é colocada entre
parênteses.
Bancos de Dados II SQL - Conceitos e
comandos
53
SQL - Principais comandos
Morelli 7
Subqueries;
Subqueries de múltiplas colunas;
Quando se espera que a consulta retorne
um, ou mais de um valor em apenas uma ou
várias colunas.
Formato:
SELECT coluna [, coluna ...]
FROM tabela1
WHERE [tabela1.]coluna IN | NOT IN
(SELECT [tabela2.]coluna2,
[tabela2.]coluna3
FROM tabela2
[WHERE condição] );
19/2/2009
Observe:
a presença do operador relacional IN, ou
NOT IN;
que a subquery retorna mais de uma
coluna;
Que a subquery é colocada entre
parênteses.
Bancos de Dados II SQL - Conceitos e
comandos
54
SQL - Principais comandos
Morelli 7
Subqueries;
Subqueries correlatas;
Quando se utiliza uma coluna da consulta
externa na subquery.
Formato:
SELECT coluna1 [, coluna2 ...]
FROM tabela1
WHERE [tabela1.]coluna IN | NOT IN
(SELECT [tabela2.]coluna2
FROM tabela2
WHERE tabela2.coluna2 =
tabela1.coluna2 );
19/2/2009
Observe:
a presença do operador relacional IN, ou
NOT IN;
que a subquery utiliza uma coluna da
tabela 1 (mais externa) na sua condição
de comparação;
Que a subquery é colocada entre
parênteses.
Bancos de Dados II SQL - Conceitos e
comandos
55
Orientação Final
Página do professor na
internet:
http://prof.cle.sites.uol.com.br
19/2/2009
Dúvidas?!?
Bancos de Dados II SQL - Conceitos e
comandos
56

Documentos relacionados

PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW

PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW BOOLEAN; CONT NUMBER(6) :=0; PERC CONSTANT NUMBER(4,2):= 36.00;

Leia mais