Vous êtes sur la page 1sur 32

Oracle

--------

Overview of DBMS
----------------------
--> DBMS = Database Management System

--> It's a software, which offers to store, maintain and manage the databases.

--> DataBase: "DataBase" is the collection of large tabular formatted data. In


other words, database is a collection of interlinked tables.

--> Each table can be called as entity here.

--> There may be some links (references) between one table and another table.

Ex: College db, Company db etc.

--> Table: It's a collection of some data in the form of rows and columns.

--> Row: "The horizontal collection of data values" is called as "row".

--> Column: "The vertical collection of data values" is called as "column".

--> To store this kind of data, we require a software. That software is "DBMS"
software.

--> Always the DBMS is called as a "Package".

====================================

Classification of Software
------------------------------
1) Languages
2) Packages

1) Languages
----------------
--> These are known as "Programming Languages", where the programmer can
development some "Computer programs".

Ex: Pascal, Cobol, C, C++, VB, ASP, VC++, Java, .NET etc.

--> The overall target of any programming language is to develop some "Software
applications".

--> Whenever that application is used by any company / organization, then that can
be called as "Project".

Ex: Banking Project, College Project, Online Shopping Project etc.

2) Packages
--------------
--> The ready-made software could be called as "Package".
--> This can be directly used by the user.

Classification of Packages
------------------------------
1) Word Processing Packages
2) Presentation and Designing Packages
3) WorkSheet Packages
4) DBMS Packages
5) Accounting Packages
6) Utility Packages

====================================

1) Word Processing Packages


----------------------------------
--> It contains necessary options to create and develop documents, with rich
features like better formatted text, images, colors etc.

Ex: WordStar, WordPerfect, MS-Word

2) Presentation Packages
------------------------------
--> It offers to create better-looking presentations with multi-media features.

Ex: MS Power Point, Flash etc.

3) WorkSheet Packages
---------------------------
--> Offers to develop work sheets, work books.

Ex: Lotus 123, MS Excel etc.

4) DBMS Packages
----------------------
--> Contains necessary features to create, store, manipulate and manage the
databases.

Ex: dBase, FoxPro, Visual FoxPro, MS Access, Sybase, DB2, Oracle, MS Sql Server
etc.

5) Accounting Packages
----------------------------
--> Used for all purposes of "Financial Accounting" in any Ltd., Pvt Ltd.
Organizations.

Ex: Tally, TATA-EX, Power, Wings, 4 to 4, Focus etc.

6) Utlity Packages
---------------------
--> These are the useful softwares, which can be used by any type of user with
general purpose.

=====================================

Types of DataBases
-----------------------

1) File DataBases

These databases could be maintained in the form of db file. The main


drawback of these databases is the file database can be accessed by only a single
client at-a-time over the network. In other words, it would not be accessed from
multiple clients simultaneously.

2) Server DataBases

In order to overcome the above limitation of file databases, server


databases were introduced. The server databases gets maintained in the form of
"objects". The advantage of "objects" maintenance in the databases is, the db
object could be accessible from any no. of clients over the network
simultaneously.

=====================================

Application Development Tools


------------------------------------
1) Backend
2) Frontend

1) Backend
--------------
--> A DBMS software could be called as "Backend" tool.

--> It's major activities are to store, maintain and manage the large scale
databases.

--> It offers only storage mechanisam and doesn't offers UI development.

--> To offer the UI for the application, we require another tool known as
"Frontend" tool.

Ex: All DBMS software, mentioned above.

2) Frontend
--------------
--> It's a programming language, which is used to develop the UI.

--> This application can be connected with the backend storage mechanism, as per
necessity.
Ex: VB, VC++, D2K (Developer 2000), .NET, Java

====================================

Database Architectures:
----------------------------

The db architecture specifies type of backend and type of frontend being used.
There are four db architures are available.

A) One-Tier Architecture
B) Two-Tier Architecture
C) Three-Tier Architecture
D) Multi-Tier Architecture

A) One-Tier Architecture:
------------------------------
--> It contains one tool that acts as both backend and frontend.

Ex:
MS Access
Visual FoxPro
etc.

Limitation of One-Tier
--------------------------
--> The tool may not support better backend features / better frontend features.

B) Two-Tier Architecture:
-----------------------------
--> "One tool acts as backend and another tool acts as frontend".
--> It overcomes the limitations of One-Tier architecture.

Ex:
Oracle / Developer 2000
MS Access / VB
MS Access / VC++
FoxPro / VB
FoxPro / VC++

