Infolinks

Saturday 12 May 2012

SQL- INTRODUCTION


 INTRODUCTION


SQL is divided into the following


Ø  Data Definition Language (DDL)
Ø  Data Manipulation Language (DML)
Ø  Data Retrieval Language (DRL)
Ø  Transaction Control Language (TCL)
Ø  Data Control Language (DCL)

DDL -- create, alter, drop, truncate, rename
DML -- insert, update, delete
DRL -- select
TCL -- commit, rollback, savepoint
DCL -- grant, revoke

CREATE TABLE SYNTAX

Create table <table_name> (col1 datatype1, col2 datatype2 …coln datatypen);
Ex:
     SQL> create table student (no number (2), name varchar (10), marks number (3));

INSERT

This will be used to insert the records into table.
We have two methods to insert.
Ø  By value method
Ø  By address method

a) USING VALUE METHOD
    
     Syntax:
          insert into <table_name) values (value1, value2, value3 …. Valuen);

    
     Ex:
            SQL> insert into student values (1, ’sudha’, 100);
            SQL> insert into student values (2, ’saketh’, 200);
           
     To insert a new record again you have to type entire insert command, if there are lot of  
     records this will be difficult.
     This will be avoided by using address method.

b) USING ADDRESS METHOD
    
      Syntax:
          insert into <table_name) values (&col1, &col2, &col3 …. &coln);
      This will prompt you for the values but for every insert you have to use forward slash.
     
      Ex:
            SQL> insert into student values (&no, '&name', &marks);

Enter value for no: 1
Enter value for name: Jagan
Enter value for marks: 300
old   1: insert into student values(&no, '&name', &marks)
new   1: insert into student values(1, 'Jagan', 300)

SQL> /
Enter value for no: 2
Enter value for name: Naren
Enter value for marks: 400
old   1: insert into student values(&no, '&name', &marks)
new   1: insert into student values(2, 'Naren', 400)

c) INSERTING DATA INTO SPECIFIED COLUMNS USING VALUE METHOD
    
     Syntax:
           insert into <table_name)(col1, col2, col3 … Coln) values (value1, value2, value3 ….
                                                              Valuen);
     Ex:
            SQL> insert into student (no, name) values (3, ’Ramesh’);
            SQL> insert into student (no, name) values (4, ’Madhu’);

d) INSERTING DATA INTO SPECIFIED COLUMNS USING ADDRESS METHOD
    
     Syntax:
          insert into <table_name)(col1, col2, col3 … coln) values (&col1, &col2 ….&coln);                                                                             
     This will prompt you for the values but for every insert you have to use forward slash.
     
     Ex:
            SQL> insert into student (no, name) values (&no, '&name');
Enter value for no: 5
Enter value for name: Visu
old   1:  insert into student (no, name) values(&no, '&name')
new   1:  insert into student (no, name) values(5, 'Visu')

SQL> /
Enter value for no: 6
Enter value for name: Rattu
old   1:  insert into student (no, name) values(&no, '&name')
new   1:  insert into student (no, name) values(6, 'Rattu')

SELECTING DATA

Syntax:
    Select * from <table_name>;              -- here * indicates all columns
or
    Select col1, col2, … coln from <table_name>;

Ex:
    SQL> select * from student;
   
        NO NAME            MARKS
        ---  ------             --------
         1   Sudha             100
         2   Saketh            200
         1   Jagan             300
         2   Naren             400
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

    SQL> select no, name, marks from student;

        NO NAME            MARKS
        ---  ------             --------
         1   Sudha             100
         2   Saketh            200
         1   Jagan             300
         2   Naren             400
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

    SQL> select no, name from student;

        NO NAME
        ---  -------
         1   Sudha
         2   Saketh
         1   Jagan
         2   Naren
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

CONDITIONAL SELECTIONS AND OPERATORS

We have two clauses used in this
Ø  Where
Ø  Order by

USING WHERE

Syntax:
     select * from <table_name> where <condition>;
    
the following are the different types of operators used in where clause.

v  Arithmetic operators         
v  Comparison operators
v  Logical operators

v  Arithmetic operators          -- highest precedence
+, -, *, /
v  Comparison operators
Ø  =, !=, >, <, >=, <=, <>
Ø  between, not between
Ø  in, not in
Ø  null, not null
Ø  like
v       Logical operators
Ø  And
Ø  Or                                -- lowest precedence
Ø  not

a) USING =, >, <, >=, <=, !=, <>
   
     Ex:
        SQL> select * from student where no = 2;

        NO NAME            MARKS
        ---  -------           ---------
         2   Saketh            200
         2   Naren             400
        
        SQL> select * from student where no < 2;

        NO NAME            MARKS
        ---  -------           ----------
         1   Sudha             100
         1   Jagan             300

        SQL> select * from student where no > 2;

         NO NAME            MARKS
         ---  -------           ----------
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

         SQL> select * from student where no <= 2;

         NO NAME            MARKS
         ---  -------           ----------
         1   Sudha             100
         2   Saketh            200
         1   Jagan             300
         2   Naren             400
      
         SQL> select * from student where no >= 2;

         NO NAME            MARKS
         ---  -------           ---------
         2   Saketh            200
         2   Naren             400
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

         SQL> select * from student where no != 2;

         NO NAME            MARKS
         ---  -------           ----------
         1   Sudha             100
         1   Jagan             300
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

         SQL> select * from student where no <> 2;

         NO NAME            MARKS
         ---  -------           ----------
         1   Sudha             100
         1   Jagan             300
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

