Search

Fundamentals of SQL - Basics with example - 3



         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
USING DML

USING UPDATE

This can be used to modify the table data.

Syntax:
     Update <table_name> set <col1> = value1, <col2> = value2 where <condition>;

Ex:
     SQL> update student set marks = 500;
     If you are not specifying any condition this will update entire table.

     SQL> update student set marks = 500 where no = 2;
     SQL> update student set marks = 500, name = 'Venu' where no = 1;

USING DELETE

This can be used to delete the table data temporarily.

Syntax:
    Delete <table_name> where <condition>;

Ex:
     SQL> delete student;
     If you are not specifying any condition this will delete entire table.

     SQL> delete student where no = 2;






USING DDL

USING ALTER

This can be used to add or remove columns and to modify the precision of the datatype.

a) ADDING COLUMN

    Syntax:
        alter table <table_name> add <col datatype>;

    Ex:
        SQL> alter table student add sdob date;

b) REMOVING COLUMN

    Syntax:
        alter table <table_name> drop <col datatype>;

    Ex:
         SQL> alter table student drop column sdob;

c) INCREASING OR DECREASING PRECISION OF A COLUMN

    Syntax:
          alter table <table_name> modify <col datatype>;
    Ex:
          SQL> alter table student modify marks number(5);

          * To decrease precision the column should be empty.

d) MAKING COLUMN UNUSED

    Syntax:
         alter table <table_name> set unused column <col>;
    Ex:
         SQL> alter table student set unused column marks;
   
         Even though the column is unused still it will occupy memory.

d) DROPPING UNUSED COLUMNS

    Syntax:
        alter table <table_name> drop unused columns;

    Ex:
        SQL> alter table student drop unused columns; 
        * You can not drop individual unused columns of a table.

e) RENAMING COLUMN

    Syntax:
        alter table <table_name> rename column <old_col_name> to <new_col_name>;
           
    Ex:
        SQL> alter table student rename column marks to smarks; 

USING TRUNCATE

This can be used to delete the entire table data permanently.
Syntax:
      truncate table <table_name>;

Ex:
     SQL> truncate table student;

USING DROP

This will be used to drop the database object;

Syntax:
     Drop table <table_name>;

Ex:
     SQL> drop table student;

USING RENAME

This will be used to rename the database object;

Syntax:
     rename <old_table_name> to <new_table_name>;

Ex:
     SQL> rename student to stud;















USING TCL

USING COMMIT

This will be used to save the work.
Commit is of two types.
1     Implicit
2     Explicit

a) IMPLICIT

     This will be issued by oracle internally in two situations.
1     When any DDL operation is performed.
2     When you are exiting from SQL * PLUS.

b) EXPLICIT

     This will be issued by the user.

     Syntax:
                Commit or commit work;
              * When ever you committed then the transaction was completed.

USING ROLLBACK

This will undo the operation.
This will be applied in two methods.
1     Upto previous commit
2     Upto previous rollback

Syntax:
Roll or roll work;
Or
Rollback or rollback work;
* While process is going on, if suddenly power goes then oracle will rollback the transaction.
USING SAVEPOINT

You can use savepoints to rollback portions of your current set of transactions.

Syntax:
     Savepoint <savepoint_name>;

Ex:
     SQL> savepoint s1;
     SQL> insert into student values(1, ‘a’, 100);
     SQL> savepoint s2;
     SQL> insert into student values(2, ‘b’, 200);
     SQL> savepoint s3;
      SQL> insert into student values(3, ‘c’, 300);
     SQL> savepoint s4;
      SQL> insert into student values(4, ‘d’, 400);
    
     Before rollback

     SQL> select * from student;

        NO NAME      MARKS
        ---  -------     ----------
         1          a         100
         2          b         200
         3          c         300
         4          d         400
         
     SQL> rollback to savepoint s3;
                                    Or
     SQL> rollback to s3;
    
    This will rollback last two records.
     SQL> select * from student;

        NO NAME      MARKS
        ---  -------     ----------
         1          a         100
         2          b         200

Fundamentals of SQL - Basics with example - 2



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