Limitation of Two-Tier:
---------------------------
--> Both these backend and frontend tools must be released by the same company.

C) Three-Tier Architecture
-------------------------------
--> It is an extension of Two-Tier architecture.
--> It contains backend and frontend tools seperately and also contains "Driver"
software.
--> The "driver" software can also be called as "Provider" / "Interface" software.
--> It acts as mediator between backend and frontend.
--> It's small logical software, which can't be opened individually.
--> Using this driver software only, Three-Tier architecture is possible.
--> This driver software may be released by the backend company or frontend
company.

Advantage of Three-Tier:
-----------------------------
--> The backend and frontend tools may be released by two different companies.

Limitation of Three-Tier:
-----------------------------
--> It does't supports "online db communications".

D) Multi-Tier Architecture:
-------------------------------
--> It can also be called as "N-Tier architecture".
--> It is meant for "Online db communications".
--> It is applicable for "WWW" (World Wide Web)
--> It is an extension of Three-Tier.
--> It is implemented by "Web development languages" only. Ex: J2EE, ASP, ASP.NET,
PHP.

====================================

Models of DBMS
-------------------

1) DBMS (Database Management System)

It offers general db features like db creation, storage, maintenance,


manipulations and administration etc., only.

2) RDBMS (Relational Database Management System)

In addition to the standard DBMS features, it supports "Referential


Integrity" concept.

3) ORDBMS (Object Oriented Relational DBMS)

In addition to the RDBMS features, it offers maintenance of db in the form


of db objects.

4) NDBMS (Network Oriented DBMS)

In addition to the ORDBMS features, it contains network based db


connections, network oriented administration features.

IMP Note: "Oracle" known as DBMS, RDBMS, ORDBMS, NDBMS also.

=====================================

Oracle Corp. Products


-------------------------
1) Oracle
2) D2K (Developer 2000)

1) Oracle
-----------
--> It acts as backend tool.

2) D2K
---------
--> It acts as frontend tool.
--> It contains internal link with oracle db.

====================================

Oracle
--------
1) SQL (Structured Query Language)
2) PL/SQL (Procedural Language extensions for SQL)

====================================

Versions of Oracle
---------------------

i) Oracle 2.0
--------------
--> Released in 1979.
--> Supports minimum SQL functionality with db storage mechanism.
--> It is the single user dbms.

ii) Oracle 3.0


---------------
--> Released in 1983.
--> Supported by UNIX O/S only.
--> It is the multi-user dbms.

iii) Oracle 4.0


----------------
--> Released in 1984.
--> New features are added into SQL, when compared with Oracle 3.

iv) Oracle 5.0


----------------
--> Released in 1985.
--> New features are added into SQL, when compared with Oracle 4.

v) Oracle 6.0
---------------
--> Released in 1988.
--> Contains better security features and backup features.
vi) Oracle 7.0
----------------
--> Released in 1992.
--> Contains new features like "Referential integrity" and "triggers" etc.
--> PL/SQL was introduced.

vii) Oracle 8.0


-----------------
--> Released in 1997.
--> Contains "Object Oriented Features" in dbms, so that it is known as ORDBMS.

viii) Oracle 8i
-----------------
--> Released in 1999.
--> Supports "online db transactions" on Internet.
--> The letter "i" stands for "Internet"

viii) Oracle 9i
-----------------
--> Released in 2001.
--> Contains few misclaneous additional features, when compared with 8i.
--> Support of XML documents in db.

ix) Oracle 10g


-----------------
--> Relased in 2003.
--> The letter "g" stands for "grid-computing" technology.

x) Oracle 11g
----------------
--> Relased in 2005.
--> The letter "g" stands for "grid-computing" technology.

====================================
====================================

Data Types of Oracle


------------------------
1) NUMBER
2) CHAR
3) VARCHAR / VARCHAR2
4) DATE
5) LONG

=====================================

1) NUMBER
--------------
--> To hold any type of numerical values.
--> It can hold positive or negetive values also.
--> It can hold integer values / floating point values.

Syn: NUMBER(width)
NUMBER(width,dec)

Note: Here, "width" means total no. of digits.

Ex: NUMBER(3) ==> (Max: 999)


NUMBER(5) ==> (Max: 99999)
NUMBER(5,2) ==> (Max: 999.99)
NUMBER(10,4) ==> (Max: 999999.9999)

Note: The maximum value for "width" : 19


The maximum value for "dec" : 8

2) CHAR
----------
--> To store the character type of values.
--> It can hold single / multiple characters also.
--> Use single quotes ( 'xxxx' ) while specifying the string values.

