Sie sind auf Seite 1von 38

PANIMALAR ENGINEERING COLLEGE093

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


REG NO:

EX.NO:1 CREATION OF A DATABASE AND WRITING SQL


QUERIES TO RETIREVE INFORMATION FROM THE DATABASE
CREATING A TABLE:
SQL> create table railway reservation(name varchar2(10), departure date, arrival
date, ticketno number(15));
create table railway reservation(name varchar2(10), departure date, arrival date
, ticketno number(15))
*
ERROR at line 1:
ORA-00922: missing or invalid option
SQL> create table railwayreservation(name varchar2(10), departure date, arrival
date, ticketno number(15));
Table created.
DESCRIBING A TABLE CREATED:
SQL> desc railwayreservation;
Name
Null? Type
----------------------------------------- -------- ---------------------------NAME
DEPARTURE
ARRIVAL
TICKETNO

VARCHAR2(10)
DATE
DATE
NUMBER(15)

RETRIEVE INFORMATION FROM THE DATABASE:


SQL> select * from railwayreservation;
no rows selected
SQL> select name from railwayreservation;
no rows selected
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 melvina
cse
100
100
1
12567 sophia
cse
98
88
2

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

SELECTING PARTICULAR COLUMNS:


SQL> select sname,dept from student;
SNAME
DEPT
-------------------- ---------max
cse
sophia
it
sarah
ece
stella
cse

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

EX.NO:2
PERFORMING INSERTION, DELETION, MODIFYING,
ALTERING, UPDATING AND VIEWING RECORDS BASED ON
CONDITION
INSERTING VALUES INTO THE TABLE:
SQL> insert into student values(&regno,'&sname','&dept',&marks,&percent,&rank);
Enter value for regno: 12345
Enter value for sname: melvina
Enter value for dept: cse
Enter value for marks: 100
Enter value for percent: 100
Enter value for rank: 1
old 1: insert into student values(&regno,'&sname','&dept',&marks,&percent,&ran
k)
new 1: insert into student values(12345,'melvina','cse',100,100,1)
1 row created.
SQL> /
Enter value for regno: 12567
Enter value for sname: sophia
Enter value for dept: cse
Enter value for marks: 98
Enter value for percent: 88
Enter value for rank: 2
old 1: insert into student values(&regno,'&sname','&dept',&marks,&percent,&ran
k)
new 1: insert into student values(12567,'sophia','cse',98,88,2)
1 row created.
SELECTING INFORMATION FROM THE TABLE:
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 melvina
cse
100
100
1
12567 sophia
cse
98
88
2
MODIFYING THE TABLE AND COLUMN DEFINITION:
SQL> alter table railway add(trainno number(10), seatno number(10));
Table altered.

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

SQL> desc railway;


Name
Null? Type
----------------------------------------- -------- ---------------------------NAME
DEPARTURE
ARRIVAL
TICKETNO
TRAINNO
SEATNO

VARCHAR2(10)
DATE
DATE
NUMBER(15)
NUMBER(10)
NUMBER(10)

SQL> alter table railway rename column ticketno to ticket_no;


Table altered.
SQL> desc railway;
Name
Null? Type
----------------------------------------- -------- ---------------------------NAME
DEPARTURE
ARRIVAL
TICKET_NO
TRAINNO
SEATNO

VARCHAR2(10)
DATE
DATE
NUMBER(15)
NUMBER(10)
NUMBER(10)

SQL> alter table railway drop column trainno;


Table altered.
SQL> desc railway;
Name
Null? Type
----------------------------------------- -------- ---------------------------NAME
DEPARTURE
ARRIVAL
TICKET_NO
SEATNO
TRUNCATE TABLE:
SQL> truncate table railway;
Table truncated.
SQL> desc railway;

VARCHAR2(10)
DATE
DATE
NUMBER(15)
NUMBER(10)

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
Name
Null? Type
----------------------------------------- -------- ---------------------------NAME
DEPARTURE
ARRIVAL
TICKET_NO
SEATNO

VARCHAR2(10)
DATE
DATE
NUMBER(15)
NUMBER(10)

DROP THE TABLE:


SQL> drop table emp;
Table dropped.
SQL> desc emp;
ERROR:
ORA-04043: object emp does not exist
UPDATING THE TABLE:
SQL> update student set sname="sarah" where rank=2;
update student set sname="sarah" where rank=2
*
ERROR at line 1:
ORA-00904: "sarah": invalid identifier
SQL> update student set sname='sarah' where rank=2;
1 row updated.
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 melvina
cse
100
100
1
12567 sarah
cse
98
88
2
DELETING ROWS FROM TABLE:

RANK

SQL> delete from student where rank=2;


1 row deleted.
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ----------

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
12345 melvina

cse

100

100

SQL GROUP FUNCTIONS: (AGGREGATE FUNCTIONS)


SQL> select avg(marks) from student;
AVG(MARKS)
---------93.6666667
SQL> select sum(marks) from student;
SUM(MARKS)
---------281
SQL> select min(marks) from student;
MIN(MARKS)
---------87
SQL> select max(marks) from student;
MAX(MARKS)
---------100
SQL> select count(*) from student;
COUNT(*)
---------3
SQL> select count(sname) from student;
COUNT(SNAME)
-----------3
SQL> select first(marks) from student;
select first(marks) from student
*
ERROR at line 1:
ORA-00904: "FIRST": invalid identifier

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

SQL> select variance(marks) from student;


VARIANCE(MARKS)
--------------42.3333333
SQL> select stddev(marks) from student;
STDDEV(MARKS)
------------6.5064071
NUMBER FUNCTIONS:
SQL> select cosh(60) from dual;
COSH(60)
---------5.7100E+25
SQL> select cosh(45) from dual;
COSH(45)
---------1.7467E+19
SQL> select round(12.36) rom dual;
select round(12.36) rom dual
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
SQL> select round(12.36) from dual;
ROUND(12.36)
-----------12
SQL> select floor(12.36) from dual;
FLOOR(12.36)
-----------12
SQL> select round(12.74) from dual;

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
ROUND(12.74)
-----------13
SQL> select ceil(12.74) from dual;
CEIL(12.74)
----------13
SQL> select trunc(12.74) from dual;
TRUNC(12.74)
-----------12
SQL> select mod(11,4) from dual;
MOD(11,4)
---------3
SQL> select power(11,4) from dual;
POWER(11,4)
----------14641
SQL> select sign(0),sign(34),sign(-56) from dual;
SIGN(0) SIGN(34) SIGN(-56)
---------- ---------- ---------0
1
-1
SQL> select abs(12),abs(-89),sign(-56) from dual;
ABS(12) ABS(-89) SIGN(-56)
---------- ---------- ---------12
89
-1
SQL> select sqrt(25) from dual;
SQRT(25)
---------5
CHARACTER OR TEXT FUNCTIONS: (STRING FUNCTIONS)

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
SQL> select concat('oracle','corporation')from dual;
CONCAT('ORACLE','
----------------oraclecorporation
SQL> select lpad('oracle',10,'*')from dual;
LPAD('ORAC
---------****oracle
SQL> select rpad('oracle',10,'*')from dual;
RPAD('ORAC
---------oracle****
SQL> select ltrim('ssssmithssss','s')from dual;
LTRIM('S
-------mithssss
SQL> select rtrim('ssssmithssss','s')from dual;
RTRIM('S
-------ssssmith
SQL> select lower('DBMS')from dual;
LOWE
---dbms
SQL> select upper('dbms')from dual;
UPPE
---DBMS
SQL> select initcap('dbms')from dual;
INIT
---Dbms

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
SQL> select length('dbms')from dual;
LENGTH('DBMS')
-------------4
SQL> select substr('abcdefghijklmnopqrstuvwxyz',6,7)from dual;
SUBSTR(
------fghijkl
SQL> select translate('jack','j','b')from dual;
TRAN
---back
SQL> select replace('jackjjs','j','b')from dual;
REPLACE
------backbbs
SQL> select chr(122)from dual;
C
z
SQL> select chr(108)from dual;
C
L
DATE FUNCTIONS:
SQL> select sysdate from dual;
SYSDATE
--------16-JUL-14
SQL> select next_day(sysdate,'wed')from dual;
NEXT_DAY(
---------

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
23-JUL-14
SQL> select add_months(syadate,2)from dual;
select add_months(syadate,2)from dual
*
ERROR at line 1:
ORA-00904: "SYADATE": invalid identifier
SQL> select add_months(sysdate,2)from dual;
ADD_MONTH
--------16-SEP-14
SQL> select last_day(sysdate) from dual;
LAST_DAY(
--------31-JUL-14
SQL> select least('4-jan-1996','13-jul-1996')from dual;
LEAST('4-JA
----------13-jul-1996
SQL> select greatest('4-jan-1996','13-jul-1996')from dual;
GREATEST('
---------4-jan-1996
SQL> select months_between(sysdate,'11-jun-1995')from dual;
MONTHS_BETWEEN(SYSDATE,'11-JUN-1995')
------------------------------------229.1736
SQL> select round('18-feb-1992','month')from dual;
select round('18-feb-1992','month')from dual
*
ERROR at line 1:
ORA-01722: invalid number
SQL> select round('18-feb-1992','month')from dual;
select round('18-feb-1992','month')from dual

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
*
ERROR at line 1:
ORA-01722: invalid number
SQL> select round(sysdate,'month')from dual;
ROUND(SYS
--------01-AUG-14
SQL> select trunc(sysdate,'month')from dual;
TRUNC(SYS
--------01-JUL-14
CONVERSION FUNCTIONS:
SQL> select to_char(65,'RN')from dual;
TO_CHAR(65,'RN'
--------------LXV
SQL> select to_char(65,'rn')from dual;
TO_CHAR(65,'RN'
--------------lxv
SQL> select to_char(65,'s9999')from dual;
TO_CH
----+65
SQL> select to_char(123456,'9g 99g 999')from dual;
select to_char(123456,'9g 99g 999')from dual
*
ERROR at line 1:
ORA-01481: invalid number format model
SQL> select to_char('123456','9g 99g 999')from dual;
select to_char('123456','9g 99g 999')from dual
*
ERROR at line 1:

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
ORA-01481: invalid number format model
SQL> select to_char(123456,'9g99g999')from dual;
TO_CHAR(1
--------1,23,456
SQL> select to_char(sysdate,'ddth "of" month yyyy')from dual;
TO_CHAR(SYSDATE,'DDTH"OF"MONTHYYYY')
------------------------------------------------16th of july 2014
SQL> select to_date('jan-18-1996','month-dd-yyyy)from dual;
ERROR:
ORA-01756: quoted string not properly terminated
SQL> select to_date('jan-18-1996','month-dd-yyyy')from dual;
TO_DATE('
--------18-JAN-96
SQL> select to_number(100)from dual;
TO_NUMBER(100)
-------------100
SQL> select to_number('100')from dual;
TO_NUMBER('100')
---------------100
SQL> select to_number('hundred')from dual;
select to_number('hundred')from dual
*
ERROR at line 1:
ORA-01722: invalid number
SQL>
SQL> select to_number('56')from dual;

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
TO_NUMBER('56')
--------------56
GROUP BY:
SQL> select dept,min(marks) from student group by dept;
DEPT
MIN(MARKS)
---------- ---------cse
100
it
87
ece
94
SQL> select dept,min(marks) from student group by dept having rank between 1 an
3;
select dept,min(marks) from student group by dept having rank between 1 and 3
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
HAVING:
SQL> select dept,min(marks) from student group by dept having marks>90;
select dept,min(marks) from student group by dept having marks>90
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
SQL> select dept,min(marks) from student group by dept having min(marks)>90;
DEPT
MIN(MARKS)
---------- ---------ece
94
UNION:
SQL> select sname from student union select name from railway;
SNAME
-------------------max
melvina
sarah
selvi
sophia
stella

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

6 rows selected.
INTERSECT:
SQL> select sname from student intersect select name from railway;
SNAME
-------------------max
sarah
sophia
EXCEPT OR MINUS:
SQL> select sname from student minus select name from railway;
SNAME
-------------------stella
CONVERSION FUNCTIONS:
SQL> select nvl(' ',2) from dual;
N
SQL> select decode(10,20,30,40,50,25) from dual;
DECODE(10,20,30,40,50,25)
------------------------25
SQL> select decode(10,10,30,40,50,25) from dual;
DECODE(10,10,30,40,50,25)
------------------------30
SQL> select decode(10,10,30,10,50,25) from dual;
DECODE(10,10,30,10,50,25)
------------------------30

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

SQL> select decode(10,20,30,10,50,25) from dual;


DECODE(10,20,30,10,50,25)
------------------------50

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

EX.NO:3
CREATION OF VIEWS, SYNONYMS, SEQUENCE,
INDEXES AND SAVE POINT
VIEWS:
CREATION OF VIEW:
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 melvina
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
15743 stella
cse
90
87
4

RANK

SQL> create view studview as select sname,dept from student;


View created.

USING MORE THAN ONE TABLE:


SQL> select * from personal;
NAME
AGE
PHNO
---------- ---------- ---------max
42
99532
sophia
18
12345
sarah
19
65437
stella
49
12874
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
15743 stella
cse
90
87
4

RANK

SQL> create or replace view studview as select name,sname from personal,student


where personal.name=student.sname;
View created.
SQL> select * from studview;

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

NAME
SNAME
---------- -------------------max
max
sophia sophia
sarah
sarah
stella stella
SQL> create or replace view studview as select regno,name,age,phno,dept,rank fro
m personal,student where personal.name=student.sname;
View created.
SQL> select * from studview;
REGNO NAME
AGE
PHNO DEPT
---------- ---------- ---------- ---------- ---------- ---------12345 max
42
99532 cse
1
11335 sophia
18
12345 it
5
55432 sarah
19
65437 ece
2
15743 stella
49
12874 cse
4

RANK

SQL> create or replace view studview as select student.sname,personal.name from


student join personal on student.sname=personal.name;
View created.
SQL> select * from studview;
SNAME
NAME
-------------------- ---------amber
amber
sophia
sophia
sarah
sarah

TO VIEW THE VIEWS:


SQL> select * from studview;
SNAME
DEPT
-------------------- ---------melvina
cse
sophia
it
sarah
ece
stella
cse
SQL> create view studview as select sname,dept from student where dept='cse';

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

create view studview as select sname,dept from student where dept='cse'


*
ERROR at line 1:
ORA-00955: name is already used by an existing object

UPDATING VIEWS:
SQL> create or replace view studview as select sname from student where rank=1;
View created.
SQL> select * from studview;
SNAME
-------------------melvina
SQL> update studview set sname='max' where sname='melvina';
1 row updated.
SQL> select * from studview;
SNAME
-------------------max

DROPPING VIEWS:
SQL> drop view studview;
View dropped.
SQL> select * from studview;
select * from studview
*
ERROR at line 1:
ORA-00942: table or view does not exist

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

SYNONYMS:
SYNONYM CREATION:
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
15743 stella
cse
90
87
4

RANK

SQL> create synonym studentsynonym for student;


Synonym created.

VIEWING A SYNONYM:
SQL> select * from studentsynonym;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
15743 stella
cse
90
87
4

DROPPING A SYNONYM:
SQL> drop synonym studentsynonym;
Synonym dropped

SEQUENCE:
CREATING A SEQUENCE:
SQL> create sequence rollno
2 start with 101
3 maxvalue 160;
Sequence created.

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

VIEWING A SEQUENCE:
SQL> insert into student values(rollno.nextval,'amber','cse',98,94,3);
1 row created.
SQL> insert into student values(rollno.nextval,'rose','mech',90,46,9);
1 row created.
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
101 amber
cse
98
94
3
102 rose
mech
90
46
9
15743 stella
cse
90
87
4

RANK

6 rows selected.
SQL> select rollno.nextval from dual;
NEXTVAL
---------103
SQL> select rollno.nextval from dual;
NEXTVAL
---------104
SQL> select rollno.nextval from dual;
NEXTVAL
---------105
SQL> create table stud (name varchar2(10),rollno number, marks number,rank numbe
r);
Table created.
SQL> desc stud;

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
Name
Null? Type
----------------------------------------- -------- ---------------------------NAME
ROLLNO
MARKS
RANK

VARCHAR2(10)
NUMBER
NUMBER
NUMBER

SQL> insert into stud values('melvina',rollno.nextval,100,1);


1 row created.
SQL> select * from stud;
NAME
ROLLNO
MARKS
---------- ---------- ---------- ---------melvina
107
100
1

RANK

SQL> insert into stud values('sarah',rollno.nextval,98,2);


1 row created.
SQL> select * from stud;
NAME
ROLLNO
MARKS
---------- ---------- ---------- ---------melvina
107
100
1
sarah
108
98
2
SQL> select rollno.nextval from dual;
NEXTVAL
---------109

DROPPING A SEQUENCE:
SQL> drop sequence rollno;
Sequence dropped.

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

INDEXES:
SIMPLE INDEX:
SQL> select * from stud;
ROLLNO NAME
---------- --------------101 mel
SQL> create index rollindex on stud(rollno);
Index created.

COMPOSITE INDEX:
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
101 amber
cse
98
94
3
102 rose
mech
90
46
9
15743 stella
cse
90
87
4
6 rows selected.
SQL> create index regnoindex on student(regno,sname);
Index created.

UNIQUE INDEX:
SQL> select * from railway;
NAME
DEPARTURE ARRIVAL TICKET_NO
---------- --------- --------- ---------- ---------melvina 19-FEB-14 23-FEB-14 12343
55555
sophia 17-JAN-15 13-JAN-15
11111
1234
sarah
11-JUL-96 19-JUL-97
33456
12345
max
16-FEB-04 17-MAR-14
77765
34532
selvi
12-JAN-90 13-FEB-82 98765
67854

SEATNO

SQL> create unique index nameindex on railway(name);

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
Index created.

BITMAPPING INDEX:
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
101 amber
cse
98
94
3
102 rose
mech
90
46
9
15743 stella
cse
90
87
4
6 rows selected.
SQL> create bitmap index deptindex on student(dept);
Index created.

REVERSE INDEX:
SQL> select * from railway;
NAME
DEPARTURE ARRIVAL TICKET_NO
---------- --------- --------- ---------- ---------melvina 19-FEB-14 23-FEB-14 12343
55555
sophia 17-JAN-15 13-JAN-15
11111
1234
sarah
11-JUL-96 19-JUL-97
33456
12345
max
16-FEB-04 17-MAR-14
77765
34532
selvi
12-JAN-90 13-FEB-82 98765
67854

SEATNO

SQL> create index seatindex on railway(seatno) reverse;


Index created.

ASCENDING ANDDESCENDING INDEX:


SQL> create index railindex on railway(name asc,ticket_no desc);
Index created.

FUNCTION BASED INDEX:


SQL> create index studindex on student(marks+percent);

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

Index created.

DROPPING AN INDEX:
SQL> drop index studindex;
Index dropped.

SAVE POINT:
SQL> create table stud(rollno number(10), name varchar2(15));
Table created.
SQL> desc stud;
Name
Null? Type
----------------------------------------- -------- -----------------------ROLLNO
NAME

NUMBER(10)
VARCHAR2(15)

SQL> insert into stud values(101,'mel');


1 row created.
SQL> savepoint s1;
Savepoint created.
SQL> commit;
Commit complete.
SQL> select * from stud;
ROLLNO NAME
---------- --------------101 mel
SQL> delete from stud where rollno=101;
1 row deleted.
SQL> savepoint s2;
Savepoint created.

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

SQL> select * from stud;


no rows selected
SQL> roll_back s1;
Rollback complete.
SQL> select * from stud;
ROLLNO NAME
---------- --------------101 mel

UPDATING VIEWS:
SQL> select * from student;
REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 max
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
102 rose
mech
90
46
9
15743 stella
cse
90
87
4
SQL> select * from studview;
SNAME
RANK
-------------------- ---------max
cse
sophia
it
sarah
ece
rose
mech
stella
cse
SQL> update studview set sname='mmm' where sname='max';
1 row updated.
SQL> select * from studview;
SNAME
RANK
-------------------- ---------mmm
cse
sophia
it
sarah
ece
rose
mech

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
stella

cse

SQL> select * from student;


REGNO SNAME
DEPT
MARKS PERCENT
---------- -------------------- ---------- ---------- ---------- ---------12345 mmm
cse
100
100
1
11335 sophia
it
87
88
5
55432 sarah
ece
94
73
2
102 rose
mech
90
46
9
15743 stella
cse
90
87
4

SEQUNCE CREATION USING LOOPS:


SQL> create sequence age
2 increment by 1
3 start with 18
4 maxvalue 21
5 cycle;
Sequence created.
SQL> insert into personal values('mmmmm',age.nextval,43221);
1 row created.
SQL> insert into personal values('nnnnn',age.nextval,43221);
1 row created.
SQL> insert into personal values('ooooo',age.nextval,43221);
1 row created.
SQL> insert into personal values('pppp',age.nextval,43221);
1 row created.
SQL> insert into personal values('qqqqq',age.nextval,43221);
1 row created.
SQL> select * from personal;

RANK

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
NAME
AGE
PHNO
---------- ---------- ---------mmmmm
18
43221
nnnnn
19
43221
nnnnn
20
43221
ooooo
21
43221
pppp
1
43221
qqqqq
2
43221
melvina
18
99529
sophia
19
95000
sarah
22 909494
amber
16
78905
10 rows selected.

READ AND WRITE ACCESS:


SQL> alter table personal read only;
Table altered.
SQL> insert into personal values('aaaaa',12,4432);
insert into personal values('aaaaa',12,4432)
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "USER202"."PERSONAL"
SQL> alter table personal read write;
Table altered.
SQL> insert into personal values('aaaaa',12,4432);
1 row created.
SQL> select * from personal;
NAME
AGE
PHNO
---------- ---------- ---------mmmmm
18
43221
nnnnn
19
43221
nnnnn
20
43221
ooooo
21
43221
pppp
1
43221
qqqqq
2
43221
aaaaa
12
4432

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
melvina
sophia
sarah
amber

18
99529
19
95000
22 909494
16
78905

11 rows selected.

TRANSACTION CONTROLS:
SQL> set transaction read only;
Transaction set.
SQL> insert into personal values('genius',20,99874);
insert into personal values('genius',20,99874)
*
ERROR at line 1:
ORA-01456: may not perform insert/delete/update operation inside a READ ONLY
transaction
SQL> set transaction read write;
set transaction read write
*
ERROR at line 1:
ORA-01453: SET TRANSACTION must be first statement of transaction
SQL> commit;
Commit complete.
SQL> set transaction read write;
Transaction set.
SQL> insert into personal values('genius',20,99874);
1 row created.
SQL> select * from personal;
NAME
AGE
PHNO
---------- ---------- ---------mmmmm
18
43221
nnnnn
19
43221
nnnnn
20
43221

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
ooooo
pppp
qqqqq
aaaaa
melvina
sophia
sarah
amber
genius

21
43221
1
43221
2
43221
12
4432
18
99529
19
95000
22 909494
16
78905
20
99874

12 rows selected.

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

EX.NO:4

CREATING AN EMPLOYEE DATABASE TO SET


VARIOUS CONSTRAINTS

DOMAIN INTEGRITY CONSTRAINT:


1) NOT NULL CONSTRAINT:
SQL> create table emp(enumber number(10)not null, ename varchar(10));
Table created.
SQL> desc emp;
Name
Null? Type
----------------------------------------- -------- --------------------------ENUMBER
ENAME

NOT NULL NUMBER(10)


VARCHAR2(10)

SQL> insert into emp(enumber) values(NULL);


insert into emp(enumber) values(NULL)
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("USER202"."EMP"."ENUMBER")
SQL> insert into emp(enumber) values('');
insert into emp(enumber) values('')
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("USER202"."EMP"."ENUMBER")
SQL> insert into emp(enumber,ename) values(100,'aaa');
1 row created.
SQL> select * from emp;
ENUMBER ENAME
---------- ---------100 aaa
SQL> alter table stud modify eno unique;
Table altered.
SQL> insert into stud(eno) values('');
insert into stud(eno) values('')

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("USER202"."STUD"."ENO")
SQL> insert into stud(eno) values(111);
1 row created.
SQL> insert into stud(eno) values(111);
insert into stud(eno) values(111)
*
ERROR at line 1:
ORA-00001: unique constraint (USER202.SYS_C0017876) violated

2) CHECK CONSTRAINT:
SQL> create table stud(regno number(10), name varchar2(10), age number(3) constr
aint ck check(age between 16 and 21));
Table created.
SQL> desc stud;
Name
Null? Type
----------------------------------------- -------- ----------------------REGNO
NAME
AGE

NUMBER(10)
VARCHAR2(10)
NUMBER(3)

SQL> insert into stud(age) values(12);


insert into stud(age) values(12)
*
ERROR at line 1:
ORA-02290: check constraint (USER202.CK) violated
SQL> insert into stud(regno,name,age) values(101,'nnnn',19);
1 row created.
SQL> select * from stud;
REGNO NAME
AGE
---------- ---------- ---------101 nnnn
19
SQL> alter table stud add check (age between 19 and 29);

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

Table altered.
SQL> insert into stud(age) values(28);
insert into stud(age) values(28)
*
ERROR at line 1:
ORA-02290: check constraint (USER202.CK) violated

3) DEFAULT CONSTRAINT:
SQL> create table stud(regno number(10)default 100, name varchar2(10));
Table created.
SQL> desc stud;
Name
Null? Type
----------------------------------------- -------- ---------------------------REGNO
NAME

NUMBER(10)
VARCHAR2(10)

SQL> insert into stud(name) values('ggg');


1 row created.
SQL> select * from stud;
REGNO NAME
---------- ---------123 mmmm
100 eee
123 gggg
100 ggg
SQL> insert into stud(regno)values(990);
1 row created.
SQL> select * from stud;
REGNO NAME
---------- ---------123 mmmm
100 eee
123 gggg
100 ggg
990
SQL> alter table stud modify regno default 200;

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

Table altered.
SQL> insert into stud(name) values('llll');
1 row created.
SQL> select * from stud;
REGNO NAME
---------- ---------123 mmmm
100 eee
123 gggg
100 ggg
990
200 llll
6 rows selected.

ENTITY INTEGRITY AND KEY CONSTRAINT:


1) UNIQUE CONSTRAINT:
SQL> create table stud(regno number(10)unique, name varchar2(15));
Table created.

SQL> desc stud;


Name
Null? Type
----------------------------------------- -------- ---------------------------REGNO
NAME

NUMBER(10)
VARCHAR2(15)

SQL> insert into stud(regno) values(100);


1 row created.
SQL> insert into stud(regno) values(200);
1 row created.
SQL> insert into stud(regno) values(100);

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
insert into stud(regno) values(100)
*
ERROR at line 1:
ORA-00001: unique constraint (USER202.SYS_C0017819) violated
SQL> insert into stud(regno,name) values(145,'mmm');
1 row created.
SQL> select * from stud;
REGNO NAME
---------- --------------100
200
145 mmm
SQL> insert into stud(regno,name) values('','mmm');
1 row created.
SQL> select * from stud;
REGNO NAME
---------- --------------100
200
145 mmm
Mmm
SQL> alter table stud add unique(name);
Table altered.
SQL> insert into stud(name) values('mmm');
1 row created.
SQL> insert into stud(name) values('mmm');
insert into stud(name) values('mmm')
*
ERROR at line 1:
ORA-00001: unique constraint (USER202.SYS_C0017841) violated

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:

2) PRIMARY KEY CONSTRAINT:


SQL> create table stud(regno number(10)primary key,name varchar2(15));
Table created.
SQL> desc stud;
Name
Null? Type
----------------------------------------- -------- -----------------------REGNO
NAME

NOT NULL NUMBER(10)


VARCHAR2(15)

SQL> insert into stud(regno) values(101);


1 row created.
SQL> insert into stud(regno) values(101);
insert into stud(regno) values(101)
*
ERROR at line 1:
ORA-00001: unique constraint (USER202.SYS_C0017845) violated
SQL> insert into stud(regno) values('');
insert into stud(regno) values('')
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("USER202"."STUD"."REGNO")
SQL> insert into stud(regno,name) values(202,'bbb');
1 row created.
SQL> select * from stud;
REGNO NAME
---------- --------------101
202 bbb
SQL> alter table stud add primary key(name);
alter table stud add primary key(name)
*
ERROR at line 1:

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
ORA-02260: table can have only one primary key

REFERENTIAL INTEGRITY CONSTRAINT:


1) FOREIGN KEY:
SQL> create table admin(studid number(10) primary key, name varchar2(10));
Table created.
SQL> desc admin;
Name
Null? Type
----------------------------------------- -------- ---------------------------STUDID
NAME

NOT NULL NUMBER(10)


VARCHAR2(10)

SQL> select * from admin;


STUDID NAME
---------- ---------122 ddd
123 fff
666 uuu
SQL> create table course(studid number(10) constraint fk references admin(studid
), dept number(4));
Table created.
SQL> desc course;
Name
Null? Type
----------------------------------------- -------- ---------------------------STUDID
DEPT

NUMBER(10)
NUMBER(4)

SQL> insert into course values(&studid,&dept);


Enter value for studid: 122
Enter value for dept: 2
old 1: insert into course values(&studid,&dept)
new 1: insert into course values(122,2)
1 row created.
SQL> /
Enter value for studid: 129

PANIMALAR ENGINEERING COLLEGE093


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
REG NO:
Enter value for dept: 3
old 1: insert into course values(&studid,&dept)
new 1: insert into course values(129,3)
insert into course values(129,3)
*
ERROR at line 1:
ORA-02291: integrity constraint (USER202.FK) violated - parent key not found
SQL> delete from admin where studid=122;
delete from admin where studid=122
*
ERROR at line 1:
ORA-02292: integrity constraint (USER202.FK) violated - child record found

Das könnte Ihnen auch gefallen