Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceito:................................................................................................................................. 3
Características:........................................................................................................................ 5
Vantagens e Desvantagens...................................................................................................... 6
Comandos e Funções:............................................................................................................. 6
Comando: Create Table.......................................................................................................6
Exemplo 1....................................................................................................................... 7
Exemplo 2....................................................................................................................... 7
Exemplo 3....................................................................................................................... 8
Exemplo 4 -> Criando a tabela de professores................................................................8
Exemplo 5 -> Criando a tabela de disciplina cursada por um aluno............................... 9
Comando SELECT............................................................................................................10
EXEMPLO:................................................................................................................... 12
A cláusula ODER BY....................................................................................................... 13
A Clausula BETWEEN..................................................................................................... 14
A Clausula GROUP BY.................................................................................................... 14
Algumas funções utilizadas no comando SELECT.............................................................. 15
COUNT(*) (nome-campo)................................................................................................ 15
SUM (nome-campo)..........................................................................................................16
AVG (nome-campo)..........................................................................................................16
MAX (nome-campo)......................................................................................................... 17
MIN (nome-campo)......................................................................................................... 17
Instrução Delete.................................................................................................................... 18
Instrução INSERT INTO...................................................................................................... 18
Instrução UPDATE............................................................................................................... 21
A cláusula JOIN e suas variantes:......................................................................................... 22
exemplo:............................................................................................................................ 23
Outer join.......................................................................................................................... 24
Cross Join.......................................................................................................................... 26
Exemplo:....................................................................................................................... 26
Grant e Revoke ..................................................................................................................... 26
TRIGGERS........................................................................................................................... 28
Exemplo: .......................................................................................................................... 29
Eemplo:............................................................................................................................. 30
Consultas Encadeadas (Subqueries)...................................................................................... 30
EXEMPLOS:.....................................................................................................................31
Uniões................................................................................................................................... 31
Conceito:
Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram
vários "dialetos" desenvolvidos por outros produtores. Essa expansão levou à
necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi
realizada pela American National Standards Institute (ANSI) em 1986 e ISO em
1987.
O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto
novamente em 1999 e 2003 para se tornar SQL: 1999 (SQL3) e SQL: 2003,
respectivamente. O SQL: 1999 usa expressões regulares de emparelhamento,
queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa
de tipos não-escalados e algumas características de orientação a objeto. O SQL:
2003 introduz características relacionadas ao XML, sequências padronizadas e
colunas com valores de auto-generalização (inclusive colunas-identidade).
Tal como dito anteriormente, o SQL, embora padronizado pela ANSI e ISO, possui
muitas variações e extensões produzidas pelos diferentes fabricantes de sistemas
gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de
plataforma para plataforma sem mudanças estruturais principais.
A SQL apresenta uma série de comandos que permitem a definição dos dados,
chamada de DDL (Data Definition Language – Definição de Dados Declarados),
composta entre outros pelos comandos Create, que é destinado à criação do
Banco de Dados, das tabelas que o compõe, além das relações existentes entre
as tabelas. Como exemplo da classe DDL temos os comandos Create, Alter, Drop
e Rename.
Características:
Vantagens e Desvantagens
SQL é a linguagem que o a maioria dos bancos de dados relacionais utiliza como
linguagem de comandos. É portável e fácil de ser aprendida. Entretanto, todas as
declarações SQL devem ser executadas individualmente pelo servidor de banco
de dados. Isto significa que a aplicação cliente deve enviar o comando para o
servidor de banco de dados, aguardar que seja processado, receber os
resultados, realizar algum processamento e enviar o próximo comando para o
servidor. Tudo isto envolve comunicação entre processos e pode, também,
envolver tráfego na rede se o cliente não estiver na mesma máquina onde se
encontra o servidor de banco de dados.
Comandos e Funções:
Exemplo 1
Exemplo 2
Exemplo 3
Comando SELECT
WHERE condição
GROUP BY nome-coluna
HAVING condição
ORDER BY nome-campo ASC DESC
ONDE:
EX:
SELECT DEPT_ID,AVG(SALARY)
FROM S_EMP
GROUP BY DEPT_ID
HAVING AVG(SALARY) > 2000;
EX:
SELECT id_pedido, total_produtos = COUNT(*)
FROM item_pedido
GROUP BY id_pedido
HAVING COUNT(*) >5
A Cláusula WHERE
EXEMPLO:
Nesse SELECT procuramos qualquer aluno que tenha a letra “n” em seu nome, no
caso Anderson, André e Manoel.
A cláusula ODER BY
A Clausula BETWEEN
A clausula BETWEEN permite fazer uma seleção de valores entre um
determinado intervalo. Por exemplo, deseja-se saber todos os alunos que estão
matriculados entre os semestres 2001A ate o semestre 2002B.
A Clausula GROUP BY
Os dados resultantes de uma seleção podem ser agrupados de acordo com um
critério específico.
Este procedimento é realizado usando a cláusula GROUP BY. Apenas uma linha
do grupo é apresentada.
Como condição de agrupamento somente poderão aparecer itens do SELECT ou
funções do grupo. Por exemplo, deseja-se saber o total de créditos cursados pelos
alunos. Para resolver esse problema usamos uma função SUM (explicada mais
adiante) e a clausula GROUP BY.
GROUP BY cod_alu;
COUNT(*) (nome-campo)
Outro exemplo deseja-se saber quantas disciplinas são cursadas pelos alunos
SUM (nome-campo)
AVG (nome-campo)
MAX (nome-campo)
MIN (nome-campo)
Retorna o menor valor existente no campo especificado. Por exemplo, deseja-se
saber qual aluno teve a nota mais baixa na primeira prova da disciplina da Analise
de Sistemas I (código da disciplina igual a 1) no semestre de 2001A.
Instrução Delete
Essa instrução permite remover (deletar) um ou um grupo de registros em uma
tabela do Banco de
Dados. Sintaxe:
ONDE:
Quando apenas parte dos campos da tabela terão conteúdo - Neste caso devem
ser especificadas todas as colunas que terão conteúdo e os valores relacionados
deverão obedecer esta seqüência. Para os campos que não tem conteúdo
especificado será preenchido o valor NULL, como mostra o exemplo abaixo:
Obs:
Instrução UPDATE
UPDATE nome-tabela
SET <nome-coluna = <novo conteúdo para o campo>
[nome-coluna = <novo conteúdo para o campo>]
WHERE condição
ONDE:
OBS:
Inner Join
exemplo:
SELECT PED.PED_COD ,
PED. PED_DATA ,
ITEN. ITEN_COD ,
ITEN. ITEN_QTD
FROM PEDIDO PED , ITENSPEDIDO ITEN
WHERE
PED.PED_COD = ITEN.PED_COD
SELECT PED.PED_COD ,
PED. PED_DATA ,
ITEN. ITEN_COD ,
ITEN. ITEN_QTD
FROM PEDIDO PED INNER JOIN ITENSPEDIDO ITEN
ON PED.PED_COD = ITEN.PED_COD
É importante lembrar também que o Inner join permite o uso de outros operadores
que não sejam somente o igual (=).
Outer join
Geralmente, este tipo de join pode ser utilizado em duas tabelas. Mas nada
impede que se utilize em mais de duas tabelas, como a tabela de cliente ao nosso
modelo PEDIDO-ITENS por exemplo.
Pensando na ligação entre duas tabela, foram criados duas opções para se utilizar
no Outer Join:
* Opção LEFT OUTER JOIN, visando aplicar o conceito de Outer Join na tabela
que se encontrar à esquerda da relação. Apesar de não ser recomendado, pode
ser substituída pelo operador *=
* Opção RIGHT OUTER JOIN, visando aplicar o conceito de Outer Join na tabela
que se encontrar à direita da relação. Apesar de não ser recomendado, pode ser
substituída pelo operador =*
Por exemplo, queremos todos os pedidos que tenham relação com a tabela de
itens e também os pedidos que não tenham relação com nenhum item:
SELECT PED.PED_COD ,
PED. PED_DATA ,
ITEN. ITEN_COD ,
ITEN. ITEN_QTD
FROM PEDIDO PED LEFT OUTER JOIN ITENSPEDIDO ITEN
ON PED.PED_COD = ITEN.PED_COD
SELECT PED.PED_COD ,
PED. PED_DATA ,
ITEN. ITEN_COD ,
ITEN. ITEN_QTD
FROM ITENSPEDIDO ITEN RIGHT OUTER JOIN PEDIDO PED
ON PED.PED_COD = ITEN.PED_COD
ou ainda:
SELECT PED.PED_COD ,
PED. PED_DATA ,
ITEN. ITEN_COD ,
ITEN. ITEN_QTD
FROM ITENSPEDIDO ITEN , PEDIDO PED
WHERE PED.PED_COD *= ITEN.PED_COD
Cross Join
O Cross Join possui uma funcionalidade completamente diferente dos outros tipos
de Join. Ele simplesmente obtém todos os registros de todas as tabelas e faz o
produto cartesiano (ou seja, cada registro de uma tabela é relacionado com cada
registro da outra tabela), obtendo assim, o número total de registros através da
multiplicação do total de registros das tabelas envolvidas no Cross Join.
Exemplo:
SELECT PED.PED_COD ,
PED. PED_DATA ,
CLI.CLI_COD,
CLI.CLI_NOME
FROM PEDIDO PED , CLIENTE CLI
Grant e Revoke
Existem dois comandos SQL que são usados para administra os privilégios:
A menos que o usuário Scott faça parte do grupo SYSADM ou DBADM ele não
poderá repassar esse privilégio para outro usuário.
TRIGGERS
O gatilho pode ser especificado para disparar antes (BEFORE) da operação ser
realizada na tupla (antes das restrições serem verificadas e o INSERT, UPDATE
ou DELETE serem efetuados) ou após (AFTER) a operação ser realizada (ou seja,
após as restrições serem verificadas e o INSERT, UPDATE ou DELETE ter
completado). Se o gatilho disparar antes do evento, o gatilho pode evitar a
operação para a tupla atual, ou modificar a tupla sendo inserida (para as
operações de INSERT e UPDATE somente). Se o gatilho disparar após o evento
todas as modificações, incluindo a última inserção, atualização ou exclusão, são
"visíveis" para o gatilho.
O SELECT não modifica nenhuma linha, portanto não é possível criar gatilhos
para SELECT. Regras e visões são mais apropriadas para este caso.
Exemplo:
Create procedure busca
@nomedebusca varchar (50)
as
select nome1, nome2
from nome_da_tabela
where nome = @nomedebusca
Eemplo:
EXEMPLOS:
WHERE condição
GROUP BY nome-coluna
HAVING condição
ORDER BY nome-campo ASC DESC
SELECT SUM(Disciplinas.credito) AS [Total de Aula]FROM
Disciplinas INNER JOIN Cursa ON
Cursa.cod_dis = Disciplinas.codigo
WHERE Cursa.cod_alu=1;
Uniões
Poderíamos resolver esta pesquisa com um único Select, porém devido ao fato de
estarmos trabalhando em nosso exemplo com apenas duas tabelas não
conseguimos criar um exemplo muito adequado para utilização deste recurso.
(Select *
From Emp
Where EmpNume > 10)
Union
(Select *
From Emp
Where DepNume > 10);
Outro exemplo: Podemos querer saber quantos filmes de uma tabela fimes tem
mais de duas horas de duração ou ano maior do que 2000.
(Select *
From filmes
Where duracao > 2)
Union
(Select *
From filmes
Where data > 2000);