Syn: CHAR(width)

Here, width means no. of characters to be stored.

Ex: CHAR(20)

Note: The min value for width is 1. Max width is 2000.

Limitation of CHAR: It occupies the un-used memory locations also.

3) VARCHAR / VARCHAR2
------------------------------
--> This is also used to hold string type values.
--> It is preferrable, when compared with CHAR.
--> It overcomes the limitation of CHAR type.
--> Use single quotes ( 'xxxx' ) while specifying the string values.

Syn: VARCHAR2(width)

Note: Min width is 1. Max width is 4000.

4) DATE
----------
--> To hold date type of values
--> Use single quotes ( 'xxxx' ) while specifying the date values.
--> Date format: 'dd-mon-yy'
--> Ex Date : '2-apr-08'

Syn: DATE
5) LONG
----------
--> It can hold OLE objects.
--> One table able to contain exactly one LONG column. More than one long columns
are not allowed in the table.
--> Max capacity: 2 GB

Syn: LONG

====================================

Classification of SQL Commands


-------------------------------------
I) DDL (Data Definition Language)
II) DML (Data Manipulation Language)
III) TCL (Transaction Control Language)
IV) DCL (Data Control Language)

=====================================

I) "DDL" Commands:
------------------------

1) CREATE

To create a new table

2) DROP

To delete an existing table

3) RENAME

To rename an existing table, with a different name

4) ALTER

To make modifications in the table structure.

II) "DML" Commands:


--------------------------

1) INSERT

To insert a new row into the existing table.

2) DELETE

To delete an existing row.

3) UPDATE
To make changes / modifications in table data.

4) SELECT

To retrieve the data from existing table.

III) "TCL" Commands:


--------------------------
1) ROLLBACK
2) COMMIT
3) SAVEPOINT

IV) "DCL" Commands:


---------------------------
1) GRANT
2) REVOKE

===================================

Executing the above commands practically


===========================

a) Creating a new table


----------------------------

Command: CREATE (DDL)

Syn: CREATE TABLE TableName(Column1 DataType(width), Column2


DataType(width), Column3 DataType(width), ........);

B) Inserting the data into the table


----------------------------------------

Command: INSERT(DML)

Syn: INSERT INTO TableName VALUES(Val1,'Val2',Val3,....);

Note: While speciying the values, copulsory use single quotes for
CHAR / VARCHAR2 / DATE types of values.

C) Retrieving the data from existing table


------------------------------------------------

Command: SELECT(DML)

Syn: SELECT * FROM TableName;


SELECT ColumnName FROM TableName;
SELECT Col1,Col2,.... FROM TableName;

Here, * means "all columns".


D) Retrieving the list of all existing tables
------------------------------------------------

Command: SELECT(DML)

Syn: SELECT * FROM TAB;

Here, TAB represents all the tables.

E) Dropping an existing table:


----------------------------------

Command: DROP (DDL)

Syn: DROP TABLE TableName;

F) Renaming a table:
------------------------

Command: RENAME (DDL)

Syn: RENAME OldTableName TO NewTableName;

====================================

OPERATORS
--------------

1) Arithmatical op

+, -, *, /

2) Relational op

<, >, <=, >=, =, <>

3) Logical op

AND, OR, NOT

4) Special op

IN,
NOT IN,
BETWEEN
NOT BETWEEN
LIKE
NOT LIKE
IS NULL
IS NOT NULL
===================================

Working with special op


----------------------------

1) IN
-------
--> This operator contains specific possibilities for a specific column.
--> Whenever the column data is matched with any one of the specified values, then
that data can be received.

Syn: WHERE ColName IN (Val1,Val2,Val3.....);

2) NOT IN
------------
--> It is exactly reverse to IN operator.
--> It retrieves the data except the given data values.

Syn: WHERE ColName NOT IN (Val1,Val2,Val3.....);

3) BETWEEN
---------------
--> It displays the data, whenever it is in the specified boundaries (with min and
max values).

Syn: WHERE ColName BETWEEN MinVal AND MaxVal;

4) NOT BETWEEN
--------------------
--> It displays the data, whenever it is not in the specified boundaries (with min
and max values).

Syn: WHERE ColName NOT BETWEEN MinVal AND MaxVal;

5) LIKE
---------
--> It offers to specify a format for the value.
--> It retrieves the data, which is matched with that format.
--> In order to specify the "format", we require to use "format specification
characters".

Format specification chars


-------------------------------
1) % (Multiple char)
2) _ (Single char)

