Introduction to SQL Interview Questions and Answers
So you have finally found your dream job in SQL but are wondering how to crack the SQL Interview and what the probable 2024 SQL Interview Questions could be. Every interview is different, and the job scope is different too. Keeping this in mind, we have designed the most common SQL Interview Questions and Answers for 2024 to help you get success in your interview.
Below is the list of 2024 SQL Interview Questions and Answers, which can be asked during an interview for freshers and experienced. For more SQL interview questions try DataLemur!
These top interview questions are divided into two parts:
Part 1 – SQL Interview Questions (Basic)
This first part covers basic interview questions and answers.
Q1. What is SQL?
Answer:
SQL stands for a structured query language, and it is used to communicate with the database. This standard language performs several tasks: retrieval, updating, insertion, and deleting data from a database.
Q2. Write the query to find the employee record with the highest salary.
Answer:
Select * from table_name where salary = (select max(salary) from table_name);
For example
Select * from employee where salary =(select max(salary) from employee);
Q3. Write the query to find the 2nd highest salary in the employee table.
Answer:
These are the basic SQL interview questions asked in a SQL interview. There are multiple ways to solve this question; the three are the easiest solutions.
1st: Select max (salary) from employee where salary not in (select max(salary) from employee).
Note: This solution is only to find the 2nd highest salary, if the question gets changed, find the 3rd or 4th highest salary then this will not work. It would be best if you executed the below query to find nth highest salary.
2nd: Select salary from employee where salary in (select salary from employee where level = &topnth connect by prior salary> Salary group by level).
Note: If you run the above query it will ask for entering the value of topnth, if you enter 2 it will show the result for 2 and if you enter 3 it will give the result for 3 likewise this query is generic.
3rd: Select salary from employee where salary in (select salary from (select unique salary from employee order by salary desc) group by rownum, salary having rownum = &topnth).
Execute as same as 2nd query execute.
Q4. Write the query to find the 2nd lowest salary in the employee table.
Answer:
There are multiple ways to solve this question; below two are the easiest solution for it.
1st: Select min (salary) from employee where salary is not in (select min(salary) from employee).
Note: This solution is only to find the 2nd lowest salary, if the question gets changed, find the 3rd or 4th lowest salary then this will not work. You need to execute the below query for finding nth highest salary.
2nd: Select salary from employee where salary is in (select salary from employee where level = &lownth connect by prior salary < Salary group by level).
Note: If you run the above query it will ask to enter the value of lownth, if you entering 2 it will show the result for 2, and if you enter 3 it will give the result for 3 likewise, this query is generic.
Q5. What is the difference between NVL and NVL2 functions?
Answer:
Both function is used to convert a NULL value to an actual value
NVL: Syntax
NVL (EXPR1, EXPR2)
- EXPR1: Is the source value or expression that may contain NULL.
- EXPR2: This is the target value for converting NULL.
Note: If EXPR1 is character data, then EXPR2 may be any data type.
For example:
select NVL (100,200) from dual
Output: 100
Select NVL(null,200) from dual;
Output: 200
NVL2: Syntax
NVL2(expr1,expr2,expr3)
If expr1 is not null, NVL2 returns expr2. If expr1 is null, then NVL2 returns expr3.
The data type of the return value is always the same as the data type of expr2 unless expr2 is character data.
Example:
select nvl2(100,200,300) from dual;
Output: 200
Select nvl2 (null,200,300) from dual;
Output:
300
Q6. Write the query to find the distinct domain from the email column; consider the below employee table for example.
Name | |
Anubhav | [email protected] |
Basant | [email protected] |
Sumit | [email protected] |
Amit | [email protected] |
So write the query to get the result only @gmail.com, @yahoo.in, @hotmail.com (Since we have two gmail.com and we need to fetch only a distinct domain).
Answer:
Select distinct (substr (Email, Instr (Email,’@’,1,1))) from employee;
Part 2 – SQL Interview Questions (Advanced)
Let us now have a look at the advanced Interview Questions.
Q7. Write the query to find the duplicate name and its frequency in the table; consider the below Employee table for reference.
Name | Age | Salary |
Anubhav | 26 | 50000 |
Anurag | 29 | 60000 |
Basant | 27 | 40000 |
Rahul | 28 | 45000 |
Anubhav | 27 | 48000 |
Answer:
Select Name, count(1) as frequency from Employee
Group by Name having count(1) > 1
Q8. Write the query to remove the duplicates from a table without using a temporary table.
Answer:
This is the advanced SQL Interview Questions asked in an interview. Delete from Employee where name in (Select name from employee group by age, salary having count(*) > 1));
Or
Delete from employee where rowid not in (select max (rowid) from employee group by name);
Q9. Write the query to find odd and even records from the table.
Answer:
For even number
Select * from employee where empno in (select empno from employee group by empno, rownum having mod(rownum,2) = 0);
For odd number:
Select * from employee where empno in (select empno from employee group by empno, rownum having mod(rownum,2) != 0);
Q10. Write a SQL query to create a new table with data and structure copied from another table, and create an empty table with the same structure as some other table.
Answer:
Create a new table with data and structure copied from another table
Select * into new table from an existing table;
Create an empty table with the same structure as some other table
Select * into new_table from existing_table where 1=2;
Or
Create table new table like an existing table;
Q11. Write a SQL query to find the common records between two tables.
Answer:
Select * from table_one
Intersect
Select * from table_two;
Q12. Write a SQL query to find the records present in one table but missing in another.
Answer:
Select * from table_one
Minus
Select * from table_two;
Recommended Articles
This has been a basic guide to the List of SQL Interview Questions and Answers so that the candidate can crack down on these SQL Interview Questions easily. You may also look at the following articles to learn more –