Best SQL Interview Questions
Best SQL Interview Questions
Let's start.
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
ALTER: The ALTER table is used for modifying the existing table object in the database.
ALTER TABLE table_name
ADD column_name datatype
OR
WHERE Clause: This clause is used to define the condition, extract and display only
those records which fulfill the given condition
Syntax: SELECT column_name(s)
FROM table_name
WHERE condition;
GROUP BY Clause: It is used with SELECT statement to group the result of the
executed query using the value specified in it. It matches the value with the column
name in tables and groups the end result accordingly.
Syntax: SELECT column_name(s)
FROM table_name
GROUP BY column_name;
HAVING clause: This clause is used in association with the GROUP BY clause. It is
applied to each group of result or the entire result as a single group and much similar as
WHERE clause, the only difference is you cannot use it without GROUP BY clause
Syntax: SELECT column_name(s)
FROM table_name
GROUP BY column_name
HAVING condition;
ORDER BY clause: This clause is to define the order of the query output either in
ascending (ASC) or in descending (DESC) order. Ascending (ASC) is the default one
but descending (DESC) is set explicitly.
Syntax: SELECT column_name(s)
FROM table_name
WHERE condition
ORDER BY column_name ASC|DESC;
USING clause: USING clause comes in use while working with SQL Joins. It is used to
check equality based on columns when tables are joined. It can be used instead ON
clause in Joins.
Syntax: SELECT column_name(s)
FROM table_name
JOIN table_name
USING (column_name);
Question #6) Why do we use SQL constraints? Which constraints we can use
while creating database in SQL?
Constraints are used to set the rules for all records in the table. If any constraints get
violated then it can abort the action that caused it.
Constraints are defined while creating the database itself with CREATE TABLE
statement or even after the table is created once with ALTER TABLE statement.
There are 4 major types of joins made to use while working on multiple tables in SQL
databases
INNER JOIN: It is also known as SIMPLE JOIN which returns all rows from
BOTH tables when it has at least one column matched
Syntax:
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON column_name1=column_name2;
Example
In this example, we have a table Employee with the following data
The second Table is joining
1 SELECT Employee.Emp_id, Joining.Joining_Date
2 FROM Employee
3 INNER JOIN Joining
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see
1 SELECT Employee.Emp_id, Joining.Joining_Date
2 FROM Employee
3 LEFT OUTER JOIN Joining
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see:
RIGHT JOIN (RIGHT OUTER JOIN): This joins returns all rows from the RIGHT table
and its matched rows from a LEFT table.
Syntax: SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON column_name1=column_name2;
Example
In this example, we have a table Employee with the following data
The second Table is joining
1 SELECT Employee.Emp_id, Joining.Joining_Date
2 FROM Employee
3 LEFT OUTER JOIN Joining
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see
FULL JOIN (FULL OUTER JOIN): This joins returns all when there is a match either in
the RIGHT table or in the LEFT table.
Syntax: SELECT column_name(s)
FROM table_name1
FULL OUTER JOIN table_name2
ON column_name1=column_name2;
Example
In this example, we have a table Employee with the following data:
Second Table is joining
1 SELECT Employee.Emp_id, Joining.Joining_Date
2 FROM Employee
3 FULL OUTER JOIN Joining
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 8 records selected. These are the results that you should see
Action and Event are two main components of SQL triggers when certain actions are
performed the event occurs in response to that action.
GRANT Command: This command is used provide database access to user apart from
an administrator.
Syntax: GRANT privilege_name
ON object_name
TO {user_name|PUBLIC|role_name}
[WITH GRANT OPTION];
In above syntax WITH GRANT OPTIONS indicates that the user can grant the access to
another user too.
REVOKE Command: This command is used provide database deny or remove access
to database objects.
Syntax: REVOKE privilege_name
ON object_name
FROM {user_name|PUBLIC|role_name};
Question #16) How many types of Privileges are available in SQL?
There are two types of privileges used in SQL, such as
System Privilege: System privileges deal with an object of a particular type and
specifies the right to perform one or more actions on it which include Admin
allows a user to perform administrative tasks, ALTER ANY INDEX, ALTER ANY
CACHE GROUP CREATE/ALTER/DELETE TABLE, CREATE/ALTER/DELETE
VIEW etc.
Object Privilege: This allows to perform actions on an object or object of another
user(s) viz. table, view, indexes etc. Some of the object privileges are EXECUTE,
INSERT, UPDATE, DELETE, SELECT, FLUSH, LOAD, INDEX, REFERENCES
etc.
Question #17) What is SQL Injection?
SQL Injection is a type of database attack technique where malicious SQL statements
are inserted into an entry field of database such that once it is executed the database is
opened for an attacker. This technique is usually used for attacking Data-Driven
Applications to have an access to sensitive data and perform administrative tasks on
databases.
Question #28) How to write a query to show the details of a student from Students
table whose
name starts with K?
SELECT * FROM Student WHERE Student_Name like ‘K%’;
Here ‘like’ operator is used for pattern matching.
Question #29) What is the difference between Nested Subquery and Correlated
Subquery?
Subquery within another subquery is called as Nested Subquery. If the output of a
subquery is depending on column values of the parent query table then the query is
called Correlated Subquery.
Question #30) What is Normalization? How many Normalization forms are there?
Normalization is used to organize the data in such manner that data redundancy will
never occur in the database and avoid insert, update and delete anomalies.
Syntax:
CREATE Procedure Procedure_Name
(
//Parameters
)
AS
BEGIN
SQL statements in stored procedures to update/retrieve records
END
Question #33) State some properties of Relational databases?
In relational databases, each column should have a unique name
The sequence of rows and columns in relational databases are insignificant
All values are atomic and each row is unique
Question #34) What are Nested Triggers?
Triggers may implement data modification logic by using INSERT, UPDATE, and
DELETE statement. These triggers that contain data modification logic and find other
triggers for data modification are called Nested Triggers.
Declare Cursor
Open Cursor
Retrieve row from the Cursor
Process the row
Close Cursor
Deallocate Cursor
Question #36) What is Collation?
Collation is a set of rules that check how the data is sorted by comparing it. Such as
Character data is stored using correct character sequence along with case sensitivity,
type, and accent.
Question #37) What do we need to check in Database Testing?
Generally, in Database Testing following thing is need to be tested
Database Connectivity
Constraint Check
Required Application Field and its size
Data Retrieval and Processing With DML operations
Stored Procedures
Functional flow
Question #38) What is Database White Box Testing?
Database White Box Testing involves
Database Consistency and ACID properties
Database triggers and logical views
Decision Coverage, Condition Coverage, and Statement Coverage
Database Tables, Data Model, and Database Schema
Referential integrity rules
Question #39) What is Database Black Box Testing?
Database Black Box Testing involves
Data Mapping
Data stored and retrieved
Use of Black Box techniques such as Equivalence Partitioning and Boundary
Value Analysis (BVA)
Question #40) What are Indexes in SQL?
The index can be defined as the way to retrieve the data more quickly. We can define
indexes using CREATE statements.
Syntax:
CREATE INDEX index_name
ON table_name (column_name)
Further, we can also create Unique Index using following syntax;
Syntax:
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
******************
WHERE <Condition>
UNION ALL – returns all rows selected by either query, including all duplicates.