Syn: WHERE ColName LIKE 'format';


6) NOT LIKE
---------------
--> It is reverse to LIKE operator.
--> It retrieves the data, which is not matched with that format.

Syn: WHERE ColName NOT LIKE 'format';

7) IS NULL
-------------
--> It retrieves only NULL values in the table.

Syn: WHERE ColName IS NULL;

8) IS NOT NULL
------------------
--> It retrieves the data except NULL values in the table.

Syn: WHERE ColName IS NOT NULL;

===================================

Deleting table data


----------------------
--> This is used to delete one / more row(s) in the table.

Command: DELETE (DML)

Types of deletion
--------------------
a) Un-conditional deletion
b) Conditional deletion

====================================

a) Un-conditional deletion
-------------------------------
--> This includes with deleting the rows, without any condition.
--> This leads to deletion of all the rows in the table.

Syn: DELETE FROM TableName;

b) Conditional deletion
---------------------------
--> This is to delete specific no. of rows in the table, based on the given
condition.

Syn: DELETE FROM TableName WHERE Condition;

==================================
Updating the table data
----------------------------
--> This is used to update one / more row(s) in the table.

Command: UPDATE (DML)

Types of updation
--------------------
a) Un-conditional updation
b) Conditional updation

a) Un-Conditional updation
--------------------------------
Syn: UPDATE TableName SET ColName = value;

b) Conditional updation
----------------------------
Syn: UPDATE TableName SET ColName = value WHERE condition;

===================================
===================================

Altering the table


--------------------
--> This is to make changes in the "table structure".
--> Table Structure is format that explains about all the column names, data types
and width.

Ex:

Table Structure for "Students" Table


-------------------------------------------

Column Name DataType Width


---------------- ------------ -------
StuNo NUMBER 5
Name VARCHAR2 20
DOB DATE --

====================================

Possible modifications in the table structure


---------------------------------------------------
1) Adding a new column.
2) Dropping an existing column.
3) Change the data type of existing column.
4) Change the width of existing column.

Command: ALTER (DDL)


====================================

1) Adding a new column


----------------------------

Syn: ALTER TABLE TableName ADD(NewColName Datatype(width));

2) Dropping an existing column


-------------------------------------

Syn: ALTER TABLE TableName DROP COLUMN ExistingColName;

3) Changing the data type of existing column


----------------------------------------------------

Syn: ALTER TABLE TableName MODIFY(ExistingColName NewDataType(width));

Rule to follow: The given column should be "empty", to change its data type.

4) Changing the width of existing column


------------------------------------------------

Syn: ALTER TABLE TableName MODIFY(ExistingColName DataType(NewWidth));

Rule to follow: The given column should be "empty", to decrease the column
width. But it may / may not be empty to increase the column width.

===================================

Integrity Constraints
------------------------

--> Integrity constraints are the rules that can be applied to a specific column
in the table.

--> The main purpose of applying these rules is to maintain perfect data in the
tables, without having any mistakes.

--> According to this the db manager creates the tables along with some rules.

--> While inserting / updating the data of the table, db storage mechanism
automatically checks the given condition(s). Whenever the given rules are
satisfied, then only it allows the data to be inserted into the table. Otherwise,
it won't allow the data to the stored.

--> But the rules are various types. In order to implement different rules, Oracle
offers several constraints.

Constraints
--------------
1) NOT NULL
2) UNIQUE
3) PRIMARY KEY
4) CHECK
5) REFERENCES

====================================

1) NOT NULL
---------------

--> It is one of the constraints, which make a column as mandatory column.


--> That means the user can't insert NULL values into NOT NULL column.
--> Finally the NOT NULL column can't be blank. In other words, the NOT NULL
column can't contain NULL values.

Syn: ColName DataType(width) NOT NULL

2) UNIQUE
-------------

--> UNIQUE means "without duplicates".


--> It is the another constraint available in Oracle, which avoids entry of
duplicate values in a specific column.
--> The UNIQUE column can't contain any duplicate values.

Syn: ColName DataType(width) UNIQUE

3) PRIMARY KEY
--------------------

--> According to the good db designing practice, it is strongly suggested to


maintain a primary key column for each table.
--> The PRIMARY KEY column can't contain duplicates and NULL values also.

--> PRIMARY KEY = UNIQUE + NOT NULL

--> Generally, "ID" columns are most suitable for primary key columns.

Syn: ColName DataType(width) PRIMARY KEY

4) CHECK
-----------

--> This is used to provide the user-defined conditions are constraints.

