Skip to content

Instantly share code, notes, and snippets.

@sergiohdljr
Last active August 29, 2023 19:57
Show Gist options
  • Save sergiohdljr/f7f268a4d7762d7587cb6400f49422c2 to your computer and use it in GitHub Desktop.
Save sergiohdljr/f7f268a4d7762d7587cb6400f49422c2 to your computer and use it in GitHub Desktop.
atividade-bd
-- CRIANDO BANCO DE DADOS
mysql> CREATE DATABASE db_senac;
mysql> USE db_senac;
-- CRIANDO TABLEAS
mysql> CREATE TABLE tbl_funcionarios (
-> Codigo INT NOT NULL AUTO_INCREMENT,
-> PrimeiroNome VARCHAR(50) NOT NULL,
-> SegundoNome VARCHAR(50),
-> UltimoNome VARCHAR(50) NOT NULL,
-> DataNasci DATE NOT NULL,
-> CPF CHAR(11) NOT NULL UNIQUE,
-> RG VARCHAR(20) NOT NULL,
-> Endereco VARCHAR(255) NOT NULL,
-> CEP CHAR(8) NOT NULL,
-> Cidade VARCHAR(100) NOT NULL,
-> Fone VARCHAR(20) NOT NULL,
-> CodigoDepartamento INT NOT NULL,
-> Funcao VARCHAR(100) NOT NULL,
-> Salario DECIMAL(10,2) NOT NULL,
-> PRIMARY KEY (Codigo),
-> INDEX idx_nome (PrimeiroNome, UltimoNome),
-> INDEX idx_departamento_funcao (CodigoDepartamento, Funcao));
--INSERINDO DADOS
mysql> INSERT INTO tbl_funcionarios (
-> PrimeiroNome, SegundoNome, UltimoNome,
-> DataNasci, CPF, RG, Endereco, CEP,
-> Cidade, Fone, CodigoDepartamento, Funcao, Salario
-> ) VALUES
-> ('Maria', 'Silva', 'Barbosa', '1980-01-01', '12345678900', '12345678900', 'Rua da Paz, 123', '12345678', 'Sao Paulo', '1199999999', 1, 'Gerente', 10000.00),
-> ('João', NULL, 'Da Silva', '1990-02-02', '98765432100', '98765432100', 'Rua da Felicidade, 456', '98765432', 'Rio de Janeiro', '2188888888', 1, 'Vendedor', 2000.00),
-> ('José', 'Carlos', 'Santos', '1985-03-03', '76543210900', '76543210900', 'Rua da Esperança, 789', '76543210', 'Belo Horizonte', '3177777777', 2, 'Analista', 3000.00),
-> ('Ana', 'Paula', 'Pereira', '1970-04-04', '65432109800', '65432109800', 'Rua da Alegria, 101', '65432109', 'Porto Alegre', '5166666666', 3, 'Programadora', 4000.00),
-> ('Pedro', 'Luiz', 'Oliveira', '1965-05-05', '54321098700', '54321098700', 'Rua da Liberdade, 202', '54321098', 'Salvador', '7155555555', 1, 'Diretor', 5000.00),
-> ('Cristina', 'Maria', 'Souza', '1950-06-06', '43210987600', '43210987600', 'Rua da Amizade, 303', '43210987', 'Recife', '8144444444', 2, 'Designer', 6000.00),
-> ('Fabiano', NULL, 'Santos', '1975-07-07', '32109876500', '32109876500', 'Rua da Justiça, 404', '32109876', 'Fortaleza', '8533333333', 3, 'Analista de Sistemas', 7000.00)
-> ('João', 'Silva', 'Santos', '1990-05-15', '12345678901', '78901234', 'Rua A, 123', '12345678', 'São Paulo', '11-987654321', 1, 'Analista', 5000.00),
-> ('Maria', 'Ferreira', 'Souza', '1985-09-10', '98765432101', '56789012', 'Av. B, 456', '54321876', 'Rio de Janeiro', '21-987654321', 2, 'Gerente', 8000.00),
-> ('Carlos', NULL, 'Rocha', '1992-02-20', '56789012301', '12345678', 'Rua C, 789', '98765432', 'Belo Horizonte', '31-987654321', 1, 'Programador', 4000.00),
-> ('Ana', 'Sousa', 'Pereira', '1988-07-01', '90876543201', '87654321', 'Av. D, 789', '87654321', 'Brasília', '61-987654321', 3, 'Analista de RH', 5500.00),
-> ('Pedro', 'Oliveira', 'Almeida', '1995-12-18', '45678901201', '23456789', 'Rua E, 1011', '76543210', 'Curitiba', '41-987654321', 2, 'Desenvolvedor', 4500.00),
-> ('Fernanda', NULL, 'Gomes', '1991-03-25', '76543210901', '34567890', 'Av. F, 1213', '65432109', 'Porto Alegre', '51-987654321', 1, 'Analista', 5200.00),
-> ('Rafael', 'Martins', 'Pereira', '1987-08-05', '23456789001', '45678901', 'Rua G, 1415', '54321234', 'Salvador', '71-987654321', 2, 'Gerente', 7500.00),
-> ('Mariana', NULL, 'Cavalcanti', '1993-01-12', '87654321001', '56789012', 'Av. H, 1617', '43210543', 'Recife', '81-987654321', 3, 'Analista de RH', 5800.00),
-> ('Paulo', 'Lima', 'Santos', '1989-06-30', '34567890101', '67890123', 'Rua I, 1819', '32109876', 'Fortaleza', '85-987654321', 2, 'Desenvolvedor', 4300.00),
-> ('Amanda', NULL, 'Rodrigues', '1994-11-08', '65432109801', '78901234', 'Av. J, 2021', '21098765', 'Manaus', '92-987654321', 1, 'Programador', 4100.00);
-- VIEWS
mysql> CREATE VIEW nome_completo_funcionarios AS
-> SELECT Codigo,CONCAT(primeiroNome,' ', COALESCE(segundoNome,''),' ',UltimoNome) AS nome_Completo
-> FROM tbl_funcionarios;
-- CONSULTAS
1 - Listar nome e sobrenome ordenado por sobrenome:
mysql> SELECT primeiroNome, segundoNome FROM tbl_funcionarios ORDER BY segundoNome;
2 - Listar todos os campos de funcionários ordenados por cidade:
mysql> SELECT * FROM tbl_funcionarios ORDER BY cidade;
3 - Liste os funcionários que têm salário superior a R$ 1.000,00 ordenados pelo nome completo:
mysql> SELECT CONCAT(PrimeiroNome,' ',COALESCE(SegundoNome,''),' ', UltimoNome) AS NomeCompleto, Salario
-> FROM tbl_funcionarios
-> WHERE Salario > 1000.00
-> ORDER BY NomeCompleto ;
4 - Liste a data de nascimento e o primeiro nome dos funcionários ordenados do mais novo para o mais velho:
mysql> SELECT PrimeiroNome, DataNasci FROM tbl_funcionarios ORDER BY (SELECT (2023 - SUBSTRING(DataNasci,1,5)));
5 - Liste os funcionários como uma lista telefônica, com enedeço e cidade:
mysql> SELECT
-> nome_completo AS Nome,
-> func.Endereco,
-> func.Cidade,
-> func.fone
-> FROM nome_completo_funcionarios
-> INNER JOIN tbl_funcionarios as func
-> ON nome_completo_funcionarios.Codigo = func.Codigo
-> ORDER BY nome_completo;
6 - Liste o nome completo de todos os funcionários que não tenham segundo nome:
mysql> SELECT
-> CONCAT(PrimeiroNome,' ',COALESCE(SegundoNome,''),' ', UltimoNome) AS NomeCompleto
-> FROM tbl_funcionarios
-> WHERE segundoNome IS NULL
-> ORDER BY NomeCompleto;
7 - Liste os nomes dos funcionários que moram em Ituiutabae que exerçam a função deTelefonista:
mysql> SELECT primeiroNome
-> FROM tbl_funcionarios
-> WHERE cidade = 'Ituiutaba' AND funcao = 'Telefonista';
8 - Liste os nomes dos funcionários que trabalham no departamento 2:
mysql> SELECT CodigoDepartamento, nome_completo_funcionarios.nome_completo
FROM tbl_funcionarios
INNER JOIN nome_completo_funcionarios
ON nome_completo_funcionarios.Codigo = tbl_funcionarios.Codigo
WHERE CodigoDepartamento = 2
ORDER BY nome_completo;
9 - Liste o nome e o código do departamento de todos os funcionários que ganham mais do queR$ 2000,00:
mysql> SELECT CodigoDepartamento,func.nome_completo
FROM tbl_funcionarios
INNER JOIN nome_completo_funcionarios AS func
ON func.Codigo = tbl_funcionarios.Codigo
WHERE Salario > 2000.00;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment