0% acharam este documento útil (0 voto)
2 visualizações9 páginas

Estrutura e Consultas de Tabelas SQL

O documento contém comandos SQL para criar tabelas para funcionários, departamentos e benefícios. Em seguida, fornece dados de exemplo para inserir nessas tabelas, incluindo informações dos funcionários com ID, nome, cargo, salário e mais. Vários comandos SQL também são listados para recuperar dados específicos das tabelas, como obter funcionários em um determinado departamento ou aqueles que ganham dentro de uma faixa salarial específica.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações9 páginas

Estrutura e Consultas de Tabelas SQL

O documento contém comandos SQL para criar tabelas para funcionários, departamentos e benefícios. Em seguida, fornece dados de exemplo para inserir nessas tabelas, incluindo informações dos funcionários com ID, nome, cargo, salário e mais. Vários comandos SQL também são listados para recuperar dados específicos das tabelas, como obter funcionários em um determinado departamento ou aqueles que ganham dentro de uma faixa salarial específica.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Create a table called 'EMPLOYEE' with the following structure:

+-------------------------+-----------------------+-----------+---------+
| Field | Type nulo | Key |
+-------------------------+-----------------------+-----------+---------+
| Emp_No | number(5) NÃO | PRI |
| Emp_Name | varchar(30) SIM | |
| Designation | varchar(10) SIM | |
| Date_of_Join | date SIM | |
| Salary flutuar SIM | |
| Dept_No | número(11) SIM | |
+-------------------------+-----------------------+-----------+---------+

SQL> criar tabela empregado(

2 Emp_No int NÃO NULO CHAVE PRIMÁRIA,

3 Nome_Emp varchar(30)

4 Designação varchar(20),

5 Date_Of_Join date,

6 Número de salário,

7 Dept_No int);

Tabela criada.

Crie outra tabela chamada 'DEPARTAMENTO' com a seguinte estrutura:

+-------------------+------------------------+
| Field | Type |
+-------------------+------------------------+
| Dept_No | número (11)(PRI) |
| Dept_Name | varchar (30) |
| Dept_Loc | varchar(20) |
+-------------------+------------------------+

SQL> criar tabela departamento(

2 Dept_NO int CHAVE PRIMÁRIA,

3 Nome_Departamento varchar(30),

4 Dept_Loc varchar(20));

Tabela criada.
Crie outra tabela chamada 'DEPARTAMENTO' com a seguinte estrutura:

+------------------+----------------------------+
| Field | Type |
+------------------+----------------------------+
| Dept_No | número(11)(PRI) |
| Dept_Name | varchar(30) |
| Dept_Loc | varchar(20) |
+------------------+----------------------------+

SQL> criar tabela Permissão(

2 Destino varchar(10)

3 Número de Sp_Allowance

4 Número de Transporte);

Tabela criada.

Insira dados nessas tabelas conforme mostrado abaixo:

EMPLOYEE TABLE

+---------------+-------------------+--------------------+---------------------+------------+---------------+
| Emp_No | Emp_Name | Designation | Date_of_Join | Salary | Dept_No |
+--------------+--------------------+--------------------+----------------------+------------+---------------+
| 10001 | Robert | Officer | 01-dec-1985 | 1000 10 |
| 10002 | Allan | Clerk | 14-may-1982 | 5000 10 |
| 10003 | Martin Gerente | 23-dec-1984 | 3500 | 20 |
| 10004 | James Analista | 22-jul-1990 | 5000 | 30 |
| 10005 | John | Analyst | 22-jul-1990 | 4900 30 |
| 10006 | Jones | Clerk | 16-apr-1986 | 950 30 |
+--------------+--------------------+--------------------+----------------------+------------+---------------+

SQL> inserir em funcionário valores(10001,'Robert','oficial','01-dez-1985',1000,10);

1 linha criada.

SQL> inserir na tabela funcionário valores(10002,'Allan','escrivão','14-mai-1982',5000,10);

1 linha criada.

SQL> inserir na tabela funcionário valores(10003,'Martin','Gerente','23-dez-1984',3500,20);

1 row created.

SQL> inserir em empregado valores(10004,'James','Analista','22-julho-1990',5000,30);


1 linha criada.

SQL> inserir na tabela employee valores(10005,'John','Analista','22-julho-1990',4900,30);

