You are on page 1of 24

SQL SERVER Questions And Answers

What is an Entity?
The basic data item stored in database is called entity. An
entity can be any object, item, place, person, concept, or
activity about which data is stored.
What is an attribute?
An attribute is a property of an entity. It describes a part of
an entity. Entity could have one or more attributes.
What is ER diagram?
An

Entity
Relationship
Diagram
is
diagrammatic
representation of the logical structure of a database
system.

Describe the concept of keys.


Candidate key
An attribute that uniquely identifies a row is called candidate
key. It is also called das surrogate key.
Primary key
A candidate key that you choose to identify rows uniquely is
called a primary key.
Alternate key
If there are multiple candidate keys in a table, the candidate
keys that are chosen as primary key are called the alternate
keys.
Composite key
When the key that uniquely identifies the rows of a table is
made up of more than one attribute, it is called as a
composite key.
Foreign key
Two tables can be related using a common attribute. When a
primary key of one table is also available as an attribute in
another related table it is called a foreign key.

What are joins?


Sometimes, data from multiple tables is to be displayed
using select statement. For this purpose, the tables in use
must have a column that is equated. This is termed as
simple join or multiple join.
Sometimes, you might want to display all records from one
table and some from another. This type of join is called an
outer join. An outer join is only possible between two
tables.
There are two types of outer join, namely left and right. In a
left outer join, all the rows of the first table named in the
FROM clause are displayed. In a right outer join all the
rows from the second table mentioned in the FROM
clause are displayed. In either case, all the matching rows
from other table are displayed.
What is a sub query?
Sometimes the results of one query are dependant on the
results of another query. For this purpose one query is
nested inside another query, this is called as sub query.
What are the types of constraints?
You can enforce data integrity by using
Constraints are divided in to five categories.

constraints.

Primary key constraint


A primary key constraint is defined on a column are a set of
columns whose values uniquely identify the rows in a table.
It cannot contain null values.
Unique constraint

Unique constraints are used to enforce uniqueness on nonprimary key columns. It allows null values but only one row
can have a null value.
Multiple unique constraints can be created on a table.
Foreign Key constraint
You can use the foreign key constraint to remove the
inconsistency in two tables when the data in the one table is
dependant on the other table.
Check constraint
It enforces domain integrity by restricting the values to be
inserted in a column. It is possible to define multiple check
constraints on a single column. These are evaluated in the
order in which they are defined.
Default Constraint
A default constraint can be use to assign a constant value to
a column and the user need not insert values in to that
column.
1. What is a rule?
The required integrity can be enforced by specifying a check
constraint or by defining a rule. But check constraint
modifies the table structure. The constraint can there fore be
implemented using rules with out changing the table
structure. This rule is applied before an insert or update
statement .
A rule must be bound to a column or a user-define d data
type. This is done using stored procedure sp_bindrule. Rules
do not apply to data that has already been inserted in the
table. The existing values in tables do not have to meet the
criteria specified by the rule.
What are indexes?
To speed up data retrieval indexes are used. Indexes also
enforce the uniqueness of rows.
3

Advantages
Improves the speed of execution.
Enforces uniqueness of data.
Speeds up joins between tables.
Disadvantages
1.Takes disk space to store.
2.Data modification takes longer.
3.Takes time to create index.
Types of indexes
Clustered index
1.The data is physically sorted
2.One clustered index can be created per table, so you
should build it on attributes that have a high percentage
of unique values and that are not modified often.
Nonclustered index
1.The physical order of the rows is not the same as the index
order.
2.There can be as many as 249 nonclustered indexes per
column.
What are views?
A view is a virtual table, which gives access to a subset of
columns from one or more tables. It is a query stored as
an object in the database. Hence a view is an object that
derives it data from one or more tables.
Advantages
1.A view serves as a security mechanism.
4

2.A view simplifies the usage of complex queries.


2. What are store procedures and its advantages?
A stored procedure is collection or batch of Transact-SQL
statements and control flow language that is stored under
one name, and executed as single unit. It helps in improving
the performance of a query. It is a precompiled object. As it
is ready to execute no time is needed for parsing and
compiling the procedure.
Advantages
Improved performance Applications do not have to compile
the procedure over and over again.
Reduction in network congestion applications need not
submit multiple SQL statements to server for the purpose of
processing.
Enhanced accuracy SQL statements included in a
procedure are designed by experienced programmers and
are therefore more efficient, error free, and tested.
Better security mechanism users can be granted
permission to execute a stored procedure even if they do not
own it.
Types of stored procedures
1.User-defined
2.System defined
These are prefixed with sp_. These are for administrative
purpose and are stored in the database and are accessible to
all users.
3.Temporary

