ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES
SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início dos anos 70 nos laboratórios da IBM. Devido a expansão da sua utilização a sua padronização deu-se em 1986 (ANSI) e 1987(ISO).
DML Este sub-conjunto do SQL é utilizado para: Realizar inclusões. Executar consultas nos dados armazenados. Realizar alterações nos dados. Exclusões de dados presentes em registros. Muitas vezes estes comandos são imbutidos em alguns frameworks para facilitar o desenvolvimento.
INSERT ( Inserção de dados ) Este comando é utilizado para inserção de dados na base. Ele é padrão para a maioria dos bancos de dados relacionais. INSERT INTO CARGO (codigo, nome, simb) VALUES ( 1, PROGRAMADOR, PRG )
DELETE (Deleção de dados) Este comando é utilizado para deleção de dados de uma determinada entidade da base de dados. DELETE FROM EMPREGADONOVO
UPDATE (Atualização de dados) Este comando é utilizado para atualizar dados de uma determinada entidade. UPDATE CARGO SET codigo = 20 WHERE codigo = 1
COMANDO SQL Select (Comando de consulta) SELECT <lista de atributos> FROM <lista de tabelas> [ WHERE <condição> ] [ ORDER BY <lista de atributos> ]
WHERE A cláusula WHERE é utilizada para condicionar os dados a um determinado filtro lógico. SELECT * FROM alunos WHERE nome = João
ORDER BY A cláusula ORDER BY é utilizada para ordenar os dados resultantes de uma determinada query. Essa ordenação pode ser ASC ou DESC SELECT * FROM alunos ORDER BY nome ASC
DISTINCT O comando DISTINCT retorna tuplas sem duplicatas SELECT DISTINCT * FROM alunos ORDER BY nome ASC
RENAME O comando RENAME serve para renomear atributos e tabelas. SELECT nome AS n FROM alunos ORDER BY nome ASC
NULL / NOT NULL O comando NULL ou NOT NULL verifica a existência de valores. SELECT nome FROM alunos WHERE telefone IS NOT NULL
EXPRESSÕES MATEMÁTICAS Fazer uso de operações matemáticas em consultas. Ex:. +, -, /, *. SELECT nome, idade + 5 FROM alunos WHERE telefone IS NOT NULL
JOIN / INNER JOIN Este comando faz a junção entre tabelas retornando somente as linhas que sejam comum nas 2 tabelas, ligadas pelos campos das tabelas em questão na pesquisa. SELECT * FROM alunos JOIN cursos ON alunos.curso = cursos.id
LEFT/ RIGHT OUTER JOIN Este comando faz a junção entre tabelas retornando todos os registros da tabela a esquerda pelo menos uma vez, mesmo se não houver correspondente na direita. SELECT * FROM alunos LEFT OUTER JOIN cursos ON alunos.curso = cursos.id
FUNÇÕES DE AGREGAÇÃO E AGRUPAMENTO COUNT - Número de tuplas SUM - Soma de valores MAX - Valor máximo MIN - Valor mínimo AVG - Média aritmética GROUP BY Agrupamento HAVING Condição do agrupamento
OPERAÇÕES COM STRINGS Permite a verificação do conteúdo das strings. Ex.: Maria% Qualquer string que comece com Maria Ex.: %Maria Qualquer string que possua uma substring Maria Ex.: _a% Qualquer string que possua o 2ª caracter a Select nome from empregado where nome like _a%
LIMIT Este comando é utilizado para limitar a quantidade de tuplas que retornaram de uma consulta. SELECT * FROM Aluno LIMIT 10; SELECT * FROM Aluno LIMIT 5, 10;
SUBQUERIES Uma subquery é uma query como qualquer outra, porém ela é executada dentro de uma outra query de SELECT, INSERT, UPDATE ou DELETE. A função da subquery é produzir um resultado que será utilizado pela query que a contém.
SUBQUERIES CORRELACIONADAS São subqueries que dependem da query externa. Ex:. SELECT * FROM PRODUTOS AS P WHERE P.QUANTIDADE > ( SELECT AVG(P2.quantidade) FROM PRODUTOS AS P2);
SUBQUERIES INDEPENDENTES A subquerie independente pode ser executada apenas uma vez mesmo que a query externa retorne mais de um registro. Ex:. SELECT P.NOME, (SELECT AVG(P2.VALOR) FROM PRODUTOS AS P2) AS VALOR_MEDIO FROM PRODUTOS AS P