Tuesday, 25 August 2015

Introduction of DBMS

Hi friends, I am again back with new topic “Introduction of DBMS”. Today I am gonna to discuss about DBMS. In this post we will discuss about what is DBMS, history of DBMS, features of DBMS etc. Now let’s start with DBMS.

DBMS stands for Database Management System. DBMS is nothing but it is a set of Principle/Program used to create and manage Database. The prime purpose of a relational database management system is to maintain data integrity. This means all the rules and relationships between data are consistent at all times. For example: - if we talk about oracle then some of the people tall that oracle is a DBMS. But Oracle isn’t a DBMS. Actually, Oracle is a software which follow the principle of DBMS.








Now came on the features of the DBMS. DBMS is responsible for:
  • Accessing data: - Accessing data is nothing but just retrieving data from database. If we are inserting data on database then it only for retrieve it in future.
  • Manipulating data: - Manipulating data is nothing but it allow to insert data on database, update data of database and delete data of database.
  • Provide security: - Providing security means, data is not available for other person. If we talk about oracle then we got that they use user id and password for security purpose. Only those people can access data who have a user id and password for that database.
  • Provide concurrency control
  • Provide transaction management
  • Provide facility for backup
  • Provide facility for restore
  • Provide facility for data validation.

Types of DBMS.
1960
FMS (File Management system)
1970
HDBMS ( Hierarchical Database Management System)
1970
NDBMS (Network Database Management System)
1980
RDBMS (Relational Database Management System)
1990
ORDBMS (Object Relational Database Management System)
1990
OODBMS (Object Oriented Database Management System)

In 1960, there is FMS is introduce for storing any data. At that time file is use for storing any data. Before that data stored manually in hard copy like register.
But because of some drawback in FMS there is another DBMS technology is introduce with improvement of drawbacks of FMS that called HDBMS. In HDBMS data are stored in hierarchical form.

But because of some problems people introduce new DBMS technology that called NDBMS. In NDBMS data are stored in the form of nodes. But data retrieving is again problematic in this that’s why there is new technology is introduce that called RDBMS.

RDBMS got more popularity because it store data in the form of table and then after relation is stabilised between more than one tables. Storing data in the form of table is make it too much easy to retrieve it. That’s why it got too much popularity.

For retrieving data more easily and fast there is new technic is came that is ORDBMS. It is a combination of two concepts relational and object oriented. In this there is new thing is introduce that is UDT (User Define Type). Take an example:

In RDBMS
Emp (empno, ename, hno, street, city, state)
St (roll, sname, hno, street, city, state)           
Cust (cid, cname, hno, street, city, state)
In ORDBMS
            UDT:  addr (hno, street, city, state)
            Emp (empno, ename, addr)
            St (roll, sname, addr)
            Cust (cid, cname, addr)

Oracle upto 7 version supports RDBMS but after 7 version they started supporting ORDBMS features.
After that all there is latest one technology called OODBMS. In this type of DBMS all data are stored in the form of object. This is a latest one technology but now no one organization is using this. This is not used yet because of some problem in this. Once if will soled then organizations stared using this. Some of the example of OODBMS software’s are: derby, nosql etc.

That’s all for now. For more information keep visiting this blog….

Monday, 24 August 2015

How to insert data in table in oracle?

Hi friend, I am here once again to discus about insert data in oracle table. When we talk about inserting data in table in oracle then we found that there is many way to insert. All are discuses here. Now lets start with inserting simple data in database.
"INSERT" command is used to insert data in database table. Using "INSERT" command we can insert single or multiple rows. First we see how to insert single row using "INSERT" command.

INSERT command

Insert single row

Syntax:
INSERT INTO <table_name> VALUES (v1,v2,v3,....);

Before inserting some point is there that we must need to remember.
  • Strings datatype variables are enclosed with single quotes ( ' ' ).
  • Date datatype variables also enclosed with single quotes( ' ' ).
  • Numbers datatype variables must only number, no any other character.
Example
INSERT INTO emp VALUES (100, 'A', 'Clerk', 3000, '24-AUG-2015');

If we inserting today date on the place of data then we can also use a function called "SYSDATE". And we must not enclose it with quotes. Because this is not a date, this is a function.

