LIKE
--Usado pra buscar texto com padrão (tipo: começa com, termina com, contém)
Sintaxe:
SELECT * FROM Tabela WHERE Coluna LIKE 'padrão';
EX 01:
SELECT * FROM Autor WHERE NomeAutor LIKE 'J%'; -- começa com J
EX 02:
SELECT * FROM Livro WHERE NomeLivro LIKE '%SQL'; -- termina com SQL
BACKUP E RESTAURAÇÃO
--Salva cópia do banco ou recupera quando a cagada já foi feita
Sintaxe BACKUP:
BACKUP DATABASE NomeBanco TO DISK = 'C:\Backup\[Link]';
Sintaxe RESTORE:
RESTORE DATABASE NomeBanco FROM DISK = 'C:\Backup\[Link]';
EX 01:
BACKUP DATABASE Biblioteca TO DISK = 'C:\Backup\[Link]';
EX 02:
RESTORE DATABASE Biblioteca FROM DISK = 'C:\Backup\[Link]';
INNER JOIN
--Só traz os registros que existem nas duas tabelas (casamento perfeito)
Sintaxe:
SELECT * FROM TabelaA
INNER JOIN TabelaB ON [Link] = [Link];
EX 01:
SELECT NomeLivro, NomeAutor
FROM Livro
INNER JOIN Autor ON [Link] = [Link];
EX 02:
SELECT NomeLivro, NomeEditora
FROM Livro
INNER JOIN Editora ON [Link] = [Link];
OUTER JOINS
--Traz tudo mesmo se não tiver correspondente (relacionamento forçado)
Sintaxe:
SELECT * FROM TabelaA
LEFT/RIGHT/FULL OUTER JOIN TabelaB ON [Link] = [Link];
EX 01 (LEFT):
SELECT NomeLivro, NomeEditora
FROM Livro
LEFT JOIN Editora ON [Link] = [Link];
EX 02 (FULL):
SELECT NomeLivro, NomeAutor
FROM Livro
FULL OUTER JOIN Autor ON [Link] = [Link];
CREATE VIEW
--Cria uma visão virtual (tipo um atalho de SELECT)
Sintaxe:
CREATE VIEW NomeView AS
SELECT Colunas FROM Tabela WHERE Condição;
EX 01:
CREATE VIEW ViewAutores AS
SELECT NomeAutor FROM Autor;
EX 02:
CREATE VIEW ViewLivrosBaratos AS
SELECT NomeLivro, Preco FROM Livro WHERE Preco < 50;
SUBCONSULTAS (SUBQUERIES)
--Consulta dentro de outra consulta (tipo Inception do SQL)
Sintaxe:
SELECT * FROM Tabela WHERE Coluna = (SELECT Coluna FROM OutraTabela);
EX 01:
SELECT NomeLivro FROM Livro
WHERE Preco = (SELECT MAX(Preco) FROM Livro);
EX 02:
SELECT NomeAutor FROM Autor
WHERE IdAutor IN (SELECT IdAutor FROM Livro WHERE Preco < 30);
FUNÇÕES DE DATAS E HORAS
--Trabalha com data e hora no banco
EX 01:
SELECT GETDATE() AS DataHoraAtual; -- Data e hora de agora
EX 02:
SELECT DATEPART(YEAR, DataNascimento) AS AnoNascimento FROM Hospede; -- só o ano
EXTRA:
SELECT DATEDIFF(YEAR, DataNascimento, GETDATE()) AS Idade FROM Hospede; -- calcula idade
TODOS OS TIPOS DE JOIN (pra decorar fácil)
Tipo de JOIN■O que traz?
INNER JOIN■Só os que batem nas duas tabelas
LEFT JOIN■Todos da esquerda, mesmo sem par na direita
RIGHT JOIN■Todos da direita, mesmo sem par na esquerda
FULL OUTER JOIN■Tudo de tudo, batendo ou não
EX 01:
SELECT * FROM Livro
LEFT JOIN Autor ON [Link] = [Link];
EX 02:
SELECT * FROM Livro
RIGHT JOIN Editora ON [Link] = [Link];