Skip to main content dev:Coelho

Banco De Dados - Aula 05-09

Especialização

Resultado da separação de um ou mais subconjunto de entidades a partir de um nível superior. Pense em uma entidade Funcionários, que possui os campos padrões de funcionário, como ==código, nome, endereço, telefones, …==

No entanto, tratando-se de uma grande empresa, conjecturemos o seguinte: Dentre os funcionários, existem os funcionários que possuem CRM (Médicos), CREA (Arquitetos e Engenheiros), ou quaisquer outras particularidades à “classe trabalhadora” deste funcionário.

Assim surge a necessidade de uma Especialização.

Agregação

É uma abstração dos dados onde um relacionamento é tratado como um conjunto de entidade de um nível superior. Normalmente acontecem quando tentamos ligar um relacionamento em outro.

Pense no seguinte exemplo:

Funcionários de uma empresa trabalham em vários Projetos. Durante este trabalho, e somente durante o trabalho, pode haver a necessidade de reservar equipamentos da empresa. Nós não podemos ligar um relacionamento ==Reservar== com o relacionamento do ==Trabalham==. Então, para contornar, nós utilizamos a Agregação.

SQL

Formas normais. Exercícios

[!info] Sobre o ; Estou utilizando o MariaDB para a execução dos códigos. Nele, há a necessidade de terminar os códigos utilizando o ; ou \g. Assim, o server me permite quebrar a linha para deixar o código mais fácil de ser lido.

Criando um banco de dados

sql code snippet start

CREATE DATABASE nome_do_banco;

sql code snippet end

Tendo criado o banco de dados, você precisará iniciar o seu uso:

sql code snippet start

USE nome_do_banco;

sql code snippet end

Criação de Tabelas

sql code snippet start

CREATE TABLE nome_da_tabela
(nome_do_campo TIPO PARAMETROS, 
 nome_do_outro_campo TIPO PARAMETROS, ...)
 ;

sql code snippet end

  • TIPOS de campos
    • INT / INTEGER - valores inteiros;
    • VARCHAR(XXX) - valores em texto onde XXX é o número de caracteres possíveis;
    • FLOAT - valores flutuantes (quebrados).
  • PARÂMETROS
    • NOT NULL - não aceita inserções nulas
    • IDENTITY(X,Y) / AUTO_INCREMENT - Adiciona valores automaticamente, onde X = início da contagem e Y o tanto que será incrementado.
Exemplo

sql code snippet start

CREATE TABLE departamento
(
 codigodepto INT NOT NULL, 
 nome VARCHAR(30)
)
;

sql code snippet end

Alterações de tabela para adição de novos itens

sql code snippet start

ALTER TABLE nome_da_tabela ADD PARAMETROS_DA_ADIÇÃO;

sql code snippet end

No exemplo acima, não adicionamos uma chave primária. Faremos isso no exemplo abaixo e explicarei os constraints ligados à esta criação

sql code snippet start

ALTER TABLE departamento
ADD CONSTRAINT pk_depto 
PRIMARY KEY (codigodepto)
;

sql code snippet end

Onde:

  • Estamos alterando uma tabela chamada departamento;
  • Adicionando um novo constraint (um delimitador, uma referência) e dando um nome à ele, marcando-o com a chave primária linkando ao campo codigodepto.

Inserção na tabela

Para inserir na tabela devemos utilizar a seguinte sintaxe:

sql code snippet start

INSERT INTO nome_tabela VALUES
(campo1, campo2, campo3, ..., campoN),
(campo1, campo2, campo3, ..., campoN),
(campo1, campo2, campo3, ..., campoN),
(campo1, campo2, campo3, ..., campoN)
;

sql code snippet end

Exemplo

sql code snippet start

INSERT INTO departamento VALUES
(1, 'TI'),
(2, 'ENGENHARIA'), 
(3, 'ADM'),
(4, 'FROTA'),
(5, 'GESTAO')
;

sql code snippet end

Atualizando um valor

sql code snippet start

UPDATE nome_tabela 
SET campo = ALTERAÇÃO
WHERE campo = VERIFICAÇÃO
;

sql code snippet end

Exemplo

sql code snippet start

UPDATE departamento
SET nome = 'ADMINISTRAÇÃO'
WHERE codigodepto = 3
;

sql code snippet end

Deletando um valor da tabela

sql code snippet start

DELETE FROM nome_tabela WHERE campo = VERIFICAÇÃO

sql code snippet end

Exemplo

sql code snippet start

DELETE FROM departamento
WHERE codigodepto = 4;

sql code snippet end

Criando a relação (Foreign Key)

sql code snippet start

CONSTRAINT fk_exemplo FOREIGN KEY (campo_nesta_tabela) REFERENCES outra_tabela (campo_outra_tabela);

sql code snippet end

Exemplo

sql code snippet start

CREATE TABLE funcionario
(
codigo_func INT NOT NULL, 
CONSTRAINT pk_func PRIMARY KEY (codigo_func),
nome VARCHAR(30),
salario FLOAT,
codigo_dep INT, 

CONSTRAINT fk_dept_func FOREIGN KEY (codigo_dep) REFERENCES departamento (codigodepto)

)
;

sql code snippet end

Deletando uma tabela inteira

Em caso de erros ou necessidade

sql code snippet start

DROP TABLE nome_tabela; 

sql code snippet end

Realizando pesquisas básicas

sql code snippet start

SELECT * FROM nome_tabela;

sql code snippet end

Banco de Dados - Exercícios SQL