Interview SQL
Interview SQL
1
TABLE table_name
2 column_name1 data_type(size),
3 column_name2 data_type(size),
4 column_name3 data_type(size),
ALTER: The ALTER table is used for modifying the existing table object in the database.
OR
2) DML (Data Manipulation Language): These statements are used to manipulate the data in records.
Commonly used DML statements are Insert, Update, and Delete.
The Select statement is used as partial DML statement that is used to select all or relevant records in the
table.
3) DCL (Data Control Language): These statements are used to set privileges such as Grant and Revoke
database access permission to the specific user.
The DISTINCT statement is used with the SELECT statement. If the records contain duplicate values then
DISTINCT is used to select different values among duplicate records.
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.
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
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.
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.
NOT NULL: That indicates that the column must have some value and cannot be left null
UNIQUE: This constraint is used to ensure that each row and column has unique value and no
value is being repeated in any other row or column
PRIMARY KEY: This constraint is used in association with NOT NULL and UNIQUE constraints
such as on one or the combination of more than one columns to identify the particular record
with a unique identity.
FOREIGN KEY: It is used to ensure the referential integrity of data in the table and also matches
the value in one table with another using Primary Key
CHECK: It is used to ensure whether the value in columns fulfills the specified condition
INNER JOIN: It is also known as SIMPLE JOIN which returns all rows from BOTH tables when it
has at least one column matched
Example
2 FROM Employee
3 INNER JOIN Joining
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see
LEFT JOIN (LEFT OUTER JOIN): This join returns all rows from a LEFT table and its matched
rows from a RIGHT table.
Example
2 FROM Employee
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.
Example
2 FROM Employee
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.
Example
2 FROM Employee
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
Question #8) What are transaction and its controls?
A transaction can be defined as the sequence task that is performed on databases in a logical manner to
gain certain results. Operations performed like Creating, updating, deleting records in the database
comes from transactions.
In simple word, we can say that a transaction means a group of SQL queries executed on database
records.
ROLLBACK: It is used to roll back the transaction such as all changes made by the transaction are
reverted back and database remains as before
SAVEPOINT: It is used to set the point from where the transaction is to be rolled back
Atomicity: Ensures the completeness of all transactions performed. Checks whether every
transaction is completed successfully if not then transaction is aborted at the failure point and
the previous transaction is rolled back to its initial state as changes undone
Consistency: Ensures that all changes made through successful transaction are reflected
properly on database
Isolation: Ensures that all transactions are performed independently and changes made by one
transaction are not reflected on other
Durability: Ensures that the changes made in database with committed transactions persist as it
is even after system failure
Question #10) How many Aggregate Functions are available there in SQL?
SQL Aggregate Functions calculates values from multiple columns in a table and returns a single value.
Scalar Functions are used to return a single value based on the input values. Scalar Functions are as
follows
Action and Event are two main components of SQL triggers when certain actions are performed the
event occurs in response to that action.
A View can be defined as a virtual table that contains rows and columns with fields from one or more
table.
SQL CREATE and REPLACE can be used for updating the view.
SQL GRANT and REVOKE commands are used to implement privileges in SQL multiple user
environments. The administrator of the database can grant or revoke privileges to or from users of
database object like SELECT, INSERT, UPDATE, DELETE, ALL etc.
GRANT Command: This command is used provide database access to user apart from an administrator.
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.
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.
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.
SQL Sandbox is the safe place in SQL Server Environment where untrusted scripts are executed. There
are 3 types of SQL sandbox, such as
Safe Access Sandbox: Here a user can perform SQL operations such as creating stored
procedures, triggers etc. but cannot have access to the memory and cannot create files.
External Access Sandbox: User can have access to files without having a right to manipulate the
memory allocation.
Unsafe Access Sandbox: This contains untrusted codes where a user can have access to
memory.
SQL is a structured query language to create and access databases whereas PL/SQL comes with
procedural concepts of programming languages.
Question #20) What is the difference between SQL and MySQL?
SQL is a structured query language that is used for manipulating and accessing the relational database,
on the other hand, MySQL itself is a relational database that uses SQL as the standard database
language.
NVL function is used to convert the null value to its actual value.
The output of Cross Join is called as a Cartesian product. It returns rows combining each row from the
first table with each row of the second table. For Example, if we join two tables having 15 and 20
columns the Cartesian product of two tables will be 15×20=300 Rows.
Query within another query is called as Subquery. A subquery is called inner query which returns output
that is to be used by another query.
Question #24) How many row comparison operators are used while working with a subquery?
There are 3-row comparison operators which are used in subqueries such as IN, ANY and ALL.
Question #25) What is the difference between clustered and non-clustered indexes?
One table can have only one clustered index but multiple nonclustered indexes.
Clustered indexes store data physically in the table or view and non-clustered indexes do not
store data in table as it has separate structure from data row
The basic difference in both is DELETE is DML command and TRUNCATE is DDL
DELETE is used to delete a specific row from the table whereas TRUNCATE is used to remove all
rows from the table
We can use DELETE with WHERE clause but cannot use TRUNCATE with it
TRUNCATE removes all rows from the table which cannot be retrieved back, DROP removes the entire
table from the database and it cannot be retrieved back.
Question #28) How to write a query to show the details of a student from Students table whose
name starts with K?
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.
First Normal Form (1NF): It removes all duplicate columns from the table. Creates a table for
related data and identifies unique column values
First Normal Form (2NF): Follows 1NF and creates and places data subsets in an individual table
and defines the relationship between tables using the primary key
Third Normal Form (3NF): Follows 2NF and removes those columns which are not related
through primary key
Fourth Normal Form (4NF): Follows 3NF and do not define multi-valued dependencies. 4NF also
known as BCNF
Question #31) What is Relationship? How many types of Relationship are there?
The relationship can be defined as the connection between more than one tables in the database.
A stored procedure is a collection of SQL statements which can be used as a function to access the
database. We can create these stored procedures previously before using it and can execute these them
wherever we require and also apply some conditional logic to it. Stored procedures are also used to
reduce network traffic and improve performance.
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
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.
Database Connectivity
Constraint Check
Stored Procedures
Functional flow
Data Mapping
Use of Black Box techniques such as Equivalence Partitioning and Boundary Value Analysis (BVA)
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)
******************
1. Right Join
2. Outer Join
3. Full Join
4. Cross Join
5. Self Join.
WHERE <Condition>
Q#51. Is it possible for a table to have more than one foreign key?
Ans. Yes, a table can have many foreign keys and only one primary key.
Q#52. What are the possible values for the BOOLEAN data field?
Ans. For a BOOLEAN data field, two values are possible: -1(true) and 0(false).
Example:
SELECT * FROM table_name SAMPLE(10);
Q#58. Which TCP/IP port does SQL Server run?
Ans. By default SQL Server runs on port 1433.
Q#59. Write a SQL SELECT query that only returns each name only once from a table?
Ans. To get each name only once, we need to use the DISTINCT keyword.
DDL stands for Data Definition Language. CREATE, ALTER, DROP, RENAME are DDL statements.
Q#63. Suppose a Student column has two columns, Name and Marks. How to get name and marks of
the top three students.
Ans. SELECT Name, Marks FROM Student s1 where 3 <= (SELECT COUNT(*) FROM Students s2 WHERE
s1.marks = s2.marks)
TRUNCATE removes ALL rows from a table by de-allocating the memory pages. The operation cannot be
rolled back
1. Atomicity
2. Consistency
3. Isolation
4. Durability.
Q#67. What do you mean by ROWID?
Ans. It’s an 18 character long pseudo column attached with each row of a table.
UNION ALL – returns all rows selected by either query, including all duplicates.
Q#70. What is the difference between UNIQUE and PRIMARY KEY constraints?
Ans. A table can have only one PRIMARY KEY whereas there can be any number of UNIQUE keys.
The primary key cannot contain Null values whereas Unique key can contain Null values.
1. Views restrict access to the data because the view can display selective columns from the table.
2. Views can be used to make simple queries to retrieve the results of complicated queries. For
example, views can be used to query information from multiple tables without the user
knowing.
Q#83. List the various privileges that a user can grant to another user?
Ans. SELECT, CONNECT, RESOURCES.
Q#88. What is the difference between Having clause and Where clause?
Ans. Both specify a search condition but Having clause is used only with the SELECT statement and
typically used with GROUP BY clause.
If GROUP BY clause is not used then Having behaved like WHERE clause only.
Q#89. What is the difference between Local and Global temporary table?
Ans. If defined in inside a compound statement a local temporary table exists only for the duration of
that statement but a global temporary table exists permanently in the DB but its rows disappear when
the connection is closed.
Conclusion
SQL is an essential component of the database system. Having well-versed knowledge of database along
with SQL concepts will definitely be beneficial to crack the interview for the concerned profile.
Apart from some major concepts, there are some hidden facts that remain unseen and affects your
performance in the interview. In this tutorial, I have tried to recollect some of those concepts which
seem small but should not be neglected.
Hope in this article, you will find answers to most frequently asked SQL interview questions. The
knowledge of SQL is must for any tester and this article will help you in preparing the interview.