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 could be the probable 2020 SQL Interview
Questions. Every interview is different and the scope of a job is different too.
Keeping this in mind we have designed the most common SQL Interview
Questions and Answers for 2020 to help you get success in your interview.
Below is the list of 2020 SQL Interview Questions and Answers, which can be
asked during an interview for fresher and experience. These top interview
questions are divided into two parts: 1 – SQL Interview s (Basic)
This first part covers basic interview questions and answers
1. What is SQL?
Answer:
SQL stands for a structured query language, and it is used to communicate
with the database. This is a standard language used to perform several tasks
such as retrieval, updating, insertion, and deletion of data from a database.
2. Write the query to find the employee record
with the highest the 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);
3.write the query to find the 2nd highest salary
in the employee table?
Answer:
This is the basic SQL interview questions asked in a SQL interview. There are
multiple ways to solve this question, below three are the easiest solution for it.
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 got
the change to find the 3rd or 4th highest 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 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.
4.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 not in (select min(salary)
from employee).
Note: This solution is only to find the 2nd lowest salary, if the question got the
change to 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 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 for entering 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.
5.what is the difference between NVL and NVL2
functions?
Answer:
Both the 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: Is the target value for converting NULL.
Note: If EXPR1 is character data then EXPR2 may 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
6.write the query to find the distinct domain
from email column, consider the below
employee table for example?
Name Email
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
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.
7. 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
8. 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);
9. 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);
Let us move to the next SQL Interview Questions.
10. Write a SQL query to create a new table with
data and structure copied from another table,
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;
11. Write a SQL query to find the common
records between two tables?
Answer:
Select * from table_one
Intersect
Select * from table_two;
12. Write a SQL query to find the records that
are present in one table but missing in another
table?
Answer:
Select * from table_one
Minus
Select * from table_two;