SURYA GROUP OF INSTITUTIONS
SCHOOL OF ENGINEERING AND TECHNOLOGY
DEPARTMENT OF ARTIFICIAL INTELLEGENCE AND DATA SCIENCE
2021 REGULATION
AD3381–DATABASEDESIGN AND MANAGEMENT
LABORATORY
CourseCode :AD3381
CourseName : DATABASE DESIGN AND MANAGEMENT
Year / Semester : II Year / III Semester
Regulations:AU-R2021
Academicyear:2025- EVEN
310120243018
INDEX
Expt. Page
Date Name of the Experiment Signature
No. No
Database Development Life cycle: Problem definition and
1
Requirement analysis Scope and Constraints
Database design using Conceptual modeling (ER-EER) –
2 top-down approach Mapping conceptual to relational
database and validate using Normalization
Implement the database using SQL Data definition with
3
constraints,Views
4 Query the database using SQL Manipulation
Querying/Managing the database using SQL Programming
5 - Stored Procedures/Functions - Constraints and security
using Triggers
Database design using Normalization – bottom-up
6
approach
7 Develop database applications using IDE/RAD tools
Database design using EER-to-ODB mapping / UML class
8
diagrams
Object features of SQL-UDTs and sub-types, Tables using
9
UDTs, Inheritance, Method definition
Querying the Object-relational database using Objet Query
10
language
310121243028
EX.NO.1 Database Development Life cycle
Problem definition and Requirement analysis Scope and Constraints
Query :
CREATE TABLE student1(
student_id number(5) PRIMARY KEY,
first_name varchar(20),
last_namevarchar(20));
desc student1;
CREATE TABLE contact(
student_id number(10),
phone_no number(12) NOT NULL,
dob date,
department varchar(10),
FOREIGN KEY(student_id) references student1(student_id));
desc contact;
CREATE TABLE course(
student_id number(10),
department varchar(10) PRIMARY KEY,
year number(10),
grade varchar(2) NOT NULL,
FOREIGN KEY(student_id) references student1(student_id));
desc course;
310121243028
Output :
Table created
Table created
Table created
310121243028
EX.NO.2 Database design using Conceptual modeling (ER-EER) – top-down
approach Mapping conceptual to relational database and validate
using Normalization
Aim :
To develop a Database design using Conceptual modeling (ER-EER) – top-down approach Mapping
conceptual to relational database and validate using Normalization.
WHAT IS NORMALIZATION?
Normalization is the process of organizing the data in the database.Normalization is used to minimize the
redundancy from a relation or set of relations. It is also used to eliminate undesirable characteristics like
Insertion, Update, and Deletion Anomalies.
TYPES OF NORMAL FORM
1NF A relation is in 1NF if it contains an atomic value.
2NF A relation will be in 2NF if it is in 1NF and all non-key attributes are fully functional
dependent on the primary key.
3NF A relation will be in 3NF if it is in 2NF and no transition dependency exists.
BCNF A stronger definition of 3NF is known as Boyce Codd's normal form.
ER MODEL
The ER model defines the conceptual view of a database. It works around real-world entities and the
associations among them. At view level, the ER model is considered a good option for designing
databases.
310121243028
310121243028
310121243028
Query :
#BEFORE APPLYING 1NF
CREATE TABLE employee(
EMP_ID number(5) PRIMARY KEY,
EMP_NAME varchar(8),
EMP_PHONEvarchar(25),
EMP_STATE varchar(10));
INSERT INTO employee VALUES(14,'John','7272826385,9064738238','UP');
INSERT INTO employee VALUES(20,'harry','8574783832','Bihar');
INSERT INTO employee VALUES(12,'sam','7390372389,8589830302','Punjab');
SELECT * FROM employee;
#AFTER APPLYING 1NF
CREATE TABLE employee1(
EMP_ID number(5) ,
EMP_NAME varchar(8),
EMP_PHONE varchar(25),
EMP_STATE varchar(10));
INSERT INTO employee1 VALUES(14,'John','7272826385','UP');
INSERT INTO employee1 VALUES(14,'John','9064738238','UP');
INSERT INTO employee1 VALUES(20,'harry','8574783832','Bihar');
INSERT INTO employee1 VALUES(12,'sam','7390372389','Punjab');
INSERT INTO employee1 VALUES(12,'sam','8589830302','Punjab');
SELECT * FROM employee1;
310121243028
#BEFORE APPLYING 2NF
CREATE TABLE department (
DEPT_ID number(5) PRIMARY KEY,
DEPT_TITLE VARCHAR(20),
DEPT_DESC VARCHAR(25));
INSERT INTO department VALUES(14,'president','accounting');
INSERT INTO department VALUES(20,'manager','sales');
INSERT INTO department VALUES(12,'manager','research');
SELECT * FROM department;
#AFTER APPLYING 2NF
CREATE TABLE department1 (
DEPT_ID number(5) PRIMARY KEY,
DEPT_TITLE VARCHAR(20));
INSERT INTO department1 VALUES(14,'president');
INSERT INTO department1 VALUES(20,'manager');
INSERT INTO department1 VALUES(12,'manager');
SELECT * FROM department1;
CREATE TABLE department2 (
DEPT_ID number(5) PRIMARY KEY,
DEPT_DESC VARCHAR(25));
INSERT INTO department2 VALUES(14,'accounting');
INSERT INTO department2 VALUES(20,'sales');
INSERT INTO department2 VALUES(12,'research');
SELECT * FROM department2;
310121243028
#BEFORE APPLYING 3NF
CREATE TABLE employ(
emp_id number(10),
emp_name varchar(20),
emp_zip number(10) PRIMARY KEY,
emp_state varchar(5),
emp_city varchar(10));
INSERT INTO employ VALUES(222,'Harry',201010,'UP','Noida');
INSERT INTO employ VALUES(333,'Stephan',02228,'US','Boston');
INSERT INTO employ VALUES(444,'Lan',60007,'US','Chicago');
INSERT INTO employ VALUES(555,'Katharine',06389,'Uk','Norwich');
INSERT INTO employ VALUES(666,'John',462007,'MP','Bhopal');
SELECT * FROM employ;
#AFTER APPLYING 3NF
CREATE TABLE employ1(
emp_zip number(10) PRIMARY KEY,
emp_state varchar(5),
emp_city varchar(10));
INSERT INTO employ1 VALUES(201010,'UP','Noida');
INSERT INTO employ1 VALUES(02228,'US','Boston');
INSERT INTO employ1 VALUES(60007,'US','Chicago');
INSERT INTO employ1 VALUES(06389,'Uk','Norwich');
INSERT INTO employ1 VALUES(462007,'MP','BHOPAL');
SELECT * FROM employ1;
CREATE TABLE employ2(
emp_id number(10) PRIMARY KEY,
emp_name varchar(20),
emp_zip number(10));
310121243028
INSERT INTO employ2 VALUES(222,'Harry',201010);
INSERT INTO employ2 VALUES(333,'Stephan',02228);
INSERT INTO employ2 VALUES(444,'Lan',60007);
INSERT INTO employ2 VALUES(555,'Katharine',06389);
INSERT INTO employ2 VALUES(666,'John',462007);
SELECT * FROM employ2;
#BEFORE APPLYING BCNF
CREATE TABLE employe1(
EMP_ID number(5),
EMP_COUNTRY varchar(8),
EMP_DEPT varchar(6),
DEPT_TYPE varchar(16),
EMP_DEPT_NO varchar(6));
INSERT INTO employe1 VALUES(264,'INDIA','Designing','D394',283);
INSERT INTO employe1 VALUES(264,'INDIA','Testing','D394',300);
INSERT INTO employe1 VALUES(364,'UK','Stores','D283',232);
INSERT INTO employe1 VALUES(364,'UK','Developing','D283',549);
SELECT * FROM employe1;
#AFTER APPLYING BCNF
CREATE TABLE employe2(
EMP_ID number(5),
EMP_COUNTRY varchar(8));
INSERT INTO employe2 VALUES(264,'INDIA');
INSERT INTO employe2 VALUES(364,'UK');
SELECT * FROM employe2;
310121243028
CREATE TABLE employe3(
EMP_DEPT varchar(16)PRIMARY KEY,
DEPT_TYPE varchar(6),
EMP_DEPT_NO varchar(6));
INSERT INTO employe3 VALUES('Designing','D394',283);
INSERT INTO employe3 VALUES('Testing','D394',300);
INSERT INTO employe3 VALUES('Stores','D283',232);
INSERT INTO employe3 VALUES('Developing','D283',549);
SELECT * FROM employe3;
CREATE TABLE employe4(
EMP_ID number(5),
EMP_DEPT varchar(16));
INSERT INTO employe4 VALUES(264,'Designing');
INSERT INTO employe4 VALUES(264,'Testing');
INSERT INTO employe4 VALUES(364,'Stores');
INSERT INTO employe4 VALUES(364,'Developing');
SELECT * FROM employe4;
310121243028
Output :
#BEFORE APPLYING 1NF
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_NAME EMP_PHONE EMP_STATE
14 John 7272826385,9064738238 UP
20 Harry 8574783832 Bihar
12 Sam 7390372389,8589830302 Punjab
#AFTER APPLYING 1NF
Table created.
1 row(s) inserted
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_NAME EMP_PHONE EMP_STATE
14 John 7272826385 UP
14 John 9064738238 UP
20 Harry 8574783832 Bihar
12 Sam 7390372389 Punjab
12 Sam 8589830302 Punjab
310121243028
#BEFORE APPLYING 2NF
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
DEPT_ID DEPT_TITLE DEPT_DESC
14 President Accounting
20 Manager Sales
12 Manager Research
#AFTER APPLYING 2NF
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
DEPT_ID DEPT_TITLE
14 President
20 Manager
12 Manager
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
DEPT_ID DEPT_DESC
14 Accounting
20 Sales
12 Research
310121243028
#BEFORE APPLYING 3NF
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_NAME EMP_ZIP EMP_STATE EMP_CITY
222 Harry 201010 UP Noida
333 Stephan 2228 US Boston
444 Lan 60007 US Chicago
555 Katharine 6389 UK Norwich
666 John 462007 MP Bhopal
#AFTER APPLYING 3NF
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ZIP EMP_STATE EMP_CITY
201010 UP Noida
2228 US Boston
60007 US Chicago
6389 UK Norwich
462007 MP Bhopal
310121243028
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_NAME EMP_ZIP
222 Harry 201010
333 Stephan 2228
444 Lan 60007
555 Katharine 6389
666 John 462007
#BEFORE APPLYING BCNF
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_COUNTRY EMP_DEPT DEPT_TYPE EMP_DEPT_NO
264 India Designing D394 283
264 India Testing D394 300
364 UK Stores D283 232
364 UK Developing D283 549
#AFTER APPLYING BCNF
Table created.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_COUNTRY
264 India
364 UK
310121243028
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_DEPT DEPT_TYPE EMP_DEPT_NO
Designing D394 283
Testing D394 300
Stores D283 232
Developing D283 549
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
EMP_ID EMP_DEPT
264 Designing
264 Testing
364 Stores
364 Developing
310121243028
EX.NO.3 Implement the database using SQL Data definition with
constraints,Views
Query :
#STAFF TABLE
CREATE TABLE staff(
staff_no number(5) PRIMARY KEY,
fname varchar(15) NOT NULL,
lname varchar(15) null,
sex varchar(10),
position varchar(5) null,
dob date NOT NULL,
salary number(7),
branch_no number(5),
unique(branch_no));
INSERT INTO staff(staff_no,fname,sex,position,dob,salary,branch_no)
VALUES(1,'Riya','Female','I','06-29-1998',800000,1);
INSERT INTO staff(staff_no,fname,lname,sex,position,dob,salary,branch_no)
VALUES(2,'Riya','Chandra','Female','I','06-29-1998',800000,2);
INSERT INTO staff(staff_no,fname,lname,sex,position,dob,salary,branch_no)
VALUES(3,'Cauviya','Rao','Female','II','08-01-1996',954000,3);
INSERT INTO staff(staff_no,fname,lname,sex,position,dob,salary,branch_no)
VALUES(3,'Deepa','Prakash','Female','I','12-31-1998',54000,4);
INSERT INTO staff(staff_no,lname,sex,position,dob,salary,branch_no)
VALUES(4,'Prakash','Female','I','12-31-1998',54000,4);
INSERT INTO staff(staff_no,fname,lname,sex,position,dob,salary,branch_no)
VALUES(4,'Deepa','Prakash','Female','I','12-31-1998',54000,3);
SELECT * FROM staff;
310121243028
#BRANCH TABLE
CREATE TABLE branch(
branch_no number(5),
street varchar(25),
city varchar(20) default 'CHENNAI',
postcode number(9),
FOREIGN KEY(branch_no) references staff(branch_no),
check(postcode>=700000));
INSERT INTO branch(branch_no,street,postcode,city) VALUES(1,'Ram Nagar',778900,'Pune');
INSERT INTO branch(branch_no,street,postcode) VALUES(2,'Lakshmi Nagar',843520);
INSERT INTO branch(branch_no,street,postcode,city) VALUES(3,'Jyothi Nagar',999800,'Delhi');
INSERT INTO branch(branch_no,street,postcode,city) VALUES(56,'Ayodhi Nagar',998900,'Delhi');
INSERT INTO branch(branch_no,street,postcode,city) VALUES(2,'Ayodhi Nagar',99890,'Delhi');
SELECT * FROM branch
VIEW
#STUDENT TABLE
CREATE TABLE student(
rollno number(5),
sname varchar2(20),
dept varchar2(20),
age number(3),
address varchar2(20));
INSERT INTO student VALUES(1,'VIKRAM','AI',20,'Chennai');
INSERT INTO student VALUES(2,'ROLEX','IT',19,'Delhi');
INSERT INTO student VALUES(3,'DILLI','CS',21,'Pune');
create view s1 as select * from student;
create view s2 as select age,dept from student;
SELECT * FROM s1;
drop view s1;
SELECT * FROM s1;
SELECT * FROM s2;
310121243028
Output :
#STAFF TABLE
Table created.
#WORKING OF NULL AND NOT NULL
1 row(s) inserted.
# WORKING OF PRIMARY KEY
1 row(s) inserted.
# WORKING OF UNIQUE KEY
1 row(s) inserted.
#NOT WORKING OF PRIMARY KEY
ORA-00001: unique constraint (K.SYS_C007100) violated
#NOT WORKING OF UNIQUE KEY
ORA-00001: unique constraint (K.SYS_C007101) violated
#NOT WORKING OF NULL
ORA-01400: cannot insert NULL into ("K"."STAFF"."FNAME")
#DISPLAY STAFF TABLE
#BRANCH TABLE
Table created.
#WORKING OF FOREIGN KEY
1 row(s) inserted.
# WORKING OF DEFAULT
1 row(s) inserted.
310121243028
# WORKING OF CHECK CONSTRAINT
1 row(s) inserted.
#NOT WORKING OF FOREIGN KEY
ORA-02291: integrity constraint (K.SYS_C007103) violated - parent key not found
# NOT WORKING OF CHECK CONSTRAINT
ORA-02290: check constraint (K.SYS_C007102) violated
#DISPLAY BRANCH TABLE
BRANCH_NO STREET CITY POSTCODE
1 RAM NAGAR PUNE 778900
2 LAKSHMI NAGAR CHENNAI 843250
3 JYOTHI NAGAR DELHI 999800
VIEWS
#STUDENT TABLE
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
#VIEW CREATED
View created.
View created.
#DISPLAY VIEW S1
ROLLNO SNAME DEPT AGE ADDRESS
1 VIKRAM AI&DS 20 CHENNAI
2 ROLEX IT 19 DELHI
3 DILLI CS 21 PUNE
310121243028
#DROP VIEW S1
View dropped.
#DISPLAY VIEW S1
ORA-00942: table or view does not exist
#DISPLAY VIEW S2
AGE DEPT
20 AI
19 IT
21 CS
310121243028
EX.NO.4 Query the database using SQLManipulation
Query :
CREATE TABLE student(
S_ID number(5) PRIMARY KEY,
NAME varchar(15),
DEPT varchar(8));
INSERT INTO student VALUES(1,'Anu','AI');
INSERT INTO student(S_ID,NAME,DEPT)VALUES(2,'Ram','CS');
UPDATE student set Name='Shyam' WHERE S_ID=2;
DELETE FROM student WHERE S_ID=2;
#SQL INBUILT FUNCTION & SQL CLAUSES
#DATE FUNCTION
SELECT add_months(sysdate,2) FROM dual;
SELECT last_day('05-25-2022') FROM dual;
SELECT months_between('05-25-2022','11-11-2022') FROM dual;
SELECT next_day(sysdate,'monday')FROM dual;
# NUMERIC FUNCTIONS
SELECT abs(-25)FROM dual;
SELECT ceil(59.67)FROM dual;
SELECT exp(0) FROM dual;
SELECT floor(99.3)FROM dual;
SELECT power(12,2) FROM dual;
SELECT mod(100,3) FROM dual;
SELECT round(100.3236,2) FROM dual;
SELECT trunc(100.256,2)FROM dual;
SELECT sqrt(225)FROM dual;
310121243028
#CHARACTER FUNCTIONS
SELECT initcap('anu')FROM dual;
SELECT lower('ANu')FROM dual;
SELECT upper('Anu')FROM dual;
SELECT ltrim('cseit','cse')FROM dual;
SELECT rtrim('cseit','it')FROM dual;
SELECT replace('jack and jue','j','bl')FROM dual;
SELECT substr('information',1,2)FROM dual;
#CONVERSION FUNCTION
SELECT to_char(sysdate,'dd-mm-yyyy')FROM dual;
SELECT to_date('aug 15 2010','mm-dd-yy')FROM dual;
#MISCELLANEOUS FUNCTIONS
SELECT uid FROM dual;
SELECT user FROM dual;
SELECT vsize('tech') FROM dual;
# GROUP FUNCTIONS
CREATE TABLE student1(
REG_NO number(5) PRIMARY KEY,
NAME varchar(20),
marks number(5));
INSERT INTO student1 VALUES(1,'Anu',98);
INSERT INTO student1 VALUES(2,'Priya',58);
INSERT INTO student1 VALUES(3,'Aadhya',88);
SELECT avg(REG_NO)FROM student1;
SELECT max(marks)FROM student1;
SELECT min(marks)FROM student1;
SELECT sum(reg_no)FROM student1;
310121243028
#COUNT FUNCTION
SELECT count(*)FROM student1;
SELECT count(marks)FROM student1;
SELECT count(distinct marks)FROM student1;
#SQL SELECT STATEMENT
CREATE TABLE stud(
id number(10),
firstname varchar(20),
lastname varchar(20),
age number(5),
subject varchar(10),
games varchar(10));
INSERT INTO stud VALUES(1,'Ram','Sankar',24,'C++','Cricket');
INSERT INTO stud VALUES(2,'Shyam','Sundar',29,'C++','Tennis');
SELECT firstname FROM stud;
SELECT firstname,lastname FROM stud;
SELECT age FROM stud WHERE age>25;
#SQL WHERE CLAUSE
SELECT firstname,games FROM stud WHERE age>25;
#“OR” LOGICAL OPERATOR
SELECT lastname,age FROM stud WHERE age>25 OR age<16;
#“AND” LOGICAL OPERATOR
SELECT lastname,age FROM stud WHERE age<25 AND age>16;
#“NOT” LOGICAL OPERATOR
SELECT firstname,lastname,age,games FROM stud WHERE NOT games='Cricket';
310121243028
#SQL ORDER BY
SELECT firstname, games FROM stud ORDER BY age;
SELECT firstname, games FROM stud ORDER BY games,firstname;
SELECT firstname, games FROM stud ORDER BY games desc;
SELECT firstname, lastname FROM stud ORDER BY lastname desc,firstname desc;
#SQL GROUP FUNCTIONS
SELECT MAX(age) FROM stud;
SELECT MIN(age) FROM stud;
SELECT AVG(age) FROM stud;
SELECT SUM(age) FROM stud;
SELECT DISTINCT subject FROM stud;
SELECT COUNT (DISTINCT subject) FROM stud;
#SQL GROUP BY CLAUSE
SELECT firstname,SUM(age) FROM stud GROUP BY firstname;
SELECT firstname,SUM(age) FROM stud GROUP BY firstname having SUM(age)>12;
# SQL ALIAS
CREATE TABLE stud(
id number(10),
firstname varchar(20),
lastname varchar(20),
age number(5),
subject varchar(10),
games varchar(16));
INSERT INTO stud VALUES(1,'ram','sankar',24,'cse','cricket');
INSERT INTO stud VALUES(2,'shyam','sundar',28,'bca','tennis');
310121243028
create table emp2(
id number(10),
firstname varchar(20),
lastname varchar(20),
age number(5));
INSERT INTO emp2 VALUES(1,'ram','sankar',24);
INSERT INTO emp2 VALUES(2,'shyam','sundar',28);
SELECT s.firstname FROM stud s;
SELECT p.id,s.lastname,s.firstname FROM stud s,emp2 p WHERE s.lastname='sankar' AND
s.firstname='ram';
SELECT firstname AS name FROM stud;
SELECT s.firstname AS Name FROM stud s;
#SQL LIKE OPERATOR
SELECT firstname,lastname FROM stud WHERE firstname LIKE's%';
SELECT firstname,lastname FROM stud WHERE firstname LIKE'_a%';
#SQL BETWEEN AND OPERATOR
SELECT firstname,lastname, age FROM stud WHERE age between 20 AND 30;
# SQL IN OPERATOR
SELECT firstname, lastname, subject FROM stud WHERE subject IN('cse','bca');
#SQL IS NULL OPERATOR
SELECT firstname, lastname FROM stud WHERE games IS NULL ;
# SQL SELECT DISTINCT STATEMENT
SELECT distinct age FROM emp2;
310121243028
# NESTED SUBQUERIES
CREATE TABLE book(
bookid number(10),
title varchar(20),
pub_year number(10),
price number(6));
INSERT INTO book VALUES(1,'STOLEN',2018,2340);
INSERT INTO book VALUES(2,'CAGED',2005,1040);
INSERT INTO book VALUES(3,'DEMONS',2002,840);
#IN
SELECT title FROM book WHERE pub_year IN (2005,2003);
#NOT IN
SELECT title FROM book WHERE pub_year NOT IN (2005,2003);
CREATE TABLE author(
author varchar(9),
bookid number(10),
country varchar(10));
INSERT INTO author VALUES('SHOPIE',1,'US');
INSERT INTO author VALUES('ADAM',2,'UK');
INSERT INTO author VALUES('KINSELLA',3,'CHINA');
#EXISTS
SELECT title FROM book WHERE exists (SELECT * FROM author WHERE
author.bookid=book.bookid);
#NOT EXISTS
SELECT title FROM book WHERE NOT EXISTS (SELECT * FROM author WHERE
author.bookid=book.bookid);
310121243028
#SOME
SELECT title FROM book WHERE price>some (SELECT price FROM book WHERE pub_year=2005);
# ALL
SELECT title FROM book WHERE price>all (SELECT price FROM book WHERE pub_year<2003);
#DELETE
DELETE FROM book WHERE bookid=2;
310121243028
Output :
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) updated.
1 row(s) deleted.
#SQL INBUILT FUNCTION & SQL CLAUSES
#DATE FUNCTION
# NUMERIC FUNCTIONS
310121243028
#CHARACTER FUNCTIONS
310121243028
#CONVERSION FUNCTION
#MISCELLANEOUS FUNCTIONS
310121243028
# GROUP FUNCTIONS
#COUNT FUNCTION
#SQL SELECT STATEMENT
310121243028
#SQL WHERE CLAUSE
#“OR” LOGICAL OPERATOR
#“AND” LOGICAL OPERATOR
#“NOT” LOGICAL OPERATOR
#SQL ORDER BY
310121243028
#SQL GROUP FUNCTIONS
#SQL GROUP BY CLAUSE
FIRSTNAME SUM(AGE)
Ram 24
Shyam 29
FIRSTNAME SUM(AGE)
Ram 24
Shyam 29
310121243028
# SQL ALIAS
#SQL LIKE OPERATOR
#SQL BETWEEN AND OPERATOR
310121243028
# SQL IN OPERATOR
#SQL IS NULL OPERATOR
no data found
# SQL SELECT DISTINCT STATEMENT
AGE
28
24
# NESTED SUBQUERIES
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
#IN
#NOT IN
Table created.
1 row(s) inserted.
1 row(s) inserted.
1 row(s) inserted.
310121243028
#EXISTS
#NOT EXISTS
no data found
#SOME
# ALL
#DELETE
1 row(s) deleted.
310121243028
EX.NO.5 Querying / Managing the database using SQL Programming-Stored
Procedures / Functions-Constraints and security using Triggers.
Query :
SIMPLE PL/SQL BLOCK
# TO SWAP TWO NUMBERS WITH OUT TAKING THIRD VARIABLE
declare
a number(10);
b number(10);
begin
a:=10;
b:=8;
dbms_output.put_line('THE PREV VALUES OF A AND B WERE');
dbms_output.put_line(a);
dbms_output.put_line(b);
a:=a+b;
b:=a-b;
a:=a-b;
dbms_output.put_line('THE VALUES OF A AND B WERE');
dbms_output.put_line(a);
dbms_output.put_line(b);
end;
# THE LARGEST OF TWO NUMBERS
declare
a number;
b number;
begin
a:=10;
b:=8;
if a=b
then dbms_output.put_line('BOTH ARE EQUAL');
elsif
a>b
then
dbms_output.put_line('A IS GREATER');
else
dbms_output.put_line('B IS GREATER');
end if;
end;
310121243028
# TO CALCULATE THE AREA OF A CIRCLE FOR A VALUE OF RADIUS
CREATE TABLE areas50(
radius number(10),
area number(6,2));
declare
pi constant number(4,2):=3.14;
radius number(5):=3;
area number(6,2);
begin
while radius<7 loop
area:=pi*power(radius,2);
INSERT INTO areas50 VALUES(radius,area);
radius:=radius+1;
end loop;
end;
SELECT * FROM areas50;
#ACCEPT AN ACCOUNT NUMBER FROM THE USER,CHECK IF THE USERS
#BALANCE IS LESS THAN MINIMUM BALANCE,ONLY THEN DEDUCT RS.100/- FROM
THE BALANCE
CREATE TABLE acct50(
name varchar2(10),
cur_bal number(10),
acctno number(6,2));
INSERT INTO acct50 VALUES('ANU',1200,234.00);
declare
mano number(5,2);
mcb number(6,2);
minibal constant number(7,2):=1000.00;
fine number(6,2):=100.00;
begin mano:=234.00;
SELECT cur_bal into mcb FROM acct50 WHERE acctno=mano;
if mcb<minibal then
UPDATE acct50 set cur_bal=cur_bal-fine WHERE acctno=mano;
end if;
end;
SELECT * FROM acct50;
310121243028
PROCEDURE
# CREATE A PROCEDURE TO DISPLAY A MESSAGE
create or replace procedure n1
is
begin
dbms_output.put_line('Hello World');
end;
begin
n1();
end;
# CREATE A PROCEDURE WHICH ACCEPTS TWO NUMBERS AND DISPLAY ITS SUM.
create or replace procedure add_num(a IN number,b IN number)
is
c number(3);
begin
c:=a+b;
dbms_output.put_line('The sum is '||c);
end;
begin
add_num(2,5);
end;
# CREATE A PROCEDURE WHICH ACCEPTS AN EMPNO AND INCREMENTS HIS
SALARY BY 1000.
CREATE TABLE emp50(
eno number(10),
salary number(6,2));
INSERT INTO emp50 VALUES(12,2045);
create or replace procedure inc( a in number)
is
begin
update emp50 set salary = salary+1000
where eno = a;
end;
begin
inc(12);
end;
310121243028
FUNCTIONS
# TO FIND THE GRADE OF THE STUDENT.
create or replace function datas51(a number)
return number is
begin
if a between 91 and 100 then
dbms_output.put_line('grade is s');
elsif a between 81 and 90 then
dbms_output.put_line('grade is a');
elsif a between 71 and 80 then
dbms_output.put_line('grade is b');
elsif a between 61 and 70 then
dbms_output.put_line('grade is c');
elsif a between 51 and 60 then
dbms_output.put_line('grade is d');
else
dbms_output.put_line('grade is u');
end if;
return 0;
end;
CREATE TABLE studs1(
regno number(3),
mark number(3));
INSERT INTO studs1 VALUES(2,56);
INSERT INTO studs1 VALUES(1,90);
declare
a number(3);
begin
SELECT mark into a FROM studs1 WHERE regno=2;
a:=datas51(a);
end;
310121243028
TRIGGER
# CREATE TRIGGER FOR INSERTING RECORDS
CREATE TABLE snt52(
stuname char(10),
rollno number(5));
create or replace trigger tri52 after insert on snt52 for each row
begin
dbms_output.put_line('record inserted');
end;
INSERT INTO snt52 VALUES('A',1);
SELECT * FROM snt52;
# CREATE TRIGGER FOR INSERT,UPDATE AND DELETE
CREATE TABLE dept52(
loc varchar2(10),
deptno number(10));
create or replace trigger trg50
after insert or update or delete on dept52
begin
dbms_output.put_line('Thank You');
end;
INSERT INTO dept52 VALUES('CHENNAI',10);
INSERT INTO dept52 VALUES('CHENNAI',15);
UPDATE dept52 set loc='DELHI' WHERE deptno=10;
DELETE FROM dept52 WHERE deptno=15;
SELECT * FROM dept52;
310121243028
#CREATE TRIGGER FOR DELETE RECORDS
CREATE TABLE emp52(
empno number(5),
ename char(10),
job char(10),
salary number(10),
deptno number(10));
CREATE TABLE emp49(
empno number(5),
ename char(10),
job char(10),
salary number(10),
deptno number(10));
create or replace trigger del52_tri
before delete on emp52
for each row
begin
INSERT INTO emp49 VALUES(:old.empno,:old.ename,:old.job,:old.salary,:old.deptno);
end;
INSERT INTO emp52 VALUES(1,'shyam','sales',45000,22);
INSERT INTO emp52 VALUES(1,'ram','sales',10000,22);
DELETE FROM emp52 WHERE empno=1;
310121243028
Output :
SIMPLE PL/SQL BLOCK
#TO SWAP TWO NUMBERS WITH OUT TAKING THIRD VARIABLE
THE PREV VALUES OF A AND B WERE
10
8
THE VALUES OF A AND B WERE
8
10
Statement processed.
#THE LARGEST OF TWO NUMBERS
A IS GREATER
Statement processed.
# TO CALCULATE THE AREA OF A CIRCLE FOR A VALUE OF RADIUS
Table created.
Statement processed.
#ACCEPT AN ACCOUNT NUMBER FROM THE USER,CHECK IF THE USERS
#BALANCE IS LESS THAN MINIMUM BALANCE,ONLY THEN DEDUCT RS.100/- FROM
THE BALANCE
Table created.
1 row(s) inserted.
Statement processed.
310121243028
PROCEDURE
# CREATE A PROCEDURE TO DISPLAY A MESSAGE
Hello World
Statement processed.
# CREATE A PROCEDURE WHICH ACCEPTS TWO NUMBERS AND DISPLAY ITS SUM.
Procedure created.
The sum is 5
Statement processed.
#CREATE A PROCEDURE WHICH ACCEPTS AN EMPNO AND INCREMENTS HIS
SALARY BY 1000.
Table created.
1 row(s) inserted.
Procedure created.
Statement processed.
ENO SALARY
12 3045
FUNCTIONS
# TO FIND THE GRADE OF THE STUDENT.
Function created.
grade is d
Statement processed.
310121243028
TRIGGER
# CREATE TRIGGER FOR INSERTING RECORDS
Table created.
Trigger created.
record inserted
1 row(s) inserted.
STUNAME ROLLNO
A 1
# CREATE TRIGGER FOR INSERT,UPDATE AND DELETE
Table created.
Trigger created.
Thank You
1 row(s) inserted.
Thank You
1 row(s) inserted.
Thank You
1 row(s) updated.
Thank You
1 row(s) deleted.
LOC DEPTNO
DELHI 10
#CREATE TRIGGER FOR DELETE RECORDS
Table created.
Trigger created.
1 row(s) inserted.
2 row(s) deleted.
310121243028
EX.NO.6 Database design using Normalization–bottom-up approach
Query :
#CREATE TABLE STUDENT
CREATE TABLE students(
sid number(10),
name varchar(10) PRIMARY KEY,
phone number(10),
gpa number(10));
INSERT INTO students VALUES(101,'aarthi',9967234552,9);
SELECT * FROM students
#CREATE TABLE INSTRUCTOR
CREATE TABLE instructor(
iid number(10),
name varchar(10),
rank number(10),
salary number(10),
dept varchar(10));
INSERT INTO instructor VALUES(001,'radhika',2,90000,'ai');
SELECT * FROM instructor
#CREATE TABLE COURSE
CREATE TABLE course(
cidnumber(10),
titlevarchar(10) ,
semester number(10),
unitsnumber(10),
location varchar(10));
INSERT INTO course VALUES(001,'ddm',4,5,'college');
SELECT * FROM course
310121243028
Output :
FINALLY CREATE AN UML DIAGRAM FOR IT
310121243028
EX.NO.8 Database design using EER-to-ODB mapping / UML
class diagrams
UML Class Diagram for Online Shopping System
310121243028
Query :
OBJECT NAMES:
i. ADMIN
ii. CUSTOMER
iii. PRODUCTS
iv. CART
v. PAYMENT
vi. ORDER STATUS
vii. GUEST USER
# CREATE A TYPE FOR THESE OBJECTS
create or replace type admin as object(
id number(10),
name varchar(10),
email varchar(10));
create or replace type customer as object(
id number(10),
name varchar(10),
phone_no number (10),
email varchar(10),
address varchar(10));
create or replace type cart as object(
id number(10),
product_count number (10),
total_price number(10),
discounted_price number(10));
310121243028
create or replace type payment as object(
customer_name varchar(10),
customer_id varchar(10),
card_name varchar(10));
create or replace type products as object(
product_id number(10),
name varchar(10),
price number(10),
discount_price number(10));
create or replace type guest_user as object (
product varchar(10),
order_name varchar(10),
delivery_address
varchar(10),
payment number(20));
create or replace type order_status as object (
shipping_no number (10),
delivery_address varchar(10),
order_name varchar(10),
payment number(20));
310121243028
Output :
310121243028
EX.NO.9 Object features of SQL-UDT sand sub-types,Tablesusing
UDTs, Inheritance,Method definition
Query :
CREATE OR REPLACE TYPE
person_type AS OBJECT
(idno NUMBER,name VARCHAR2(30),phone VARCHAR2(20),
MAP MEMBER FUNCTION get_idno RETURN NUMBER,
MEMBER FUNCTION
show RETURN VARCHAR2)
NOT FINAL;
Output :
Type created.
310121243028
EX.NO.10 QueryingtheObject-relationaldatabaseusingObjet
Querylanguage
Query :
CREATE OR REPLACE TYPE address AS OBJECT (
house_no varchar2(10),
street varchar2(30),
city varchar2(20),
state varchar2(10),
pincode varchar2(10));
declare
residence address;
begin
residence := address('01','anna nagar','chennai','tamilnadu','600001');
dbms_output.put_line('House No: '|| residence.house_no);
dbms_output.put_line('Street: '|| residence.street);
dbms_output.put_line('City: '|| residence.city);
dbms_output.put_line('State: '|| residence.state);
dbms_output.put_line('Pincode: '|| residence.pincode);
end;
310121243028
Output :