--> Here, the developer gives a condition. The column can contain the data, which
satisfies the given condition.

Syn: ColName DataType(width) CHECK (Condition)

5) REFERENCES
-------------------
--> It is the most important constraint, using which it is possible to implement
"Referential Integrity".
--> The "Referential Integrity" concept discussed in the next chapter.

====================================

Referential Integrity
------------------------

--> It is the major feature of RDBMS.

--> As Oracle called as RDBMS, it supports "Referential Integrity" concept.

--> According to this, it is possible to establish "relations" among two or more


tables.

--> According to this Referential Integrity, two kinds of tables are maintained.

1) Master Table
2) Detailed Table

1) Master Table
------------------
--> It contains the master (main) information.
--> Depending on master table of "detailed table" can be created.
--> In other words, the master table contains the "independent" data.
--> It should be defined along with "primary key" column.

2) Detailed Table
---------------------
--> It contains the "dependent" data, which depends on master table data.
--> It contains a reference to master table.
--> It should be defined along with "reference key" column.

=====================================

Steps for Development


---------------------------

--> Create the master table

create table mastertablename(primarykeycolname datatype(width) primary key,


colname datatype(width), ...);

--> Create the detailed table

create table detailedtablename(colname datatype(width), colname


datatype(width),..., referencekeycolname datatype(width) references
mastertable(primarykeycolname));

=====================================
IMP rules for Implementation of Referential Integrity
-------------------------------------------------------------

--> At first, master table is to be created and then detailed table is to be


created.

--> The master table should contain primary key col and detailed table should
contain reference key col. The reference key can also be called as "foreign key".

--> The names of primary key col and foreign key col generally will be same, but
those may be same or may not be same. That means there is no such restriction to
maintain same name for primary key and reference key columns.

--> One table can be the master table for multiple detailed tables also.

--> The detailed table may contain primary key, and can act as master table for
another detailed table.

--> The foreign key can be created along with "ON DELETE CASCADE" option, if
needed.

--> While inserting the data into master table, any duplicate and NULL values are
not allowed into primary key column.

--> While inserting the data into detailed table, the value to be inserted to into
the reference key column should be already exist in the primary key column at
master table.

--> The data at master table can't be deleted directly, whenever its respective
"child rows" are existed in the detailed table.

--> The datatype and width for primary key and foreign key should be same.

====================================

ON DELETE CASCADE
-------------------------

--> It is the additional option that could be used while the implementation of
detailed table.

--> Whenever the referential integrity has been implemented with this option, the
master table data directly can be deleted even though corresponding child records
are existed in the detailed table. At the time of this kind of deletion, the
respective child records automatically get deleted.

====================================

Constraint Naming:
/
-----------------------
1) System-defined Naming
2) User-defined Naming
====================================

Altering the table constraints


---------------------------------
1) Drop an existing constraint
2) Enable the constraint
3) Disable the constraint
4) Add new constraint

===================================

1) Drop an existing constraint


----------------------------------

Syn: ALTER TABLE TableName DROP CONSTRAINT ConstraintName;

2) Disable the constraint


----------------------------

Syn: ALTER TABLE TableName DISABLE CONSTRAINT ConstraintName;

3) Enable the constraint


----------------------------

Syn: ALTER TABLE TableName ENABLE CONSTRAINT ConstraintName;

4) Adding new constraints


------------------------------

i) Primary key:

Syn: ALTER TABLE TableName ADD CONSTRAINT ConstraintName PRIMARY


KEY(ColName);

ii) Unique
------------

Syn: ALTER TABLE TableName ADD CONSTRAINT ConstraintName


UNIQUE(ColName);

iii) Not Null


--------------

Syn: ALTER TABLE TableName MODIFY(ColName DataType(width) CONSTRAINT


ConstraintName NOT NULL);

iv) Check
-----------
Syn: ALTER TABLE TableName ADD CONSTRAINT ConstraintName
CHECK(Condition);

iv) References
-----------------

Syn: ALTER TABLE DetailedTableName ADD CONSTRAINT ConstraintName FOREIGN


KEY(PrimaryKeyCol REFERENCES DetailedTable(RefKeyCol);

===================================

Joins
------

--> The process of retrieving the data from two or more tables is called as
"Joins"

--> This join operation is possible, whenever there is "Referential Integrity"


among these tables.

Types of Joins:
------------------
1) Simple Join
2) Equi Join
3) Non-Equi Join
4) Outer Join

===================================

1) Simple Join
-----------------

Syn: SELECT * FROM TABLE1,TABLE2,.....;


