Data Definition Language (DDL) Data Manipulation Language (DML) Data Transaction Language (DTL) Data Control Language (DCL)
Data Definition Language (DDL) Data Manipulation Language (DML) Data Transaction Language (DTL) Data Control Language (DCL)
DEFINIÇÃO DE SQL
SQL é basicamente a linguagem padrão declarativa para manipulação de bancos de dados relacionais. Por meio
dela, um usuário pode executar comandos para inserir, pesquisar, atualizar ou deletar registros em um banco de
dados, criar ou excluir tabelas, conceder ou revogar permissões para acessar o banco de dados, entre diversos
outros recursos.
Esse tipo de dado trata de números inteiros de diversos tamanhos (Ex: INTEGER, INT ou
NUMÉRICO SMALLINT) e números reais (FLOAT, REAL e DOUBLE PRECISION).
Esse tipo de dado é basicamente uma cadeia de bits de tamanho fixo (Ex: BIT(n), em que n é
BINÁRIO o número fixo de caracteres) ou tamanho variável (Ex: BIT VARYING(n), em que n é o número
máximo de caracteres.
Esse tipo de dado tem como valores tradicionais TRUE (Verdadeiro) ou FALSE (Falso).
BOOLEANO
Esse tipo de dado possui dez posições, e seus componentes são DAY (Dia), MONTH (Mês) e YEAR
DATA (Ano) na forma DD-MM-YYYY (Ex: 30/03/2019).
Esse tipo de dado possui pelo menos oito posições compostas por HOUR (Hora), MINUTE
HORA (Minuto) e SECOND (Segundo) na forma HH:MM:SS.
Existem outros tipos de dados que foram acrescentados em versões posteriores do Padrão
Outros ANSI/SQL (Ex: TIMESTAMP (junção da Data com Hora), INTERVAL (calcula o intervalo entre
Datas/Horas); e DATETIME (combina data e hora em um único tipo, com intervalo de datas)).
CREATE TABLE
SINTAXE DO COMANDO
CREATE TABLE NOME_DA_TABELA (
NOME_COLUNA1 TIPO_DE_DADO RESTRIÇÕES ,
NOME_COLUNA2 TIPO_DE_DADO RESTRIÇÕES ,
NOME_COLUNA3 TIPO_DE_DADO RESTRIÇÕES ,
...
);
SINTAXE DO COMANDO
CREATE TABLE NOME_TABELA_NOVA AS
SELECT NOME_COLUNA1, NOME_COLUNA2, NOME_COLUNA3, ...
FROM NOME_TABELA_ANTIGA
WHERE ...
DROP TABLE
SINTAXE DO COMANDO
DROP TABLE NOME_DA_TABELA;
TRUNCATE TABLE
SINTAXE DO COMANDO
TRUNCATE TABLE NOME_DA_TABELA;
ALTER TABLE
RENAME TABLE
SINTAXE DO COMANDO
RENAME TABLE NOME_DA_TABELA
TO NOVO_NOME_DA_TABELA;
EXEMPLO DO COMANDO
RENAME TABLE ALUNO
TO ALUNO_ESTRATEGIA;
SINTAXE DO COMANDO
ALTER TABLE NOME_DA_TABELA
RENAME TO NOVO_NOME_DA_TABELA;
RESTRIÇÕES
RESTRIÇÕES (CONSTRAINTS)
Trata-se de um conjunto de limitações utilizadas para especificar regras para os dados em uma tabela de um banco
de dados relacional. Elas buscam limitar o tipo de dado que pode ser armazenado, o que garante a precisão e
confiabilidade aos dados da tabela. Se houver qualquer violação entre a restrição e a ação de dados, a ação será
abortada.
CONSTRAINT DESCRIÇÃO
Not null Garante que uma coluna não possa ter um valor nulo.
Unique Garante que todos os valores de uma coluna sejam diferentes entre si.
Primary key Garante que todos os valores de uma coluna sejam diferentes entre si e não nulos.
Foreign key Garante que ações não destruam links/relacionamentos entre as tabelas.
Check Garante que os valores em uma coluna satisfaçam uma condição específica.
Default Define um valor padrão para uma coluna, se nenhum valor for especificado.
NOT
NULL
DEFAULT UNIQUE
RESTRIÇÕES
CHECK PRIMARY
KEY
FOREIGN
KEY
Not null
sintaxe DO COMANDO
CREATE TABLE NOME_DA_TABELA (
NOME_COLUNA1 TIPO_DE_DADO NOT NULL ,
...
);
unique
foreign key
check
default
INSERT INTO
SINTAXE DO COMANDO I
-- INSERÇÃO DE TODOS OS VALORES PRESCINDE DA ESPECIFICAÇÃO DAS COLUNAS
INSERT INTO NOME_DA_TABELA
VALUES (VALOR_1, VALOR_2, VALOR_3, ...)
SINTAXE II DO COMANDO II
-- INSERÇÃO DE TODOS OS VALORES PRECISA DA ESPECIFICAÇÃO DAS COLUNAS
INSERT INTO NOME_DA_TABELA (NOME_COLUNA1, NOME_COLUNA2, NOME_COLUNA3, ...)
VALUES (VALOR_1, VALOR_2, VALOR_3, ...)
UPDATE
SINTAXE DO COMANDO
UPDATE NOME_DA_TABELA
SET NOME_DA_COLUNA_1 = VALOR_1, NOME_COLUNA2 = VALOR_2 ...
WHERE LISTA_DE_CONDICOES
DELETE
SINTAXE DO COMANDO
DELETE FROM NOME_DA_TABELA WHERE LISTA_DE_CONDICOES
SELECT
SINTAXE DO COMANDO
-- AS CLÁUSULAS SÃO OPCIONAIS
SELECT LISTA_DE_COLUNAS FROM LISTA_DE_TABELAS CLAUSULAS;
SELECT DISTINCT
SINTAXE DO COMANDO
-- AS CLÁUSULAS SÃO OPCIONAIS
SELECT DISTINCT LISTA_DE_COLUNAS FROM LISTA_DE_TABELAS CLAUSULAS;
ALIASES
SINTAXE DO COMANDO
-- ALIAS PARA O NOME DA TABELA
SELECT NOME_COLUNA FROM NOME_DA_TABELA AS APELIDO CLAUSULAS;
GROUP ORDER
FROM JOIN WHERE HAVING LIMIT
BY BY
CLÁSULAS DESCRIÇÃO
FROM Comando utilizado para indicar de onde os dados devem ser selecionados.
join Comando utilizado para combinar linhas tabelas, com base em uma coluna em comum entre elas.
WHERE Comando utilizado para filtrar os dados.
GROUP BY Comando utilizado para agregar um conjunto de dados.
HAVING Comando utilizado para filtrar dados agregados.
ORDER BY Comando utilizado para ordenar os dados recuperados.
LIMIT Comando utilizado para limitar a quantidade de resultados.
FROM
SINTAXE DO COMANDO
SELECT LISTA_DE_COLUNAS FROM TABELA1, TABELA2, ... CLAUSULAS;
JOIN
INNER JOIN LEFT JOIN RIGHT JOIN FULL OUTer JOIN SELF JOIN
Retorna registros que Retorna todos os Retorna todos os Retorna todos os Trata-se de join
possuem valores registros da tabela da registros da tabela da registros quando há comum, mas que
correspondentes em esquerda e seus direita e seus uma correspondência relaciona registros de
ambas as tabelas correspondentes da correspondentes da na tabela da esquerda uma tabela com ela
tabela da direita tabela da esquerda ou da direita mesma
WHERE
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE CONDICAO;
Operadores Relacionais
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE CONDICAO1 AND CONDICAO2 AND CONDICAO3 ... ;
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE CONDICAO1 OR CONDICAO2 OR CONDICAO3 ... ;
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE NOT CONDICAO1;
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE NOME_COLUNA1 BETWEEN VALOR1 AND VALOR2;
Operador LIKE
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE NOME_COLUNA1 LIKE PADRAO
OPERADOR DESCRIÇÃO
...WHERE NOME LIKE 'A%' Retorna valores que comecem com “A”.
...WHERE NOME LIKE '%A' Retorna valores que terminem com “A”.
...WHERE NOME LIKE '%IO%' Retorna valores que possuam “IO” em qualquer posição.
...WHERE NOME LIKE '_R%' Retorna valores que possuam um caractere e depois a letra “R”.
...WHERE NOME LIKE '%A_' Retorna valores que terminem com “A” mais apenas um caractere.
...WHERE NOME LIKE 'A__%' Retorna valores que comecem com “A” e possuem ao menos 3 caracteres.
...WHERE NOME LIKE '%A%O' Retorna valores que possuam “A” depois “O” (imediatamente ou não).
Operador is null
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE NOME_COLUNA1 IS NULL;
Operador IN
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE NOME_COLUNA1 IN (VALOR1, VALOR2,...);
Operador EXISTS
SINTAXE DO COMANDO
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA1
WHERE EXISTS (SELECT ... FROM ... WHERE ...);
GROUP BY
SINTAXE DO COMANDO
SELECT LISTA_DE_COLUNAS, FUNCAO_DE_AGREGACAO(COLUNA)
FROM NOME_DA_TABELA
WHERE CONDIÇOES --OPCIONAL
GROUP BY LISTA_DE_COLUNAS;
SINTAXE DO COMANDO
SELECT LISTA_DE_COLUNAS, FUNCAO_DE_AGREGACAO(COLUNA)
FROM NOME_DA_TABELA
WHERE CONDIÇOES --OPCIONAL
GROUP BY LISTA_DE_COLUNAS
HAVING CONDIÇOES;
ORDER BY
SINTAXE DO COMANDO
SELECT LISTA_DE_COLUNAS, FUNCAO_DE_AGREGACAO(COLUNA)
FROM NOME_DA_TABELA
WHERE CONDIÇOES --OPCIONAL
GROUP BY LISTA_DE_COLUNAS --OPCIONAL
HAVING CONDIÇOES --OPCIONAL
ORDER BY COLUNA1 ASC | DESC, COLUNA2 ASC | DESC, ...;
LIIMT
SINTAXE DO COMANDO
SELECT LISTA_DE_COLUNAS
FROM NOME_DA_TABELA
LIMIT QTD_LINHAS;
COMANDOS DTL DESCRIÇÃO
COMMIT Comando utilizado para finalizar/confirmar uma transação dentro de um SGBD.
ROLLBACK Comando utilizado para descartar mudanças nos dados desde o último COMMIT ou ROLLBACK.
SINTAXE DO COMANDO
COMMIT;
SINTAXE DO COMANDO
ROLLBACK;
SINTAXE DO COMANDO
GRANT LISTA_DE_PRIVILEGIOS ON OBJETO TO LISTA_DE_USUARIOS;
SINTAXE DO COMANDO
REVOKE LISTA_DE_PRIVILEGIOS ON OBJETO FROM LISTA_DE_USUARIOS;
databases
SINTAXE DO COMANDO
CREATE DATABASE NOME_BANCO;
SINTAXE DO COMANDO
DROP DATABASE NOME_BANCO;
views
SINTAXE DO COMANDO
CREATE VIEW [NOME_VIEW] AS
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA
WHERE CONDICAO;
SINTAXE DO COMANDO
CREATE OR REPLACE VIEW [NOME_VIEW] AS
SELECT NOME_COLUNA1, NOME_COLUNA2, ...
FROM NOME_DA_TABELA
WHERE CONDICAO;
SINTAXE DO COMANDO
DROP VIEW [NOME_VIEW];
Stored procedures
SINTAXE DO COMANDO
CREATE PROCEDURE NOME_PROCEDIMENTO
@NOME_PARAMETRO1 TIPO, @NOME_PARAMETRO2 TIPO, ...
AS
DECLARACOES_SQL
GO;
CHAMADA DO COMANDO
EXEC RETORNA_CIDADE_ALUNO CIDADE = “BRASÍLIA”;