Skip to content

Instantly share code, notes, and snippets.

@ivanantunes
Last active March 3, 2020 22:30
Show Gist options
  • Select an option

  • Save ivanantunes/c0c0eec4aa1ff85fbd99a0574b708f4f to your computer and use it in GitHub Desktop.

Select an option

Save ivanantunes/c0c0eec4aa1ff85fbd99a0574b708f4f to your computer and use it in GitHub Desktop.

Revisions

  1. ivanantunes revised this gist Mar 3, 2020. 1 changed file with 32 additions and 29 deletions.
    61 changes: 32 additions & 29 deletions funcionarios.sql
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,12 @@
    CREATE TABLE cargo (
    CAR_ID int not null,
    CAR_NOME varchar(100),
    CAR_SALARIO_MAX decimal(12,2),
    CAR_SALARIO_MAX number,
    CAR_DATA_INICIO DATE,
    CAR_CARGO_SUPERIOR int,
    PRIMARY KEY(CAR_ID),
    CONSTRAINT FK_CAR_SUPERIOR FOREIGN KEY(CAR_CARGO_SUPERIOR) REFERENCES cargo(CAR_ID)
    ) ENGINE = INNODB;
    );

    CREATE TABLE funcionarios (
    FUN_ID int not null,
    @@ -16,11 +16,11 @@ CREATE TABLE funcionarios (
    FUN_DTNASCTO DATE,
    FUN_DTContrato DATE,
    FUN_ESTADO_CIVIL varchar(10),
    FUN_POSSUI_DEPEND bit(1),
    FUN_SALARIO decimal(10,2),
    FUN_POSSUI_DEPEND number,
    FUN_SALARIO number,
    PRIMARY KEY(FUN_ID),
    CONSTRAINT FK_FUN_CAR_ID FOREIGN KEY(FUN_CAR_ID) REFERENCES cargo(CAR_ID)
    ) ENGINE = INNODB;
    );

    CREATE TABLE dependentes (
    DEP_ID int not null,
    @@ -30,50 +30,51 @@ CREATE TABLE dependentes (
    DEP_RELACAO int,
    PRIMARY KEY(DEP_ID),
    CONSTRAINT FK_DEP_FUN_ID FOREIGN KEY(DEP_FUN_ID) REFERENCES funcionarios(FUN_ID)
    ) ENGINE = INNODB;
    );


    -- Cargo

    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('1', 'DESENVOLVEDOR', '50000', '2020-02-27', NULL);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('2', 'SUPORTE', '10000', '2020-02-26', '1');
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('3', 'RH', '7000', '2020-02-13', NULL);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('4', 'FINANCAS', '15000', '2020-02-11', '3');
    INSERT INTO CARGO (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES (1, 'DESENVOLVEDOR', 50000, '27/03/2020', NULL);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES (2, 'SUPORTE', 10000, '26/02/2020', 1);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES (3, 'RH', 7000, '13/02/2020', NULL);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES (4, 'FINANCAS', 15000, '11/02/2020',3);

    -- Funcionarios

    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('1', '1', 'IVAN', 'Analista de Sistemas', '2001-02-12', '2020-02-01', 'SOLTEIRO', '1', '15000');
    VALUES ('1', '1', 'IVAN', 'Analista de Sistemas', '12/02/2001', '01/02/2020', 'SOLTEIRO', '1', '15000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('2', '2', 'GABRIEL', 'SUPORTE EXTERNO', '2001-02-13', '2020-02-02', 'SOLTEIRO', '1', '5000');
    VALUES ('2', '2', 'GABRIEL', 'SUPORTE EXTERNO', '13/02/2001', '02/02/2020', 'SOLTEIRO', '1', '5000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('3', '2', 'ARTHUR', 'SUPORTE EXTERNO', '2001-02-14', '2020-02-03', 'SOLTEIRO', '1', '4000');
    VALUES ('3', '2', 'ARTHUR', 'SUPORTE EXTERNO', '14/02/2001', '03/02/2020', 'SOLTEIRO', '1', '4000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('4', '3', 'DOUGLAS', 'GERENTE', '2001-02-15', '2020-02-04', 'SOLTEIRO', '1', '7000');
    VALUES ('4', '3', 'DOUGLAS', 'GERENTE', '15/02/2001', '04/02/2020', 'SOLTEIRO', '1', '7000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('5', '4', 'KENIA', 'CONTABILIDADe', '2001-02-15', '2020-02-04', 'SOLTEIRO','1', '10000');
    VALUES ('5', '4', 'KENIA', 'CONTABILIDADe', '16/02/2001', '05/02/2020', 'SOLTEIRO','1', '10000');


    -- Dependentes

    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('1', '1', 'Maria', '2019-12-31', '1');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('2', '2', 'Julia', '2019-12-31', '0');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('3', '3', 'Ana', '2019-12-24', '2');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('4', '4', 'Gabriel', '2019-12-25', '0');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('5', '5', 'Lucia', '2019-12-26', '1');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('1', '1', 'Maria', '31/12/2019', '1');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('2', '2', 'Julia', '31/12/2019', '0');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('3', '3', 'Ana', '24/12/2019', '2');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('4', '4', 'Gabriel', '25/12/2019', '0');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('5', '5', 'Lucia', '26/12/2019', '1');


    -- Questao 4

    SELECT * FROM (SELECT fun.FUN_ID, fun.FUN_NOME, dep.DEP_NOME, car.CAR_ID from funcionarios fun
    INNER join dependentes dep on fun.FUN_ID = dep.DEP_FUN_ID
    INNER JOIN cargo car on car.CAR_ID = fun.FUN_CAR_ID) as d WHERE d.CAR_ID = 2;
    INNER JOIN cargo car on car.CAR_ID = fun.FUN_CAR_ID) WHERE CAR_ID = 2;


    -- Questao 5

    SELECT fun.FUN_NOME AS 'NOME - DEP' from funcionarios fun
    SELECT fun.FUN_NOME AS "NOME - DEP" from funcionarios fun
    UNION
    SELECT dep.DEP_NOME AS 'NOME - DEP' from dependentes dep inner join funcionarios fun on
    SELECT dep.DEP_NOME AS "NOME - DEP" from dependentes dep inner join funcionarios fun on
    fun.FUN_ID = dep.DEP_FUN_ID;

    -- Questao 6
    @@ -84,27 +85,29 @@ SELECT dep.DEP_NOME AS NOME FROM dependentes dep WHERE dep.DEP_NOME LIKE 'Ju%';

    -- Questao 7

    SELECT * FROM dependentes dep WHERE DEP.DEP_DTNascto = sysdate;
    SELECT * FROM dependentes dep WHERE (extract(day from dep.dep_dtnascto) = extract(day from sysdate))
    and
    (extract(month from dep.dep_dtnascto) = extract(month from sysdate));

    -- Questao 8

    SELECT * FROM funcionarios fun WHERE FUN.FUN_ID in (SELECT dep.DEP_FUN_ID FROM dependentes dep WHERE dep.DEP_NOME LIKE 'Maria%');

    -- Questao 9

    SELECT FUN.FUN_CAR_ID AS 'CARGO ID', car.CAR_NOME AS 'NOME DO CARGO', count(*) as "Numero de Funcionarios" FROM funcionarios fun
    INNER JOIN cargo car ON car.CAR_ID = fun.FUN_CAR_ID GROUP BY fun.FUN_CAR_ID order by 2 desc;
    SELECT FUN.FUN_CAR_ID AS "CARGO ID", car.CAR_NOME AS "NOME DO CARGO", count(*) as "Numero de Funcionarios" FROM funcionarios fun
    INNER JOIN cargo car ON car.CAR_ID = fun.FUN_CAR_ID GROUP BY fun.FUN_CAR_ID, car.CAR_NOME order by 2 desc;

    -- Questao 10

    SELECT * FROM funcionarios fun ORDER BY fun.FUN_SALARIO desc;

    -- Questao 11

    SELECT fun.FUN_NOME FROM funcionarios fun WHERE fun.FUN_DTNASCTO LIKE '%-02-%'
    SELECT fun.FUN_NOME FROM funcionarios fun WHERE fun.FUN_DTNASCTO LIKE '%/02/%'
    UNION ALL
    SELECT dep.DEP_NOME FROM dependentes dep WHERE dep.DEP_DTNascto LIKE '%-02-%';
    SELECT dep.DEP_NOME FROM dependentes dep WHERE dep.DEP_DTNascto LIKE '%/02/%';

    -- Questao 12

    SELECT fun.FUN_NOME AS 'NOME' FROM funcionarios fun WHERE fun.FUN_SALARIO in (SELECT min(fun.FUN_SALARIO) FROM funcionarios fun);
    SELECT fun.FUN_NOME AS "NOME" FROM funcionarios fun WHERE fun.FUN_SALARIO in (SELECT min(fun.FUN_SALARIO) FROM funcionarios fun);
  2. ivanantunes revised this gist Mar 2, 2020. 1 changed file with 14 additions and 11 deletions.
    25 changes: 14 additions & 11 deletions funcionarios.sql
    Original file line number Diff line number Diff line change
    @@ -32,6 +32,7 @@ CREATE TABLE dependentes (
    CONSTRAINT FK_DEP_FUN_ID FOREIGN KEY(DEP_FUN_ID) REFERENCES funcionarios(FUN_ID)
    ) ENGINE = INNODB;


    -- Cargo

    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('1', 'DESENVOLVEDOR', '50000', '2020-02-27', NULL);
    @@ -42,23 +43,25 @@ INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUP
    -- Funcionarios

    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('1', '1', 'IVAN', 'Analista de Sistemas', '2001-02-12', '2020-02-01', 'SOLTEIRO', b'0', '15000');
    VALUES ('1', '1', 'IVAN', 'Analista de Sistemas', '2001-02-12', '2020-02-01', 'SOLTEIRO', '1', '15000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('2', '2', 'GABRIEL', 'SUPORTE EXTERNO', '2001-02-13', '2020-02-02', 'SOLTEIRO', b'0', '5000');
    VALUES ('2', '2', 'GABRIEL', 'SUPORTE EXTERNO', '2001-02-13', '2020-02-02', 'SOLTEIRO', '1', '5000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('3', '2', 'ARTHUR', 'SUPORTE EXTERNO', '2001-02-14', '2020-02-03', 'SOLTEIRO', b'0', '4000');
    VALUES ('3', '2', 'ARTHUR', 'SUPORTE EXTERNO', '2001-02-14', '2020-02-03', 'SOLTEIRO', '1', '4000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('4', '3', 'DOUGLAS', 'GERENTE', '2001-02-15', '2020-02-04', 'SOLTEIRO', b'0', '7000');
    VALUES ('4', '3', 'DOUGLAS', 'GERENTE', '2001-02-15', '2020-02-04', 'SOLTEIRO', '1', '7000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('5', '4', 'KENIA', 'CONTABILIDADe', '2001-02-15', '2020-02-04', 'SOLTEIRO', b'0', '10000');
    VALUES ('5', '4', 'KENIA', 'CONTABILIDADe', '2001-02-15', '2020-02-04', 'SOLTEIRO','1', '10000');


    -- Dependentes

    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('1', '1', 'DESENVOLVIMENTO - 1', '2019-12-31', '1');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('2', '2', 'SUPORTE - 1', '2019-12-31', '2');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('3', '3', 'SUPORTE - 2', '2019-12-24', '3');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('4', '4', 'RH - 1', '2019-12-25', '4');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('5', '5', 'FATURAMENTO - 1', '2019-12-26', '5');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('1', '1', 'Maria', '2019-12-31', '1');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('2', '2', 'Julia', '2019-12-31', '0');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('3', '3', 'Ana', '2019-12-24', '2');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('4', '4', 'Gabriel', '2019-12-25', '0');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('5', '5', 'Lucia', '2019-12-26', '1');


    -- Questao 4

    @@ -104,4 +107,4 @@ SELECT dep.DEP_NOME FROM dependentes dep WHERE dep.DEP_DTNascto LIKE '%-02-%';

    -- Questao 12

    SELECT fun.FUN_NOME AS 'NOME' FROM funcionarios fun WHERE fun.FUN_SALARIO in (SELECT min(fun.FUN_SALARIO) FROM funcionarios fun);
    SELECT fun.FUN_NOME AS 'NOME' FROM funcionarios fun WHERE fun.FUN_SALARIO in (SELECT min(fun.FUN_SALARIO) FROM funcionarios fun);
  3. ivanantunes revised this gist Mar 2, 2020. 1 changed file with 31 additions and 0 deletions.
    31 changes: 31 additions & 0 deletions funcionarios.sql
    Original file line number Diff line number Diff line change
    @@ -73,4 +73,35 @@ UNION
    SELECT dep.DEP_NOME AS 'NOME - DEP' from dependentes dep inner join funcionarios fun on
    fun.FUN_ID = dep.DEP_FUN_ID;

    -- Questao 6

    SELECT fun.FUN_NOME AS NOME FROM funcionarios fun WHERE fun.FUN_NOME LIKE 'Ju%'
    UNION ALL
    SELECT dep.DEP_NOME AS NOME FROM dependentes dep WHERE dep.DEP_NOME LIKE 'Ju%';

    -- Questao 7

    SELECT * FROM dependentes dep WHERE DEP.DEP_DTNascto = sysdate;

    -- Questao 8

    SELECT * FROM funcionarios fun WHERE FUN.FUN_ID in (SELECT dep.DEP_FUN_ID FROM dependentes dep WHERE dep.DEP_NOME LIKE 'Maria%');

    -- Questao 9

    SELECT FUN.FUN_CAR_ID AS 'CARGO ID', car.CAR_NOME AS 'NOME DO CARGO', count(*) as "Numero de Funcionarios" FROM funcionarios fun
    INNER JOIN cargo car ON car.CAR_ID = fun.FUN_CAR_ID GROUP BY fun.FUN_CAR_ID order by 2 desc;

    -- Questao 10

    SELECT * FROM funcionarios fun ORDER BY fun.FUN_SALARIO desc;

    -- Questao 11

    SELECT fun.FUN_NOME FROM funcionarios fun WHERE fun.FUN_DTNASCTO LIKE '%-02-%'
    UNION ALL
    SELECT dep.DEP_NOME FROM dependentes dep WHERE dep.DEP_DTNascto LIKE '%-02-%';

    -- Questao 12

    SELECT fun.FUN_NOME AS 'NOME' FROM funcionarios fun WHERE fun.FUN_SALARIO in (SELECT min(fun.FUN_SALARIO) FROM funcionarios fun);
  4. ivanantunes revised this gist Feb 28, 2020. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions funcionarios.sql
    Original file line number Diff line number Diff line change
    @@ -66,3 +66,11 @@ SELECT * FROM (SELECT fun.FUN_ID, fun.FUN_NOME, dep.DEP_NOME, car.CAR_ID from fu
    INNER join dependentes dep on fun.FUN_ID = dep.DEP_FUN_ID
    INNER JOIN cargo car on car.CAR_ID = fun.FUN_CAR_ID) as d WHERE d.CAR_ID = 2;

    -- Questao 5

    SELECT fun.FUN_NOME AS 'NOME - DEP' from funcionarios fun
    UNION
    SELECT dep.DEP_NOME AS 'NOME - DEP' from dependentes dep inner join funcionarios fun on
    fun.FUN_ID = dep.DEP_FUN_ID;


  5. ivanantunes created this gist Feb 28, 2020.
    68 changes: 68 additions & 0 deletions funcionarios.sql
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,68 @@
    CREATE TABLE cargo (
    CAR_ID int not null,
    CAR_NOME varchar(100),
    CAR_SALARIO_MAX decimal(12,2),
    CAR_DATA_INICIO DATE,
    CAR_CARGO_SUPERIOR int,
    PRIMARY KEY(CAR_ID),
    CONSTRAINT FK_CAR_SUPERIOR FOREIGN KEY(CAR_CARGO_SUPERIOR) REFERENCES cargo(CAR_ID)
    ) ENGINE = INNODB;

    CREATE TABLE funcionarios (
    FUN_ID int not null,
    FUN_CAR_ID int not null,
    FUN_NOME varchar(100),
    FUN_PROFISSAO varchar(30),
    FUN_DTNASCTO DATE,
    FUN_DTContrato DATE,
    FUN_ESTADO_CIVIL varchar(10),
    FUN_POSSUI_DEPEND bit(1),
    FUN_SALARIO decimal(10,2),
    PRIMARY KEY(FUN_ID),
    CONSTRAINT FK_FUN_CAR_ID FOREIGN KEY(FUN_CAR_ID) REFERENCES cargo(CAR_ID)
    ) ENGINE = INNODB;

    CREATE TABLE dependentes (
    DEP_ID int not null,
    DEP_FUN_ID int not null,
    DEP_NOME varchar(100),
    DEP_DTNascto date,
    DEP_RELACAO int,
    PRIMARY KEY(DEP_ID),
    CONSTRAINT FK_DEP_FUN_ID FOREIGN KEY(DEP_FUN_ID) REFERENCES funcionarios(FUN_ID)
    ) ENGINE = INNODB;

    -- Cargo

    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('1', 'DESENVOLVEDOR', '50000', '2020-02-27', NULL);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('2', 'SUPORTE', '10000', '2020-02-26', '1');
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('3', 'RH', '7000', '2020-02-13', NULL);
    INSERT INTO cargo (CAR_ID,CAR_NOME,CAR_SALARIO_MAX,CAR_DATA_INICIO,CAR_CARGO_SUPERIOR) VALUES ('4', 'FINANCAS', '15000', '2020-02-11', '3');

    -- Funcionarios

    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('1', '1', 'IVAN', 'Analista de Sistemas', '2001-02-12', '2020-02-01', 'SOLTEIRO', b'0', '15000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('2', '2', 'GABRIEL', 'SUPORTE EXTERNO', '2001-02-13', '2020-02-02', 'SOLTEIRO', b'0', '5000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('3', '2', 'ARTHUR', 'SUPORTE EXTERNO', '2001-02-14', '2020-02-03', 'SOLTEIRO', b'0', '4000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('4', '3', 'DOUGLAS', 'GERENTE', '2001-02-15', '2020-02-04', 'SOLTEIRO', b'0', '7000');
    INSERT INTO funcionarios (FUN_ID,FUN_CAR_ID,FUN_NOME,FUN_PROFISSAO,FUN_DTNASCTO,FUN_DTContrato,FUN_ESTADO_CIVIL,FUN_POSSUI_DEPEND,FUN_SALARIO)
    VALUES ('5', '4', 'KENIA', 'CONTABILIDADe', '2001-02-15', '2020-02-04', 'SOLTEIRO', b'0', '10000');

    -- Dependentes

    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('1', '1', 'DESENVOLVIMENTO - 1', '2019-12-31', '1');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('2', '2', 'SUPORTE - 1', '2019-12-31', '2');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('3', '3', 'SUPORTE - 2', '2019-12-24', '3');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('4', '4', 'RH - 1', '2019-12-25', '4');
    INSERT INTO dependentes (DEP_ID,DEP_FUN_ID,DEP_NOME,DEP_DTNascto,DEP_RELACAO) VALUES ('5', '5', 'FATURAMENTO - 1', '2019-12-26', '5');

    -- Questao 4

    SELECT * FROM (SELECT fun.FUN_ID, fun.FUN_NOME, dep.DEP_NOME, car.CAR_ID from funcionarios fun
    INNER join dependentes dep on fun.FUN_ID = dep.DEP_FUN_ID
    INNER JOIN cargo car on car.CAR_ID = fun.FUN_CAR_ID) as d WHERE d.CAR_ID = 2;