Ex: SELECT * FROM EMP,DEPT;

Note: It retrives the correct data and wrong data also. Actually it merges the
each row detailed table with each row of master table.

2) Equi Join
--------------

--> It is an extension to Simple Join.

--> It retrieves only correct data.

--> It contains a condition with "=" operator.

Syn: SELECT * FROM MasterTableName, DetailedTableName WHERE


MasterTable.PrimaryKey = DetailedTable.ForeignKey;
3) Non-Equi Join
--------------------

--> It is an extension to Simple Join.

--> It retrieves only wrong data.

--> It contains a condition with a relational operator, other than "=" operator.

Syn: SELECT * FROM MasterTableName, DetailedTableName WHERE


MasterTable.PrimaryKey <> DetailedTable.ForeignKey;

4) Outer Join
----------------

--> It is an extension to Equi Join.

--> It retrives the data from master table, which not having the respective child
records also.

Ex:

Syn: SELECT * FROM MasterTableName, DetailedTableName WHERE


MasterTable.PrimaryKey = DetailedTable.ForeignKey(+);

====================================

Functions in Oracle
----------------------

--> Function: A function is just like a small program that performs a certain
process.

--> A function contains a name and it can be called with its name.

--> If necessary, one or more values can be sent to the function.

--> A function produces / returns a value, after completion of some logic.

====================================

Types of Functions supported by Oracle


----------------------------------------------
I) Pre-defined Functions
II) User-defined Functions

I) Pre-defined Functions
-----------------------------
--> A ready-made function is called as "Pre-defined" / "System-defined" function.
--> Those function can be called by the programmer.
II) User-defined Functions
-------------------------------
--> A function i.e. created by the programmer is called as "User-defined"
function.

====================================

Pre-defined Functions Categories in Oracle


-------------------------------------------------

--> These pre-defined functions offer pre-defined functionality.


--> There are two models of pre-defined functions available.

i) Aggregate Functions
--------------------------
--> These are also known as single row functions.
--> Generally, these functions can be called with "DUAL" table.

Syn: SELECT FunName(Arguments) FROM DUAL;

Note: DUAL is a system-defined table, which contains only one row and one
column. It is used to offer table representation for general purpose values.

Ex: SELECT SQRT(10) FROM DUAL;

Here, 10 is the general constant value, DUAL offers "table"


representation for 10.

--> Again, these aggregate functions are defined as several types.

Types of Aggregate functions


----------------------------------
A) Numeric Functions
B) Character / String Functions
C) Convertion Functions
D) Date Functions

-------------------------------------------------------------------

ii) Group Functions


----------------------

--> The group functions are also called as "Multi-row functions".


--> These functions performs the logic once per all the rows.

Ex: SELECT MAX(SAL) FROM EMP;


====================================

A) Numeric Functions
==============

1) SQRT(N)

Returns the square root value of N.

2) ABS(N)

Returns the absolute (positive) value of N.

3) FLOOR(N)

Returns the previous integer value of N. (Removes the decimal part).

Ex: 10.45 ==> 10

4) CEIL(N)

Returns the next integer value of N.

Ex: 10.45 ==> 11

5) ROUND(N)

Returns the rounded integer value of N.

Ex: 10.45 ==> 10


Ex: 10.62 ==> 11

6) ROUND(N,dec)

Returns the rounded floating point value of N, based on the given no. of
decimals.

7) POWER(M,N)

Returns M power N value.

8) SIN(N)

Returns the SIN value of N.

9) COS(N)

Returns COS value of N.

10) TAN(N)

Returns TAN value of N.

11) GREATEST(N1,N2,...)

Returns the maximum of given numbers.


12) LEAST(N1,N2,....)

Returns the minimum of given numbers.

13) LN(N)

Returns the natual log value of N.

14) LOG(M,N)

Returns the logarithm value base M of N.

===================================

B) String Functions
----------------------

1) UPPER('string')

Returns the upper case format of given string.

2) LOWER('string')

Returns the lower case format of given string.

3) INITCAP('string')

Returns the initial capitalization format of given string.

4) ASCII('chr')

Returns the ASCII code of given character

5) CHR(n)

Returns the respective character, based on the given ASCII value.

6) CONCAT(Val1,Val2)

Returns the concatinated format of the given twostrings.

7) LENGTH('string')

Returns the total no. of characters in the given string.

8) LPAD('string',length)

Adds "spaces" at the left side of given string, to maintain the given string
length.

9) RPAD('string',length)

Adds "spaces" at the right side of given string, to maintain the given
string length.

