Você está na página 1de 1

FÓRUM – CRIAÇÃO DE BANCO DE DADOS

Objetivo: Meu projeto possui as tabelas funcionários e pontos, usado para registrar o ponto dos funcionários
de uma concessionária.

1. CRIAÇÃO DO BANCO DE DADOS


CREATE DATABASE IF NOT EXISTS ponto_funcionarios
DEFAULT CHARSET = utf8
DEFAULT COLLATE = utf8_general_ci;
USE ponto_funcionarios ;

2. CRIAÇÃO DAS TABELAS


CREATE TABLE IF NOT EXISTS funcionarios (
matricula INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome VARCHAR(50) NOT NULL,
sobrenome VARCHAR(50) NOT NULL,
setor ENUM('Administrativo', 'Vendas', 'Oficina') NOT NULL DEFAULT 'Administrativo'
);

CREATE TABLE IF NOT EXISTS pontos (


idpontos INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
data DATE() NOT NULL,
hora TIME() NOT NULL,
funcionarios_matricula INT() NOT NULL
);
ALTER TABLE pontos ADD CONSTRAINT fk_funcionarios_matri FOREIGN KEY (funcionarios_matricula)
REFERENCES funcionarios (matricula);

3. INSERÇÃO DE DADOS
INSERT INTO funcionarios (nome, sobrenome, setor) VALUES ('Carlos', 'Ferreira', 'Administrativo');
INSERT INTO funcionarios (nome, sobrenome, setor) VALUES ('Cristina', 'Luder', 'Vendas');
INSERT INTO funcionarios (nome, sobrenome, setor) VALUES ('Rafael', 'Freitas Camargo', 'Oficina');

INSERT INTO pontos (data, hora, funcionarios_matricula) VALUES ('2020-08-19', '07:50:56', '1');
INSERT INTO pontos (data, hora, funcionarios_matricula) VALUES ('2020-08-19', '07:52:18', '2');
INSERT INTO pontos (data, hora, funcionarios_matricula) VALUES ('2020-08-19', '08:01:37', '3');
INSERT INTO pontos (data, hora, funcionarios_matricula) VALUES ('2020-08-19', '12:03:41', '1');
INSERT INTO pontos (data, hora, funcionarios_matricula) VALUES ('2020-08-19', '12:05:01', '2');
INSERT INTO pontos (data, hora, funcionarios_matricula) VALUES ('2020-08-19', '12:02:22', '3');

4. CONSULTA
Função de agregação: Finalidade: exibir a quantidade total de funcionários cadastrados.
SELECT COUNT(*) FROM funcionários;

Junção interna: Finalidade: exibir todos os registros do ponto da funcionária Cristina do mês de
agosto.
SELECT f.nome, p.data, p.hora FROM funcionarios AS f INNER JOIN pontos AS p ON (f.matricula =
p.funcionarios_matricula AND f.nome = 'Cristina') WHERE p.data BETWEEN '2020-08-01' AND '2020-
08-31';

Você também pode gostar