These are prefixed with #, stored in tempdb and are


automatically dropped when connection terminates.
4.Remote
These are created and stored in remote servers and can
accessed by users with appropriate permissions.
5.Extended
These are dlls that are executed outside SQL Server. They
are prefixed by xp_.
Explain about BCP and DTS.
BCP
The transfer data from an external source to SQL Server is
performed using Bulk Copy Program utility. The external
source is a flat file. Data transfer from external source to
SQL Server in BCP IN. The transfer of data from SQL
Server to external source is BCP OUT.
DTS
Data transformation services can be used to import and
export data between heterogeneous data sources and
SQL Server. The external data sources include Visual
FoxPro, MS Excel, Paradox, MS Access, Dbase, and text
files.

What are transactions and their properties?


A transaction is a sequence of operations performed
together as a single unit of logical work. It has four
properties.
Atomicity it states that either all the data modifications are
performed or none are performed.
6

Consistency - it states that all the data is in a consistent


state after a successful completion of transaction.
Isolation it states any data modification made my
concurrent transactions must be isolated from the
modifications made by other concurrent transaction.
Durability it states that ay change made by a completed
transaction remains permanently in the system.
3. Locking mechanism.
SQL Server uses the concept of locking to ensure
transactional integrity and database consistency. Locking, by
functionally prevents users from accessing information being
changed by other users. In a multi-user environment,
Locking prevents users from changing the same data at the
same time. In SQL Server locking is implemented
automatically.
SQL Server implements multi-granular locking, which allows
transactions to lock different types of resources at different
levels. SQL Server can lock the following resources.
RID is a row identifier that individually locks a row in a
table.
Key is a rowlock with in an index.
Page is an 8k page or an index page.
Extent is a contiguous group of 8k data pages or index
pages.
Table is the entire table, including all data and indexes.
Database is the complete database.
Shared Locks
It is used for operations that do not change or update the
data. This allows concurrent transactions to read a resource
and no other transaction can modify the data on that
resource.
Update Locks
7

This lock is implemented when a transaction modify a row.


Only one update lock is allowed on a resource at a time.
Exclusive locks
Intent locks
Schema Locks
What is deadlock?
A dead lock is a situation in which two users (or transactions)
have locks on separate objects, and each user is waiting for
a lock on the others object. It usually occurs in a multi-user
environment.
What are triggers?
A trigger is a block of code that constitutes with a set of TSQL statements that are activated in response to certain
actions. A trigger can also be interpreted as a special kind of
stored procedure that is executed whenever an action, such
as data modification, takes place.
A trigger is always defined on a table, and is said to have
fired whenever the data in the underlying table is affected
by any of the Data Manipulation Language (DML)
statements-INSERT, UPDATE, or DELETE. A trigger fires in
response to an event like insertion, updation, and deletion of
data.
Triggers help in maintaining consistent, reliable, and correct
data in tables. They enable the performance of complex
actions and cascade these actions to other dependant
tables.
Characteristics of a trigger:
It can be associated with tables.

It cannot be defined on temporary tables or views.


However, it can reference temporary tables and
views.
Whenever any data modification statement is issued
then SQL Server fires it automatically.
It cannot be explicitly invoked or executed, as in the
case of stored procedures.

Triggers can be nested up to 16 levels. The


nesting of triggers occurs when a trigger performs an
action that initiates another trigger.
It prevents incorrect, unauthorized, and inconsistent
changes in data.
It cannot return data to the user.
There are three types of triggers
1) INSERT
2) DELETE
3) UPDATE
What is Normalization? Explain three normal forms?
Normalization is a scientific method of breaking down
complex table structures in to simple table structures by
using certain rules. Hence reduce redundancy in a table
and eliminate inconsistency problems and disk space
usage.
First Normal Form
A table is said to be in 1NF when each cell of the table
contains precisely one value.
Functional dependency
If you have two attribute A and B, A is said to be functionally
dependant on B, if for each value of B, there is exactly
one value of A.
Second Normal Form

Identify the functionally dependent keys and place them in a


different table.
Third Normal Form
A relation is said to be 3NF when every non-key attribute is
functionally dependant only on the primary key.
What are Cursors and types of cursors?
A cursor is a work area called private SQL area, which
executes SQL statements and stores the results.