10) LTRIM('string')
Removes the extra "spaces" at left side of given string.

11) RTRIM('string')

Removes the extra "spaces" at right side of given string.

12) TRIM('string')

Removes the extra "spaces" at both sides of given string.

13) INSTR('string','chr')

Searches the string for the given character. If the given character is found
in the string, then it returns its corresponding character index. If it is not
found then it returns 0. The character index starts from 1.

14) INSTR('string','chr',startindex)

Same as above, but searching starts from given starting index.

15) INSTR('string','chr',startindex,occurance no)

Same as above, but searching starts from given starting index and findouts
the index of 'n'th occurance.

16) REPLACE('string','old chr','new chr')

Replaces the each occurance of old character with new character.

17) REVERSE('string')

Returns the reversed string.

18) SUBSTR('string',startindex)

Returns the part of the string, starting from specific character upto end of
the string. (including the specific character).

19) SUBSTR('string',startindex,length)

Same as above, but returns the sub string with specific string length only.

====================================

C) Convertion Functions
-----------------------------

1) TO_CHAR(N)

Converts the given number into string format.

2) TO_NUMBER('string')

Converts the given string into numerical format.


3) TO_DATE('string','format')

Converts the given into oracle supporting date, based on the given format.

===================================

D) Date Functions
----------------------

1) SYSDATE

Returns the system date

2) TO_CHAR('Date','Format')

Retrives the date in the specified format.

DD
MM
YY
DAY
MON
MONTH
YEAR
HH
MI
SS
AM
W
DY

3) LAST_DAY('Date')

Retrieves the ending of the month, based on the given date.

4) ADD_MONTHS('Date',N)

Adds the specified no. of months to the given date.

5) MONTHS_BETWEEN('New Date','Old Date')

Findouts the difference between given to dates.

==================================

ii) Group Functions


============

--> The group functions are meant for performing logics on the entire of column of
a table.

--> The aggregate functions take the each value in the column individually and
gets called once per each value. But whereas the group functions treats all the
column values as a group and gets called only once per entire column.

--> The following are known as group functions available at Oracle.

1) SUM()
2) AVG()
3) MAX()
4) MIN()
5) COUNT()

1) SUM(ColName)

Returns the SUM of all the values in a specific column.

Syn: SELECT SUM(ColumnName) FROM TableName;

2) AVG(ColName)

Returns the AVERAGE of all the values in a specific column.

Syn: SELECT AVG(ColumnName) FROM TableName;

3) MAX(ColName)

Returns the MAXIMUM of all the values in a specific column.

Syn: SELECT MAX(ColumnName) FROM TableName;

4) MIN(ColName)

Returns the MINIMUM of all the values in a specific column.

Syn: SELECT MIN(ColumnName) FROM TableName;

5) COUNT(*)

Returns the total no. of rows in the table.

Syn: SELECT COUNT(*) FROM TableName;

6) COUNT(ColName)

Returns the total no. of values in the specified column. (Except NULL
values)

Syn: SELECT COUNT(ColName) FROM TableName;

=====================================
Clauses
---------

--> A clause is a part of the "query", which can produce some meaning.

--> It can produce some meaning in the query, but not the complete meaning.

--> For example, WHERE is a clause that can produce a "conditional" expression.
But it can't executed individually.

Available clauses in SQL


----------------------------
1) WHERE
2) DISTINCT
3) ORDER BY
4) GROUP BY
5) HAVING

1) WHERE
------------

--> This is the most frequently used clause in SQL, which offers to provide a
condition in the query.

Syn: SELECT * FROM TableName WHERE Condition;

2) DISTINCT
---------------

--> It retrives only UNIQUE data from the specific column.

Syn: SELECT DISTINCT ColName FROM TableName;

3) ORDER BY
---------------

--> It offers sorting of table rows, based on the specified column.

--> That means it sortouts the table data in ascending / descending order.

--> Syn for Ascending Order:

SELECT * FROM TableName ORDER BY ColName;

--> Syn for Descending Order:

SELECT * FROM TableName ORDER BY ColName DESC;

--> Syn for Sorting based on multiple columns:

SELECT * FROM TableName ORDER BY Col1,Col2...;


4) GROUP BY
----------------

--> It is similar to "DISTINCT" clause. It also retrieves UNIQUE data from a


specific column.

--> In addition to this, it applies a GROUP FUNCTION on another column in the same
table.

Syn: SELECT Col1,GroupFun(Col2) FROM TableName GROUP BY Col1;

Ex: SELECT JOB,SUM(SAL) FROM EMP GROUP BY JOB;

