Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mapa SQL - Coggle Diagram
Mapa SQL
João Victor Ferrareis Ribeiro
Link para o templete
SQL
DDL
CREATE
INSTRUÇÃO
CREATE TABLE [IF NOT EXISTS]nome_tabela (nome_atributo tipo_de_dado [, ...]);
EXEMPLO
CREATE TABLE PROJETO(
NUMERO SERIAL PRIMARY KEY,
NOME VARCHAR(50),
LOCALIZACAO VARCHAR(50)
);
ALTER
INSTRUÇÃO
ALTER TABLE nome_tabela [ADD/DROP COLUMN/ALTER COLUMN] coluna_a_ser_modificada
EXEMPLO
ALTER TABLE EMPREGADO ALTER COLUMN SALARIO TYPE REAL;
DROP
INSTRUÇÃO
DROP TABLE [IF EXISTS] table_name
EXEMPLO
DROP TABLE IF EXISTS ALUNO;
DML
INSERT
INSTRUÇÃO
INSERT [INTO] nome_tabela(atributos[,...]) VALUES (atributos[,...])[,(atributos[,...])];
EXEMPLO
INSERT INTO DEPARTAMENTO_PROJETO (CODIGO, NUMERO_DEPTO, NUMERO_PROJETO)
VALUES (1,2,5),(2,3,10),(3,2,20);
UPDATE
INSTRUÇÃO
UPDATE nome_tabela SET novo_valor_atributo [WHERE condição]
EXEMPLO
UPDATE DEPARTAMENTO SET RG_GERENTE=1010 WHERE NUMERO=1;
DELETE
INSTRUÇÃO
DELETE FROM nome_tabela [WHERE condição]
EXEMPLO
DELETE FROM PROJETO2;
DQL
SELECT
SIMPLES
INSTRUÇÃO
SELECT atributos
FROM nome_tabela
EXEMPLO
SELECT *
FROM EMPREGADO;
COM WHERE
INSTRUÇÃO
SELECT atributos
FROM nome_tabela
[WHERE condição]
EXEMPLO
SELECT *
FROM EMPREGADO
WHERE SALARIO > 3000;
COM ORDER BY
INSTRUÇÃO
SELECT atributos
FROM nome_tabela
[WHERE condição]
[ORDER BY atributo [ASC/DESC]]
EXEMPLO
SELECT *
FROM EMPREGADO
WHERE SALARIO > 3000
ORDER BY SALARIO;
COM AGRUPAMENTO
(GROUP BY)
INSTRUÇÃO
SELECT atributos
FROM nome_tabela
[WHERE condição]
[GROUP BY atributos]
EXEMPLO
SELECT RELACAO , COUNT(*)
FROM DEPENDENTE
GROUP BY RELACAO;
COM PAGINAÇÃO
(LIMIT)
INSTRUÇÃO
SELECT atributos
FROM nome_tabela
[WHERE condição]
[LIMIT quantidade [OFFSET quantidade_a_pular]]
EXEMPLO
SELECT *
FROM EMPREGADO
WHERE SALARIO > 3000
ORDER BY SALARIO
LIMIT 3;
COM OPERAÇÕES DE CONJUNTOS
UNION
INSTRUÇÃO
(primeiro_select)
UNION
(segundo_select)
EXEMPLO
(SELECT RG
FROM EMPREGADO)
UNION
(SELECT NOME_DEPENDENTE AS NOME
FROM DEPENDENTE)
ORDER BY NOME;
INTERSECT
INSTRUÇÃO
(primeiro_select)
INTERSECT
(segundo_select)
EXEMPLO
(SELECT RG
FROM EMPREGADO)
INTERSECT
(SELECT RG_RESPONSAVEL
FROM DEPENDENTE)
EXCEPT
INSTRUÇÃO
(primeiro_select)
EXCEPT
(segundo_select)
EXEMPLO
(SELECT NUMERO
FROM DEPARTAMENTO)
EXCEPT
(SELECT NUMERO_DEPTO
FROM DEPARTAMENTO_PROJETO)
COM JUNÇÃO
INNER
INSTRUÇÃO
SELECT atributos
FROM nome_tabela1
INNER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)
EXEMPLO
SELECT NOME,NUMERO,NUMERO_PROJETO
FROM DEPARTAMENTO_PROJETO
INNER JOIN PROJETO
ON (DEPARTAMENTO_PROJETO.NUMERO_PROJETO = PROJETO.NUMERO)
LEFT
INSTRUÇÃO
SELECT atributos
FROM nome_tabela1
LEFT OUTER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)
EXEMPLO
SELECT NUMERO_DEPTO,NUMERO_PROJETO,D.NOME,D.NUMERO
FROM DEPARTAMENTO_PROJETO DP
LEFT OUTER JOIN DEPARTAMENTO D
ON (DP.NUMERO_DEPTO = D.NUMERO);
RIGHT
INSTRUÇÃO
SELECT atributos
FROM nome_tabela1
RIGHT OUTER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)
EXEMPLO
SELECT NUMERO_DEPTO,NUMERO_PROJETO,D.NOME,D.NUMERO
FROM DEPARTAMENTO_PROJETO DP
RIGHT OUTER JOIN DEPARTAMENTO D
ON (DP.NUMERO_DEPTO = D.NUMERO);
FULL
INSTRUÇÃO
SELECT atributos
FROM nome_tabela1
FULL OUTER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)
EXEMPLO
SELECT * FROM PROJETO P
FULL OUTER JOIN DEPARTAMENTO_PROJETO DP
ON (P.NUMERO = DP.NUMERO_PROJETO)
COM VISÃO
(VIEW)
INSTRUÇÃO
CREATE VIEW nome_view AS
SELECT atributos
FROM nome_tabela
EXEMPLO
CREATE VIEW nome_e_rg_empregado AS
SELECT NOME,RG
FROM EMPREGADO
COMBINANDO INSTRUÇÕES
INSTRUÇÃO
SELECT [DISTINCT] lista_seleção
FROM nome_tabela1
[{[RIGHT/LEFT/FULL][INNER/OUTER]} JOIN nome_tabela2
ON (nome_tabela1.coluna2 = nome_tabela2.coluna2)]
[WHERE condição]
[GROUP BY nome_coluna
[HAVING condição]]
[ORDER BY nome_coluna [ASC/DESC]]
[LIMIT quantidade [OFFSET offset]]
EXEMPLO
SELECT D.NOME AS "Nome do departamento",E.NOME AS "Nome do gerente",P.NOME AS "Nome do projeto"
FROM DEPARTAMENTO_PROJETO AS DP
RIGHT JOIN DEPARTAMENTO AS D ON (D.NUMERO = DP.NUMERO_DEPTO)
INNER JOIN EMPREGADO AS E ON (D.RG_GERENTE = E.RG)
INNER JOIN PROJETO AS P ON (P.NUMERO = DP.NUMERO_PROJETO)
WHERE E.RG < 7070
GROUP BY D.NOME,E.NOME,P.NOME
HAVING COUNT(D.NOME) = 1
ORDER BY D.NOME ASC
LIMIT 1 OFFSET 1