DBMS LAB MANUAL (2)
DBMS LAB MANUAL (2)
QUERY:02
Syntax for describe the table:
SQL: DESC <TABLE NAME>;
SQL> DESC EMP;
ID NUMBER
FIRSTNAME VARCHAR2(50)
LASTNAME VARCHAR2(50)
DEPT VARCHAR2(50)
REGNO NUMBER
QUERY:03
Q3. Write a query for create a from an existing table with all the
fields
Syntax For Create A from An Existing Table With AII Fieids
SQL> CREATE TABLE <TRAGET TABLE NAME> SELECT FROM
<$OURCE TABLE NAME>;
SQL> CREATE TABLE EMP1 AS SELECT FROM EMP;
Table created.
SQL> DESC EMP1
Name Null? Type
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
DESIGNATIN
VARCHAR2(10) SALARY
NUMBER(8,2)
QUERY: 04
Q4. Write a query for create a from an existing table with selected
fields
Syntax For Create A from An Existing Table With Selected Fields
sQL> CREATE TABLE <TRAGET TABLE NAME> SELECT EMPNO,
ENAME FROM <SOURCE TABLE NAME>;
QUERY: 04
SQL> CREATE TABLE EMP2 AS SELECT EMPNO, ENAME FROM EMP
Table created.
SQL> DESC EMP2
Name Null? Type
QUERY: 05
q5. write a query for create a new table from an existing table
without any record:
Syntax for create a new table from an existing table without any
record:
SQL> CREATE TABLE <TRAGET TABLE NAME> AS SELECT FROM
<SOURCE TABLE NAME> WHERE <FALSE CONDITION>;
QUERY: 05
SQL> CREATE TABLE EMP3 AS SELECT* FROM EMP WHERE
1>2;
Table created.
SQL> DESC EMP3;
Name Null? Type
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
DESIGNATIN
VARCHAR2(10) SALARY
NUMBER(8,2);
ALTER & MODIFICATION ON TABLE
QUERY: 06
Q6. Write a Query to Alter the column EMPNO NUMBER (4) TO
EMPNO NUMBER
(6).
Syntax for Alter & Modify on a Single Column:
SQL > ALTER <TABLE NAME> MODIFY <COLUMN NAME> <DATATYPE
(SIZE);
QUERY: 06
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2);
QUERY: 08
Q8. Write a query to add a new column in to employee
Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> ADD (<COLUMN NAME <DATA
TYPE> <SIZE>);
QUERY: 08
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)
QUERY: 09
Q9. Write a query to add muitiple columns in to
employee Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> ADD (<COLUMN NAME1>
<DATA TYPE> <SIZE>,(<COLUMN NAME2> <DATA TYPE>
<SIZE>,
QUERY: 09
SQL>ALTER TABLE EMP ADD (DOB DATE, DOJ DATE);
Table altered.
SQL> DESC
EMP:
Name Null? Type
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)
DOB DATE
DOJ DATE
QUERY: 10
Q10. Write a query to drop a column from an existing table employee
Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> DROP COLUMN <COLUMN NAME>;
QUERY: 10
SQL> ALTER TABLE EMP DROP COLUMN DOJ;
Tabie altered.
SQL> DESC EMP;
Name Null? Type
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)
DOB DATE
QUERY: 11
Q11. Write a query to drop mutiple columns from employee
Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> DROP <COLUMN
NAME1>,<COLUMN NAME2>,..
QUERY: 11
SQL> ALTER TABLE EMP DROP (DOB, QUALIFICATION):
Table altered.
SQL> DESC EMP:
Name Null? Type
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2))
REMOVE
QUERY: 12
Q12. Write a query to rename table emp to employee
Syntax for add a new column:
SQL> ALTER TABLE RENAME <OLD NAME> TO <NEW NAME>
QUERY: 12
SQL> ALTER TABLE EMP RENAME EMP TO EMPLOYEE;
SQL> DESC EMPLOYEE;
Name Null? Type
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
INSERT
QUERY: 13
Q13 Write a query to insert the records in to employee.
Syntax for Insert Records in to a table:
SQL :> INSERT INTO <TABLE NAME> VALUES< VAL1, VAL2',. .. ):
INSERT A RECORD FROM AN EXISTING TABLE:
sQL>INSERT INTO EMP VALUES(101,' NAGARAJAN',' LECTURER",15000);
1 row created.
SELECT
QUERY: 14
Q14.rite a query to display the records from employee.
Syntax for select Records from the table:
SQL> SELECT FROM <TABLE NAME>;
QUERY: 02
DISPLAY THE EMP TABLE:
SQL> SELECT * FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 15000
INSERT A RECORD USING SUBSITUTION METHOD
QUERY: 15
Q15.rite a query to insert the records in to employee using substitution
method.
Syntax for Insert Records into the table:
SQL :> INSERT INTO <TABLE NAME> VALUES< "&column name, '&column
name 2',....
QUERY: 03
SQL> INSERT INTO EMP
VALUES(&EMPNO,'&ENAME''&DESIGNATIN,'&SALARY');
Enter value for empno: 102
Enter value for ename: SARAVANAN
Enter value for designatin:
LECTURER Enter value for salary:
15000
old 1: INSERT INTO EMP
VALUES(&EMPNO,'&ENAME''&DESIGNATIN,'&SALARY)
new 1: INSERT INTO EMP VALUES(102,'SARAVANAN,'LECTURER','15000)
1 row created.
SQL>/
Enter value for empno: 103
Enter value for ename:
PANNERSELVAM Enter value for
designatin: ASST. PROF Enter value for
salary: 20000
old 1: INSERT INTO EMP
VALUES(8&EMPNO,'&ENAME,'&DESIGNATIN",'&SALARY')
new 1: INSERT INTO EMP
VALUES(103,'PANNERSELVAM','ASST. PROF '20O000")
1 row created.
SQL>/
Enter value for empno: 104
Enter value for ename: CHINNI
Enter value for designatin: HOD, PROF
Enter value for salary: 45000
old 1: INSERT INTO EMP
VALUES(8&EMPNO, &ENAME,'&DESIGNATIN','&SALARY')
new 1: INSERT INTO EMP VALUES(104, CHINNI,'HOD, PROF','45000")
1 row created.
SQL> SELECT FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 15000
102 SARAVANAN LECTURER 15000
103 PANNERSELVAM ASST. PROF 20000
104 CHINNI HOD, PROF 45000
UPDATE
QUERY: 16
Q16 Write a query to update the records from employee.
Syntax for update Records from the table:
SQL> UPDATE <<TABLE NAME> SET <COLUMNANE>=<VALUE> WHERE
<COLUMN NAME=<VALUE>;
SQL> UPDATE EMP SET SALARY=16000 WHERE EMPNO=101;
1 row updated.
SQL> SELECT * FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 16000
102 SARAVANAN LECTURER 15000
103 PANNERSELVAM ASST. PROF 20000
104 CHINNI HOD, PROF
45000 UPDATE MULTIPLE
COLUMNS QUERY: 17
17.Write a query to update multiple records from employee.
Syntax for update multiple Records from the table:
SQL> UPDATE <<TABLE NAME> SET <COLUMNANE>=<VALUE> WHERE
<COLUMN NAME=<VALUE>;
SQL>UPDATE EMP SET SALARY = 16000, DESIGNATIN='ASST. PROF WHERE
EMPNO=102;
CS 3466-DBMS LAB MANUAL
SRM VALLIAMMAI ENGG.COLLEGE
1 row updated.
SQL> SELECT FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 16000
102 SARAVANAN ASST. PROF 16000
103 PANNERSELVAM ASST. PROF 20000
104 CHINNI HOD, PROF 45000
DELETE
QUERY: 18
Q18.write a query to delete records from employee.
Syntax for delete Records from the table:
SQL> DELETE <TABLE NAME> WHERE <COLUMN NAME>=<VALUE>;
QUERY: 06
SQL> DELETE EMP WHERE EMPNO=103;
1 row deleted.
SQL> SELECT FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 16000
102 SARAVANAN ASST. PROF 16000
104 CHINNI HÌD, PROF 45000
Column level constralnts Using Primary key
Q1. Write a query to create primary constraints with column
level Primary key
Syntax for Column level constraints Using Primary key:
Q2. Write a query to create primary constraints with column level with
naming
convention
Syntax for Column level constraints Using Primary key:
QUERY: 07
SQL>CREATE TABLE
EMP12 (EMPNO
NUMBER(3), ENAME
VARCHAR2(20), DESIGN
VARCHAR2(15), SAL
NUMBER(S);
SQL>ALTER TABLE EMP12 ADD CONSTRAINT EMP12_DESIGN_UK
UNIQUE(DESING);
Not NulI
Column Level Constraint
Q.15. Write a query to create Not Null constraints with column
level Syntax for Column level constraints with Not Null:
SQL>CREATE TABLE
EMP13 (EMPNO
NUMBER(4),
ENAME VARCHAR2(20) CONSTRAINT EMP13 ENAME NN NOT
NULL, DESIGN VARCHAR2(20),
SAL NUMBER(3):
Null
Column Level Constraint
Q.16. Write a query to create Null constraints with column
level Syntax for Column level constraints with Null:
SQL>CREATE TABLE
EMP13 (EMPNO
NUMBER(4),
ENAME VARCHAR2(20) CONSTRAINT EMP13_ENAME_NN NULL,
DESIGN VARCHAR2(20),
SAL NUMBER(3));
Constraint Disable\Enable
Constraint Disable
Q.17. Write a query to disable the constraints
Syntax for disabling a singie constraint in a
table:
SQL>ALTER TABLE <TABLE-NAME> DISABLE CONSTRAINT <CONSTRAINTNAME>
Constraint Enable
QUERY:17
After creating the above table, we can use the following SQL INSERT
INTO statement:
Output
After creating the above table, we can use the following SQL INSERT
INTO statement:
DESCRIBE Sales;
Output
Output
Query:
Output
Foreign key can also be added in the existing table using the ALTER TABLE
statement. The following method will illustrate the same.
Query:
Output
Retailer_id Order_Purchased
101 Item1
102 Item2
Retailer_id Order_Purchased
103 Item3
.
DROP Foreign Key Constraint
ALTER TABLE table_name
DROP FOREIGN KEY foreign_key_name;
Query:
ENAME VARCHAR2(20),
JOB VARCHAR2(20),
SAL NUMBER(6),
MGRNO NUMBER(4),
DEPTNONUMBER(3));
INSERTION
1 ROW CREATED.
1 ROW CREATED.
1 ROW CREATED.
1 ROW CREATED.
1 ROW CREATED.
Query:
TABLE- 2
..................................................................................................................)
;
Query:
DEPTNAME VARCHAR2(10),
LOCATION VARCHAR2(15));
Table created.
INSERTION
1 ROW CREATED.
201 DEBUG UK
200 TEST US
6 rows selected.
SELECT
"COLUMN_NAME1" FROM
"TABLE_NAME1"
FROM
"TABLE_NAME2"
WHERE [CONDITION])
NAME> = ‘VALUE’
<COLUMN_NAME= ‘VALUE’));
ENAME
MAHESH
MANOJ
KARTHIK
MANI
VIKI
MOHAN
NAVEEN
PRASAD
AGNESH
IN OPERATOR
NOT IN OPERATOR
OUTPUT:
S_ID
S3
EXISTS
P_Id
number(3));
Table created.
SQL> DESC
orders; Name
Null? Type
O_ID NUMBER(5)
ORDERNO NUMBER(5)
P_ID NUMBER(3)
1 row created.
1 row created.
1 row created.
1 row created.
TABLE SECTION:
2 44678 3
3 22456 1
4 24562 1
5 34764 15
city varchar2(10));
Table created.
firstname: Ola
1 row created.
city: Sandnes
old 1: INSERT into persons
1 row created.
city: Stavanger
1 row created.
SQL> SELECT
column_name(s) FROM
table_name1
ON table_name1.column_name=table_name2.column_name
LEFT JOIN
orders
ON persons.p_Id = orders.p_Id
ORDER BY persons.lastname;
OUTPUT
Pettersen Kari
44678 Svendson
Tove
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15
FULL OUTER JOIN SYNTAX
SQL>SELECT column_name(s)
FROM table_name1
ON table_name1.column_name=table_name2.column_name
FROM persons
ON persons.p_Id = orders.p_Id
ORDER BY persons.lastname;
FROM Persons
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
FROM persons
ON persons.p_Id = orders.p_Id
ORDER BY persons.lastname;
LASTNAME FIRSTNAME ORDERNO
INNER JOIN
SQL>SELECT
column_name(s) FROM
table_name1
ON table_name1.column_name=table_name2.column_name
2 FROM persons
4 ON persons.p_Id = orders.p_Id
5 ORDER BY persons.lastname;
LASTNAME FIRSTNAME
ORDERNO
I) PROGRAM:
2 BEGIN
4 END;
5/
Output:
Procedure created.
II) PROGRAM:
3 BEGIN
4 TOT := N1 + N2;
5 END;
6/
Output:
Procedure created.
SQL> VARIABLE T NUMBER SQL> EXEC PROC2(33,66,:T)
PL/SQL procedure successfully
III) PROGRAM:
a number(3);
b number(3);
c number(3);
number(3);
begin
a:=&a;
b:=&b;
if(a>b) then
c:=mod(a,b);
if(c=0) then
dbms_output.put_line('GCD is');
dbms_output.put_line(b);
else
dbms_output.put_line('GCD is');
dbms_output.put_line(c);
end if;
else
d:=mod(b,a);
if(d=0) then
dbms_output.put_line('GCD is');
dbms_output.put_line(a);
else
dbms_output.put_line('GCD is');
dbms_output.put_line(d);
end if;
end if;
end;
OUTPUT:
old 8: a:=&a;
new 8: a:=8;
16 old 9: b:=&b;
new 9: b:=16;
Procedure created.
GCD is 8
IV) PROGRAM:
Table created
SQL> insert into student values (101,'priya', 78,
1 row created.
1 row created.
101 priya 78 88 77 60 89
102 surya 99 77 69 81 99
103 suryapriya 100 90 97 89 91
SQL> declare
ave
number(5,2); tot
number(3);
cursor c_mark is select*from student where mark1>=40 and mark2>=40 and mark3>=40 and
mark4>=40 and mark5>=40;
begin
dbms_output.put_line('regno name mark1 mark2 mark3 mark4 mark4 mark5 total average');
dbms_output.put_line(' ');
for studentin
c_mark loop
tot:=student.mark1+student.mark2+student.mark3+student.mark4+student.mark5;
ave:=tot/5;
dbms_output.put_line(student.regno||rpad(student.name,15)||rpad(student.mark1,6)||rpad(stud
ent.mark2,6)||rpad(student.mark3,6)||rpad(student.mark4,6)||rpad(student.mark5,6)||rpad(tot,8
)||rpad(ave,5));
end loop;
end;
OUTPUT
V) PROGRAM
14 rows selected.
Implicit curscors:
SQL> DECLARE
2 ena EMP.ENAME%TYPE;
3 esa EMP.SAL%TYPE;
4 BEGIN
10 EXCEPTION
13 END;
14 /
Output:
Explicit Cursors:
SQL> DECLARE
2 ena EMP.ENAME%TYPE;
3 esa EMP.SAL%TYPE;
4 CURSOR c1 IS SELECT ename,sal FROM EMP;
5 BEGIN
6 OPEN c1;
12
15 CLOSE c1;
16 END;
17 /
Output:
ALLEN salry is $
$ 1250
IMPLEMENTATION OF FACTORIAL USING FUNCTION
I) PROGRAM:
return number is
number;
begin
b:=1;
for i in
1..n loop
b:=b*i;
end loop;
return b;
end;
SQL>Declare
number:=&n; y
number; begin
y:=fnfact(n);
dbms_output.put_line(y);
end;
/
Function created.
Output
old 2: n number:=&n;
new 2: n number:=5;
120
SQL> create table phonebook (phone_no number (6) primary key,username varchar2(30),doorno
varchar2(10),
Table created.
street','NGO colony','629002');
1 row created.
SQL> insert into phonebook values(29467,'vasanth','39D4','RK bhavan','sarakkal
address varchar2(100);
begin
return
address;
exception
found'; end;
/
Function created.
SQL>declare
2 address varchar2(100);
3 begin
4 address:=findaddress(20312);
5 dbms_output.put_line(address);
6 end;
7/
OUTPUT 1:
2 address varchar2(100);
3 begin
4 address:=findaddress(23556);
5 dbms_output.put_line(address);
6 end;
7 /
OUTPUT2:
CREATING A USER
SQL>CONNECT SYSTEM/MANAGER;
"PASSWORD" EXAMPLE
CREATING A USER
SQL>CONNECT CSE2/CSECSE;
SQL>select ename,job,sal,deptno from emp where sal not between 1500 and 5000;
ENAME JOB SAL DEPTNO
6 rows selected
10 rows selected.
SQL> select empno,ename,sal from emp where comm is not
null; EMPNO ENAME SAL
7499 ALLEN 1600
7521 WARD 1250
9 rows selected
14 rows selected.
SAVEPOINT:
QUERY: 01
QUERY: 01
Savepoint created.
1 row created.
SAVEPOINT SP1;
Savepoint created.
SAVEPOINT SP2;
Savepoint created.
ROLL BACK
QUERY: 02
Rollback complete.
COMMIT
QUERY: 03
SQL> COMMIT;
QUERY
SQL> COMMIT;
Commit complete.
Create a Trigger to pop-up the DML operations
Table created.
1 row created.
1 row created.
1 row created.
BEGIN
IF UPDATING THEN
DBMS_OUTPUT.PUT_LINE('TABLE IS UPDATED');
DBMS_OUTPUT.PUT_LINE('TABLE IS INSERTED')
IF; END;
/ Trigger created.
SQL> update emp set income =900 where empname='kumar';
TABLE IS UPDATED
1 row updated.
TABLE IS INSERTED
TABLE IS DELETED
1 row deleted.
IF UPDATING THEN
DBMS_OUTPUT.PUT_LINE('TABLE IS UPDATED');
DBMS_OUTPUT.PUT_LINE('TABLE IS INSERTED');
DBMS_OUTPUT.PUT_LINE('TABLE IS DELETED');
END IF;
END;
Trigger created.
SQL> INSERT INTO EMP VALUES (4,'SANKAR',700,98,564); TABLE IS INSERTED
1 row created.
SQL> UPDATE EMP SET EMPID = 5 WHERE EMPNAME = 'SANKAR'; TABLE IS UPDATED
1 row updated.
1 row deleted.
1. Create a Trigger to check the age valid or not Using Message Alert
Table created.
AGE NUMBER(3)
PROGRAM:
BEGIN
IF(:NEW.AGE<0) THEN
DBMS_OUTPUT.PUT_LINE('INVALID AGE');
ELSE
DBMS_OUTPUT.PUT_LINE('VALID AGE');
END IF;
END;
Trigger created.
SQL> insert into trig values('abc',15);
Valid age
1 row created.
nvalid age
1 row created.
NAME AGE
abc 15
xyz -12
2. Create a Trigger to check the age valid and Raise appropriate error code and error message
Table created.
4. NAME CHAR(10)
AGE NUMBER(3)
BEGIN
IF(:NEW.AGE<0) THEN
END IF;
END;
/
Trigger created.
* ERROR at line 1:
NAME AGE
abc 10
Create a Trigger for EMP table it will update another table SALARY while inserting values.
Table created.
Table created.
DECLARE
A VARCHAR2(10);
BEGIN
A:=:NEW.INAME;
Trigger created.
1 row created.
1 row created.
1 row created.
VEC 1 1000
SRM 0 0
1 row created.
1 row created.
VEC 2 6000
SRM 1 3000
VEC 3 8000
SRM 1 3000
1 row created.
TOTALSAL
VEC 3 8000
SRM 2 11000
COMMANDS EXECUTION
CREATION OF TABLE
--------------------------------
Table created.
TABLE DESCRIPTION
EMPLOYEE_NAME VARCHAR2(10)
EMPLOYEE_NO NUMBER(8)
DEPT_NAME VARCHAR2(10)
DEPT_NO NUMBER(5)
DATE_OF_JOIN DATE
CREATION OF VIEW
DESCRIPTION OF VIEW
EMPLOYEE_NAME VARCHAR2(10)
EMPLOYEE_NO NUMBER(8)
DEPT_NAME VARCHAR2(10)
DEPT_NO NUMBER(5)
DISPLAY VIEW:
----------------------
RAJ 98 IT 22
GIRI 100 CSE 67
INSERT STATEMENT:
SYNTAX:
1 ROW CREATED.
RAJ 98 IT 22
RAJ 98 IT 22 30-SEP-06
DELETION OF VIEW:
1 ROW DELETED.
RAJ 98 IT 22
GIRI 100 CSE 67
UPDATE STATEMENT:
SYNTAX:
RAJ 98 IT 22
GIRI 100 CSE 67
DROP A VIEW:
SYNTAX:
EXAMPLE
VIEW DROPED
SYNTAX
SQL>CREATE [OR REPLACE] VIEW <VIEW NAME>AS SELECT <COLUMN NAME1>…..FROM <TABLE
ANME>;
EXAMPLE-2:
SQL> CREATE OR REPLACE VIEW EMPL_VIEW1 AS SELECT EMPNO, ENAME, SALARY FROM EMPL;
EXAMPLE-3:
SQL> CREATE OR REPLACE VIEW EMPL_VIEW2 AS SELECT * FROM EMPL WHERE DEPTNO=10;
Note:
àReplace is the keyboard to avoid the error “ora_0095:name is already used by an existing abject”.
TYPE-1:
View created.
6 rows selected.
View created.
View created.
SAL
6 rows selected.
View created.
6 rows selected
View created.
EID EMPNAME DNO D_NAME D_LOC
You can create a view with read only option which enable other to only query .no dml operation
can be performed to this type of a view.
EXAMPLE-4:
SQL>CREATE OR REPLACE VIEW EMP_NO_DML AS SELECT * FROM EMPL WITH READ ONLY;
EXAMPLE-4:
JOIN VIEW:
EXAMPLE-5:
View created.
View created.
FORCE VIEW
EXAMPLE-6:
SQL> CREATE OR REPLACE FORCE VIEW MYVIEW AS SELECT * FROM XYZ; SQL> SELECT * FROM
MYVIEW;
* ERROR at line 1:
6 rows selected.
View created.
EMPNO ENAME SALARY DEPTNO
6 rows selected
COMPILING A VIEW
SYNTAX:
EXAMPLE: