Last active
August 29, 2023 19:57
-
-
Save sergiohdljr/f7f268a4d7762d7587cb6400f49422c2 to your computer and use it in GitHub Desktop.
atividade-bd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 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