0% found this document useful (0 votes)
71 views

SQL Tables Creation

This document contains the code for creating tables, inserting, updating, deleting and retrieving data from databases using SQL queries. It demonstrates how to create a table, insert values, select specific columns, modify table structures, truncate and drop tables. It also shows various SQL functions like aggregation, number, character, date functions and conversions.
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views

SQL Tables Creation

This document contains the code for creating tables, inserting, updating, deleting and retrieving data from databases using SQL queries. It demonstrates how to create a table, insert values, select specific columns, modify table structures, truncate and drop tables. It also shows various SQL functions like aggregation, number, character, date functions and conversions.
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 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

You might also like