1 row created.

SQL> inserir em funcionário valores(10006,'Johnes','funcionário','16-abr-1986',950,30);

1 linha criada.

SQL> selecione * de empregado;

EMP_NO EMP_NAME DESIGNATION DATE_OF_J SALARY DEPT_NO


-------------- ------------------ -------------------- ----------------- ------------ --------------
10001 Roberto oficial 01-DEC-85 1000 10

10002 Allan escrevente 14-MAY-82 5000 10

10003 Martim Gerente 23-DEC-84 3500 20

10004 Tiago Analista 22-JUL-90 5000 30

10005 João Analista 22-JUL-90 4900 30

10006 Johnes funcionário 16-APR-86 950 30


6 linhas selecionadas.

TABELA DE DEPARTAMENTO

+------------+-------------------------+------------------+

| Dept_No | Dept_Name | Dept_Loc |


+------------+-------------------------+------------------+
10 | Marketing Londres |
20 | Accounts América |
30 | Sales Nova Iorque |
40 | Software Boston |
50 | Production Boston |
+-------------+------------------------+------------------+

SQL> inserir no departamento valores(10,'Marketing','londres');

1 linha criada.

SQL> inserir no departamento valores(30,'Vendas','Nova York');

1 linha criada.

SQL> inserir no departamento valores(40,'Software','Boston');

1 linha criada.
SQL> inserir no departamento valores(50,'Produção','Boston');

1 linha criada.

SQL> selecione * do departamento;

DEPT_NO DEPT_NAME DEPT_LOC


-------------- ------------------- ----------------
10 Marketing Londres
20 Conta América
30 Vendas Nova York
40 Software Boston
50 Produção Boston

ALLOWANCE TABLE

+-----------------------+-----------------------+----------------------+
| Designation | Sp_Allowance Transporte |
+----------------------+------------------------+----------------------+
Gerente | 1000 | 500
| Officer | 800 400 |
| Analyst | 1200 | 500 |
| Clerk | 500 300
+-----------------------+------------------------+----------------------+

SQL> inserir na Allowance valores('gerente',1000,500);

1 linha criada.

SQL> inserir na Allowance valores('Oficial',800,400);

1 linha criada.

SQL> inserir na Allowance valores('Analista',1200,500);

1 linha criada.

SQL> inserir na Allowance valores('Funcionário',500,300);

1 linha criada.

SQL> selecione * da Permissão;

DESINATION SP_ALLOWANCE CONVEYANCE


-------------------- ------------------------ ---------------------
gerente 1000 500
Oficial 800 400
Analista 1200 500
Funcionário 500 300
Questions:
Q1. Liste os funcionários pertencentes ao departamento 20.

SQL> selecione emp_name do empregado onde dept_no=20;

EMP_NAME

----------------

Martim

Q2. List the Employees who are earning more than 1200 but less than 4000.

SQL> selecione * do funcionário onde salário entre 1200 e 4000;

EMP_NO EMP_NAME DESIGNATION DATE_OF_J SALARY DEPT_NO

------------- ------------------ --------------------- ----------------- ------------ --------------


10003 Martim Gerente 23-DEC-84 3500 20

Q3. Liste os Funcionários que ingressaram após 1º de janeiro de 84 na ordem de

a data de ingresso.

SQL> selecione * da tabela funcionário onde data_de_admissão > '01-jan-1934' ordem por data_de_admissão;

EMP_NO EMP_NAME DESIGNATION DATE_OF_J SALARY DEPT_NO

------------- ------------------ --------------------- ----------------- ------------ --------------

10002 Allan funcionário 14-MAY-82 5000 10

10003 Martim Gerente 23-DEC-84 3500 20

10001 Roberto oficial 01-DEC-85 1000 10

10006 Johnes funcionário 16-APR-86 950 30

10004 Tiago Analista 22-JUL-90 5000 30

10005 João Analista 22-JUL-90 4900 30


6 linhas selecionadas.

Q4. Liste os Funcionários que estão em posição de Oficial ou Gerente.

SQL> selecione * do funcionário onde designação='Gerente' ou designação = 'oficial';

EMP_NO EMP_NAME DESIGNATION DATE_OF_J SALARY DEPT_NO

------------- ------------------ --------------------- ----------------- ------------ --------------