INSERT INTO emp VALUES (101, 'B', 'Manager', SYSDATE); 

Insert Single row in database table
Insert single row in database table

Now if we wants to install data in some field only, not in all field. Then what to do? As we know that every cell of table must have data. Then on that case we can insert Null value at the place of missing data or empty cell. Actually Some people think that Null means zero(0). But they are wrong. Actually null is not equal to zero(0) or space. Null means blank/empty/missing data etc. Null is inserted when value is absent or unknown. Nulls can be inserted in two ways:
  1. Explicitly (by user)
  2. Implicitly (by oracle)
Now lets talk about both one by one.

Explicitly null insertion in oracle

For inserting null value in oracle explicitly (by user) we need to remember these two think:
  • To insert null value in to numeric field we use "NULL".
  • To insert null value in to character or date column we use just '' (open and juts closed single quotes).
Now lets see an example:
Explicitly insert null value in table
Explicitly insert null value in table

Implicitly null insertion in oracle

For inserting null value into table implicitly (bu oracle) we must to tall oracle in which field we inserting data, rest field will be field by null automatically by oracle. Lets first see the syntax:
Syntax:
INSERT INTO <table_name> (col1, col2, col3, .....) VALUES (v1, v2, v3, ......);

Example:
INSERT INTO emp (empno, ename, hiredate) VALUES (104, 'D', SYSDATE);

 
Implicitly insert null value in table
Implicitly insert null value in table

Now lets talk about inserting multiple rows in database table. Here we insert one record by writing query. If we need to insert like 1000 record then are we need to write query 1000 times? No, we need not to write query 1000 times. Just we can write query once and use it multiple time. 

Inserting multiple rows in table in oracle 

We can execute "INSERT" command multiple time with different values by using substitution. Substitutetable variable must prefix with "&". Lets see the syntax.
Syntax:
INSERT INTO <table name> VALUES (&clo1, &clo2, &col3, ....); 

If we enter / (forward splash) at SQLPlus command prompt then it will re-execute previous command. Lets see an example:
Example:
INSERT INTO emp VALUES (&empno, &emane, &job, &sal, &hiredate); 
Inserting multiple rows in table
Inserting multiple rows in table

We can also insert multiple rows with null value. In this also two ways: implicitly and explicitly. Lets see the example of both one by one:

Inserting multiple value with null (Explicitly)
Inserting multiple value with null (Explicitly)

Inserting multiple value with null (Explicitly)
Inserting multiple value with null (Implicitly)

Inserting multiple value with null (Explicitly)
Inserting multiple value with null (Explicitly)

For now that's all. For more information keep visiting "Oracle Gang"...... 

How to create Table in oracle?

Hi friend, once again i am here with new topic "Working with table". Working with table is nothing but in this post we will see, how to create table.

Table:

In oracle database data organized in the form of  table which is a combination of rows and column. For creating table there is a syntax that is given bellow:
Syntax:
CREATE TABLE <table_name>
(
         column_name1   datatype(size),
         column_name2   datatype(size),
         column_name3   datatype(size),
         column_name4   datatype(size),
         column_name5   datatype(size),
          ----------------
          ----------------
); 

