Mapa SQL

João Victor Ferrareis Ribeiro

SQL

DDL

DML

DQL

CREATE

ALTER

DROP

INSTRUÇÃO

EXEMPLO

CREATE TABLE [IF NOT EXISTS]nome_tabela (nome_atributo tipo_de_dado [, ...]);

CREATE TABLE PROJETO(
NUMERO SERIAL PRIMARY KEY,
NOME VARCHAR(50),
LOCALIZACAO VARCHAR(50)
);

INSTRUÇÃO

EXEMPLO

ALTER TABLE nome_tabela [ADD/DROP COLUMN/ALTER COLUMN] coluna_a_ser_modificada

ALTER TABLE EMPREGADO ALTER COLUMN SALARIO TYPE REAL;

INSTRUÇÃO

EXEMPLO

DROP TABLE [IF EXISTS] table_name

DROP TABLE IF EXISTS ALUNO;

INSERT

UPDATE

DELETE

INSTRUÇÃO

EXEMPLO

INSTRUÇÃO

EXEMPLO

INSTRUÇÃO

EXEMPLO

UPDATE nome_tabela SET novo_valor_atributo [WHERE condição]

UPDATE DEPARTAMENTO SET RG_GERENTE=1010 WHERE NUMERO=1;

DELETE FROM nome_tabela [WHERE condição]

DELETE FROM PROJETO2;

INSERT [INTO] nome_tabela(atributos[,...]) VALUES (atributos[,...])[,(atributos[,...])];

INSERT INTO DEPARTAMENTO_PROJETO (CODIGO, NUMERO_DEPTO, NUMERO_PROJETO)
VALUES (1,2,5),(2,3,10),(3,2,20);

SELECT

SIMPLES

COM WHERE

COM ORDER BY

COM AGRUPAMENTO
(GROUP BY)

COM PAGINAÇÃO
(LIMIT)

COM OPERAÇÕES DE CONJUNTOS

UNION

INTERSECT

EXCEPT

COM JUNÇÃO

INNER

LEFT

RIGHT

FULL

COM VISÃO
(VIEW)

COMBINANDO INSTRUÇÕES

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

INSTRUÇÃO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

EXEMPLO

SELECT atributos
FROM nome_tabela

SELECT atributos
FROM nome_tabela
[WHERE condição]

SELECT atributos
FROM nome_tabela
[WHERE condição]
[ORDER BY atributo [ASC/DESC]]

SELECT atributos
FROM nome_tabela
[WHERE condição]
[GROUP BY atributos]

SELECT atributos
FROM nome_tabela
[WHERE condição]
[LIMIT quantidade [OFFSET quantidade_a_pular]]

(primeiro_select)
UNION
(segundo_select)

(primeiro_select)
INTERSECT
(segundo_select)

(primeiro_select)
EXCEPT
(segundo_select)

CREATE VIEW nome_view AS
SELECT atributos
FROM nome_tabela

SELECT atributos
FROM nome_tabela1
INNER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)

SELECT atributos
FROM nome_tabela1
RIGHT OUTER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)

SELECT atributos
FROM nome_tabela1
LEFT OUTER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)

SELECT atributos
FROM nome_tabela1
FULL OUTER JOIN nome_tabela2
ON (nome_tabela1.atributo = nome_tabela2.atributo)

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]]

SELECT *
FROM EMPREGADO;

SELECT *
FROM EMPREGADO
WHERE SALARIO > 3000;

SELECT *
FROM EMPREGADO
WHERE SALARIO > 3000
ORDER BY SALARIO;

SELECT *
FROM EMPREGADO
WHERE SALARIO > 3000
ORDER BY SALARIO
LIMIT 3;

SELECT RELACAO , COUNT(*)
FROM DEPENDENTE
GROUP BY RELACAO;

(SELECT RG
FROM EMPREGADO)
INTERSECT
(SELECT RG_RESPONSAVEL
FROM DEPENDENTE)

(SELECT RG
FROM EMPREGADO)
UNION
(SELECT NOME_DEPENDENTE AS NOME
FROM DEPENDENTE)
ORDER BY NOME;

(SELECT NUMERO
FROM DEPARTAMENTO)
EXCEPT
(SELECT NUMERO_DEPTO
FROM DEPARTAMENTO_PROJETO)

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

CREATE VIEW nome_e_rg_empregado AS
SELECT NOME,RG
FROM EMPREGADO

SELECT NOME,NUMERO,NUMERO_PROJETO
FROM DEPARTAMENTO_PROJETO
INNER JOIN PROJETO
ON (DEPARTAMENTO_PROJETO.NUMERO_PROJETO = PROJETO.NUMERO)

SELECT NUMERO_DEPTO,NUMERO_PROJETO,D.NOME,D.NUMERO
FROM DEPARTAMENTO_PROJETO DP
RIGHT OUTER JOIN DEPARTAMENTO D
ON (DP.NUMERO_DEPTO = D.NUMERO);

SELECT NUMERO_DEPTO,NUMERO_PROJETO,D.NOME,D.NUMERO
FROM DEPARTAMENTO_PROJETO DP
LEFT OUTER JOIN DEPARTAMENTO D
ON (DP.NUMERO_DEPTO = D.NUMERO);

SELECT * FROM PROJETO P
FULL OUTER JOIN DEPARTAMENTO_PROJETO DP
ON (P.NUMERO = DP.NUMERO_PROJETO)