SQL Essencial: Comandos, Normalização e DDL/DML
Enviado por Elvis Venancio e classificado em Computação
Escrito em em português com um tamanho de 11,67 KB
Comandos SQL Essenciais
Manipulação de Dados e Strings
Exemplos de manipulação de dados e strings em SQL:
SELECT 'R$ ' + CONVERT(VARCHAR(20),ValorUnit) FROM Midias
SELECT REPLICATE('0', 6 - LEN(CodGenero)) + CAST(CodGenero AS VARCHAR) FROM Genero
SELECT TOP 2 LEFT(Descricao, 4) FROM Genero
SELECT SUBSTRING(Descricao, 1, 3) AS Texto FROM Genero
Consultas com JOINs
Exemplos de consultas utilizando JOINs para combinar dados de múltiplas tabelas:
SELECT i.CodLocacao, c.Cliente, m.DescMidia FROM ItensLocacao i
JOIN Midias m ON (i.CodMidia = m.CodMidia)
JOIN Locacao l ON (i.CodLocacao = l.CodLocacao)
JOIN Cliente c ON (l.CodCli = c.CodCli)SELECT COUNT(*) AS Qtd , g.Descricao FROM Midias m JOIN Genero g ON (g.CodGenero = m.CodGenero) GROUP BY g.Descricao
SELECT g.Descricao FROM Genero g LEFT JOIN Midias m ON (m.CodGenero = g.CodGenero) WHERE m.CodMidia IS NULL
Subconsultas e Funções de Agregação
Exemplos de subconsultas e uso de funções de agregação com GROUP BY
e HAVING
:
SELECT g.*, (SELECT COUNT(*) FROM Midias m WHERE m.CodGenero = g.CodGenero) AS "Qtde" FROM Genero g WHERE (SELECT COUNT(*) FROM Midias m WHERE m.CodGenero = g.CodGenero) > 0
SELECT COUNT(*) AS Qtd, CodGenero FROM Midias GROUP BY CodGenero HAVING COUNT(*) > 3
Funções de Agregação Comuns
As funções de agregação são usadas para realizar cálculos em um conjunto de linhas e retornar um único valor resumido.
- COUNT (CONTAR): Conta o número de linhas.
- SUM (SOMAR): Calcula a soma dos valores.
- AVG (MÉDIA): Calcula a média dos valores.
- MAX (MÁXIMO): Retorna o valor máximo.
- MIN (MÍNIMO): Retorna o valor mínimo.
Normalização de Banco de Dados
A normalização é um processo de organização de dados em um banco de dados para reduzir a redundância e melhorar a integridade dos dados.
1ª Forma Normal (1FN)
- Identificar a chave primária da tabela original.
- Decompor a entidade em uma ou mais entidades, movendo os atributos multivalorados para a nova entidade.
- Escolher um novo atributo na nova entidade para ser a chave primária; se não for possível, crie um novo campo. Este será concatenado com a chave primária da tabela original.
- Estabelecer o relacionamento e a cardinalidade entre as entidades.
2ª Forma Normal (2FN)
- Para entidades que contenham chaves primárias concatenadas, destacar os atributos que tenham dependência parcial em relação à chave primária concatenada.
- Criar uma nova entidade que conterá estes atributos, e que terá como chave primária os atributos dos quais se tenha dependência parcial.
- Serão criadas tantas entidades quanto forem os atributos da chave primária concatenada, que gerem dependência parcial.
- Estabelecer o relacionamento e a cardinalidade entre as entidades.
3ª Forma Normal (3FN)
- Verificar se existem atributos que sejam dependentes transitivos de outros que não pertencem à chave primária, sendo ela concatenada ou não, bem como atributos que sejam dependentes de cálculo realizado através de outros atributos.
- Destacar os atributos com dependência transitiva, gerando uma nova entidade com este atributo e cuja chave primária é o atributo que originou a dependência. Manter na tabela original apenas o atributo chave da nova tabela gerada.
- Eliminar os atributos obtidos através de cálculos realizados a partir de outros atributos.
Além disso:
- Destacar os atributos que não tenham dependência funcional da chave primária, gerando uma nova entidade. Manter na tabela original apenas o atributo chave da nova tabela gerada.
Linguagens de Banco de Dados
As linguagens de banco de dados são classificadas em DDL e DML.
- DDL (Data Definition Language): Comandos para definir ou modificar a composição das tabelas, apagar tabelas, criar índices, definir views, especificar direitos de acesso a tabelas e views.
- DML (Data Manipulation Language): Inclui uma linguagem de consulta baseada em álgebra relacional e em cálculo relacional sobre registros; inclui também comandos para inserir, apagar e modificar registros na base de dados.
Exemplos de DDL: Criação e Alteração de Tabelas
Criação de Tabela (CREATE TABLE)
CREATE TABLE Iten (
ItenId INT PRIMARY KEY IDENTITY(1,1),
VendaId INT NULL,
ProdutoId INT NULL,
Quantidade INT
)
Alteração de Tabela (ALTER TABLE)
ALTER TABLE Iten ADD CONSTRAINT FK_ProdutoId FOREIGN KEY(ProdutoId)
REFERENCES Produto(ProdutoId)
CampoA1, CampoA2, CampoB1, CampoB2 (
A.CampoA1 = B.CampoA1 (A x B))