Professional Documents
Culture Documents
For example, ID is used as a key in the Student table because it is unique for each student. In the
PERSON table, passport_number, license_number, SSN are keys since they are unique for each person.
Types of keys:
1. Primary key
o It is the first key used to identify one and only one instance of an entity uniquely. An entity can contain
multiple keys, as we saw in the PERSON table. The key which is most suitable from those lists becomes a
primary key.
o In the EMPLOYEE table, ID can be the primary key since it is unique for each employee. In the EMPLOYEE
table, we can even select License_Number and Passport_Number as primary keys since they are also
unique.
o For each entity, the primary key selection is based on requirements and developers.
2. Candidate key
o A candidate key is an attribute or set of attributes that can uniquely identify a tuple.
o Except for the primary key, the remaining attributes are considered a candidate key. The candidate keys
are as strong as the primary key.
For example: In the EMPLOYEE table, id is best suited for the primary key. The rest of the attributes,
like SSN, Passport_Number, License_Number, etc., are considered a candidate key.
3. Super Key
Super key is an attribute set that can uniquely identify a tuple. A super key is a superset of a candidate
key.
For example: In the above EMPLOYEE table, for(EMPLOEE_ID, EMPLOYEE_NAME), the name of two
employees can be the same, but their EMPLYEE_ID can't be the same. Hence, this combination can also
be a key.
4. Foreign key
o Foreign keys are the column of the table used to point to the primary key of another table.
o Every employee works in a specific department in a company, and employee and department are two
different entities. So we can't store the department's information in the employee table. That's why we
link these two tables through the primary key of one table.
o We add the primary key of the DEPARTMENT table, Department_Id, as a new attribute in the EMPLOYEE
table.
o In the EMPLOYEE table, Department_Id is the foreign key, and both the tables are related.
5. Alternate key
There may be one or more attributes or a combination of attributes that uniquely identify each tuple in
a relation. These attributes or combinations of the attributes are called the candidate keys. One key is
chosen as the primary key from these candidate keys, and the remaining candidate key, if it exists, is
termed the alternate key. In other words, the total number of the alternate keys is the total number of
candidate keys minus the primary key. The alternate key may or may not exist. If there is only one
candidate key in a relation, it does not have an alternate key.
For example, employee relation has two attributes, Employee_Id and PAN_No, that act as candidate
keys. In this relation, Employee_Id is chosen as the primary key, so the other candidate key, PAN_No,
acts as the Alternate key.
6. Composite key
Whenever a primary key consists of more than one attribute, it is known as a composite key. This key is
also known as Concatenated Key.
For example, in employee relations, we assume that an employee may be assigned multiple roles, and
an employee may work on multiple projects simultaneously. So the primary key will be composed of all
three attributes, namely Emp_ID, Emp_role, and Proj_ID in combination. So these attributes act as a
composite key since the primary key comprises more than one attribute.
7. Artificial key
The key created using arbitrarily assigned data are known as artificial keys. These keys are created when
a primary key is large and complex and has no relationship with many other relations. The data values
of the artificial keys are usually numbered in a serial order.
For example, the primary key, which is composed of Emp_ID, Emp_role, and Proj_ID, is large in
employee relations. So it would be better to add a new virtual attribute to identify each tuple in the
relation uniquely.
SQL Interview Questions and Answers
The following are the most popular and useful SQL interview questions and answers for fresher and
experienced candidates. These questions are created specifically to familiarise you with the types of
questions you might encounter during your SQL interview. According to our experiences, good
interviewers rarely plan to ask any specific topic during the interview. Instead, questioning usually
begins with a basic understanding of the subject, and based on your responses, further discussion
happened.
1) What is SQL?
SQL stands for the Structured Query Language. It is the standard language used to maintain the
relational database and perform many different data manipulation operations on the data. SQL was
initially invented in 1970. It is a database language used for database creation, deletion, fetching and
modifying rows, etc. sometimes, it is pronounced as 'sequel.' We can also use it to handle organized
data comprised of entities (variables) and relations between different entities of the data.
o Data definition language (DDL): It defines the data structure that consists of commands like CREATE,
ALTER, DROP, etc.
o Data manipulation language (DML): It is used to manipulate existing data in the database. The
commands in this category are SELECT, UPDATE, INSERT, etc.
o Data control language (DCL): It controls access to the data stored in the database. The commands in
this category include GRANT and REVOKE.
o Transaction Control Language (TCL): It is used to deal with the transaction operations in the database.
The commands in this category are COMMIT, ROLLBACK, SET TRANSACTION, SAVEPOINT, etc.
AD
Example
GRANT: It enables system administrators to assign privileges and roles to the specific user accounts to
perform specific tasks on the database.
REVOKE: It enables system administrators to revoke privileges and roles from the user accounts so that
they cannot use the previously assigned permission on the database.
Example
Fields are the components to provide the structure for the table. It stores the same category of data in
the same data type. A table contains a fixed number of columns but can have any number of rows
known as the record. It is also called a column in the table of the database. It represents the attribute
or characteristics of the entity in the record.
Example
Table: Student
AD
11) What is a foreign key?
The foreign key is used to link one or more tables together. It is also known as the referencing key. A
foreign key is specified as a key that is related to the primary key of another table. It means a foreign
key field in one table refers to the primary key field of the other table. It identifies each row of another
table uniquely that maintains the referential integrity. The primary key-foreign key relationship is a very
crucial relationship as it maintains the ACID properties of the database sometimes. It also prevents
actions that would destroy links between the child and parent tables.
1. CONSTRAINT constraint_name]
2. FOREIGN KEY [foreign_key_name] (col_name, ...)
3. REFERENCES parent_tbl_name (col_name,...)
13) What is the difference between a primary key and a unique key?
The primary key and unique key both are essential constraints of the SQL. The main difference among
them is that the primary key identifies each record in the table. In contrast, the unique key prevents
duplicate entries in a column except for a NULL value. The following comparison chart explains it more
clearly:
The primary key act as a unique identifier for each record in the The unique key is also a unique identifier for record
table. table.
We cannot store NULL values in the primary key column. We can store NULL value in the unique key column
We cannot change or delete the primary key column values. We can modify the unique key column values.
o Software
o Data
o Procedures
o Database Languages
o Query Processor
o Database Manager
o Database Engine
o Reporting
There are some rules of database normalization, which is commonly known as Normal From, and they
are:
Using these steps, the redundancy, anomalies, inconsistency of the data in the database can be
removed.
The occurrence of redundant terms in the database causes the waste of space in the disk.
Due to redundant terms, inconsistency may also occur. If any change is made in the data of one table
but not made in the same data of another table, then inconsistency will occur. This inconsistency will
lead to the maintenance problem and effects the ACID properties as well.
Denormalization doesn't mean that normalization will not be done. It is an optimization strategy that
takes place after the normalization process.
o Arithmetic operators: These operators are used to perform mathematical operations on numerical data.
The categories of this operators are addition (+), subtraction (-), multiplication (*), division (/),
remainder/modulus (%), etc.
o Logical operators: These operators evaluate the expressions and return their results in True or False. This
operator includes ALL, AND, ANY, ISNULL, EXISTS, BETWEEN, IN, LIKE, NOT, OR, UNIQUE.
o Comparison operators: These operators are used to perform comparisons of two values and check
whether they are the same or not. It includes equal to (=), not equal to (!= or <>), less than (<), greater
than (>), less than or equal to (<=), greater than or equal to (>=), not less than (!<), not greater than (!>),
etc.
o Bitwise operators: It is used to do bit manipulations between two expressions of integer type. It first
performs conversion of integers into binary bits and then applied operators such as AND (& symbol), OR
(|, ^), NOT (~), etc.
o Compound operators: These operators perform operations on a variable before setting the variable's
result to the operation's result. It includes Add equals (+=), subtract equals (-=), multiply equals (*=),
divide equals (/=), modulo equals (%=), etc.
o String operators: These operators are primarily used to perform concatenation and pattern matching of
strings. It includes + (String concatenation), += (String concatenation assignment), % (Wildcard), []
(Character(s) matches), [^] (Character(s) not to match), _ (Wildcard match one character), etc.
24) What is a view in SQL?
A view is a database object that has no values. It is a virtual table that contains a subset of data within
a table. It looks like an actual table containing rows and columns, but it takes less space because it is
not present physically. It is operated similarly to the base table but does not contain any data of its own.
Its name is always unique. A view can have data from one or more tables. If any changes occur in the
underlying table, the same changes reflected in the views also.
The primary use of a view is to implement the security mechanism. It is the searchable object where we
can use a query to search the view as we use for the table. It only shows the data returned by the query
that was declared when the view was created.
o Unique Index
o Clustered Index
o Non-Clustered Index
o Bit-Map Index
o Normal Index
o Composite Index
o B-Tree Index
o Function-Based Index
Example
Suppose we want to make a Phone column as a unique index. We can do this like below:
The purpose of creating a non-clustered index is for searching the data. Its best example is a book
where the content is written in one place, and the index is at a different place. We can create 0 to 249
non-clustered indexes in each table. The non-clustered indexing improves the performance of the
queries which use keys without assigning the primary key.
30) What are the differences between SQL, MySQL, and SQL Server?
The following comparison chart explains their main differences:
SQL first appeared in 1974. MySQL first appeared on May 23, 1995. SQL Serve
SQL was developed by IBM Corporation. MySQL was developed by Oracle Corporation. SQL Serve
SQL is a query language for managing databases. MySQL is database software that uses SQL language SQL Serve
to conduct with the database. to condu
SQL has no variables. MySQL can use variables constraints and data types. SQL Serv
types.
SQL is a programming language, so that it does MySQL is software, so it gets frequent updation. SQL Serv
not get any updates. Its commands are always updation
fixed and remain the same.
SQL PL/SQL
SQL is a database structured query language used to communicate PL/SQL or Procedural Language/Structured Q
with relational databases. It was developed by IBM Corporations and enhance the capabilities of SQL. Oracle Corpo
first appeared in 1974. SQL as its database language.
SQL has no variables. PL/SQL can use variables constraints and data t
SQL can execute only a single query at a time. PL/SQL can execute a whole block of code at o
SQL query can be embedded in PL/SQL. PL/SQL cannot be embedded in SQL as SQL do
and keywords.
SQL can directly interact with the database server. PL/SQL cannot directly interact with the databa
SQL is like the source of data that we need to display. PL/SQL provides a platform where SQL data wi
A clustered index is a table or view where the data for the rows are stored. In a The indexes other than PRIMARY
relational database, if the table column contains a primary key, MySQL clustered indexes. It has a structu
automatically creates a clustered index named PRIMARY. clustered indexes are also known a
Clustered indexes store the data information and the data itself. Non-clustered indexes stores only
the data stored in clustered data.
There can only be one clustered index per table. There can be one or more non-clus
A clustered index determines how data is stored physically in the table. Therefore, It creates a logical ordering of dat
reading from a clustered index is faster. physical data files. Therefore, readi
o INNER JOIN
o LEFT OUTER JOIN
o RIGHT OUTER JOIN
o INNER JOIN
o SELF JOIN
o LEFT OUTER JOIN
o RIGHT OUTER JOIN
o FULL OUTER JOIN
o CROSS JOIN
1. SELECT column_lists
2. FROM table1
3. INNER JOIN table2 ON join_condition1
4. INNER JOIN table3 ON join_condition2
5. ...;
1. SELECT colum_lists
2. FROM table1
3. RIGHT JOIN table2
4. ON join_condition;
1. SELECT colum_lists
2. FROM table1
3. LEFT JOIN table2
4. ON join_condition;
SQL triggers have two main components one is action, and another is an event. When certain actions
are taken, an event occurs as a result of those actions.
We use the CREATE TRIGGER statement for creating a trigger in SQL. Here is the syntax:
A SELF JOIN is required when we want to combine data with other data in the same table itself. It is
often very useful to convert a hierarchical structure to a flat structure.
1. SELECT column_lists
2. FROM table1 AS T1, table1 AS T2
3. WHERE join_conditions;
Example
If we want to get retrieve the student_id and name from the table where student_id is equal, and
course_id is not equal, it can be done by using the self-join:
A. UNION: It combines two or more results from multiple SELECT queries into a single result set. It has
a default feature to remove the duplicate rows from the tables. The following syntax illustrates the
Union operator:
B. UNION ALL: This operator is similar to the Union operator, but it does not remove the duplicate
rows from the output of the SELECT statements. The following syntax illustrates the UNION ALL
operator:
C. INTERSECT: This operator returns the common records from two or more SELECT statements. It
always retrieves unique records and arranges them in ascending order by default. Here, the number of
columns and data types should be the same. The following syntax illustrates the INTERSECT operator:
1. SELECT columns FROM table1
2. INTERSECT
3. SELECT columns FROM table2;
D. MINUS: This operator returns the records from the first query, which is not found in the second
query. It does not return duplicate values. The following syntax illustrates the MINUS operator:
This operator is used to selects the range of data between two values. It is a logical operator to determine whether o
The values can be numbers, text, and dates as well. values. This operator reduces the use of multipl
It returns records whose column value lies in between the defined It compares the specified column's value and r
range. the set of values.
Column Level Constraints: These constraints are only applied to a single column and limit the type of
data that can be stored in that column.
Table Level Constraints: These constraints are applied to the entire table and limit the type of data
that can be entered.
46) How to write an SQL query to find students' names start with 'A'?
We can write the following query to get the student details whose name starts with A:
Here is the demo example where we have a table named student that contains two names starting with
the 'A' character.
47) Write the SQL query to get the third maximum salary of an employee
from a table named employees.
The following query is the simplest way to get the third maximum salary of an employee:
Here is the demo example that shows how to get the third maximum salary of an employee.
The following are the alternative way to get the third-highest salary of an employee:
B. Using Subquery
1. SELECT salary
2. FROM
3. (SELECT salary
4. FROM employees
5. ORDER BY salary DESC
6. LIMIT 3) AS Temp
7. ORDER BY salary LIMIT 1;
1) The delete statement removes single or multiple rows from an existing The truncate command deletes the wh
table depending on the specified condition. table itself. It preserves the table stru
3) We can use the WHERE clause in the DELETE command. We cannot use the WHERE clause w
4) DELETE statement is used to delete a row from a table. TRUNCATE statement is used to rem
5) DELETE is slower because it maintained the log. TRUNCATE statement is faster than D
a time without maintaining transactio
6) You can roll back data after using the DELETE statement. It is not possible to roll back after u
7) DELETE query takes more space. TRUNCATE query occupies less spac
The ACID property is an acronym for Atomicity, Consistency, Isolation, and Durability.
Atomicity: It ensures that all statements or operations within the transaction unit must be executed
successfully. If one part of the transaction fails, the entire transaction fails, and the database state is left
unchanged. Its main features are COMMIT, ROLLBACK, and AUTO-COMMIT.
Consistency: This property ensures that the data must meet all validation rules. In simple words, we
can say that the database changes state only when a transaction will be committed successfully. It also
protects data from crashes.
Isolation: This property guarantees that the concurrent property of execution in the transaction unit
must be operated independently. It also ensures that statements are transparent to each other. The
main goal of providing isolation is to control concurrency in a database.
Durability: This property guarantees that once a transaction has been committed, it persists
permanently even if the system crashes, power loss, or failed.
o A NULL value is a value, which is 'unavailable, unassigned, unknown or not applicable.' It would be used
in the absence of any value. We can perform arithmetic operations on it. On the other hand, zero is a
number, and a blank space is treated as a character.
o The NULL value can be treated as an unknown and missing value, but zero and blank spaces differ from
the NULL value.
o We can compare a blank space or a zero to another blank space or a zero. On the other hand, one NULL
may not be the same as another NULL. NULL indicates that no data has been provided or that no data
exists.
51) What are functions and their usage in SQL?
SQL functions are simple code snippets that are frequently used and re-used in database systems for
data processing and manipulation. Functions are the measured values. It always performs a specific
task. The following rules should be remembered while creating functions:
o A function should have a name, and the name cannot begin with a special character such as @, $, #, or
other similar characters.
o Functions can only work with the SELECT statements.
o Every time a function is called, it compiles.
o Functions must return value or result.
o Functions are always used with input parameters.
o User-Defined Function: Functions created by a user based on their needs are termed user-defined
functions.
o System Defined Function: Functions whose definition is defined by the system are termed system-
defined functions. They are built-in database functions.
UPPER: This function is used to converts a given character into uppercase. The following example will
return the 'stephen' as 'STEPHEN':
INITCAP: This function is used to converts given character values to uppercase for the initials of each
word. It means every first letter of the word is converted into uppercase, and the rest is in lower case.
The following example will return the 'hello stephen' as 'Hello Stephen':
A) CONCAT: This function is used to join two or more values together. It always appends the second
string into the end of the first string. For example:
Output: Information-technology
B) SUBSTR: It is used to return the portion of the string from a specified start point to an endpoint. For
example:
Output: Management
C) LENGTH: This function returns the string's length in numerical value, including the blank spaces. For
example:
D) INSTR: This function finds the exact numeric position of a specified character or word in a given
string. For example:
Output: 7
E) LPAD: It returns the padding of the left-side character value for right-justified value. For example:
Output: ***200
F) RPAD: It returns the padding of the right-side character value for left-justified value. For example:
Output: 200***
G) TRIM: This function is used to remove all the defined characters from the beginning, end, or both.
It also trimmed extra spaces. For example:
Output: BCDCB
H) REPLACE: This function is used to replace all occurrences of a word or portion of the string
(substring) with the other specified string value. For example:
Input: SELECT REPLACE ( 'It is the best coffee at the famous coffee shop.', 'coffee', 'tea');
56) What are the syntax and use of the COALESCE function?
The COALESCE() function evaluates the arguments in sequence and returns the first NON-NULL value
in a specified number of expressions. If it evaluates arguments as NULL or not found any NON-NULL
value, it returns the NULL result.
Example:
Suppose we have a table 'customer' containing eight records in which the name column has some
duplicate values.
If we want to get the name column without any duplicate values, the DISTINCT keyword is required.
Executing the below command will return a name column with unique values.
58) What is the default ordering of data using the ORDER BY clause?
How could it be changed?
The ORDER BY clause is used to sort the table data either in ascending or descending order. By default,
it will sort the table in ascending order. If we want to change its default behavior, we need to use the
DESC keyword after the column name in the ORDER BY clause.
We have taken a customer table in the previous example. Now, we will demonstrate the ORDER BY
clause on them as well.
In the below output, we can see that the first query will sort the table data in ascending order based on
the name column. However, if we run the second query by specifying the DESC keyword, the table's
order is changed in descending order.
59) Is the following query returns the output?
1. SELECT subject_code, AVG (marks)
2. FROM Students
3. WHERE AVG(marks) > 70
4. GROUP BY subject_code;
Answer: No. The above query does not return the output because we cannot use the WHERE clause to
restrict the groups. We need to use the HAVING clause instead of the WHERE clause to get the correct
output.
60) What is the difference between the WHERE and HAVING clauses?
The main difference is that the WHERE clause is used to filter records before any groupings are
established, whereas the HAVING clause is used to filter values from a group. The below comparison
chart explains the most common differences:
WHERE HAVING
It does not allow to work with aggregate functions. It can work with aggrega
This clause can be used with the SELECT, UPDATE, and DELETE statements. This clause can only be u
SQL provides seven (7) aggregate functions, which are given below:
o AVG(): This function is used to returns the average value from specified columns.
o COUNT(): This function is used to returns the number of table rows, including rows with null values.
o MAX(): This function is used to returns the largest value among the group.
o MIN(): This function is used to returns the smallest value among the group.
o SUM(): This function is used to returns the total summed values(non-null) of the specified column.
o FIRST(): This function is used to returns the first value of an expression.
o LAST(): This function is used to returns the last value of an expression.
The DENSE_RANK function assigns a unique rank for each row within a partition as per the specified
column value without any gaps. It always specifies ranking in consecutive order. If the two rows are
assigned the same rank, this function will assign it with the same rank, and the next rank being the next
sequential number. For example, if we have 3 records at rank 4, the next rank listed would be ranked 5.
1) What is DBMS?
DBMS is a collection of programs that facilitates users to create and maintain a database. In other words,
DBMS provides us an interface or tool for performing different operations such as the creation of a
database, inserting data into it, deleting data from it, updating the data, etc. DBMS is a software in
which data is stored in a more secure way as compared to the file-based system. Using DBMS, we can
overcome many problems such as- data redundancy, data inconsistency, easy access, more organized
and understandable, and so on. There is the name of some popular Database Management System-
MySQL, Oracle, SQL Server, Amazon simple DB (Cloud-based), etc.
2) What is a database?
A Database is a logical, consistent and organized collection of data that it can easily be accessed,
managed and updated. Databases, also known as electronic databases are structured to provide the
facility of creation, insertion, updating of the data efficiently and are stored in the form of a file or set
of files, on the magnetic disk, tapes and another sort of secondary devices. Database mostly consists of
the objects (tables), and tables include of the records and fields. Fields are the basic units of data
storage, which contain the information about a particular aspect or attribute of the entity described by
the database. DBMS is used for extraction of data from the database in the form of the queries.
The data can be stored in the database with ease, and there are no issues of data redundancy and data
inconsistency.
The data will be extracted from the database using DBMS software whenever required. So, the
combination of database and DBMS software enables one to store, retrieve and access data with
considerate accuracy and security.
There are two ways which can help the DBMS in recovering and maintaining the ACID properties, and
they are- maintaining the log of each transaction and maintaining shadow pages. So, when it comes to
log based recovery system, checkpoints come into existence. Checkpoints are those points to which the
database engine can recover after a crash as a specified minimal point from where the transaction log
record can be used to recover all the committed data up to the point of the crash.
9) What is RDBMS?
RDBMS stands for Relational Database Management Systems. It is used to maintain the data records
and indices in tables. RDBMS is the form of DBMS which uses the structure to identify and access data
concerning the other piece of data in the database. RDBMS is the system that enables you to perform
different operations such as- update, insert, delete, manipulate and administer a relational database
with minimal difficulties. Most of the time RDBMS use SQL language because it is easily understandable
and is used for often.
o Data Definition Language (DDL) e.g., CREATE, ALTER, DROP, TRUNCATE, RENAME, etc. All these
commands are used for updating the data that?s why they are known as Data Definition Language.
o Data Manipulation Language (DML) e.g., SELECT, UPDATE, INSERT, DELETE, etc. These commands are
used for the manipulation of already updated data that's why they are the part of Data Manipulation
Language.
o DATA Control Language (DCL) e.g., GRANT and REVOKE. These commands are used for giving and
removing the user access on the database. So, they are the part of Data Control Language.
o Transaction Control Language (TCL) e.g., COMMIT, ROLLBACK, and SAVEPOINT. These are the
commands used for managing transactions in the database. TCL is used for managing the changes made
by DML.
AD
Database language implies the queries that are used for the update, modify and manipulate the data.
A relation is specified as a set of tuples. A relation is the set of related attributes with identifying key
attributes
AD
Let r be the relation which contains set tuples (t1, t2, t3, ..., tn). Each tuple is an ordered list of n-values
t=(v1,v2, ...., vn).
One-To-One: Here one record of any object can be related to one record of another object.
One-To-Many (many-to-one): Here one record of any object can be related to many records of other
object and vice versa.
Many-to-many: Here more than one records of an object can be related to n number of records of
another object.
For example: We know that most of the users prefer those systems which have a simple GUI that means
no complex processing. So, to keep the user tuned and for making the access to the data easy, it is
necessary to do data abstraction. In addition to it, data abstraction divides the system in different layers
to make the work specified and well defined.
Logical level: It is the next higher level of abstraction. It describes what data are stored in the database
and what the relationship among those data is.
View level: It is the highest level of data abstraction. It describes only part of the entire database.
For example- User interacts with the system using the GUI and fill the required details, but the user
doesn't have any idea how the data is being used. So, the abstraction level is entirely high in VIEW
LEVEL.
Then, the next level is for PROGRAMMERS as in this level the fields and records are visible and the
programmers have the knowledge of this layer. So, the level of abstraction here is a little low in VIEW
LEVEL.
Procedural DML or Low level DML: It requires a user to specify what data are needed and how to get
those data.
Non-Procedural DML or High level DML:It requires a user to specify what data are needed without
specifying how to get those data.
o select
o project
o set difference
o union
o rename,etc.
In E-R diagram, entities are represented by rectangles, relationships are represented by diamonds,
attributes are the characteristics of entities and represented by ellipses, and data flow is represented
through a straight line.
For example: In the employee database of a company, the employee, department, and the designation
can be considered as the entities. These entities have some characteristics which will be the attributes
of the corresponding entity.
For example, a student has student_id, department, and course as its characteristics.
For example: If a student is an entity in the table then age will be the attribute of that student.
Entity Integrity : It specifies that "Primary key cannot have a NULL value."
Referential Integrity: It specifies that "Foreign Key can be either a NULL value or should be the Primary
Key value of other relation
o Research Storage
o System Relational Data System
It makes you able to modify the schema definition in one level should not affect the schema definition
in the next higher level.
Physical Data Independence: Physical data is the data stored in the database. It is in the bit-format.
Modification in physical level should not affect the logical level.
For example: If we want to manipulate the data inside any table that should not change the format of
the table.
Logical Data Independence: Logical data in the data about the database. It basically defines the
structure. Such as tables stored in the database. Modification in logical level should not affect the view
level.
For example: If we need to modify the format of any table, that modification should not affect the data
inside it.
Physical level: It is the lowest level of abstraction. It describes how data are stored.
Logical level: It is the next higher level of abstraction. It describes what data are stored in the database
and what relationship among those data.
View level: It is the highest level of data abstraction. It describes only part of the entire database.
For example- User interact with the system using the GUI and fill the required details, but the user
doesn't have any idea how the data is being used. So, the abstraction level is absolutely high in VIEW
LEVEL.
Then, the next level is for PROGRAMMERS as in this level the fields and records are visible and the
programmer has the knowledge of this layer. So, the level of abstraction here is a little low in VIEW
LEVEL.
o The table is in 1NF, i.e., firstly it is necessary that the table should follow the rules of 1NF.
o Every non-prime attribute is fully functionally dependent on the primary key, i.e., every non-key attribute
should be dependent on the primary key in such a way that if any key element is deleted, then even the
non_key element will still be saved in the database.
Where:
X->Y
Y does not -> X
Y->Z so, X->Z
o It is in 3NF.
o For every functional dependency X->Y, X should be the super key of the table. It merely means that X
cannot be a non-prime attribute if Y is a prime attribute.
ATOMICITY: Atomicity is more generally known as ?all or nothing rule.' Which implies all are
considered as one unit, and they either run to completion or not executed at all.
CONSISTENCY: This property refers to the uniformity of the data. Consistency implies that the database
is consistent before and after the transaction.
ISOLATION: This property states that the number of the transaction can be executed concurrently
without leading to the inconsistency of the database state.
DURABILITY: This property ensures that once the transaction is committed it will be stored in the non-
volatile memory and system crash can also not affect it anymore.
o DELETE command delete only those rows which are specified with the WHERE clause.
o DELETE command can be rolled back.
o DELETE command maintain a log, that's why it is slow.
o DELETE use row lock while performing DELETE function.
TRUNCATE command: TRUNCATE command is used to remove all rows (complete data) from a table.
It is similar to the DELETE command with no WHERE clause.
o The TRUNCATE command removes all the rows from the table.
o The TRUNCATE command cannot be rolled back.
o The TRUNCATE command doesn't maintain a log. That's why it is fast.
o TRUNCATE use table log while performing the TRUNCATE function.
Exclusive lock: When any transaction is about to perform the write operation, then the lock on the data
item is an exclusive lock. Because, if we allow more than one transaction then that will lead to the
inconsistency in the database.
Primary key: The Primary key is an attribute in a table that can uniquely identify each record in a table.
It is compulsory for every table.
Candidate key: The Candidate key is an attribute or set of an attribute which can uniquely identify a
tuple. The Primary key can be selected from these attributes.
Super key: The Super key is a set of attributes which can uniquely identify a tuple. Super key is a
superset of the candidate key.
Foreign key: The Foreign key is a primary key from one table, which has a relationship with another
table. It acts as a cross-reference between tables.
SQL Server Interview Questions
A list of top frequently asked SQL Server interview questions and answers are given below.
2) What is Normalization?
In RDBMS, the process of organizing data to minimize redundancy and surety of logical data integrity
is called normalization. In normalization, the database is divided into two or more tables, and a
relationship is defined among the tables. Normalization technique increases performance for the
database.
Types of Normalization
o 1NF
o 2NF
o 3NF
o BCNF
o 4NF
o 5NF
However, the first three types are only frequently used, where "NF" stands for normal form. The
originator of the RD model "E.F Codd" has proposed the process "normalization" with the first "normal
form" and continued till third normal form.
3) What is De-Normalization?
It is a process of attempting to optimize the performance of a database by adding redundant data.
Redundancy is introduced intentionally in a table to improve performance, and it is called de-
normalization. The de-Normalization process enhances the read performance while some degradation
occurs in write performance. It can be achieved by making a group of data in the redundant form. The
un-normalized and de-Normalized database are completely different from each other. Before the
process of de-normalization of any database, that should be normalized firstly.
4) What is the difference between function and stored procedure?
o A Function must return a value while stored procedure can return zero or n value.
o Functions can have only input parameter while procedures can have input/ output parameters.
o Functions take one mandatory input parameter while stored procedures may take 0 to n input parameter.
o Try-catch block can handle exceptions. In the stored procedure, while you can't use try-catch in functions.
AD
o Case sensitivity
o Accent sensitivity
o Kana sensitivity
o Width sensitivity
Case Sensitivity: Case sensitivity defines every character with a unique value, as alphabet characters A
and a are treated individually, as they have different ASCII values for a computer language
Accent sensitivity: Accent sensitivity is related that whether the accent is off or not, as a and á both
should be treated differently
Kana sensitivity: Kana sensitivity defines the difference between two Japanese words: Hiragana and
Katakana
Width sensitivity: It differentiates between a single-byte character (half- width) and representation of
the double-byte character of the same character
Warm standby: Warm standby is a method of redundancy in which the secondary system runs in the
background of the primary system. Data is mirrored in the secondary server at a regular interval, so in
this method sometimes both servers don't contain the same data.
Cold standby: Cold standby is the method of redundancy in which the secondary server is only called
when the primary server fails. Cold standby systems are used in cases where data is changed
infrequently or for nor critical applications. The physical replacement of Primary server with standby
server occurs in cold standby.
Non-clustered Index: A non-clustered index is a particular type of index in which the logical order of
the index does not match the physically stored order of the rows on disk. In non-clustered index data
and indexes are stored in different places. The leaf node of a non-clustered index does not consist of
the data pages. Instead, the leaf nodes contain index rows. Index id of non-clustered indexes is greater
than 0.
If GROUP BY is not used, HAVING works like a WHERE clause. HAVING clause can be used with the
aggregate function.
AD
Syntax:
WHERE Clause: The WHERE clause is applied to each row before they become a part of the GROUP BY
function in a query. 'WHERE' clause cannot use with the aggregate function.
Syntax:
1. WHERE condition;
o Mutual Recursion: By Using mutually recursive stored procedure, indirect recursion can be achieved
o Chain Recursion: If we extend mutual recursion process then we can achieve chain recursion.
10) What are the advantages of using stored procedures in SQL Server?
A list of advantages of Stored Procedures:
o Stored procedures help in reducing the network traffic and latency. It boosts up the application
performance.
o Stored procedures facilitate the reusability of the code.
o Stored procedures provide better security for data.
o You can encapsulate the logic using stored procedures and change stored procedure code without
affecting clients.
o It is possible to reuse stored procedure execution plans, which are cached in SQL Server's memory. This
reduces server overhead.
o It provides modularity of application.
Follow the below instructions to launch SQL Server Configuration Manager and do the following:
EXAMPLE:
Syntax:
16) In which TCP/IP port does SQL Server run? Can it be changed?
SQL Server runs on port 1433. Yes, it can be changed from the network utility TCP/IP properties.
17) What are the authentication modes in SQL Server? How can it be
changed?
Authentication mode is used for authentication of the user in SQL server, and it can be selected at the
time of setup of the database engine.
SQL Server supports two authentication modes: Window authentication mode and mixed mode.
Window authentication mode: This authentication mode is used to connect through a Microsoft NT
4.0 or window 2000 user account. In Windows authentication server take computer's username and
password for authentication purpose. SQL server authentication mode is disabled in this mode.
Mixed mode: It is used to connect with the instance of SQL Server using window authentication or SQL
Server authentication. In SQL server authentication mode a unique username and password are required
for a particular database, as it will not depend on windows account.
You can watch the trace results when the trace runs.
You can store the trace results in a table.
You can find out the bugs in queries and diagnose it.
If it is necessary, you can start, stop, pause and modify the trace results.
DBCC CHECKDB: It makes sure that table in the database and the indexes are correctly linked.
DBCC CHECKALLOC: It checks all pages in the database and makes sure that all are correctly allocated.
DBCC CHECKFILEGROUP: It checks all table file group for any damage.
IF the user executes the above commands, a database snapshot is created through the database engine,
and it continues in the consistent transactional state. After that, It runs the checks against stored
database snapshot, and after the completion of the command, it dropped the snapshot.
o It provides a set of rules to implement next class. Rules are provided through abstract methods.
o An Abstract method does not contain any definition.
o When a class contains all functions without the body, it is called as Fully Abstract Class.
o Another class can inherit only one abstract class.
Interface:
o If a class contains all abstract methods, then that class is called Interface.
o Interface support like multiple inheritances.
o An Interface does not contain any implementation
o We can only use public or abstract modifiers.
25) What is the difference between the application object and session
object?
The session object is used to maintain the session of each user. If a user enters into an application, he
gets a session id, and when he leaves application, then the session id is deleted. If he enters again into
the application, he gets a different session id, but for application object, once ad id is generated, it
maintains the whole application.
26) Is there any difference between primary key and unique with the NOT
NULL condition?
There is no difference between primary key and unique key but, a unique key will allow single NULL,
but in the primary key, no NULL is accepted.
27) What is the difference between value type and reference type?
Value type and reference type may be similar regarding declaration syntax and usage, but their
semantics are distinct. Value type and reference type differ with the memory area, where it stored.
The Value type is stored on the stack while reference type is stored on the heap.
The Value type stores real data while reference type stores reference to the data.
The value type can contain null value while reference type can't hold a null value.
The value types are derived from System. Value Type while Reference type is derived from System
Object. Means value type stores a particular value but a reference type stores a reference or address to
the object
String, Object, array are the reference type, as they are stored in heap and dynamic in nature
Example
Unboxing: explicit conversion of that same reference type (which is created by boxing process) back to
a value type is known as unboxing. In the unboxing process, a boxed value type is unboxed from the
heap and allocated on the stack.
Example
Only ASCII character data types are allowed in GET method while in POST method there is no restriction,
it allows binary data also.
In GET method length of the string is restricted while in POST method length of the string is not limited.
Get method is not secured as it can be bookmarked but, post method is secured as it cannot be
bookmarked
Get method is stored in browser history but post method is not stored in browser history
The primary purpose of log shipping is to increase database availability just like replication. On each of
secondary database, log backups are applied particularly.
o Firstly take a backup of transaction log file on Primary SQL server instance
o Copy the log file on secondary SQL server instance
o Restore the Log backup file onto secondary SQL Server instance
o SQL CHECK - Idera: It is used to monitor server activities and memory levels.
o SQL DOC 2 - RedGate: It is used to document the databases.
o SQL Backup 5 - RedGate: It is used to automate the Backup Process.
o SQL Prompt - RedGate: It provides IntelliSense for SQL SERVER 2005/2000.
o Lite Speed 5.0 - Quest Soft: It is used for Backup and Restore.
34) What are the different types of collation sensitivity in SQL Server?
There are four types of collation sensitivity in SQL Server:
o Case sensitivity
o Accent sensitivity
o Kana Sensitivity
o Width sensitivity
A patch is a program installed in the machine to rectify the problem occurred in the system and ensured
the security of that system. The hotfix is a Kind of Patches provided by the Microsoft.
In Microsoft SQL Server, hotfixes are small patches designed to address specific issues, most commonly
to freshly-discovered security holes. Hotfix response proactively against any bug
36) What is the most common trace flags used with SQL Server?
Trace flag in SQL server sets the specific characteristic of the server. It works as an "IF" condition for the
SQL Server. The most common trace flags used with SQL Server are:
37) How will you decide the active and passive nodes?
Open Cluster Administrator checks the SQL Server group where you can see the current owner. So the
current owner is the active node, and other nodes are passive. Because at one time only one node can
be active and must be in the passive mode in a two node.
38) What is the use of FLOOR function in SQL Server?
FLOOR function is used to round up a non-integer value to the previous least integer. Floor expression
returns a unique value after rounding down the expression.
SYNTAX:
1. FLOOR (expression)
For example:
FLOOR (7.3)
SYNTAX:
1. SIGN (number)
2.
3. If the number>0, then it will return +1
4. If the number=0, then it will return 0
5. If the number<0, then it will return -1
A subquery can be Added to WHERE clause, the FROM clause, or the SELECT clause.
Following are the steps for deleting a table using SQL Server Management
o Transact-SQL functions
o Asymmetric keys
o Symmetric keys
o Certificates
o Transparent Data Encryption