Cursor Types
So you can specify the four-cursor types for Transact-SQL
cursors. These cursors vary in their ability to detect changes
to the result set and in the resources, such as memory and
space in tempdb, they consume. The four API server cursor
types supported by SQL Server are:

Static cursors
Dynamic cursors
Forward-only cursors
Key set-driven cursors

Static cursors detect few or no changes but consume


relatively few resources while scrolling, although they store
the entire cursor in tempdb.
Dynamic cursors detect all changes but consume more
resources while scrolling, although they make the lightest
use of tempdb.
Key set-driven cursors lie in between, detecting most
changes but at less expense than dynamic cursors.

10

Although the database API cursor models consider a forwardonly cursor to be a distinct type of cursor, SQL Server does
not. SQL Server considers both Forward only and scroll to be
options that can be applied to static, key set-driven, and
dynamic cursors.
4. What is Encryption option in SQL Server?
Encryption is a method for keeping sensitive information
confidential by changing data into an unreadable form.
Encryption ensures that data remains secure by keeping the
information hidden from everyone, even if the encrypted
data is viewed directly. Decryption is the process of
changing encrypted data back into its original form and so
authorized users can view it.
5. What are time-stamped data types?
It is a database-wide unique number. The storage size is 8
bytes. A table can have only one timestamp column. The
value in the timestamp column is updated every time a row
containing a timestamp column is inserted or updated. This
property makes a timestamp column a poor candidate for
keys, especially primary keys. Any update made to the row
changes the timestamp value, thereby changing the key
value. If the column is in a primary key, the old key value is
no longer valid, and foreign keys referencing the old value
are no longer valid. If the table is referenced in a dynamic
cursor, all updates change the position of the rows in the
cursor. If the column is in an index key, all updates to the
data row also generate updates of the index.
6. Correlated queries.
In correlated queries a sub query is executed for each row
the parent query is executed.
Ex:
Select e. * from EMP e where e.sal >(select Avg (Sal) from
emp where e.deptno = emp.deptno

11

7. What is OLAP and how it works with SQL Server?


OLAP Services is a new middle-tier server for online
analytical processing (OLAP). OLAP Services provides
wizards, editors, and information to make OLAP technology
easier to use. OLAP Services supports various data and
storage models to help you create and maintain an OLAP
system that meets your organizations needs.
25. What are the advantages of SQL Server 7.0 over
SQL Server 6.5?
Trigger Enhancements

Recursive triggers
Multiple triggers per
DELETE statement

INSERT,

UPDATE,

or

Data Transformation Services


Web Assistant Wizard
The Web Assistant Wizard has been enhanced in SQL
Server 7.0. In addition to exporting SQL Server data out to
an HTML file, it can also import tabular data from an HTML
file into SQL Server, and post to and read from HTTP and
FTP locations.
Row-level locking
SQL Server 7.0 supports complete row-level locking on
both data pages
and index pages.
SQL Server 7.0 supports applications that span a broad
range of platforms.
Gigabytes of memory, and a terabyte or more of disk
storage.
Stored Procedures
The stored procedure model has been enhanced in SQL
Server 7.0 to provide improved performance and
increased application flexibility. When a stored
12

procedure is compiled and placed in the procedure


cache, all users of the stored procedure share that one
copy of the compiled plan.
The most notable feature is update replication. Using update
replication, data replicated by SQL Server 7.0 can be
modified at multiple sites.

SQL-Server
Truncate & Delete
1.Truncate a table means data will be lost, but structure of
the table will be present in the database.
Syntax: Truncate table <table name>;
2.If you drop a table then the structure of the table also goes
along with the data.
Syntax: drop table <table name>;
3.You cant delete a table; you can delete the data in a
record wise manner.
Syntax: delete from <table name> where <condition>
4.The difference between the truncate and delete is you can
delete the data at a stretch buy using the truncate, by using
the delete you can delete only one record at a time.
5.When you have truncated the table then all the records will
lose. Then immediately if you add a record to that table the
row number will be 1 only.
Index:
13

1. If you have a clustered index on a column, then also


you can assign a primary key to that column?
2. You are having rowid already then why you are going
for the index?
3. How many non-clustered indexes can be allowed in a
table?
Syntax:
Create index <index name>
On

<Table name (<col1>, <col2>, -------)>;


Syntax:
Drop index <index name>
Rules
9.Rules will maintain the domain integrity.
10.Is it possible to create a rule at the time of creating a
table?
No.
11.Is it possible to drop a rule?
Yes.
12.What is the difference between the rule and check
constraint?
If a check constraint is applied to a table it will enforce the
constraint to previously existing data also. If that data
violates the constraint then constraint statement gives an
error message.

14

If a rule is applied on a table it will not apply to the already


existing data in the table. The rule will be imposed from now
on the updation and insertion of data.
Syntax
Create rule <rule name> as <condition>
Sp_bindrule <rule name>, <object name>
Drop rule <rule name>
Keys
13.How many types of keys are there? What is the
importance of those keys?
14.What is the difference between the primary key and
unique?
15.What is the primary key and candidate key and what are
there advantages?
16.Is it possible to hide the database?
17. What is the maximum size of a row?
18.What is the maximum number of rows can a table
allowed? Then how many columns are allowed in a table?
19.What is normalization?
20.What is the redundancy?
21.What are the normalization forms?
22.What is the difference between the DBMS/RDBMS?
23.What is replication?
15

Replication:
Definition:
Replication is an important and powerful technology for
distributing data and the execution of stored procedures
across an enterprise.
The replication technology allows you to make duplicate
copies of your data, move those copies to different locations,
and synchronize the data automatically so that all copies
have the same data values. Replication can be implemented
between databases on the same server or different servers
connected by LANs, WANs, or the Internet.
24.What are the types of replication?
Types of the replications:

Snapshot Replication
Option: Snapshot, with immediate-updating Subscribers

Transactional Replication
Option:
Transactional,
Subscribers

with

immediate-updating

Merge Replication

Which type of replication you choose for your application


depends on your requirements for data consistency, site
autonomy, and network resources.
25.Differences between the SQL-server 2000 and SQL-Server
7.0.
26.What is the sql using by the SQL-Server and oracle?

16

SQL-Server: Transact-SQL
Oracle: ANSI-SQL
28.Is it possible to create a view with out a base table?
Actually the answer is NO.
But this is possible by using the FORCED VIEWS
Syntax:
Create force view XYZ
As
Select * from ZZZ;
29.Index is the only second object, which holds data in the
database.
30. MODIFY is a keyword only it is not a clause.
31.What will happen if you add a not null constraint on to a
column if that column is already having the null values and
what is the status of those null values, which are already
present?
An error is given stating that null values are found.
32.I am doing a transaction, I am having four activities in
those four fourth activity got some problem, then will be the
transaction committed or roll backed?
Automatically it will rollback, because a transaction is said to
be committed when all the activities of that transaction is
perfectly executed.
Joins
33.What is a join?
34.How many types of joins are there?
35.What is the difference between the outer join and left
outer join?
17

36.How to make a copy of a table (if you have a table with


some name X, is it possible to create a table with a name Y
by using the table X?
Explanation:
SQL server
Select <columns> into <new table> from <old table>
Oracle
Create table <table name> as select * from <table
name>
Write a query to display the details of employees whose
salary is more than the BLAKE salary.
Sql> select B. * from EMP A, EMP B
Where A.ename=BLAKE
A. Sal < B.sal;
It is also called aliasing.
It is a self-joining concept.
38.What is schema?
Schema:
A description of a database generated by the data definition
language (DDL) of the database management system
(DBMS). In OLAP Services, a schema is a description of
multidimensional objects such as cubes, dimensions, and so
forth.
39.Is it possible to create a trigger on multiple tables?
NO.

18

40.Is it possible to create a single stored procedure on


multiple tables?
YES.
What is SQL and where does it come from?
Structured Query Language (SQL) is a language that
provides an interface to relational database systems. IBM
developed SQL in the 1970s for use in System R. SQL is a de
facto standard, as well as an ISO and ANSI standard. SQL is
often pronounced SEQUEL.
In common usage SQL also encompasses DML (Data
Manipulation Language), for INSERTs, UPDATEs, DELETEs
and DDL (Data Definition Language), used for creating and
modifying tables and other database structures.
The development of SQL is governed by standards. A major
revision to the SQL standard was completed in 1992, called
SQL2. SQL3 support object extensions and will be (partially?)
Implemented in Oracle8.
How can I eliminate duplicates values in a table?
Choose one of the following queries to identify or remove
duplicate rows from a table:
Method 1:
SQL> DELETE FROM table_name A WHERE ROWID > (
2 SELECT min(rowid) FROM table_name B
3 WHERE A.key_values = B.key_values);
Method 2:
SQL> create table table_name2 as select distinct * from
table_name1;

19

SQL> drop table_name1;


SQL> rename table_name2 to table_name1;
Method 3:
SQL> Delete from where rowid not in(
SQL>
select max(rowid) from
SQL>
group by );
Method 4:
SQL> delete from mytable t1
SQL> where exists (select 'x' from mytable t2
SQL>
where t2.key_value1 = t1.key_value1
SQL>
and t2.key_value2 = t1.key_value2
SQL>
and t2.rowid
!= t1.rowid);
Note: If you create an index on the joined fields in the inner
loop, you for all intensive purposes eliminate N^2 operations
(no need to loop through the entire table on each pass by a
record).
How can I generate primary key values for my table?
Create your table with a NOT NULL column (say SEQNO).
This column can now be populated with unique values:
SQL> UPDATE table_name SET seqno = ROWNUM;
or use a sequences generator:
SQL> CREATE SEQUENCE sequence_name START WITH 1
INCREMENT BY 1;
SQL>
UPDATE
table_name
SET
sequence_name.NEXTVAL;
Finally, create a unique index on this column.

seqno

20

How can I get the time difference between two date


columns
select floor((date1-date2)*24*60*60)/3600)
|| ' HOURS ' ||
floor((((date1-date2)*24*60*60) floor(((date1-date2)*24*60*60)/3600)*3600)/60)
|| ' MINUTES ' ||
round((((date1-date2)*24*60*60) floor(((date1-date2)*24*60*60)/3600)*3600 (floor((((date1-date2)*24*60*60) floor(((date1-date2)*24*60*60)/3600)*3600)/60)*60)))
|| ' SECS ' time_difference from ...
How does one count different data values in a
column?
select dept, sum( decode(sex,'M',1,0)) MALE,
sum( decode(sex,'F',1,0)) FEMALE,
count(decode(sex,'M',1,'F',1)) TOTAL
from my_emp_table
group by dept;
How does one select every n th row from a table?
Method 1: Using a subquery
SELECT *
FROM emp
WHERE
(ROWID,0) IN (SELECT ROWID,
MOD(ROWNUM,4)
FROM emp);
Method 2: Use dynamic views (available from Oracle7.2):
SELECT *
FROM ( SELECT rownum rn, empno, ename
FROM emp
) temp
WHERE MOD(temp.ROWNUM,4) = 0;
How does one select the top n rows from a table?

21

SELECT *
FROM TableX a
WHERE 10 >= (SELECT COUNT(DISTINCT maxcol)
FROM tableX b
WHERE b.maxcol >= a.maxcol)
ORDER BY maxcol DESC;
How to implement if-then-else in a select statement?
The Oracle decode function acts like a procedural statement
inside an SQL statement to return different values or
columns based on the values of other columns in the select
statement.
Example:
select decode(sex, 'M', 'Male',
'F', 'Female',
'Unknown'
)
from employees;
Note: The decode function is not ANSI SQL and are rarely
implemented in other RDBMS offerings. It is one of the good
things about Oracle, but use it sparingly if portability is
required.
How can one dump/ examine the exact content of a
database column?
SELECT DUMP(col1)
FROM tab1
WHERE cond1 = val1;
DUMP(COL1)
------------------------------------Typ=96 Len=4: 65,66,67,32

22

For this example the type is 96, indicating CHAR, and the
last byte in the column is 32, which is the ASCII code for a
space. This tells us that this column is blank-padded.
Can one drop a column from a table?
Oracle does not provide a way to DROP a column.
1. update t1 set column_to_drop = NULL;
rename t1 to t1_base;
create view t1 as select <specific columns> from t1_base;
2. create table t2 as select <specific columns> from t1;
drop table t1;
rename t2 to t1;
Can one rename a column in a table?
No
1. rename t1 to t1_base;
create view t1 <column list with new name> as select *
from t1_base;
2. create table t2 <column list with new name> as select *
from t1;
drop table t1;
rename t2 to t1;
How can I change my Oracle password?
Issue the following SQL command: ALTER USER <username>
IDENTIFIED BY <new_password>
/
From Oracle8 you can just type "password" from SQL*Plus,
or if you need to change another user's password, type
"password user_name".
Workaround
columns

for

snapshots

on

tables

with

LONG

23

You can use the SQL*Plus COPY command instead of


snapshots if you need to copy LONG and LONG RAW
variables from one location to another. Eg:
COPY TO SCOTT/TIGER@REMOTE
CREATE IMAGE_TABLE USING
SELECT IMAGE_NO, IMAGE FROM IMAGES;
Note: If you run Oracle8, convert your LONGs to LOBs, as it
can be replicated.

24

You might also like