What
is SQL ?
Structured Query
Language(SQL) is a language designed specifically for communicating with
databases. SQL is an ANSI (American National Standards Institute) standard.
What
are the different type of SQL's statements ?
This
is one of the frequently asked SQL Interview Questions to freshers. SQL
statements are broadly classified into three. They are
1. DDL – Data
Definition Language
DDL is used to define the
structure that holds the data. For example, Create, Alter, Drop and Truncate
table.
2. DML– Data
Manipulation Language
DML is used for
manipulation of the data itself. Typical operations are Insert, Delete, Update
and retrieving the data from the table. Select statement is considered as a
limited version of DML, since it can't change data in the database. But it can
perform operations on data retrieved from DBMS, before the results are returned
to the calling function.
3. DCL– Data Control Language
DCL is used to control the visibility of data like granting database access and set privileges to create tables etc. Example - Grant, Revoke access permission to the user to access data in database.
3. DCL– Data Control Language
DCL is used to control the visibility of data like granting database access and set privileges to create tables etc. Example - Grant, Revoke access permission to the user to access data in database.
1. SQL is not a proprietary language used by specific database vendors. Almost every major DBMS supports SQL, so learning this one language will enable programmers to interact with any database like ORACLE, SQL ,MYSQL etc.
2. SQL is easy to learn. The statements are all made up of descriptive English words, and there aren't that many of them.
3. SQL is actually a very powerful language and by using its language elements you can perform very complex and sophisticated database operations.
You want to implement
the following relationships while designing tables. How would you do it?
a.) One-to-one
b.) One-to-many
c.) Many-to-many
a.) One-to-one
b.) One-to-many
c.) Many-to-many
a.) One-to-One relationship - can be implemented as
a single table and rarely as two tables with primary and foreign key
relationships.
b.) One-to-Many relationships - by splitting the data into two tables with primary key and foreign key relationships.
c.) Many-to-Many - by using a junction table with the keys from both the tables forming the composite primary key of the junction table.
b.) One-to-Many relationships - by splitting the data into two tables with primary key and foreign key relationships.
c.) Many-to-Many - by using a junction table with the keys from both the tables forming the composite primary key of the junction table.
A primary key is a combination of fields which uniquely specify a row. This is a special kind of unique key, and it has implicit NOT NULL constraint. It means, Primary key values cannot be NULL.
7. What is a unique key?
A Unique key constraint uniquely identified each record in the database. This provides uniqueness for the column or set of columns.
A Primary key constraint has automatic unique constraint defined on it. But not, in the case of Unique Key.
There can be many unique constraint defined per table, but only one Primary key constraint defined per table.
8. What is a foreign key?
A foreign key is one table which can be related to the primary key of another table. Relationship needs to be created between two tables by referencing foreign key with the primary key of another table.
What
is a constraint?
Constraint
can be used to specify the limit on the data type of table. Constraint can be
specified while creating or altering the table statement. Sample of constraint
are.
- NOT NULL.
- CHECK.
- DEFAULT.
- UNIQUE.
- PRIMARY KEY.
- FOREIGN KEY.
When is the UPDATE_STATISTICS command
used?
-
When the processing of large data is done, this command is used.
- Whenever large number of deletions, modification or copy takes place into the tables, the indexes need to be updated to take care of these changes. UPDATE_STATISTICS performs this job.
- Whenever large number of deletions, modification or copy takes place into the tables, the indexes need to be updated to take care of these changes. UPDATE_STATISTICS performs this job.
Differentiate between a HAVING CLAUSE and a WHERE CLAUSE.
HAVING CLAUSE- HAVING CLAUSE is used only with the SELECT statement.
- It is generally used in a GROUP BY clause in a query.
- If GROUP BY is not used, HAVING works like a WHERE clause.
WHERE Clause
- It is applied to each row before they become a part of the GROUP BY function in a query.
What do you understand by a view? What does the WITH CHECK OPTION clause for a view do?
- A view is a virtual table that consists of fields from one or more real tables.- It is usually used to join multiple tables and get the data.
- The WITH CHECK OPTION for a view prevents any modification to the data that does not confirm to the WHERE clause of the view definition.
- This allows the data belonging to the view to be updated through the view.
A field is an area within a record reserved for a specific piece of data.
A record is the collection of values / fields of a specific entity: i.e. an Employee, Salary etc.
What is a
Table in a database ?A table is a collection of records of a specific type. For example, employee table, salary table etc.
Database transaction takes database from one consistent state to another. At the end of the transaction the system must be in the prior state if the transaction fails or the status of the system should reflect the successful completion if the transaction goes through.
Explain query execution plan?
- The optimizer available in SQL Server optimizes the code to be effectively executed.- A query execution plan shows how this optimizer would run the query.
- Query execution plan can be viewed by :
- Using the Show Execution Plan option available in Query Analyzer,
- Displaying Estimated Execution Plan on the query dropdown menu,
- Use the SET SHOWPLAN_TEXT ON command before running a query and capturing the execution plan event in a SQL Server Profiler trace.
What is the function of SQL Server Agent Windows service?
- It is a Windows service which handles the tasks scheduled within the SQL Server environment. These tasks are also called as job and are stored with in SQL server. The jobs may run through a trigger, a predefined schedule or on demand.- This service is very useful in determining why a particular job did not run as intended.
Comment on Transactions.
- Using transactions we can group all SQL commands into a single unit.- The transaction begins with some task and finishes only when all tasks within it are over.
- The transaction gets over successfully only when all commands in it are successfully over. Even if one command fails, the whole transaction fails.
- The BEGIN TRANSACTION, ROLLBACK TRANSACTION, and COMMIT TRANSACTION statements are used to work with transactions.
- A group of tasks starts with the begin statement.
- In case of any problem, the rollback command is executed to abort the transaction.
- If all the tasks run successfully, all commands are executed through commit statement.
Differentiate between a primary key and a unique key.
- By default, clustered index on the column are created by the primary key whereas nonclustered index are created by unique key.- Primary key doesn't allow NULLs, but unique key allows one NULL.
What
are properties of a transaction?
Expect this SQL Interview Questions as a part of an any interview, irrespective of your experience. Properties of the transaction can be summarized as ACID Properties.
Expect this SQL Interview Questions as a part of an any interview, irrespective of your experience. Properties of the transaction can be summarized as ACID Properties.
1. Atomicity
A transaction consists of
many steps. When all the steps in a transaction gets completed, it will get
reflected in DB or if any step fails, all the transactions are rolled back.
2. Consistency
The database will move
from one consistent state to another, if the transaction succeeds and remain in
the original state, if the transaction fails.
3. Isolation
Every transaction should
operate as if it is the only transaction in the system.
4. Durability
Once a transaction has
completed successfully, the updated rows/records must be available for all
other transactions on a permanent basis.
Database lock tells a transaction, if the data item in questions is currently being used by other transactions.
What are the type of locks ?
1. Shared Lock
When a shared lock is applied on data item, other transactions can only read the item, but can't write into it.
2. Exclusive Lock
When an exclusive lock is applied on data item, other transactions can't read or write into the data item.
What is
recursion? Is it possible for a stored procedure to call itself or
recursive stored procedure? How many levels of SP nesting is
possible?
Transact-SQL supports recursion. So, yes it is possible for a stored procedure to call itself.
Stored procedures and managed code references can be nested up to 32 levels.
What are the advantages of using Stored Procedures?
- They help in reducing the network traffic and latency which in turn boosts application performance.- They help in promoting code reuse.
- They provide better security to data.
- It is possible to encapsulate the logic using stored procedures. This allows to change stored procedure code without affecting clients.
- It is possible to reuse stored procedure execution plans, which are cached in SQL Server's memory. This reduces server overhead.
What do you mean by an execution plan? Why is it used? How would you view it?
a.) An execution plan can be called as a road map that graphically or textually shows the data retrieval methods which have been chosen by the SQLServer query optimizer, for a stored procedure or ad- hoc query.
b.) It is used because it is a very useful tool for a developer to understand the performance characteristics of a query or stored procedure.
c.) There exists an option called "Show Execution Plan" in Query Analyzer. If this option is turned on, it will display query execution plan in separate window when the query is run again.
What are the
different type of normalization?
In database design, we start with one single table, with all possible columns. A lot of redundant data would be present since it’s a single table. The process of removing the redundant data, by splitting up the table in a well defined fashion is called normalization.
1. First Normal Form (1NF)
A relation is said to be in first normal form if and only if all underlying domains contain atomic values only. After 1NF, we can still have redundant data.
2. Second Normal Form (2NF)
A relation is said to be in 2NF if and only if it is in 1NF and every non key attribute is fully dependent on the primary key. After 2NF, we can still have redundant data.
3. Third Normal Form (3NF)
A relation is said to be in 3NF, if and only if it is in 2NF and every non key attribute is non-transitively dependent on the primary key.
A primary key is a column whose values uniquely identify every row in a table. Primary key values can never be reused. If a row is deleted from the table, its primary key may not be assigned to any new rows in the future. To define a field as primary key, following conditions had to be met :
1. No two rows can have the same primary key value.
2. Every row must have a primary key value
3. The primary key field cannot be null
4. Values in primary key columns can never be modified or updated
A Composite primary key is a type of candidate key, which represents a set of columns whose values uniquely identify every row in a table.
What
is a Composite Primary Key ?
What is a Foreign Key ?
When a "one" table's primary key field is added to a related "many" table in order to create the common field which relates the two tables, it is called a foreign key in the "many" table.
What is a Unique Key ?
Unique key is same as primary with the difference being the existence of null. Unique key field allows one value as NULL value.
SQL INSERT statement is used to add rows to a table. For a full row insert, SQL Query should start with “insert into “ statement followed by table name and values command, followed by the values that need to be inserted into the table. The insert can be used in several ways:
1. To insert a single complete row.
2. To insert a single partial row.
SQL Update is used to update data in a row or set of rows specified in the filter condition.
The basic format of an SQL UPDATE statement is, Update command followed by table to be updated and SET command followed by column names and their new values followed by filter condition that determines which rows should be updated.
SQL Delete is used to delete a row or set of rows specified in the filter condition.
The basic format of an SQL DELETE statement is, DELETE FROM command followed by table name followed by filter condition that determines which rows should be updated.
SQL Like operator is used for pattern matching. SQL 'Like' command takes more time to process. So before using "like" operator, consider suggestions given below on when and where to use wild card search.
1) Don't overuse wild cards. If another search operator will do, use it instead.
2) When you do use wild cards, try not to use them at the beginning of the search pattern, unless absolutely necessary. Search patterns that begin with wild cards are the slowest to process.
3) Pay careful attention to the placement of the wild card symbols. If they are misplaced, you might not return the data you intended.
Define
Join and explain different type of joins?
Another frequently asked
SQL Interview Questions on Joins. In order to avoid data duplication, data is
stored in related tables. Join keyword is used to fetch data from
related tables. "Join" return rows when there is at least one match
in both table. Type of joins are
Right Join
Return all rows from the
right table, even if there are no matches in the left table.
Left Join
Return all rows from the
left table, even if there are no matches in the right table.
Full Join
Return rows when there is
a match in one of the tables.
Self-join is query used to join a table to itself. Aliases should be used for the same table comparison.
Cross Join will return all records where each row from the first table is combined with each row from the second table.
The views are virtual tables. Unlike tables that contain data, views simply contain queries that dynamically retrieve data when used.
Materialized views are also a view but are disk based. Materialized views get updates on specific duration, base upon the interval specified in the query definition. We can index materialized view.
Advantages:
1. Views don't store data in a physical location.
2. The view can be used to hide some of the columns from the table.
3. Views can provide Access Restriction, since data insertion, update and deletion is not possible with the view.
Disadvantages:
1. When a table is dropped, associated view become irrelevant.
2. Since the view is created when a query requesting data from view is triggered, its a bit slow.
3. When views are created for large tables, it occupies more memory.
Stored Procedure is a function which contains a collection of SQL Queries. The procedure can take inputs , process them and send back output.
What
are the advantages a stored procedure?
Stored
Procedures are precomplied and stored in the database. This enables the
database to execute the queries much faster. Since many queries can be included
in a stored procedure, round trip time to execute multiple queries from source
code to database and back is avoided.
Database triggers are sets of commands that get executed when an event(Before Insert, After Insert, On Update, On delete of a row) occurs on a table, views.
Once delete operation is performed, Commit and Rollback can be performed to retrieve data.
Once the truncate statement is executed, Commit and Rollback statement cannot be performed. Where condition can be used along with delete statement but it can't be used with truncate statement.
Drop command is used to drop the table or keys like primary,foreign from a table.
A clustered index reorders the way records in the table are physically stored. There can be only one clustered index per table. It makes data retrieval faster.
A non clustered index does not alter the way it was stored but creates a completely separate object within the table. As a result insert and update command will be faster.
MINUS operator is used to return rows from the first query but not from the second query. INTERSECT operator is used to return rows returned by both the queries.
Differentiate between
DELETE and TRUNCATE.
- Truncate keeps the lock on table while Delete keeps the lock on each row.
- Truncate resets the counter of the Identity column while Delete doesn't do so.
- Trigger is not fired in Truncate while it happens in Delete.
What are the properties of the Relational tables?
Relational tables have six properties:1. Values are atomic.
2. Column values are of the same kind.
3. Each row is unique.
4. The sequence of columns is insignificant.
5. The sequence of rows is insignificant.
6. Each column must have a unique name.
Explain the following.
a.) COLLATION.Collation is a type of sort order. There are mainly three types of sort orders, namely:
i.) Dictionary case sensitive
ii.)Dictionary - case insensitive
iii.)Binary.
b.) Stored Procedure
- It is a set of T-SQL statements combined together to perform a single task formed by combining many small tasks.
- When you actually run a Stored procedure, a set of statements is run.
Explain the following:
a.) Dirty pages.These are the buffer pages that contain modifications which have not been written to disk.
b.) ETL - Extraction, Transformation, and Loading.
- It is the process of copying and cleaning data from heterogeneous sources.
- It is an important part of development projects for data warehousing and business intelligence.
Differentiate between a Local and a Global temporary table?
- A local temporary table exists only for the duration of a connection or, if defined inside a compound statement, for the duration of the compound statement.- Global temporary tables (created with a double “##”) are visible to all sessions.
- Global temporary tables are dropped when the session that created it ends, and all other sessions have stopped referencing it.
Explain different types of Locks in SQL Server.
There are 3 kinds of locks in SQL Serveri.) Shared locks - they are used for operations which do not allow any change or update of data. For e.g. SELECT.
ii.) Update locks - they are used when SQL Server wants to modify a page. The update page lock is then promoted to an exclusive page lock before actually making the changes.
iii.) Exclusive locks - they are used for the data modification operations. For e.g. UPDATE, INSERT, or DELETE.