SQL Interview Questions and Answers (PDFDrive)
SQL Interview Questions and Answers (PDFDrive)
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
SQL
SQL is an English like language consisting of commands to store, retrieve, maintain & regulate
access to your database.
SQL*Plus
SQL*Plus is an application that recognizes & executes SQL commands & specialized
SQL*Plus commands that can customize reports, provide help & edit facility & maintain system
variables.
NVL
NVL : Null value function converts a null value to a non-null value for the purpose of evaluating
an expression. Numeric Functions accept numeric I/P & return numeric values. They are MOD,
SQRT, ROUND, TRUNC & POWER.
Date Functions
Date Functions are ADD_MONTHS, LAST_DAY, NEXT_DAY, MONTHS_BETWEEN &
SYSDATE.
Character Functions
Character Functions are INITCAP, UPPER, LOWER, SUBSTR & LENGTH. Additional
functions are GREATEST & LEAST. Group Functions returns results based upon groups of
rows rather than one result per row, use group functions. They are AVG, COUNT, MAX, MIN &
SUM.
COLUMN
COLUMN command define column headings & format data values.
BREAK
BREAK command clarify reports by suppressing repeated values, skipping lines & allowing for
controlled break points.
COMPUTE
1 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
SET
SET command changes the system variables affecting the report environment.
SPOOL
SPOOL command creates a print file of the report.
JOIN
JOIN is the form of SELECT command that combines info from two or more tables.
Types of Joins are Simple (Equijoin & Non-Equijoin), Outer & Self join.
Equijoin returns rows from two or more tables joined together based upon a equality condition
in the WHERE clause.
Non-Equijoin returns rows from two or more tables based upon a relationship other than the
equality condition in the WHERE clause.
Outer Join combines two or more tables returning those rows from one table that have no direct
match in the other table.
Self Join joins a table to itself as though it were two separate tables.
Union
Union is the product of two or more tables.
Intersect
Intersect is the product of two tables listing only the matching rows.
Minus
Minus is the product of two tables listing only the non-matching rows.
Correlated Subquery
Correlated Subquery is a subquery that is evaluated once for each row processed by the
parent statement. Parent statement can be Select, Update or Delete. Use CRSQ to answer
multipart questions whose answer depends on the value in each row processed by parent
statement.
Multiple columns
Multiple columns can be returned from a Nested Subquery.
Sequences
Sequences are used for generating sequence numbers without any overhead of locking.
Drawback is that after generating a sequence number if the transaction is rolled back, then that
2 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
Synonyms
Synonyms is the alias name for table, views, sequences & procedures and are created for
reasons of Security and Convenience.
Two levels are Public - created by DBA & accessible to all the users. Private - Accessible to
creator only. Advantages are referencing without specifying the owner and Flexibility to
customize a more meaningful naming convention.
Indexes
Indexes are optional structures associated with tables used to speed query execution and/or
guarantee uniqueness. Create an index if there are frequent retrieval of fewer than 10-15% of
the rows in a large table and columns are referenced frequently in the WHERE clause. Implied
tradeoff is query speed vs. update speed. Oracle automatically update indexes. Concatenated
index max. is 16 columns.
Data types
Max. columns in a table is 255. Max. Char size is 255, Long is 64K & Number is 38 digits.
Cannot Query on a long column.
Char, Varchar2 Max. size is 2000 & default is 1 byte.
Number(p,s) p is precision range 1 to 38, s is scale -84 to 127.
Long Character data of variable length upto 2GB.
Date Range from Jan 4712 BC to Dec 4712 AD.
Raw Stores Binary data (Graphics Image & Digitized Sound). Max. is 255 bytes.
Mslabel Binary format of an OS label. Used primarily with Trusted Oracle.
Transaction
Transaction is defined as all changes made to the database between successive commits.
Commit
Commit is an event that attempts to make data in the database identical to the data in the form.
It involves writing or posting data to the database and committing data to the database. Forms
check the validity of the data in fields and records during a commit. Validity check are
uniqueness, consistency and db restrictions.
Posting
Posting is an event that writes Inserts, Updates & Deletes in the forms to the database but not
3 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
Rollback
Rollback causes work in the current transaction to be undone.
Savepoint
Savepoint is a point within a particular transaction to which you may rollback without rolling
back the entire transaction.
Set Transaction
Set Transaction is to establish properties for the current transaction.
Locking
Locking are mechanisms intended to prevent destructive interaction between users accessing
data. Locks are used to achieve.
Consistency
Consistency : Assures users that the data they are changing or viewing is not changed until the
are thro' with it.
Integrity
Assures database data and structures reflects all changes made to them in the correct
sequence. Locks ensure data integrity and maximum concurrent access to data. Commit
statement releases all locks. Types of locks are given below.
Data Locks protects data i.e. Table or Row lock.
Dictionary Locks protects the structure of database object i.e. ensures table's structure does
not change for the duration of the transaction.
Internal Locks & Latches protects the internal database structures. They are automatic.
Exclusive Lock allows queries on locked table but no other activity is allowed.
Share Lock allows concurrent queries but prohibits updates to the locked tables.
Row Share allows concurrent access to the locked table but prohibits for a exclusive table lock.
Row Exclusive same as Row Share but prohibits locking in shared mode.
Shared Row Exclusive locks the whole table and allows users to look at rows in the table but
prohibit others from locking the table in share or updating them.
Share Update are synonymous with Row Share.
4 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
Deadlock
Deadlock is a unique situation in a multi user system that causes two or more users to wait
indefinitely for a locked resource. First user needs a resource locked by the second user and
the second user needs a resource locked by the first user. To avoid dead locks, avoid using
exclusive table lock and if using, use it in the same sequence and use Commit frequently to
release locks.
Mutating Table
Mutating Table is a table that is currently being modified by an Insert, Update or Delete
statement. Constraining Table is a table that a triggering statement might need to read either
directly for a SQL statement or indirectly for a declarative Referential Integrity constraints.
Pseudo Columns behaves like a column in a table but are not actually stored in the table. E.g.
Currval, Nextval, Rowid, Rownum, Level etc.
SQL*Loader
SQL*Loader is a product for moving data in external files into tables in an Oracle database. To
load data from external files into an Oracle database, two types of input must be provided to
SQL*Loader : the data itself and the control file. The control file describes the data to be loaded.
It describes the Names and format of the data files, Specifications for loading data and the Data
to be loaded (optional). Invoking the loader sqlload username/password controlfilename .
5 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
What is the advantage of specifying WITH GRANT OPTION in the GRANT command?
The privilege receiver can further grant the privileges he/she has obtained from the owner to
any other user.
START or @.
What is the value of comm and sal after executing the following query if the initial value
of ‘sal’ is 10000 UPDATE EMP SET SAL = SAL + 1000, COMM = SAL*0.1;?
sal = 11000, comm = 1000.
Which command displays the SQL command in the SQL buffer, and then executes it?
RUN.
What command is used to get back the privileges offered by the GRANT command?
REVOKE.
Which date function is used to find the difference between two dates?
MONTHS_BETWEEN.
6 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
LIKE operator.
What is the use of the DROP option in the ALTER TABLE command?
It is used to drop constraints specified on the table.
What are the privileges that can be granted on a table by a user to others?
Insert, update, delete, select, references, index, execute, alter, all.
Which function is used to find the largest integer less than or equal to a specific value?
FLOOR.
Which is the subset of SQL commands used to manipulate Oracle Database structures,
including tables?
Data Definition Language (DDL).
What command is used to create a table by copying the structure of another table?
CREATE TABLE .. AS SELECT command
Explanation:
To copy only the structure, the WHERE clause of the SELECT command should contain a
FALSE statement as in the following.
CREATE TABLE NEWTABLE AS SELECT * FROM EXISTINGTABLE WHERE 1=2;
If the WHERE condition is true, then all the rows or rows satisfying the condition will be copied
7 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
TRUNCATE TABLE EMP; DELETE FROM EMP; Will the outputs of the above two
commands differ?
Both will result in deleting all the rows in the table EMP..
What is the output of the following query SELECT TRUNC(1234.5678,-2) FROM DUAL;?
1200.
What is the parameter substitution symbol used with INSERT INTO command?
&
8 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
What is ROWID?
ROWID is a pseudo column attached to each row of a table. It is 18 characters long, blockno,
rownumber are the components of ROWID.
9 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
What is difference between CHAR and VARCHAR2? What is the maximum SIZE allowed
for each type?
CHAR pads blank spaces to the maximum length.
VARCHAR2 does not pad blank spaces.
For CHAR the maximum length is 255 and 2000 for VARCHAR2.
How many LONG columns are allowed in a table? Is it possible to use LONG columns in
WHERE clause or ORDER BY?
Only one LONG column is allowed. It is not possible to use LONG column in WHERE or
ORDER BY clause.
What are the pre-requisites to modify datatype of a column and to add a column with
NOT NULL constraint?
10 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
If unique key constraint on DATE column is created, will it validate the rows that are
inserted with SYSDATE?
It won't, Because SYSDATE format contains time attached with it.
How to access the current value and next value from a sequence? Is it possible to access the
current value in a session before accessing next value?
Sequence name CURRVAL, sequence name NEXTVAL. It is not possible. Only if you access
next value in the session, current value can be accessed.
11 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
If a view on a single base table is manipulated will the changes be reflected on the base table?
If changes are made to the tables and these tables are the base tables of a view, then the
changes will be reference on the view.
A developer would like to use referential datatype declaration on a variable. The variable
name is EMPLOYEE_LASTNAME, and the corresponding table and column is
EMPLOYEE, and LNAME, respectively. How would the developer define this variable
using referential datatypes?
1. Use employee.lname%type.
2. Use employee.lname%rowtype.
3. Look up datatype for EMPLOYEE column on LASTNAME table and use that.
4. Declare it to be type LONG.
12 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
3. %notfound
4. %rowcount
5. %rowtype
If left out, which of the following would cause an infinite loop to occur in a simple loop?
1. LOOP
2. END LOOP
3. IF-THEN
4. EXIT
Under which circumstance must you recompile the package body after recompiling the package
specification?
1. Altering the argument list of one of the package constructs
2. Any change made to one of the package constructs
3. Any SQL statement change made to one of the package constructs
4. Removing a local variable from the DECLARE section of one of the package constructs
13 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
Procedure and Functions are explicitly executed. This is different from a database trigger. When
is a database trigger executed?
1. When the transaction is committed
2. During the data manipulation statement
3. When an Oracle supplied package references the trigger
4. During a data manipulation statement and when the transaction is committed
Which Oracle supplied package can you use to output values and messages from
database triggers, stored procedures and functions within SQL*Plus?
1. DBMS_DISPLAY
2. DBMS_OUTPUT
3. DBMS_LIST
4. DBMS_DESCRIBE
A stored function must return a value based on conditions that are determined at
runtime. Therefore, the SELECT statement cannot be hard-coded and must be created
dynamically when the function is executed. Which Oracle supplied package will enable
this feature?
1. DBMS_DDL
2. DBMS_DML
3. DBMS_SYN
14 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
4. DBMS_SQL
A stored function must return a value based on conditions that are determined at
runtime. Therefore, the SELECT statement cannot be hard-coded and must be created
dynamically when the function is executed. Which Oracle supplied package will enable
this feature?
1. DBMS_DDL
2. DBMS_DML
3. DBMS_SYN
4. DBMS_SQL
Will give you a zero if it is a number or greater than zero if not numeric (actually gives the count
of non numeric characters)
Method 2:
select instr(translate('wwww',
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X')
FROM dual;
Here N = 10
The following query has a Problem of performance in the execution of the following query
where the table ter.ter_master have 22231 records. So the results are obtained after hours.
15 / 16
Sql Interview Questions and Answers
Written by Shaukat
Wednesday, 15 August 2012 13:49 -
What are steps required tuning this query to improve its performance?
-Have an index on TER_MASTER.REPNO and one on ERMAST.REPNO
-Be sure to get familiar with EXPLAIN PLAN. This can help you determine the execution path
that Oracle takes. If you are using Cost Based Optimizer mode, then be sure that your statistics
on TER_MASTER are up-to-date. -Also, you can change your SQL to:
SELECT a.*
FROM ter.ter_master a
WHERE NOT EXISTS (SELECT b.repno FROM ermast b
WHERE a.repno=b.repno) AND
(a.brepno = 'ALL' or a.repno > a.brepno)
ORDER BY a.repno;
What is the difference between Truncate and Delete interms of Referential Integrity?
DELETE removes one or more records in a table, checking referential Constraints (to see if
there are dependent child records) and firing any DELETE triggers. In the order you are deleting
(child first then parent) There will be no problems.
TRUNCATE removes ALL records in a table. It does not execute any triggers. Also, it only
checks for the existence (and status) of another foreign key Pointing to the table. If one exists
and is enabled, then you will get The following error. This is true even if you do the child tables
first.
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
You should disable the foreign key constraints in the child tables before issuing the
TRUNCATE command, then re-enable them afterwards.
16 / 16