SQL Interview Questions with Answers 2016.
What is normalization? Explain different levels of normalization?
Check out the article Q100139 from Microsoft knowledge base and of course, there’s much more information
available in the net. It’ll be a good idea to get a hold of any RDBMS fundamentals text book, especially the one
by C. J. Date. Most of the times, it will be okay
if you can explain till third normal form.
What is denormalization and when would you go for it?
As the name indicates, denormalization is the reverse process of normalization. It’s the controlled introduction
of redundancy in to the database design. It helps improve the query performance as the number of joins could
How do you implement one-to-one, one-to-many and many-to-many relationships while designing
One-to-One relationship can be implemented as a single table and rarely as two tables with primary and foreign
key relationships. One-to-Many relationships are implemented by splitting the data into two tables with primary
key and foreign key relationships. Many-to-Many relationships are implemented using a junction table with the
keys from both the tables forming the composite primary key of the junction table.
It will be a good idea to read up a database designing fundamentals text book.
What’s the difference between a primary key and a unique key?
Both primary key and unique enforce uniqueness of the column on which they are defined. But by default
primary key creates a clustered index on the column, where are unique creates a nonclustered index by default.
Another major difference is that, primary key doesn’t allow NULLs, but unique key allows one NULL only.
What are user defined datatypes and when you should go for them?
User defined datatypes let you extend the base SQL Server datatypes by providing a descriptive name, and
format to the database. Take for example, in your database, there is a column called Flight_Num which appears
in many tables. In all these tables it should be varchar(8).
In this case you could create a user defined datatype called Flight_num_type of varchar(8) and use it across all
See sp_addtype, sp_droptype in books online.
What is bit datatype and what’s the information that can be stored inside a bit column?
Bit datatype is used to store boolean information like 1 or 0 (true or false). Untill SQL Server 6.5 bit datatype
could hold either a 1 or 0 and there was no support for NULL. But from SQL Server 7.0 onwards, bit datatype
can represent a third state, which is NULL.
Define candidate key, alternate key, composite key.
A candidate key is one that can identify each row of a table uniquely. Generally a candidate key becomes the
primary key of the table. If the table has more than one candidate key, one of them will become the primary
key, and the rest are called alternate keys.
A key formed by combining at least two or more columns is called composite key.
What are defaults? Is there a column to which a default can’t be bound?
A default is a value that will be used by a column, if no value is supplied to that column while inserting data.
IDENTITY columns and timestamp columns can’t have defaults bound to them. See CREATE DEFUALT in books
What is a transaction and what are ACID properties?
A transaction is a logical unit of work in which, all the steps must be performed or none. ACID stands for
Atomicity, Consistency, Isolation, Durability. These are the properties of a transaction. For more information and
explanation of these properties, see SQL Server books online or any RDBMS fundamentals text book.
Explain different isolation levels
An isolation level determines the degree of isolation of data between concurrent transactions. The default SQL
Server isolation level is Read Committed. Here are the other isolation levels (in the ascending order of
isolation): Read Uncommitted, Read Committed, Repeatable Read, Serializable. See SQL Server books online for
an explanation of the isolation levels. Be sure to read about SET TRANSACTION ISOLATION LEVEL, which lets
you customize the isolation level at the connection level.
CREATE INDEX myIndex ON myTable(myColumn)
What type of Index will get created after executing the above statement?
Non-clustered index. Important thing to note: By default a clustered index gets created on the primary key,
unless specified otherwise.
What’s the maximum size of a row?
8060 bytes. Don’t be surprised with questions like ‘what is the maximum number of columns per table’. Check
out SQL Server books online for the page titled: “Maximum Capacity Specifications”.
Explain Active/Active and Active/Passive cluster configurations
Hopefully you have experience setting up cluster servers. But if you don’t, at least be familiar with the way
clustering works and the two clusterning configurations Active/Active and Active/Passive. SQL Server books
online has enough information on this topic and there is a good white paper available on Microsoft site.
Explain the architecture of SQL Server
This is a very important question and you better be able to answer it if consider yourself a DBA. SQL Server
books online is the best place to read about SQL Server architecture. Read up the chapter dedicated to SQL
What is lock escalation?
Lock escalation is the process of converting a lot of low level locks (like row locks, page locks) into higher level
locks (like table locks). Every lock is a memory structure too many locks would mean, more memory being
occupied by locks. To prevent this from happening, SQL Server escalates the many fine-grain locks to fewer
coarse-grain locks. Lock escalation threshold was definable in SQL Server 6.5, but from SQL Server 7.0 onwards
it’s dynamically managed by SQL Server.
What’s the difference between DELETE TABLE and TRUNCATE TABLE commands?
DELETE TABLE is a logged operation, so the deletion of each row gets logged in the transaction log, which
makes it slow. TRUNCATE TABLE also deletes all the rows in a table, but it won’t log the deletion of each row,
instead it logs the deallocation of the data pages of the table, which makes it faster. Of course, TRUNCATE
TABLE can be rolled back.
Explain the storage models of OLAP
Check out MOLAP, ROLAP and HOLAP in SQL Server books online for more infomation.
What are the new features introduced in SQL Server 2000 (or the latest release of SQL Server at the
time of your interview)? What changed between the previous version of SQL Server and the current
This question is generally asked to see how current is your knowledge. Generally there is a section in the
beginning of the books online titled “What’s New”, which has all such information. Of course, reading just that is
not enough, you should have tried those things to better answer the questions. Also check out the section titled
“Backward Compatibility” in books online which talks about the changes that have taken place in the new