b) USING AND
    
     This will gives the output when all the conditions become true.
    
     Syntax:
          select * from <table_name> where <condition1> and <condition2> and ..
                                                                                    <conditionn>;
     Ex:
         SQL> select * from student where no = 2 and marks >= 200;

                              NO NAME            MARKS
         ---  -------           --------
         2   Saketh            200
         2   Naren             400

c) USING OR

     This will gives the output when either of the conditions become true.

     Syntax:
         select * from <table_name> where <condition1> and <condition2> or ..
                                                                               <conditionn>;
     Ex:
         SQL> select * from student where no = 2 or marks >= 200;

         NO NAME            MARKS
         ---  -------           ---------
         2   Saketh            200
         1   Jagan             300
         2   Naren             400

d) USING BETWEEN

     This will gives the output based on the column and its lower bound, upperbound.

     Syntax:
         select * from <table_name> where <col> between <lower bound> and <upper
                                                                                        bound>;

     Ex:
         SQL> select * from student where marks between 200 and 400;

         NO NAME            MARKS
         ---  -------           ---------
         2   Saketh            200
         1   Jagan              300
         2   Naren              400

e) USING NOT BETWEEN

     This will gives the output based on the column which values are not in its lower bound,
     upperbound.

     Syntax:
     select * from <table_name> where <col> not between <lower bound> and <upper
                                                                         bound>;
     Ex:
         SQL> select * from student where marks not between 200 and 400;

         NO NAME            MARKS
         ---  -------           ---------
         1   Sudha             100

f) USING IN

    This will gives the output based on the column and its list of values specified.

    Syntax:
         select * from <table_name> where <col> in ( value1, value2, value3 … valuen);

     Ex:
         SQL> select * from student where no in (1, 2, 3);

         NO NAME            MARKS
         --- -------            ---------
         1   Sudha             100
         2   Saketh            200
         1   Jagan             300
         2   Naren             400
         3   Ramesh

g) USING NOT IN

     This will gives the output  based on the column which values are not in the list of
      values  specified.

     Syntax:
         select * from <table_name> where <col> not in ( value1, value2, value3 … valuen);

     Ex:
         SQL> select * from student where no not in (1, 2, 3);

         NO NAME            MARKS
         ---  -------           ---------
         4   Madhu
         5   Visu
         6   Rattu

h) USING NULL

     This will gives the output based on the null values in the specified column.

     Syntax:
         select * from <table_name> where <col> is null;

     Ex:
         SQL> select * from student where marks is null;

         NO NAME            MARKS
         ---  -------           ---------
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

i) USING NOT NULL

    This will gives the output based on the not null values in the specified column.

     Syntax:
         select * from <table_name> where <col> is not null;

     Ex:         
         SQL> select * from student where marks is not null;
         NO NAME            MARKS
         ---  -------           ---------
         1   Sudha             100
         2   Saketh            200
         1   Jagan             300
         2   Naren             400

j) USING LIKE

    This will be used to search through the rows of database column based on the pattern 
    you specify.

     Syntax:
        select * from <table_name> where <col> like <pattern>;
    
     Ex:         
        i) This will give the rows whose marks are 100.

            SQL> select * from student where marks like 100;

         NO NAME            MARKS
         ---  -------           ---------
         1   Sudha             100
        ii) This will give the rows whose name start with ‘S’.

             SQL> select * from student where name like 'S%';

         NO NAME            MARKS
         ---  -------           ---------
         1   Sudha             100
         2   Saketh            200

        iii) This will give the rows whose name ends with ‘h’.

              SQL> select * from student where name like '%h';
        
         NO NAME            MARKS
         ---  -------           ---------
         2   Saketh            200
         3   Ramesh

        iV) This will give the rows whose name’s second letter start with ‘a’.

               SQL> select * from student where name like '_a%';

          NO NAME            MARKS
          ---  -------            --------
          2   Saketh            200
          1   Jagan             300
          2   Naren             400
          3   Ramesh
          4   Madhu
          6   Rattu
 
        V) This will give the rows whose name’s third letter start with ‘d’.

              SQL> select * from student where name like '__d%';

         NO NAME            MARKS
         ---  -------           ---------
         1   Sudha             100
         4   Madhu

        Vi) This will give the rows whose name’s second letter start with ‘t’ from ending.

               SQL> select * from student where name like '%_t%';

         NO NAME            MARKS
         ---  -------           ---------
         2   Saketh            200
         6   Rattu
        
        Vii) This will give the rows whose name’s third letter start with ‘e’ from ending.

                SQL> select * from student where name like '%e__%';

         NO NAME            MARKS
         ---  -------           ---------
         2   Saketh            200
         3   Ramesh

        Viii) This will give the rows whose name  cotains 2 a’s.

                    SQL> select * from student where name like '%a% a %';

         NO NAME            MARKS
          --- -------           ----------
         1   Jagan             300

* You have to specify the patterns in like using underscore ( _ ).



USING ORDER BY

This will be used to ordering the columns data (ascending or descending).

Syntax:
        Select * from <table_name> order by <col> desc;
By default oracle will use ascending order.
If you want output in descending order you have to use desc keyword after the column.

Ex:
        SQL> select * from student order by no;

        NO NAME            MARKS
        ---  -------           ---------
         1   Sudha             100
         1   Jagan              300
         2   Saketh            200
         2   Naren             400
         3   Ramesh
         4   Madhu
         5   Visu
         6   Rattu

        SQL> select * from student order by no desc;

        NO NAME            MARKS
        ---  -------           ---------
         6 Rattu
         5 Visu
         4 Madhu
         3 Ramesh
         2 Saketh            200
         2 Naren             400
         1 Sudha             100
         1 Jagan             300

No comments:

Post a Comment