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)

  1. Identificar a chave primária da tabela original.
  2. Decompor a entidade em uma ou mais entidades, movendo os atributos multivalorados para a nova entidade.
  3. 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.
  4. Estabelecer o relacionamento e a cardinalidade entre as entidades.

2ª Forma Normal (2FN)

  1. Para entidades que contenham chaves primárias concatenadas, destacar os atributos que tenham dependência parcial em relação à chave primária concatenada.
  2. Criar uma nova entidade que conterá estes atributos, e que terá como chave primária os atributos dos quais se tenha dependência parcial.
  3. Serão criadas tantas entidades quanto forem os atributos da chave primária concatenada, que gerem dependência parcial.
  4. Estabelecer o relacionamento e a cardinalidade entre as entidades.

3ª Forma Normal (3FN)

  1. 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.
  2. 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.
  3. 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)

Equação

CampoA1, CampoA2, CampoB1, CampoB2 (Equação A.CampoA1 = B.CampoA1 (A x B))

Entradas relacionadas: