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)