SQL Practical
SQL Practical
NOW WE HAVE TO POPULATE TABLE WITH DATA ,MEANS WE HAVE TO ENTER ROW WITH
THE HELP OF INSERT COMMAND.
1 row created.
SQL> INSERT INTO MCA VALUES(4,'SIMRAN PANCHAL',11,'4-APR-86','MCA','F',21,'A++');
1 row created.
SQL> INSERT INTO MCA VALUES(5,'SAGAR PANCHAL',17,'6-MAR-85','MCA','M',22,'A+');
1 row created.
NOW TO SEE THE ALL ROWS IN A TABLE FOLLOWING COMMAND IS USED.
SQL> SELECT * FROM MCA;
SNO NAME
ROLLNO DOB
COURSE S
AGE GRA
--------- -------------------- --------- --------- ------ - --------- ----------------------------------------1 KULDEEP SAINI
12
21-OCT-86 MCA
M
21
A
2 RAKESH SINGHMAR
22
23-DEC-83 MCA
M
23 A+
3 PRADEEP CHAHAR
20
15-JAN-85 MCA
M
22 A
4 SIMRAN PANCHAL
11
04-APR-86 MCA
F
21 A++
5 SAGAR PANCHAL
17
06-MAR-85 MCA
M
22 A+
--------------------------------------------------------------------------------------------------------------
/*****************************REFERENTIAL INTEGRITY*****************************/
REFERENTIAL INTEGRITY IS AN IMPORTANT CONSTRAINT OF TABLES.
ATTRIBUTES WHICH ARE PERMANENT LIKE NAME ,DOB,COURSE etc. ARE STORED IN ONE
TABLE CALLED MASTER TABLE.THE MASTER TABLE CONTAIN ONLY ONE RECORD FOR EVERY
STUDENT. NOW FIRST OF ALL WE CREATE A MASTER TABLE.
SQL> CREATE TABLE MCA1 (SNO NUMBER,
2 NAME CHAR(20),ROLLNO NUMBER PRIMARY KEY,
3 DOB DATE,
4 COURSE CHAR(6),
5 S CHAR,
6 AGE NUMBER,
7 GRADE VARCHAR(3));
Table created.
SQL> DESC MCA1
Name
Null?
Type
------------------------------- -------- --------------------------SNO
NUMBER
NAME
CHAR(20)
ROLLNO
NOT NULL
NUMBER
DOB
DATE
COURSE
CHAR(6)
S
CHAR(1)
AGE
NUMBER
GRADE
VARCHAR2(3)
---------------------------------------------------------------------ON OTHER HAND THERE IS A TRANSACTION TABLE.IT CAN HAVE MORE THAN ONE RECORD
FOR EVERY STUDENT
SQL> CREATE TABLE MCA1_MARKS
(ROLL_NO NUMBER REFERENCES MCA1,
SUBJECT VARCHAR(10),
EXAM_DATE DATE,
MARKS NUMBER(3));
Table created.
NOW IF WE TRY TO DELETE A ROW WITH ROLLNO=11, FROM TABLE MCA1 , IT WILL
SHOW ERROR MESSAGE BECAUSE IT WILL VIOLATE THE REFERENTIAL INTEGRITY RULE.
SQL> DELETE FROM MCA1 WHERE ROLLNO=11;
DELETE FROM MCA1 WHERE ROLLNO=11
*
ERROR at line 1:
ORA-02292: integrity constraint (SCOTT.SYS_C00814) violated - child record found
NOW ,WE CAN USE ON DELETE CASCADE AS GIVEN BELOW TO SOLVE THIS PROBLEM .IN
THIS CASE WHEN WE DELETE ONE ROW FROM MASTER TABLE THE RELATED ROWS IN
TRANSACTION TABLE ARE AUTOMETICALLY DELETED.
SO NOW WE CREATE ANOTHER TRANSACTION TABLE NAMED MCA1_MARKS1 WITH
KEYWORDS DELETE CASCADE.
/*****************************JOIN OPERATION********************************/
WE WILL PERFORM JOIN OPERATION ON MCA1_MARKS1 AND MCA1. FIRSTY WE WILL ADD
SOME ROWS IN MCA1_MARKS1.
SQL> INSERT INTO MCA1_MARKS1 VALUES(12,'DATA BASE','12-DEC-2007',77);
1 row created.
SQL> INSERT INTO MCA1_MARKS1 VALUES(20,'VB','14-DEC-2007',58);
1 row created.
SQL> SELECT SNO,MCA1.ROLLNO,NAME,SUBJECT,MARKS
FROM MCA1,MCA1_MARKS1
WHERE MCA1.ROLLNO=MCA1_MARKS1.ROLLNO;
SNO
ROLLNO
NAME
SUBJECT
MARKS
--------- --------- -------------------- -------------------------------------1
12
KULDEEP SAINI
DATA BASE
77
3
20
PRADEEP CHAHAR VB
58
5
17
SAGAR PANCHAL VC++
81
----------------------------------------------------------------------------------------------/****************************OUTTER JOIN***********************************/
SQL> SELECT SNO,MCA1.ROLLNO,NAME,SUBJECT,MARKS
2 FROM MCA1,MCA1_MARKS1
3 WHERE MCA1.ROLLNO=MCA1_MARKS1.ROLLNO(+);
SNO ROLLNO
NAME
--------- --------- -------------------- ---------- --------5
17
SAGAR PANCHAL
3
20
PRADEEP CHAHAR
1
12
KULDEEP SAINI
2
22
RAKESH SINGHMAR
SUBJECT
----------------VC++
VB
DATA BASE
MARKS
-----------81
58
77
------------------------------------------------------------------------------------------------------------
/************************************DUAL TABLE***********************************/
IT IS PREDEFINED TABLE PROVIDED BY SQL . DUAL TABLE IS USE TO VARIFY ANY
PREDEFINED FUNCTIONS WHICH ARE ALSO PROVIDED BY SQL.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
---------------20-NOV-07
SQL> SELECT USER FROM DUAL;
USER
--------------SCOTT
SQL> SELECT LN(1)FROM DUAL;
LN(1)
---------------0
SQL> SELECT COS(45) FROM DUAL;
COS(45)
----------------.52532199
SQL> SELECT CEIL(123.55) FROM DUAL;
CEIL(123.55)
-----------124
/*********************************ALTER COMMAND*********************************/
WE CAN DO FOLLOWING CHANGES IN A TABLE BY ALTER COMMAND
(1)