SQL ou Structured Query Language é uma linguagem padrão para lidar com bancos de dados relacionais. Com a enorme quantidade de dados presentes, é muito importante entendermos como usar consultas para recuperar os dados necessários. Neste artigo sobre perguntas de entrevista de consulta SQL, discutirei algumas consultas que você deve praticar para se tornar um administrador de banco de dados e também o ajudará a se sair bem em suas entrevistas.
Principais perguntas de entrevista de consulta SQL
Para sua melhor compreensão, estarei considerando as seguintes tabelas para escrever consultas.
Tabela de informações do funcionário:
EmpID | EmpFname | EmpLname | Departamento | Projeto | Endereço | DOB | Gênero |
1 | Sanjay | Mehra | RH | P1 | Hyderabad(HYD) | 01/12/1976 | M |
2 | Ananya | Mishra | Administrador | P2 | Delhi(DEL) | 02/05/1968 | F |
3 | Rohan | Diwan | Conta | P3 | Mumbai(BOM) | 01/01/1980 | M |
4 | Sônia | Kulkarni | RH | P1 | Hyderabad(HYD) | 02/05/1992 | F |
5 | Ankit | Kapoor | Administrador | P2 | Delhi(DEL) | 03/07/1994 | M |
Tabela de Cargos do Funcionário:
EmpID | EmpPosition | Data da entrada | Salário |
1 | Gerente | 01/05/2022 | 500000 |
2 | Executivo | 02/05/2022 | 75000 |
3 | Gerente | 01/05/2022 | 90000 |
2 | Lead | 02/05/2022 | 85000 |
1 | Executivo | 01/05/2022 | 300000 |
Vamos começar dando uma olhada em algumas das perguntas mais frequentes da entrevista SQL Query,
- Escreva uma consulta para buscar o EmpFname da tabela EmployeeInfo em letras maiúsculas e use o nome ALIAS como EmpName.
- Escreva uma consulta para buscar o número de funcionários que trabalham no departamento "RH".
- Escreva uma consulta para obter a data atual.
- Escreva uma consulta para recuperar os primeiros quatro caracteres de EmpLname da tabela EmployeeInfo.
- Escreva uma consulta para buscar apenas o nome do local (string antes dos colchetes) da coluna Endereço da tabela EmployeeInfo.
- Escreva uma consulta para criar uma nova tabela que consiste em dados e estrutura copiados da outra tabela.
- Escreva q query para encontrar todos os funcionários cujo salário está entre 50.000 e 100.000.
- Escreva uma consulta para encontrar os nomes dos funcionários que começam com 'S'
- Escreva uma consulta para buscar os N registros principais.
- Escreva uma consulta para recuperar EmpFname e EmpLname em uma única coluna como “FullName”. O nome e o sobrenome devem ser separados por espaço.
Q1. Escreva uma consulta para buscar o EmpFname da tabela EmployeeInfo em letras maiúsculas e use o nome ALIAS como EmpName.
SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;
Q2. Escreva uma consulta para buscar o número de funcionários que trabalham no departamento 'RH'.
SELECT COUNT(*) FROM EmployeeInfo WHERE Department = 'HR';
Q3. Escreva uma consulta para obter a data atual.
Você pode escrever uma consulta da seguinte maneira no SQL Server:
SELECT GETDATE();
Você pode escrever uma consulta da seguinte forma no MySQL:
SELECT SYSTDATE();
Q4. Escreva uma consulta para recuperar os primeiros quatro caracteres de EmpLname da tabela EmployeeInfo.
SELECT SUBSTRING(EmpLname, 1, 4) FROM EmployeeInfo;
Q5. Escreva uma consulta para buscar apenas o nome do local (string antes dos colchetes) da coluna Address da tabela EmployeeInfo.
Usando a função MID no MySQL
SELECT MID(Address, 0, LOCATE('(',Address)) FROM EmployeeInfo;
Using SUBSTRING
SELECT SUBSTRING(Address, 1, CHARINDEX('(',Address)) FROM EmployeeInfo;
Q6. Escreva uma consulta para criar uma nova tabela que consiste em dados e estrutura copiados da outra tabela.
Usando o comando SELECT INTO:
SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;
Usando o comando CREATE no MySQL:
CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;
Q7. Escreva q query para encontrar todos os funcionários cujo salário está entre 50.000 e 100.000.
SELECT * FROM EmployeePosition WHERE Salary BETWEEN '50000' AND '100000';
Q8. Escreva uma consulta para encontrar os nomes dos funcionários que começam com 'S'
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';
Q9. Escreva uma consulta para buscar os N registros principais.
Usando o comando TOP no SQL Server:
SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;
Usando o comando LIMIT no MySQL:
SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;
Q10. Escreva uma consulta para recuperar o EmpFname e EmpLname em uma única coluna como “FullName”. O nome e o sobrenome devem ser separados por espaço.
SELECT CONCAT(EmpFname, ' ', EmpLname) AS 'FullName' FROM EmployeeInfo;
Q11. Escreva uma consulta encontre o número de funcionários cujo DOB está entre 02/05/1970 a 31/12/1975 e estão agrupados de acordo com o gênero
SELECT COUNT(*), Gender FROM EmployeeInfo WHERE DOB BETWEEN '02/05/1970 ' AND '31/12/1975' GROUP BY Gender;
Q12. Escreva uma consulta para buscar todos os registros da tabela EmployeeInfo ordenados por EmpLname em ordem decrescente e Department em ordem crescente.
Para ordenar os registros em ordem crescente e decrescente, você deve usar a instrução ORDER BY no SQL.
SELECT * FROM EmployeeInfo ORDER BY EmpFname desc, Department asc;
Q13. Escreva uma consulta para buscar detalhes de funcionários cujo EmpLname termine com um alfabeto 'A' e contenha cinco alfabetos.
Para buscar detalhes de um determinado valor, você deve usar o operador LIKE no SQL.
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';
Q14. Escreva uma consulta para buscar detalhes de todos os funcionários, excluindo os funcionários com nomes próprios, "Sanjay" e "Sonia" da tabela EmployeeInfo.
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');Quer se aprimorar para progredir na carreira? Confira este vídeo
As 10 principais tecnologias para aprender em 2022 | Edureka
Q15. Escreva uma consulta para buscar detalhes de funcionários com o endereço "DELHI(DEL)".
SELECT * FROM EmployeeInfo WHERE Address LIKE 'DELHI(DEL)%';
Q16. Escreva uma consulta para buscar todos os funcionários que também ocupam o cargo gerencial.
SELECT E.EmpFname, E.EmpLname, P.EmpPosition FROM EmployeeInfo E INNER JOIN EmployeePosition P ON E.EmpID = P.EmpID AND P.EmpPosition IN ('Manager');
Q17. Escreva uma consulta para buscar o departamento contagem de funcionários classificada pela contagem do departamento em ordem crescente.
SELECT Department, count(EmpID) AS EmpDeptCount FROM EmployeeInfo GROUP BY Department ORDER BY EmpDeptCount ASC;
Q18. Escreva uma consulta para calcular os registros pares e ímpares de uma tabela.
Para recuperar os registros pares de uma tabela, você deve usar a função MOD() da seguinte forma:
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=0;
Da mesma forma, para recuperar os registros ímpares de uma tabela, você pode escrever uma consulta da seguinte forma:
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=1;
Q19. Escreva uma consulta SQL para recuperar detalhes de funcionários da tabela EmployeeInfo que tenham uma data de ingresso na tabela EmployeePosition.
SELECT * FROM EmployeeInfo E WHERE EXISTS (SELECT * FROM EmployeePosition P WHERE E.EmpId = P.EmpId);
Q20. Escreva uma consulta para recuperar dois salários mínimos e máximos da tabela EmployeePosition.
Para recuperar dois salários mínimos, você pode escrever uma consulta conforme abaixo:
SELECT DISTINCT Salary FROM EmployeePosition E1 WHERE 2 >= (SELECTCOUNT(DISTINCT Salary)FROM EmployeePosition E2 WHERE E1.Salary >= E2.Salary) ORDER BY E1.Salary DESC;
To retrieve two maximum salaries, you can write a query as below:
SELECT DISTINCT Salary FROM EmployeePosition E1 WHERE 2 >= (SELECTCOUNT(DISTINCT Salary) FROM EmployeePosition E2 WHERE E1.Salary <= E2.Salary) ORDER BY E1.Salary DESC;
Q21. Escreva uma consulta para encontrar o enésimo salário mais alto da tabela sem usar a palavra-chave TOP/limit.
SELECT Salary FROM EmployeePosition E1 WHERE N-1 = ( SELECT COUNT( DISTINCT ( E2.Salary ) ) FROM EmployeePosition E2 WHERE E2.Salary > E1.Salary );
Q22. Escreva uma consulta para recuperar registros duplicados de uma tabela.
SELECT EmpID, EmpFname, Department COUNT(*) FROM EmployeeInfo GROUP BY EmpID, EmpFname, Department HAVING COUNT(*) > 1;
Q23. Escreva uma consulta para recuperar a lista de funcionários que trabalham no mesmo departamento.
Select DISTINCT E.EmpID, E.EmpFname, E.Department FROM EmployeeInfo E, Employee E1 WHERE E.Department = E1.Department AND E.EmpID != E1.EmpID;
Q24. Escreva uma consulta para recuperar os últimos 3 registros da tabela EmployeeInfo.
SELECT * FROM EmployeeInfo WHERE EmpID <=3 UNION SELECT * FROM (SELECT * FROM EmployeeInfo E ORDER BY E.EmpID DESC) AS E1 WHERE E1.EmpID <=3;
Q25. Escreva uma consulta para encontrar o terceiro salário mais alto da tabela EmpPosition.
SELECT TOP 1 salary FROM( SELECT TOP 3 salary FROM employee_table ORDER BY salary DESC) AS emp ORDER BY salary ASC;
Q26. Escreva uma consulta para exibir o primeiro e o último registro da tabela EmployeeInfo.
Para exibir o primeiro registro da tabela EmployeeInfo, você pode escrever uma consulta da seguinte forma:
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN(EmpID) FROM EmployeeInfo);
Para exibir o último registro da tabela EmployeeInfo, você pode escrever uma consulta da seguinte forma:
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX(EmpID) FROM EmployeeInfo);
Q27. Escreva uma consulta para adicionar validação de e-mail ao seu banco de dados
SELECT Email FROM EmployeeInfo WHERE NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);
Q28. Escreva uma consulta para recuperar departamentos que tenham menos de 2 funcionários trabalhando nele.
SELECT DEPARTMENT, COUNT(EmpID) as 'EmpNo' FROM EmployeeInfo GROUP BY DEPARTMENT HAVING COUNT(EmpD) < 2;
Q29. Escreva uma consulta para recuperar EmpPostion junto com o total de salários pagos por cada um deles.
SELECT EmpPosition, SUM(Salary) from EmployeePosition GROUP BY EmpPosition;
Q30. Escreva uma consulta para buscar 50% de registros da tabela EmployeeInfo.
SELECT * FROM EmployeeInfo WHERE EmpID <= (SELECT COUNT(EmpID)/2 from EmployeeInfo);
Isso nos leva ao final do artigo Perguntas de entrevista de consulta SQL. Espero que este conjunto de perguntas de entrevista de consulta SQL o ajude a se destacar em sua entrevista de emprego. Tudo de bom para sua entrevista!
Confira este treinamento de certificação MySQL DBA da Edureka, uma empresa confiável de aprendizado on-line com uma rede ode mais de 250.000 alunos satisfeitos espalhados pelo mundo. Este curso treina você nos principais conceitos e ferramentas e técnicas avançadas para gerenciar dados e administrar o banco de dados MySQL. Inclui aprendizado prático em conceitos como MySQL Workbench, MySQL Server, Modelagem de Dados, MySQL Connector, Design de Banco de Dados, Linha de Comando MySQL, Funções MySQL, etc. gerenciar dados.
Tem alguma pergunta para nós? Por favor, mencione-o na seção de comentários desta “Consulta SQL Perguntas da entrevista” e entraremos em contato o mais breve possível.