There is some rules that must be follow before creating table:
  • Table name should start with alphabets. For example:
            emp123           correct
            emp12ex         correct
            123emp          incorrect 
  • Table should not contain space and special symbols (except: _,$,#. These special symbols are allowed). For example:
            emp  123        incorrect
            emp*123        incorrect
            emp@123      incorrect
            emp_123        correct
            emp$123        correct
            emp#123        correct
  • Name of the table can have maximum up-to 30 character.
  • A table can have maximum 1000 columns.
First three record is followed every where for declaring any identifiers. Like if we declaring a column name these three rules must be followed. If we declaring a user name these three rules must be followed. If we declaring any view, trigger, package etc then these three rules must be followed. Now lets create a table.

Q. Create a table with following structure:
      emp
              empno
              ename
              job
              sal
              hiredate

Ans. ==>
        CREATE TABLE emp
        (
                 empno    NUMBER(4),
                 ename    VARCHAR2(20),
                 job          VARCHAR2(20),
                 sal           NUMBER(7,2),
                 hiredate  DATE
        );

Now lets run this query.

Creating emp table
Creating emp table

Now, here one questing arises that we are created table and forget the structure of table then what to do? For that there is a command that is:

DESCRIBE command

This command is used to see the table data definition or we can say structure. This is also SQLPlus command. Now question is that what is SQLPlus command? what is the different between SQL command and SQLPlus command? Now lets see:
  • SQL commands end with semi-clone(;) but in SQLPlus commands there is no need to terminate with semi-clone(;).
  • SQL commands can't be abbreviated but SQLPlus commands can be abbreviated. Abbreviation means nothing but sorting the command. For example: We can write "DESCRIBE" command as "DESC".
  • SQL command perform operation over database but SQLPlus commands set the environment. 
Now lets see the syntax for "DESCRIBE" commands. We use this as "DESC" here:
Syntax:
        DESC <table_name>

Lets see an example:
            DESC emp

DESC command
See the structure of table

We can use both either "DESC" or "DESCRIBE" as we like. For that's all. In next post we will see how to insert data in table. For more keep visiting this blog......

Saturday, 22 August 2015

Datatype in oracle part2

Hi friends, Once again here with second part of datatype in oracle. Now lets talk about some of the date datatype.


DATE:

This datatype allows to store date and time. Time is optional here. If we don't provide time then oracle stores 12:00 AM by default. There is two format for date. That is:

  • DD-MM-YY
  • DD-MM-YYY
But oracle stores it in the form of DD-MM-YYYY. Even if we provide data in the form of DD-MM-YY then oracle automatically convert it into DD-MM-YYYY format. Lets see the example:

22-AUG-15               22-AUG-2015
22-AUG-95               22-AUG-2095
22-AUG-1995           22-AUG-1995

Dates in oracle must be between 01-JAN-4712 BC to 31-DEC-9999. Oracle occupies 7 bytes for storing date. Lets see how?

Input              : DD-MM-YYY                   
Oracle stores : DD MM YYY HH MI SS  
Bytes             :  1      1        2     1    1    1    

 1+1+2+1+1+1=7 byte. Now here one question is arise that if DD, MM, HH, MI, SS have two digits then how can it stored in one byte. Lets see: one character take one byte and it can stores upto 256. Now, DD maximum value is 31, MM maximum value is 12, HH maximum value is 24, MI maximum value is 60 and SS maximum value is also 60. Then what we seen that all of these is less  than the maximum value of character. So it can stored in one byte. But YYYY maximum value is 9999 and it will greater than maximum value of one character that's why it take 2 byte.
From oracle 9i there is some new datatype is introduce for storing date type data. That is: 

TIMESTAMP:

It is same as date but it has one extra feature. It will allows date, time and millisecond. Lets see an example:
tm   TIMESTAMP                         
22-AUG-2015 03:06:10.12345     

TIMESTAMP WITH TIME ZONE:

It allows date, time, millisecond and time zone also. Lets see an example
tm   TIMESTAMP WITH TIME ZONE    
22-AUG-2015 11:01:40.1234 +5:30          

INTERVAL YEAR TO MONTH:

It is used for storing time periods. This data type is used if time period in year and month. Lets see an example:
duration   INTERVAL YEAR TO MONTH    
INTERVAL '4' YEAR                                      
INTERVAL '1-6' YEAR TO MONTH             
INTERVAL '6' MONTH                                  

INTERVAL DAY TO SECOND:

This is also used for storing time periods. This datatype is used if time period in day, hours, minutes, seconds etc. Lets see an example:
duration    INTERVAL DAY TO SECOND   
INTERVAL '2 4:30:20' DAY TO SECOND   
INTERVAL '3 5' DAY TO HOUR                  
INTERVAL '1:30' HOUR TO MINUTE          

Now lets talk about some other datatype. From oracle 8 there is some new datatype is introduced that's called LOBs (Large Objects).
  1. BFILE (Binary files)
  2. BLOB (Binary LOBs)
  3. CLOB (Character LOBs)


BFILE/BLOB:

It is used to store binary data that include audio, video, picture etc. It will store data up-to 4GB. Here one question is arise that why two datatype for same work. Lets see, both of them are not same. There is some different between both. In "BFILE", data is stored outside of database (in hard disk) and only path of that is stored in database. But in "BLOB" data is stored in database. So if there is any security problem then we must to use "BLOB". But if security doesn't matter then we can use "BFILE". That's why "BFILE" is also called external LOB and "BLOB" is called internal LOB. Both of them can store data upto 4GB.

CLOB:

It is same as "BLOB". but it is used for storing character data up-to 4 GB. As we seen that varchar2 have only 32767 character length, Nvarchar2 have only 65536 character length. Then if we need to store more than this then we can use this datatype.
Here datatype section of oracle is ended. SO that's all for now. For more details keep visiting Oracle Gang.......

Friday, 21 August 2015

Datatype in oracle part 1.


Hi friend, Once again welcome to Oracle Gang. As I told, I am back with "Datatype in oracle". First of all why need datatype in oracle. We know that datatype is required in programming languages for declaring variables. But in oracle there is no need of variables then why datatype.The answer of these all questions is: In oracle datatype specifies:
  • Types of data allow in column.
  • Amount of memory allocated for that.
Now it's clear that why we use datatype in oracle. When we declaring any column then we must to specify a datatype for that column that is for what type of data stored in that column and if we store data then how many space occupy by that column.
Lets first talk about string datatype.

Char:

Char datatype allows character data up-to 2000 characters. It is recommended for fixed length fields. This is because it will occupy memory space that is specify at the time of field deceleration. For example: if we declaring a field with 20 character space then it will occupy 20 bytes for all rows.

 
In ago example there is a memory wasted if we declare  a field with 20 character space and we storing only 6 character then rest of 14 bytes are wasted. So don't use char datatype for variable length field.

Varchar2:

It will allows data up-to 4000characters in 11g and 32767 characters in 12c. It is also recommended for variable length fields. Because no matter how much length of a field if we insert less then the size of field then it will automatically release rest of the memory.
Up-to oracle 6 there is a datatype called varchar but from oracle 7 there is new datatype introduced is called varchar2. Actually varchar is a ANSI datatype but varchar2 is oracle datatype. We can also use varchar in oracle 7 or later versions but varchar2 is recommended there after oracle version 7.


Nchar/Nvarchar2:

Here N means National. Here one question is arise that if we already have char and varchar2 then why nchar and nvarchar2. Lets see, char/varchar2 allows only ASCII characters. ASCII characters means "a-z, A-Z, 0-9, some special characters". Total number of ASCII characters is 256. But nchar/nvarchar2 allows UNICODE characters. It allows all ASCII characters and characters of different languages. Total number of UNICODE characters are 65536.
Now lets talk about number datatype.

Number(p):

It will allows numeric data up-to 38 characters. This is for to store integral value. For example:
           empno     number(4)
           100              correct
           1000            correct
           10000          incorrect
           1000.5 --> 1001    correct

Number(p,s):

Here P stands for precision. It means total number of digit allows in that field. S stands for scale. It means number of digit allowed after decimal. It means we can store decimal value in this type of datatype. Here the range of s is between -84 to 127. Lets take an example: 

        salary      number(7,2)
        5000                    correct
        5000.50               correct 
        50000.48             correct
        500000.32           incorrect
        50000.507463 --> 50000.51      correct

Here some of my friend confused about negative scale value [salary number(7,-2)]. Now lets talk on this. 
If scale is positive value then number is rounded after decimal. But if scale is negative value then  before dcimal value id rounded. Take an example:

    field                                inputs                   oracle stores
    salary number(7,-2)        4065.73               4100
    salary number(7,-2)        31421.7923         31400
    salary number(7,-1)        4279.87655         4280
    salary number(7,-1)        324                      320

The scale value in negative tell that how many digits is rounded before decimal. Lets describe one example in brief: as in first example there is number 4065.73 and scale is -2. So it will make two point that is 4000 and second is 4100. Because scale is 2 in negative so we take minimum and maximum number for last two digit. Now take a middle of both number that is 4050. Now compare both middle number and actual number which one is greater. If actual number is greater then maximum value is result. But if middle number is greater then minimum number is result.
For now that's all. We will talk about rest datatype in next post.....

What is schema? What are the objects created by user?

Hi friends, Today we are gonna to talk about schema. Schema is nothing but user is called as schema. A user in oracle database is called schema and objects created by user are called schema objects.
When we installer oracle on a system that system called oracle server. In that server database is created. In that database user is created. And then after in that user object are created.


Database crated by oracle installer also create some schema/ User.

            ORCL (Password)                                                     XE (Password)                                    

            SYS (asked at the time of installation)                 SYS (asked at the time of installation)
            SYSTEM (asked at the time of installation)         SYSTEM (asked at the time of installation)
            SCOTT/TIGER                                                                   HR/HR
            SH/SH
            HR/HR
            OE/OE

In this both SYS and SYSTEM are DBA and rest of all are normal user. Now lets see that what are the objects crated by user?
  1. Table
  2. Views
  3. Synonyms
  4. Sequences
  5. Indexes
  6. Clusters
  7. Materialised views
  8. Types
  9. Procedures
  10. Functions
  11. Packages
  12. Triggers
Now lets know how to connect to oracle server?
--> Open Sqlplus (You can type "sqlplus" without quotes in run or we can also find it in start menu.)
--> After that submit details asked by sqlplus. It will look like this:


Password is not visible here due to security. User name is not case sensitive but password is case sensitive here. We have one more way to connect to database. That is:


Here the format is in the form of: USERNAME/PASSWORD@DATABASE. Here database name is optional is there is only one database exist in system. If more than one database in system there then we must to enter database name.

Now lets move on creating schema/user/account.

Only DBA have permissions to create user.
Syntax:
CREATE USER <User_Name> IDENTIFIED BY <Password>


User is create here but this user is called dummy user. Because it will not be having permissions . Permissions must be granted to user by DBA using "GRANT" command.


Here we are giving two permission to "Oracle_Gang" that is CONNECT and RESOURCE. Connect will allow the user to connect to the oracle server but if we need to done some operation like create table, retrieve data from table etc then we must need resource available for that user.. Now lets drop the user. 
Syntax:
DROP USER <User_Name> [CASCADE] ;


Dropping user means that user is no longer available in database. Here any think given in "< >" then it will be considered as given by user. In that place user can enter any name. It's on up-to user. CASCADE is required if there is data available or we can say that if object created by by user then "CASCADE" is required. If no object is created by user then it is not need to give there.
For now that's all. In next post we will know about datatype available in oracle....

Thursday, 20 August 2015

Introduction of SQL. Sub language of SQL.

As we seen in previous post, For communication to the oracle server there is a client is required. As we know that computer only understand binary number. For that we use programming language like c, c++, java etc. Same as here, after connecting to oracle server user communicate with oracle server by using a language called SQL. And as we know that every language have pr-define structures. In Oracle user communicate with server by sending commands/instructions called queries. In other words, a query is a commands or instructions submitted to oracle server to perform some operations over database.

SQL is introduced by IBM and initial name of this language was "SEQUEL" later it is renamed as "SQL". Now one question is arise that, if SQL is the product of IBM then how can it used by oracle. Then answer is here: SQL was introduced by IBM, but now it is in the control of IEEE. And if is open source now. That's why oracle or some other company using it. SQL is common to all RDBMS. Now we are going to see the sub language of SQL and some of those commands. Here we only know about commands. More details and example of that command we will see in upcoming post.

Based on operations over database SQL is categorized into following categories.


  • DDL (Data Definition Language)
  • DML (Data Manipulation Language)
  • DQL (Data Query language)
  • TCL (Transaction Control Language)
  • DCL (Data Control Language)

DDL (Data Definition Language)

Set of commands to perform operations over data definitions. We already learn the different between data and data definitions. So, I think there is no confusion between data and data definitions.

DDL commands

  • CREATE: - To create table definition. Using this command we can create a new table definition.
  • ALTER: - To modify table definition. If there is a need to change field name or change datatype of field then we will use this command.
  • DROP: - To drop table definition. It will delete all data as well as table.
  • TRUNCATE: - Delete all data from table. But table definition is not deleted. If a table is truncated it look like a new created table. Or we can say that truncated table is a empty table.
  • RENAME: - To change name of the table.

DML (Data Manipulation Language)

Set of commands to perform operation over data. This sub language have some commands using that we can perform operation over data of table.

DML commands

  • INSERT: - To insert new row in table.
  • UPDATE: - To modify data of table.
  • DELETE: - To delete row(s) from table.
from oracle 9i there is two more commands is introduced. That is:
  • INSERT ALL: - To insert data into multiple table.
  • MARGE: - Combination of insert & update.

DQL (Data Query Language)

There is only one command in this sub language.
  • SELECT: - Used to retrieve data from table(s).

TCL (Transaction Control Language)

Set of commands to control transactions. We can say this in other words like: Set of commands to control DML commands.

TCL commands

  • COMMIT: - This command is used to save the transactions. Saving transaction means what we done like INSERT, UPDATE, DELETE will be saved.
  • ROLLBACK: - Cancels the transactions. In other words we can say that what we work ( INSERT, UPDATE, DELETE) after execution of COMMIT or after starting of oracle client is canceled. 
  • SAVEPOINT: - To cancel part of the transaction. It means we can create a save point any time between working on oracle client. And if any time we need to came back at that point or we can say that if we wants our database like that time then we can call savepoint with command ROLLBACK.

DCL (Data Control Language)

Set of commands to control data between oracle and user. In other word this commands are use for giving permission to user and take back permission from user.

DCL commands

  • GRANT: - To give permission to user.
  • REVOKE: - To take back permission from user.

Wednesday, 19 August 2015

Components of Oracle

When we install oracle then some of the components are installed. The components installed are:
  1. Database
  2. Instance
  3. Client
Don't matter which version and which edition we install, these components are installed in our system. If we install oracle 10g express edition then these three versions are installed. If we install oracle 11g enterprise edition then also these three components are installed. Now let's talk about all components in details:

Database

After installing oracle one database is created by default by installer. If we are installing express editions then "XE" database is created. In the case of enterprise edition "ORCL" database is created. 
Database is divided in two part.
  • Logical database
  • Physical database
When we install data in database the first data stored in physical database that is data files. The extension of data file is .DBF. When we request for a data or write a query then it will shown in tables that is called logical database. We can also say that, in oracle data are logically stored in table and physically stored in data files.
 
 

Instance

Instance is the way to access database. So, always database is associated with instance. We cant access database without instance. The place where these two components are created is called oracle server. Databases are created in hard disk and the instance is created in RAM.



Client

Using oracle client user :
  • can connect to oracle server.
  • submit request to oracle server.
  • receive response from oracle server.
Various clients are available in marker for communication to oracle server. Some of them are:
  • Sql*plus (completely CUI based)
  • Toad (GUI)
  • Sql developer (GUI)
  • Pl/Sql developer (GUI)

Monday, 17 August 2015

Versions of Oracle with features/History of Oracle


Hi friends, once again welcome back to Oracle Gang. Today I am here with new topic “Versions of Oracle with features/History of Oracle”. Today we will discuss all the versions of oracle with what feature introduced in that versions. So let’s start...

Before going on versions of oracle let’s see the some history of oracle. Founded in August 1977 by Larry Ellison, Bob Miner, Ed Oates and Bruce Scott, Oracle was initially named after "Project Oracle" a project for one of their clients, the C.I.A, and the company that developed Oracle was dubbed "Systems Development Labs", or SDL.   Although they may not have realized it at the time, these four men would change the history of database management forever.
Oracle release 1 (1978): - In 1978 SDL was renamed Relational Software Inc. (RSI) to market their new database.
Oracle release 2 (1979): - The first commercial RDBMS was built using PDP-11 assembler language. In 1982 there was another change of the company’s name, from RSI to Oracle Systems Corporation so as to match its popular database name.  The current company name comes from a CIA project that Larry Ellison had previously worked on code named “Oracle”.

Oracle release 3 (1983): - The Oracle version 3 was developed in 1983. This version was assembled using C programming language and could run in mainframes, minicomputers, and PCs’ or any hardware with a C compiler. It supported the execution of SQL statements and transactions. This version also included new options of pre-join data to increase Oracle optimization. 
 
Oracle release 4 (1984): - Oracle version 4 included support for reading consistency, which made it much faster than any previous version.  Oracle version 4 also brought us the introduction of the export/import utilities and the report writer, which allows one the ability to create a report based on a query. The main feature introduced in this version are commit and rollback.

Oracle release 5 (1985): - With the introduction of version 5 in 1985, Oracle addressed the increasing use of the internet in business computing.  This version was equipped with the capability to connect clients? Software through a network to a database server.  The Clustering Technology was introduced in this version as well and Oracle became the pioneer using this new concept which would later be known as Oracle Real Application Cluster in version 9i.  Oracle version 5 added some new security features such as auditing, which would help determine who and when someone accessed the database.
Oracle version 5.1 was launched in 1986 and allowed for supporting distributed queries. Later that same year Oracle released SQL*Plus, a tool that offers ad hoc data access and report writing.  1986 also brought the release of SQL*Forms, an application generator and run-time system with facilities for simple application deployment.

Oracle release 6 (1988): - The PL/SQL language came with Oracle version 6 in 1988.  This version 
provided a host of new features including the support of OLTP high-speed systems, hot backup capability and row level locking which locks only the row or rows being used during a writing operation, rather than locking an entire table.  Prior to the hot backup feature, database administrators were required to shut down the database to back it up.  Once the hot backup feature was introduced, DBA’s could do a backup while the database was still online.


Oracle release 7 (1992): - 1992 was a memorable year for Oracle.  The company announced Oracle version 7, which was the culmination of four years of hard work and two years of customer testing before release to market.  This version of Oracle provided a vast array of new features and capabilities in areas such as security, administration, development, and performance. In this version oracle also introduce many useful features like:

  • Varchar2 datatype
  • Stored procedures
  • Functions
  • Packages
  • Trigger

Oracle release 8 (1997): - The Oracle 8 Database was launched in 1997 and was designed to work with Oracle's network computer (NC). Main features introduced in this version are:
  • Table partitioning
  • User define datatype
  • LOBs (Large Objects): - This is very important feature because before this we can’t store media file like audio, video etc. in database. But after introducing LOBs, Oracle started supporting media file.

Oracle release 8i (1998): - Just one year later Oracle released Oracle 8i which was the first database to support Web technologies such as Java and HTTP.  In 2000 Oracle 8i Parallel Server was working with Linux which eliminated costly downtime. Main features of this version are:

  • Hierarchical query
  • SQLJ (SQL Java)
  • XML

Oracle release 9i (2001): - Oracle Real Application Cluster came with Oracle 9i Database in 2001. This feature provides software for clustering and high availability in Oracle database environments. Main features and query introduced in this version are:
  • Insert all & merge commands
  • Timestamp datatype
  • OLAP features
  • ANSI joins
  • Case statement

Oracle release 10g (2003): - Although Oracle 9i had only been in the market for two years, Oracle launched version 10g in 2003.  The release of 10g brought us the introduction to Grid Computing technology.  Data centers could now share hardware resources, thus lowering the cost of computing infrastructure. In this version two main features are introduce that are:
  • Flashback
  • Regular expressions

Oracle release 11g (2011): - Oracle 11g was released on July 11th 2007. This version introduced more features than any other in Oracle history.  This version includes:

  • Oracle Database Replay, a tool that captures SQL statements and lets you replay them all in another database to test the changes before you actually apply then on a production database;
  • Transaction Management using Log Miner and Flashback Data Archive to get DML statements from redo log files;
  • Virtual Column Partitioning;
  • Case sensitive passwords;
  • Online Patching;
  • Parallel Backups on same file using RMAN and many others.

Oracle release 12c (2013): - This is the newest version of oracle. From this version oracle started cloud services. Here c stands for cloud. Some of the main feature introduced in this version are:


  • Oracle Database In-Memory
  • Oracle Big Data SQL
  • Oracle JSON Document Store
  • Oracle REST Data Services
  • Improvements to Oracle Multitenant
  • Advanced Index Compression
  • Zone Maps
  • Approximate Count Distinct
  • Attribute Clustering
  • Full Database Caching
  • Rapid Home Provisioning


We will know about each feature in details in upcoming post. Till that keep visiting this blog....