Вы находитесь на странице: 1из 18

SQL QUESTIONS AND ANSWERS

1. What is the difference between TRUNCATE and DELETE commands? 2. Which system table contains information on constraints on all the tables created? 3. Explain normalization? 4. Types of SQL functions 5. WHAT OPERATOR PERFORMS PATTERN MATCHING? 6. What is database? 7. How can i hide a particular table name of our schema? 8. How do I eliminate the duplicate rows? 9. How do I display row number with records? 10. Find out nth highest salary from EMP table 11. Display Odd/ Even number of records 12. WHAT IS A INLINE VIEW 13. Which date function returns number value? 14. What are the more common pseudo-columns? 15. What is a relational database management system? 16. State the difference between a primary key and foreign key? 17. What is a synonym? 18. What is a view? 19. What is a schema? 20. What is a join, explain the types of joins? 21. What command is used to get back the privileges offered by the GRANT command? 22. What command is used to create a table by copying the structure of another table? 23. How can variables be passed to a SQL routine? 24. What is the use of the DROP option in the ALTER TABLE command? 25. What is a Cartesian product? 26. What is the usage of SAVEPOINTS, COMMIT and ROLLBACK? 27. What is difference between CHAR and VARCHAR2? What is the maximum SIZE allowed for each type? 28. How many LONG columns are allowed in a table? Is it possible to use LONG columns in WHERE clause or ORDER BY? 29. Can a view be updated/inserted/deleted? If Yes under what conditions? 30. What are the advantages of VIEW? 31. How can I find the total number of records in a table?

32. How can you compare a part of the name rather than the entire name? 33. What is GROUP BY? 34. How can I change my Oracle password? **************************************ANSWERS************************ *********** 1. What is the difference between TRUNCATE and DELETE commands?

TRUNCATE
It is a DDL statement Truncate command will remove all the rows from a table, leaving the table empty. Once table is truncated the data is lost and data cannot be rollback. It is an auto commit statement. In case of TRUNCATE Trigger doesn't get fired It free up the memory space Truncate is faster than delete

DELETE
It is DML statement Using Delete command we can remove specific rows from a table using where clause. Data can be rollback before issuing COMMIT It is not an auto commit statement. But in DML commands like DELETE. Trigger get fired

SYNTAX
TRUNCATE TABLE EMPLOYEES;

SYNTAX
DELETE FROM EMPLOYEES WHERE EMPLOYEE_ID = 100;

2. Which system table contains information on constraints on all the tables created? USER_CONSTRAINTS table contains the information on constraints created on all the tables.

SYNTAX
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME='EMPLOYEES'; OR SELECT * FROM USER_CONSTRAINTS; 3. Difference between decode and case?

Decode
It specify the single column Can compare only discrete values Cannot process null

Case
It specify the multiple columns Can handle range values (between, <, >) Processing time is faster when compared to Decode Can process null All the expressions (columns) must be of the same date types.

4. Types of functions Types of functions


Single row functions Multiple row functions
I.Case manipulation functions Functions II.character manipulation functions III. Date functions IV. Data type conversion V.Number Functions VI. General Functions 1. Group

Single row functions CASE MANIPULATION FUNCTIONS Lower - king Upper - KING Inticap - select inticatp(last_name) from employees; O/P King CHARACTER MANIPULATION FUNCTIONS SUBSTR - select upper(last_name) from employees; O/P - select lower(last_name) from employees; O/P

select substr(last_name,1,3) from employees;

INSTR LENGTH CONCAT REPLACE REVERSE

select instr(last_name,n) from employees;

select length(last_name) from employees;

select concat(first_name,last_name) from

employees; (only 2 arguement) select replace (last_name,a,123) from employees;

(a replace with 123)

