Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] HORA DA PRÁTICA - REALIZADO NO SSMS

USE DESAFIOS
GO

    --CREATE TABLE funcionarios_mao_na_massa_hora_da_pratica_05
    --(
    --	ID INT PRIMARY KEY,
    --	Nome VARCHAR(100),
    --	Departamento VARCHAR(100),
    --	Salario FLOAT
    --);

    --INSERT INTO funcionarios_mao_na_massa_hora_da_pratica_05
    --(
    --	ID,
    --	Nome,
    --	Departamento,
    --	Salario
    --) VALUES
    --('1','Heitor Vieira','Financeiro','4959.22'),
    --('2','Daniel Campos','Vendas','3884.44'),
    --('3','Luiza Dias','TI','8205.78'),
    --('4','Davi Lucas Moraes','Financeiro','8437.02'),
    --('5','Pietro Cavalcanti','TI','4946.88'),
    --('6','Evelyn da Mata','Vendas','5278.88'),
    --('7','Isabella Rocha','Marketing','4006.03'),
    --('8','Sra. Manuela Azevedo','Vendas','6101.88'),
    --('9','Brenda Cardoso','TI','8853.34'),
    --('10','Danilo Souza','TI','8242.14');

    SELECT * FROM funcionarios_mao_na_massa_hora_da_pratica_05;
        --ID	Nome					Departamento	Salario
        --1		Heitor Vieira			Financeiro		4959,22
        --2		Daniel Campos			Vendas			3884,44
        --3		Luiza Dias				TI				8205,78
        --4		Davi Lucas Moraes		Financeiro		8437,02
        --5		Pietro Cavalcanti		TI				4946,88
        --6		Evelyn da Mata			Vendas			5278,88
        --7		Isabella Rocha			Marketing		4006,03
        --8		Sra. Manuela Azevedo	Vendas			6101,88
        --9		Brenda Cardoso			TI				8853,34
        --10	Danilo Souza			TI				8242,14

    SELECT Nome AS 'Vendedores'
    From funcionarios_mao_na_massa_hora_da_pratica_05
    Where Departamento = 'Vendas';

        --Vendedores
        --Daniel Campos
        --Evelyn da Mata
        --Sra. Manuela Azevedo

    SELECT Nome AS 'Pagam IR'
    From funcionarios_mao_na_massa_hora_da_pratica_05
    Where Salario > 5000;

        --Pagam IR
        --Luiza Dias
        --Davi Lucas Moraes
        --Evelyn da Mata
        --Sra. Manuela Azevedo
        --Brenda Cardoso
        --Danilo Souza

    SELECT DISTINCT Departamento As 'Lista de Departamentos'
    From funcionarios_mao_na_massa_hora_da_pratica_05;

        --Lista de Departamentos
        --Financeiro
        --Marketing
        --TI
        --Vendas

    --SELECT NOME AS 'Funcionarios de TI',
    --	   Salario AS 'Salário Antigo'
    --from funcionarios_mao_na_massa_hora_da_pratica_05
    --where Departamento = 'TI';

        --Funcionarios de TI	Salário Antigo
        --Luiza Dias			8205,78
        --Pietro Cavalcanti		4946,88
        --Brenda Cardoso		8853,34
        --Danilo Souza			8242,14

    --UPDATE funcionarios_mao_na_massa_hora_da_pratica_05
    --SET Salario = '7500'
    --WHERE Departamento = 'TI';

    --SELECT NOME AS 'Funcionarios de TI',
    --	   Salario AS 'Salário Novo'
    --from funcionarios_mao_na_massa_hora_da_pratica_05
    --where Departamento = 'TI';

        --Funcionarios de TI	Salário Novo
        --Luiza Dias			7500
        --Pietro Cavalcanti		7500
        --Brenda Cardoso		7500
        --Danilo Souza			7500

    SELECT * FROM funcionarios_mao_na_massa_hora_da_pratica_05
    WHERE Salario < 4000;
        --ID	Nome			Departamento	Salario
        --2		Daniel Campos	Vendas			3884,44

    DELETE FROM funcionarios_mao_na_massa_hora_da_pratica_05
    WHERE Salario < 4000;

    SELECT * FROM funcionarios_mao_na_massa_hora_da_pratica_05
    ORDER BY Salario;
        --ID	Nome					Departamento	Salario
        --1		Heitor Vieira			Financeiro		4959,22
        --6		Evelyn da Mata			Vendas			5278,88
        --8		Sra. Manuela Azevedo	Vendas			6101,88
        --9		Brenda Cardoso			TI				7500
        --10	Danilo Souza			TI				7500
        --5		Pietro Cavalcanti		TI				7500
        --3		Luiza Dias				TI				7500
        --4		Davi Lucas Moraes		Financeiro		8437,02


    SELECT Nome, Salario
    From funcionarios_mao_na_massa_hora_da_pratica_05
    WHERE Departamento = 'Vendas' AND Salario >= '6000';
        --Nome					Salario
        --Sra. Manuela Azevedo	6101,88
    
