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 a l g u n s f r a m e w o r k s p a r a f a c i l i t a r 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