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, &col3 …. &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.
- Arithmetic operators
- Comparison operators
- Logical operators
- Arithmetic operators -- highest precedence
+,
-, *, /
- Comparison operators
- =, !=, >, <, >=, <=, <>
- between, not between
- in, not in
- null, not null
- like
- 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
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.
- Implicit
- Explicit
a)
IMPLICIT
This will be
issued by oracle internally in two situations.
- When any DDL operation is performed.
- 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.
- Upto previous commit
- 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
USING
DCL:
DCL
commands are used to granting and revoking the permissions.
USING
GRANT
This
is used to grant the privileges to other users.
Syntax:
Grant
<privileges>
on <object_name>
to <user_name>
[with grant option];
Ex:
SQL>
grant select on student to sudha; --
you can give individual privilege
SQL>
grant select, insert on student to sudha; --
you can give set of privileges
SQL>
grant all on student to sudha; --
you can give all privileges
The
sudha user has to use dot method to access the object.
SQL>
select * from saketh.student;
The
sudha user can not grant permission on student table to other users.
To get this type of
option use the
following.
SQL>
grant all on student to sudha with grant option;
Now sudha user
also grant permissions on student table.
USING
REVOKE
This
is used to revoke the privileges from the users to which you granted
the privileges.
Syntax:
Revoke
<privileges>
on <object_name>
from <user_name>;
Ex:
SQL>
revoke select on student form sudha; --
you can revoke individual privilege
SQL>
revoke select, insert on student from sudha; --
you can revoke set of privileges
SQL>
revoke all on student from sudha; --
you can revoke all privileges
No comments:
Post a Comment