In the above example, the list of all designations and respective total
amount of salaries will be displayed.

5) HAVING
-------------

--> It is an extension to GROUP BY clause.

--> It is used to produce a condition, based on the group function result used in
the GROUP BY statement.

Syn: SELECT Col1,GroupFun(Col2) FROM TableName GROUP BY Col1 HAVING Condition;

===================================

Copying the tables / CREATE Command with SELECT


-------------------------------------------------------------

a) Copy entire table


------------------------
Syn: CREATE TABLE NewTableName AS SELECT * FROM OldTableName;

b) Copy partial columns from the table


---------------------------------------------
Syn: CREATE TABLE NewTableName AS SELECT Col1,Col2,.... FROM OldTableName;

c) Copy partial rows from the table


----------------------------------------
Syn: CREATE TABLE NewTableName AS SELECT * FROM OldTableName WHERE
Condition;

e) Copy partial columns and partial rows from the table


----------------------------------------------------------------
Syn: CREATE TABLE NewTableName AS SELECT Col1,Col2,.... FROM OldTableName
WHERE Condition;
f) Copy only table structure without data
------------------------------------------------
Syn: CREATE TABLE NewTableName AS SELECT * FROM OldTableName WHERE
GeneralFALSECondition;

====================================

Sub Queries
--------------

--> A query acts as an individual command.

--> But in a single query, another query can be integrated as a part. That
integrated query is called as "Sub Query".

--> Here, two kinds of queries are there in the "Sub Queries".

1) Outer Query
2) Inner Query

Syn: SELECT * FROM TableName WHERE ColName = (SELECT ColName FROM TableName);

In the above syntax, the inner query (mentioned in brackets) will be


executed at first. Finally outer query gets executed.

Ex:

--> SELECT * FROM EMP WHERE SAL = (SELECT MAX(SAL) FROM EMP);

--> SELECT NAME FROM EMP WHERE SAL = (SELECT MIN(SAL) FROM EMP);

--> SELECT * FROM EMP WHERE SAL < (SELECT AVG(SAL) FROM EMP);

--> SELECT MAX(SAL) FROM EMP WHERE SAL < (SELECT MAX(SAL) FROM EMP);

--> SELECT MIN(SAL) FROM EMP WHERE SAL > (SELECT MIN(SAL) FROM EMP);

--> SELECT * FROM EMP WHERE SAL=(SELECT MIN(SAL) FROM EMP WHERE SAL > (SELECT
MIN(SAL) FROM EMP));

====================================

Set Operators
----------------

--> The set operators are meant for retrieving the data from more than one table
at-a-time.

--> In other words, one query can retrieve the data from two or more tables.

--> Ofcourse, the "Joins" are also available with similar purpose. But the "set
operators" and "joins" functionality is different in this case.
--> Joins depends on the concept of "Referential integrity" but "Set operators"
doesn't need "Referential integrity".

--> Join operation displays the records from table1 and table2 simultaneously. But
set operator displays the records from table1 and table2 one after another.

Rule for "Set Operators"


----------------------------
--> The table structure of the two tables exactly should be same.

Available Set Operators


---------------------------
1) UNION ALL
2) UNION
3) INTERSECT
4) MINUS

====================================

1) UNION ALL
-----------------
--> It is just like UNION concept in maths.
--> It retrieves the data from table1 first and then table2.

Syn: SELECT * FROM Table1 UNION ALL SELECT * FROM Table2;

2) UNION
-----------
--> It is almost all similar to UNION ALL command.
--> It also retrieves the data from table1 first and then table2.

Syn: SELECT * FROM Table1 UNION SELECT * FROM Table2;

Note: The main difference between UNION ALL and UNION is, "UNION" command avoids
to print duplicate records if any.

3) INTERSECT
----------------
--> It is same as "Intersection" in maths.
--> This command retrieves only common (duplicate) records among the two tables.

Syn: SELECT * FROM Table1 INTERSECT SELECT * FROM Table2;

4) MINUS
-----------
--> It is reverse to INTERSECT.
--> It retrieves the records from table1 which doesn't exist in table2.

Syn: SELECT * FROM Table1 MINUS SELECT * FROM Table2;


====================================

Views
-------

--> A view is an imaginary table according to db terminology.

--> It is one of the db objects.

=====================================

TCL (Transaction Control Language)


------------------------------------------

--> The TCL commands are used to control the DML transactions.

1) ROLLBACK
2) COMMIT
3) SAVEPOINT

Vous aimerez peut-être aussi