select reverse(last_name) from employees; select lpad(last_name,20,#) from

LPAD / RPAD
employees;

LTRIM / RTRIM

select ltrim(last_name,k) from employees;

DATE FUNCTIONS
MONTHS_BETWEEN 10) from dual; (only months_between date functions returns a number) ADD_MONTHS NEXT_DAY LAST_DAY - select add_months(sysdate,3) from dual; - select next_day(sysdate,Friday) from dual; - select last_day (sysdate) from dual; - select months_between(sysdate,01-jan-

DATA TYPE CONVERSION


TO-DATE TO-CHAR TO_NUMBER

NUMBER FUNCTIONS
ROUND TRUNC MOD

General functions
NVL

it accepts 2 arguments. If the 1st argument is null

it return 2nd arguments value. Else it returns the 1st arguments value. NVL2

it accepts 3 arguments. 1st argument is null it

return 3rd arguments value. Else it returns the 2nd arguments value. NULLIF - it accepts 2 arguments. If the both arguments are equal it returns null. Else it returns the 1st arguments value. COALESCE - it accepts N number of arguments. It returns the 1st not null value.

Multiple row functions


Group functions
MAX MIN COUNT SUM AVG

5. WHAT OPERATOR PERFORMS PATTERN MATCHING? We have to use the LIKE operators in the where clause to perform the pattern matching.

SYNTAX
1.For finding first character pattern matching :Select * From employees Where last_name like a%; 2. For finding last character pattern matching :Select * From employees Where last_name like %a; 3.For finding the letter in any part of the last_name:Select * From employees Where last_name like %a% 6. What is database? A database is the collection of information where we can store the date, manipulate the date and retrieve the stored data. Database is designed so that we can store and manage the enterprise information

7. How can I hide a particular table name of our schema Using SYNONYMNS we can hide a particular table name of our schema.

SYNTAX
CREATE SYNONYMN EMP for EMPLOYEES; After creating the above synonymn we can access the data of EMPLOYEES table using EMP as table name as below

SELECT * from EMP; We can also give alternate name to the objects as well. 8. How do I eliminate the duplicate rows ? Using DISTINCT keyword we can eliminate duplicate records.

SYNTAX
SELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES; 9.How do I display row number with records? Using ROWNUM keyword we can display row number with records. Rownum is a pseudocolumn. After issuing a select statement, oracle does is to assign an increasing (starting with 1, increased by 1) number to each row returned.

SYNTAX
SELECT ROWNUM,EMPLOYEE_ID FROM EMPLOYEES; 10.Find out nth highest salary from emp table

SYNTAX
select salary from (select salary,rownum RK from (select salary from employees order by salary desc)) where RK=n; 11.Display Odd/ Even number of records We can use the MOD functions is number functions

SYNTAX
ODD: select * from employees where (rowid,1) in (select rowid, mod(rownum,2) from employees) Alternative query select * from employees where mod(employee_id,2)=0; EVEN: select * from employees

where (rowid,0) in (select rowid, mod(rownum,2) from employees) Alternative query select * from employees where mod(employee_id,2)=1; 12. WHAT IS A INLINE VIEW An inline view is a SELECT statement in the FROM-clause of another SELECT statement. In-line views are commonly used simplify complex queries by removing join operations and condensing several separate queries into a single query.

SYNTAX
SELECT SALARY FROM (SELECT SALARY , ROWNUN RK FROM (SELECT SALARY FROM EMPLOYEES ORDER BY SALARY DESC) ) WHERE RK=4 13. Which date function returns number value? MONTHS_BETWEEN date function returns number value. In that date function, we can able to find the months between the defined date by the user.

SYNTAX
select months_between (sysdate,'01-jan-10') from dual; date1 date2 The date1 is later than date2 Result will be in Positive. The date1 is earlier than date2 Result will be in Negative. The defined date format should be in DD-MM-YY. If we insert the other date format, the oracle server will through the error. 14. What are the more common pseudo-columns? A. ROWNUM Rownum is a pseudo column. It numbers the records in a result set. The first record that meets the where criteria in a select statement is

given rownum=1, and every subsequent record meeting that same criteria increases rownum. B. ROWID A rowid is a pseudo column (like versions_xid), that uniquely identifies a row within a table, but not within a database. It is possible for two rows of two different tables stored in the same cluster to have the same rowid. C.SYSDATE Sysdate is a pseudo column, Itll show the system date. D.SYSTIMESTAMP Systimestamp is a pseudo column, Itll show the system date with time E.USER USER is a pseudo column. It returns the name of the user currently connected D.UID UID is a pseudo column,itll display the user ID. For every user the oracle server has produces the unique ID for every user. 15. What is a relational database management system? RDBMS A database management software system that organizes data into a series of records that are stored in linked tables. This provides the ability to relate different records, fields and tables, and aids data access and data transformation. A relational Databse is collections of relation (or) two dimensional tables. The organization wants to store the information about all the employees in your company. In the relational databases the informational can store in the different tables. All the table have relations 16. State the difference between a primary key and foreign key?

PRIMARY KEY
Uniquely identifies each row of the table Itll not allow the null values

FOREIGN KEY
It is referencial identifier Itll allows the null values

Itll not allow the duplicate values Only one primary key allow in a table Primary key is unique Oracle server enforce the uniqueness by creating a unique index on the primary key column 17. What is a synonym?

Itll allows the duplicate values Each table can have more than one foreign key foreign key reference as Primary key in another table Oracle server doesnt enforce such unique index for the foreign key column.

SYNONYM is an alternative name for an object. The a. creating easy reference to a table. b. shorter length object name.

advantages are

SYNTAX
To create synonym CREATE SYNONYM SEMP for EMPLOYEES; To drop synonym Drop synonym SEMP; To create the public synonym Create public synonym dept for deparments; The public synonym is created so that the all users can access the synonyms. The database administrator can create the public synonym. And the removal of public synonym can be done only by the database administrator. Drop public synonym dept; To display all the synonyms created by the user Select * from user_synonyms; 18. What is a view? A VIEW is a virtual table. View logicaly a subset of data from two or more table. Views contains no data of its own Its a window through which the data from table can view. Types of Views VIEWS

10

SIMPLE VIEWS ONE NO NO YES

Number of tables Contains Functions Contains groups of data DML operations through view

COMPLEX VIEWS One or more YES YES Not always

SYNTAX
To create the view Create or replace view [View_name] AS Select statement To drop the view Drop view [view_name] WITH READ ONLY keyword Create or replace view [View_name] AS Select statement With read only By adding with read only keyword, the DML operators are restricted in the particular view. Advantages It is used to restrict data access It makes complex query easy Views can hide the complexity of data; for example a view could appear as Sales2000 or Sales2001, transparently partitioning the actual underlying table Views take very little space to store; the database contains only the definition of a view, not a copy of all the data it presents. 19. What is a schema? A SCHEMA is a collection of database objects. A schema is owned by a database user and has the same name as that user. Schema objects are logical structures created by users to contain, or reference, their data.

11

Schema objects include structures like tables, views, and indexes. 20. What is a join, explain the types of joins? Selecting data from 2 or more tables is called as joins. To link the two table, first we have to find out the column which is exist in the both the table Types of joins 1. Natural joins 2. Cross joins 3. Outer joins 4. Equi joins 5. Nonequijoins 6. Self joins

NATURAL JOINS
Natural joins clause is based on all columns in the two tables that have the same name. The selected rows frim the two tables that have equal values in all matched column. The natural joins automatically select the column which is common in the both tables. But the column name in the both table should be the same and data types as well SYNTAX Select column_name1,column_name2 From table1 NATURAL JOIN table2

CROSS JOINS
The cross join clause produces the cross product of two tables.

SYNTAX
Select column_name1,column_name2 From table1 CROSS JOIN table2

OUTER JOINS
Selecting matched, Un-matched records is called as outer joins.

12

Types of outer joins 1. left outer joins 2. Right outer joins 3. Full outer joins Left Outer Joins A joins between two tables that returns the matched rows as well as the unmatched rows from the left table is called as left outer join SYNTAX select e.department_id, d.department_name, from departments d left outer join employees e on (e.department_id = d.department_id); Right Outer Joins A joins between two tables that returns the matched rows as well as the unmatched rows from the Right table is called as Right outer join SYNTAX select e.department_id, d.department_name, from departments d Right outer join employees e on (e.department_id = d.department_id); Full Outer joins A join between that returns the matched rows and the unmatched rows from the both left and right tables is called as full outer joins. SYNTAX select e.department_id, d.department_name, from departments d full outer join employees e on (e.department_id = d.department_id); 21. What command is used to get back the privileges offered by the GRANT command? REVOKE command is used to get back the privileges offered by the GRANT command.

13

The SQL command revoke allows to take away System privileges and object privileges from users and roles

22. What command is used to create a table by copying the structure of another table?

SYNTAX
CREATE TABLE EMP AS SELECT * FROM EMPLOYEES WHERE 1=2 Invalid Condition the whole data will copy to the new table (EMP table). For copying the structure alone we have to give one invalid condtion in the where clause. 23. How can variables be passed to a SQL routine? using the & symbol a variables can be passed to a SQL routine. It is a SQLPLUS command. Entering the data in a row If we doesnt give the invalid condition in the where clause

SYNTAX
Insert into t1 values(&a,&b); We can assign the both the values every time. Insert into t1 values (&&a,&b); We can fix the a value as constant and b value will change 24. What is the use of the DROP option in the ALTER TABLE command? The use of the DROP option in the ALTER TABLE command is to drop a specific COLUMN.

SYNTAX
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME 25. What is a Cartesian product? A Cartesian product is a result set which contains all the possible combinations of each row in each table included in a query. A Cartesian product is almost always an incorrect result.

14

When a join condition is invalid or omitted completely the result is known as Cartesian product. By using the cross join , the Cartesian product will produce. To avoid the Cartesian product, insert the valid join condition. 26. What is the usage of SAVEPOINTS, COMMIT, ROLLBACK? COMMIT is used to confirm the changes done whenever a DML(INSERT/UPDATE/DELETE) statement is issued on a table. SYNTAX COMMIT; ROLLBACK is used to undo the changes done issued by a DML(INSERT/UPDATE/DELETE) statement command. SYNTAX ROLLBACK; Note:- we can undo the changes unless a COMMIT is not issued. SAVEPOINT We specify the savepoint after the current transaction with specified name. We can rollback to that particular point by rollback to savepoint_name

Example:Insert1 Update1 Savepoint A Insert 2 Update2 Savepoint B ROLLBACK TO A; The rollback operators execute upto the savepoint A. The update2 and insert2 will not be committed until we gave commit command. second savepoint If we gave the rollback command as First savepoint

15

27. What is difference between CHAR and VARCHAR2? What is the maximum SIZE allowed for each type? CHAR The char is a fixed-length character data type. The storage size of the char value is equal to the maximum size for this column. A char can be used when the data entries in a column are expected to be the same size. Maximum size is 2000 and (minimum/default) is 1 VARCHAR The varchar is a variable-length character data type. The storage size of the varchar value is the actual length of the data entered, not the maximum size for this column. A varchar can be used when the data entries in a column are expected to vary considerably in size. Maximum size is 4000 and (minimum/default) is 1

28. 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 in each table. Long column cannot be included in group by clause (or) order by clause. Long column is not copied when a table is created using sub-query. No constraints can be defined on a long column. 29. Can a view be updated/inserted/deleted? If Yes under what conditions? You cannot add the data through a view, if the view contains the following. Group Functions Group by Clause DISTINCT Keyword Pseudo column ROWNUM keyword Columns defined by expressions NOT NULL column in the base table that are not selected by view. 30. What are the advantages of VIEW?

16

To restrict data access To make complex queries easy To provide data independence To present different views of same data 31. How can I find the total number of records in a table? To find the number of records in a table we can use the COUNT(*) function.

SYNTAX
SELECT COUNT(*) FROM EMPLOYEES; 32. How can you compare a part of the name rather than the entire name? By using LIKE operator in the where clause we can compare the part of the name. Example:Select employee_id,last_name from employees Where last_name like %A; 33.What is GROUP BY? The GROUP BY statement is used in conjunction with the aggregate functions to group the result-set by one or more columns. The GROUP BY clause can be used in a SELECT statement to collect data across multiple records and group the results by one or more columns. If the arguement / Expression is added in the select statement with the group function. That expression will include with the group by clause in the statement. If you fail to include the expression in the GROUP BY clause, the ORACLE server through the error. The GROUP BY column doesnt have to be in the select list.

17

SYNTAX
SELECT EMPLOYEE_ID,FIRST_NAME,MAX(SALARY) FROM EMPLOYEES WHERE SALARY >15000 GROUP BY EMPLOYEE_ID,FIRST_NAME; 34. How can I change my Oracle password? ALTER user hr identified by admin;

18

Вам также может понравиться