2 respostas
USE DESAFIOS
    GO

    CREATE TABLE projetos_mao_na_massa_hora_da_pratica_05
    (
        ID_Projeto INT PRIMARY KEY,
        Nome_Projeto VARCHAR(100),
        ID_Gerente INT,
        FOREIGN KEY (ID_Gerente) REFERENCES funcionarios_mao_na_massa_hora_da_pratica_05(ID)
    );

    INSERT INTO projetos_mao_na_massa_hora_da_pratica_05
    (ID_Projeto, Nome_Projeto, ID_Gerente)
    VALUES
    ('1', 'Sistema de Vendas Online', '3'),
    ('2', 'Aplicativo de Suporte Interno', '5'),
    ('3', 'Portal do Colaborador', '1'),
    ('4', 'Dashboard Financeiro', '8'),
    ('5', 'Automação de Estoque', '4'),
    ('6', 'Integração com ERP', '9'),
    ('7', 'Sistema de Atendimento', '10'),
    ('8', 'Migracao de Servidor', '6'),
    ('9', 'Relatórios de RH', '3'),
    ('10', 'Plataforma de Treinamento', '5');
    

    SELECT Nome_Projeto
    From projetos_mao_na_massa_hora_da_pratica_05
    WHERE ID_Gerente = 3 --= 2; Nenhum
        --Nome_Projeto
        --Sistema de Vendas Online
        --Relatórios de RH

    --** CHATGPT. DESCOBRIR NOME REAL DA FK PARA PODER EXCLUIR A TABELA FUNCIONARIOS ** --
    SELECT 
    f.name AS Nome_FK,
    OBJECT_NAME(f.parent_object_id) AS Tabela_Filha,
    COL_NAME(fc.parent_object_id, fc.parent_column_id) AS Coluna_Filha
    FROM sys.foreign_keys f
    INNER JOIN sys.foreign_key_columns fc 
    ON f.object_id = fc.constraint_object_id
    WHERE f.referenced_object_id = OBJECT_ID('funcionarios_mao_na_massa_hora_da_pratica_05');

        --Nome_FK							Tabela_Filha								Coluna_Filha
        --FK__projetos___ID_Ge__6383C8BA	projetos_mao_na_massa_hora_da_pratica_05	ID_Gerente

    ALTER TABLE projetos_mao_na_massa_hora_da_pratica_05
    DROP CONSTRAINT FK__projetos___ID_Ge__6383C8BA;

    DROP TABLE funcionarios_mao_na_massa_hora_da_pratica_05;
        --Comandos concluídos com êxito.
solução!

Oi, Robson! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

O conjunto de consultas SQL ficou bem organizado, incluindo seleções, filtros, atualizações e exclusões. Sua prática demonstra que você compreendeu como manipular dados no banco e analisar resultados passo a passo.

Uma dica interessante para o futuro e usar COUNT(*) quando quiser verificar quantos registros atendem a uma condição. Veja este exemplo:


SELECT COUNT(*) AS total_vendas
FROM funcionarios_mao_na_massa_hora_da_pratica_05
WHERE Departamento = 'Vendas';

Esse comando retorna apenas a quantidade de funcionários do setor solicitado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!