10001 Robert oficial 01-DEC-85 1000 10

10003 Martim Gerente 23-DEC-84 3500 20


Q5. Liste os funcionários que estão localizados em 'Nova Iorque'.

SQL> selecionar emp_name de employee e, department d onde e.dept_no=d.dept_no e


dept_loc='New York';

EMP_NAME

---------------

Tiago

João

Johnes

Q6. Liste os funcionários que estão no departamento de Vendas.

SQL> selecione e.emp_name da tabela de funcionários e, departamento d onde e.dept_no=d.dept_no e


dept_name='Sales';

EMP_NAME
----------------
Tiago

João

Johnes

Q7. Liste os Departamentos que não têm nenhum Empregado.

SQL> selecionar dept_name da department onde dept_no não está em (selecionar dept_no da employee);

DEPT_NAME

------------------

Software

Produção

Q8. Liste os Funcionários que ganham mais do que o Robert.

SQL> selecionar nome_funcionario de funcionario onde salario>(selecionar salario de funcionario onde


emp_name='Robert');

EMP_NAME

-----------------

Allan

Martim

Tiago

João
Q9. Descubra quantos funcionários há na organização.

SQL> selecione contar(emp_name) como "total de funcionários" de funcionário;

total employee

--------------------

Q10. Descubra quantos funcionários estão trabalhando no departamento de Vendas.

SQL> selecione contar(emp_nome) de funcionário e, departamento d onde e.dept_no =


d.dept_no e dept_name='Vendas';

CONTAR(EMP_NOME)

---------------------------

Q11. Descubra o total de salários pagos aos funcionários.

SQL> selecione a soma(salário) da tabela empregado;

SOMA(SALÁRIO)

--------------------

20350

Q12. Qual é o salário médio pago aos Funcionários?

SQL> selecione avg(salário) de funcionário;

MÉDIA(SALÁRIO)

-----------------

3391,66667

Q13. Qual é o salário mínimo pago no departamento 30?

SQL> selecionar min(salário) de empregado onde dept_no=30;

MIN(SALÁRIO)

-------------------

950
Q14. Display names and grades of Employees based on their designation.

Designação Grau

Gerente A

Oficial B

Analista C

FuncionárioD

SQL>alterar tabela funcionário adicionar notas varchar(3);

Tabela alterada.

SQL>atualizar funcionários

Defina notas='A' onde designação='gerente';

Tabela atualizada.

SQL>atualizar funcionários

Definir notas='B' onde designação='oficial';

Tabela atualizada.

SQL>atualizar empregados

Definir notas='C' onde designação='analista';

Tabela atualizada.

SQL>atualizar funcionários

Defina graus='D' onde designação='escrivão';

Q15. Exibir nomes dos funcionários e data de entrada. A data de entrada deve ser exibida em
26 de janeiro de 1998

SQL> select emp_name, to_char(date_of_join, 'dd,monthyyyy') as DOJ from employee;

EMP_NAME DOJ

----------------- -----------------------------

Roberto 01 de dezembro de 1985

Allan 14 de maio 1982

Martim 23, december 1984

Tiago 22 de julho 1990

João 22 de julho 1990


Johnes 16, april 1986

6 linhas selecionadas.

Q16. Descubra há quanto tempo um funcionário trabalha na organização em

termos de número de:

Ano

Meses

Dias

SQL>

Q17. Display the total salaries department wise.

SQL>selecionar soma(salários),nome_depto

de funcionário e, departamento d

onde e.emp_no=d.dept_no grupo por d.dept_name.

Q18. Exiba os salários máximos em cada departamento. Juntamente com o

nome do departamento. Os cabeçalhos das colunas devem ser assim:

Dept_Name Max(soma)

SQL>select dept_name,max(salaries) as "max(soma)"

de funcionário e, departamento d

onde e.emp_no=d.dept_no group by d.dept_name.

Q19. Exiba o salário total (salário + ajuda de custo - transporte) de

cada Funcionário na ordem do salário total.

SQL>selecionar e.emp_name, [Link] + a.sp_allowance - [Link] como "salário total"

De funcionário e, subsídio a

Onde [Link]ção=[Link]ção;

Q20. Forneça os detalhes do funcionário com o segundo maior salário.

SQL>

Você também pode gostar