0% found this document useful (0 votes)
105 views28 pages

RDBMS

The document describes testing various SQL commands like CREATE, ALTER, INSERT, UPDATE, DELETE, and RENAME on database tables. It creates a CUSTOMER table, alters the structure by adding and modifying columns, inserts sample records, updates and deletes records, and renames the table. It then adds constraints like primary key, unique key, and foreign key to the table.

Uploaded by

Shravan Apte
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views28 pages

RDBMS

The document describes testing various SQL commands like CREATE, ALTER, INSERT, UPDATE, DELETE, and RENAME on database tables. It creates a CUSTOMER table, alters the structure by adding and modifying columns, inserts sample records, updates and deletes records, and renames the table. It then adds constraints like primary key, unique key, and foreign key to the table.

Uploaded by

Shravan Apte
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 28

**********************************************************************************

Register Number:191805
Program Number:01
AIM : TESTING ALL THE DDL (CREATE, ALTER) AND DML (INSERT, UPDATE, DELETE)
AND RENAME COMMANDS
**********************************************************************************
1> Create a table CUSTOMER with following columns:
C_ID INTEGER,CNAME VARCHAR(20),CITY CHAR(15),DOB DATE
SQL> CREATE TABLE CUSTOMER(C_ID INTEGER,CNAME VARCHAR(20),CITY
CHAR(15),DOB DATE);

Table created.

SQL> DESC CUSTOMER;


NAME NULL? TYPE
------------------------------- ------- ----------
C_ID NUMBER(38)
CNAME VARCHAR2(20)
CITY CHAR(15)
DOB DATE

2> Alter the structure of above table.


A. Increase the size of cname by 10 characters
SQL> ALTER TABLE CUSTOMER MODIFY CNAME VARCHAR(30);
Table altered.

B. Add extra column name cell phone CHAR(10) and E-mail ID CHAR(35)
SQL> ALTER TABLE CUSTOMER ADD(CELLPHONE VARCHAR(10),EMAIL_ID
CHAR(35));
Table altered
SQL> DESC CUSTOMER;
NAME NULL? TYPE
--------------------------------- ------- -------------
C_ID NUMBER(38)
CNAME VARCHAR(20)
CITY CHAR(15)
DOB DATE
CELLPHONE VARCHAR2(10)
EMAIL_ID CHAR(35)

3> Insert 10 records.


SQL> INSERT INTO CUSTOMER
VALUES(&C_ID,’&CNAME’,’&CITY’,’&DOB’,&PHONE,’&EMAIL’);
ENTER VALUE FOR C_ID: 1234
ENTER VALUE FOR CNAME: SHAAN
ENTER VALUE FOR CITY: VIEGAS
ENTER VALUE FOR DOB: 25-DEC-2015
ENTER VALUE FOR PHONE: 9876543210
ENTER VALUE FOR EMAIL: [email protected]
OLD 1: INSERT INTO CUSTOMER
VALUES(&C_ID,’&CNAME’,’&CITY’,’&DOB’,&PHONE,’&EMAIL’)
NEW 1: INSERT INTO CUSTOMER VALUES(1234,’SHAAN’,’VIEGAS’,’25-DEC-
2015’,9876543210,’[email protected]’)

SQL> SELECT * FROM CUSTOMER;


C_ID CNAME CITY DOB CELLPHONE EMAIL_ID
------------ --------------------- ----------------- --------------------- ----------------- ----------------------------
1234 SHAAN VEIGAS 25-DEC-2015 9876543210 [email protected]
1235 MOHAN COORG 31-FEB-2014 8605149701 [email protected]
1236 SEVIL MARGAO 05-JAN-1997 9823848272 [email protected]
1237 RAJ MYSORE 03-DEC-2015 8649374926 [email protected]
1238 ALLEN VEIGAS 02-JUN-2015 8630285930 [email protected]
1239 KIM BERLIN 20-JAN-1998 9837501846 [email protected]
1240 ANWAR MARGAO 04-MAY-1998 9374927393 [email protected]
1234 KAY MYSORE 23-APR-1997 9648393648 [email protected]
1234 OSHIN COORG 21-MAR-1998 9483748364 [email protected]
1234 SHRAV MARGAO 26-MAY-1998 8605149702 [email protected]
10 rows selected.

4> Drop the column e-mail id.


SQL> ALTER TABLE CUSTOMER DROP COLUMN EMAIL_ID;
Table altered

SQL> SELECT * FROM CUSTOMER;


C_ID CNAME CITY DOB CELLPHONE
------------ --------------------- ----------------- --------------------- -----------------
1234 SHAAN VEIGAS 25-DEC-2015 9876543210
1235 MOHAN COORG 31-FEB-2014 8605149701
1236 SEVIL MARGAO 05-JAN-1997 9823848272
1237 RAJ MYSORE 03-DEC-2015 8649374926
1238 ALLEN VEIGAS 02-JUN-2015 8630285930
1239 KIM BERLIN 20-JAN-1998 9837501846
1240 ANWAR MARGAO 04-MAY-1998 9374927393
1234 KAY MYSORE 23-APR-1997 9648393648
1234 OSHIN COORG 21-MAR-1998 9483748364
1234 SHRAV MARGAO 26-MAY-1998 8605149702

10 rows selected.

5> Add column Income NUMBER (10,2)


SQL> ALTER TABLE CUSTOMER ADD INCOME NUMBER(10,2);
TABLE ALTERED.

SQL> DESC CUSTOMER;


NAME NULL? TYPE
--------------------------------- ------- -------------
C_ID NUMBER(38)
CNAME VARCHAR(20)
CITY CHAR(15)
DOB DATE
CELLPHONE VARCHAR2(10)
INCOME NUMBER(10,2)

6>Update values of income column.


SQL> UPDATE CUSTOMER SET INCOME=200000 WHERE C_ID=1003;
1 ROW UPDATED.

SQL> UPDATE CUSTOMER SET INCOME=50000 WHERE C_ID=2012;


1 ROW UPDATED.

7>Change the name of the table customer to customers.


SQL> RENAME CUSTOMER TO CUSTOMERS;
TABLE RENAMED.

SQL> SELECT * FROM CUSTOMERS;

C_ID CNAME CITY DOB CELLPHONE INCOME


------------ --------------------- ----------------- --------------------- ----------------- ----------------------------
1234 SHAAN VEIGAS 25-DEC-2015 9876543210 100000
1235 MOHAN COORG 31-FEB-2014 8605149701 20000
1236 SEVIL MARGAO 05-JAN-1997 9823848272 300000
1237 RAJ MYSORE 03-DEC-2015 8649374926 80000
1238 ALLEN VEIGAS 02-JUN-2015 8630285930 400000
1239 KIM BERLIN 20-JAN-1998 9837501846 20000
1240 ANWAR MARGAO 04-MAY-1998 9374927393 35000
1234 KAY MYSORE 23-APR-1997 9648393648 80000
1234 OSHIN COORG 21-MAR-1998 9483748364 700000
1234 SHRAV MARGAO 26-MAY-1998 8605149702 1000000
10 rows selected.

8> Update the Income of customers who belong to City Mangalore

a. Update the City and Income of first 3 customers.


SQL> UPDATE CUSTOMERS SET CITY=’VEIGAS’,INCOME=100000 WHERE C_ID=1234;
1 row updated.

SQL> UPDATE CUSTOMERS SET CITY=’COORG’,INCOME=20000 WHERE C_ID=1235;


1 row updated.

SQL> UPDATE CUSTOMERS SET CITY=’MARGAO’,INCOME=300000 WHERE C_ID=1236;


1 row updated.

b. Update the Income of customer belongs to Mangalore, Udupi or Kasaragod


DELETE THE CUSTOMER WHOSE INCOME ID GREATER THAN 200000 AND LESS THAN
500000
SQL> UPDATE CUSTOMERS SET INCOME=20000 WHERE CITY=’MANGALORE’;
0 rows updated.

SQL> SELECT * FROM CUSTOMERS;


C_ID CNAME CITY DOB CELLPHONE INCOME
------------ --------------------- ----------------- --------------------- ----------------- ----------------------------
1234 SHAAN VEIGAS 25-DEC-2015 9876543210 100000
1235 MOHAN COORG 31-FEB-2014 8605149701 20000
1237 RAJ MYSORE 03-DEC-2015 8649374926 80000
1239 KIM BERLIN 20-JAN-1998 9837501846 20000
1240 ANWAR MARGAO 04-MAY-1998 9374927393 35000
1234 KAY MYSORE 23-APR-1997 9648393648 80000
1234 OSHIN COORG 21-MAR-1998 9483748364 700000
1234 SHRAV MARGAO 26-MAY-1998 8605149702 1000000

10 rows selected
**********************************************************************************
Register Number:191805
Program Number:02
AIM : ADDING AND ALTERING CONSTRAINTS (PRIMARY KEY, UNIQUE KEY AND
FOREIGN KEY)
**********************************************************************************

1>Consider customers table and do the following


SELECT * FROM CUSTOMERS;
C_ID CNAME CITY DOB CELLPHONE INCOME
------------ --------------------- ----------------- --------------------- ----------------- ----------------------------
1234 SHAAN VEIGAS 25-DEC-2015 9876543210 100000
1235 MOHAN COORG 31-FEB-2014 8605149701 20000

I. Add primary key to customers(cid)


SQL> ALTER TABLE CUSTOMERS ADD PRIMARY KEY(C_ID);
table altered.

II. make customer name as unique key


SQL> ALTER TABLE CUSTOMERS ADD UNIQUE(CNAME);
table altered.

C_ID CNAME CITY DOB CELLPHONE INCOME


------------ --------------------- ----------------- --------------------- ----------------- ----------------------------
1234 SHAAN VEIGAS 25-DEC-2015 9876543210 100000
1235 MOHAN COORG 31-FEB-2014 8605149701 20000

II. make customer id not null


SQL> ALTER TABLE CUSTOMERS MODIFY C_ID NOT NULL;
table altered.

SQL> DESC CUSTOMER;


NAME NULL? TYPE
--------------------------------- ------- -------------
C_ID NOT NULL NUMBER(38)
CNAME VARCHAR2(30)
CITY CHAR(15)
DOB DATE
CELLPHONE VARCHAR2(10)
INCOME NUMBER(10,2)

IV. make city to accept default value ‘mangaluru’


SQL> ALTER TABLE CUSTOMERS MODIFY CITY DEFAULT(‘MANGALORE’);
table altered.

2> Create Table Sales with the following Columns

Sales(SID Integer Not Null, SName Varchar(25) Not Null,DOB date Not Null, CID
Integer, City Char(20) Default ‘Mangaluru’, EmailID varchar(20) Primary Key)
I. Change Primary Key from EmailID to SID
SQL> CREATE TABLE SALES(SID INTEGER NOT NULL,SNAME VARCHAR(25)
NOT NULL,
2 DOB DATE NOT NULL,CID INTEGER,CITY CHAR(20) DEFAULT
’MANGALORE’,
3 EMAIL_ID VARCHAR(20) PRIMARY KEY);
Table created.

II. Add foreign key to Sales(CID)


SQL> ALTER TABLE SALES DROP PRIMARY KEY;
table altered.

III. Add 2 Unique to Sales(SName) and EmailID


SQL> ALTER TABLE SALES ADD UNIQUE(SNAME,EMAIL_ID);

IV. Change the default value of City from ‘Mangaluru’ to ‘Mysore’


SQL> ALTER TABLE SALES MODIFY CITY DEFAULT(‘MYSORE’);
table altered.

V. Input 10 records to Sales


SQL> INSERT INTO SALES
VALUES(&ID,’&SNAME’,’&DOB’,&CID,’&CITY’,’&EMAIL_ID’);
ENTER VALUE FOR ID: 1000
ENTER VALUE FOR SNAME: ROHAN
ENTER VALUE FOR DOB: 23-DEC-2002
ENTER VALUE FOR CID: 6765
ENTER VALUE FOR CITY: COORG
ENTER VALUE FOR EMAIL_ID: [email protected]
OLD 1: INSERT INTO SALES
VALUES(&ID,’&SNAME’,’&DOB’,&CID,’&CITY’,’&EMAIL_ID’);
NEW 1: INSERT INTO SALES VALUES(8000,’ROHAN’,’23-DEC-2002’,6765,
’COORG’,’[email protected]’)

3>Display all the Records in the Descending Order of Name:


SQL> SELECT * FROM SALES ORDER BY SNAME DESC;
SQL> SELECT * FROM CUSTOMERS;
ID SNAME DOB CID CITY EMAIL_ID
---------------------------------------------------------------------------------------------------------------------------
1000 ROHAN 21-MAR-98 6765 COORG [email protected]
1001 ABHI 02-APR-98 6766 GOA [email protected]
1002 OSHIN 21-MAR-98 6767 COORG [email protected]
1003 KIM 26-MAY-98 6768 DELHI [email protected]
1004 BELLA 25-JUN-98 6769 BOMBAY [email protected]
1005 RAJ 29-APR-98 6770 MYSORE [email protected]
1006 ALLEN 20-APR-97 6771 DELHI [email protected]
1007 CLINT 15-MAY-98 6772 GOA [email protected]
1008 IVAN 21-MAR-98 6773 COORG [email protected]
1009 JASON 21-MAR-98 6774 COORG [email protected]
10 rows selected.

ID SNAME DOB CID CITY EMAIL_ID


---------------------------------------------------------------------------------------------------------------------------
1000 ROHAN 21-MAR-98 6765 COORG [email protected]
1001 ABHI 02-APR-98 6766 GOA [email protected]
1002 OSHIN 21-MAR-98 6767 COORG [email protected]
1003 KIM 26-MAY-98 6768 DELHI [email protected]
1004 BELLA 25-JUN-98 6769 BOMBAY [email protected]
1005 RAJ 29-APR-98 6770 MYSORE [email protected]
1006 ALLEN 20-APR-97 6771 DELHI [email protected]
1007 CLINT 15-MAY-98 6772 GOA [email protected]
1008 IVAN 21-MAR-98 6773 COORG [email protected]
1009 JASON 21-MAR-98 6774 COORG [email protected]

10 rows selected.
**********************************************************************************
Register Number:191805
Program Number:03
AIM : ADDING AND ALTERING BUSINESS RULE, NAMING CONSTRAINTS, DROPPING
CONSTRAINTS AND TESTING SIMPLE QUERIES
**********************************************************************************
1> Create the following relations
A> BANK_CUSTOMER(CID INTEGER, CNAME NN, DOB NN, CITY NN CITY
NAME IN CAPITAL LETTERS)
SQL> CREATE TABLE BANK_CUSTOMER(CID INT,CNAME VARCHAR(20)
NOT NULL,DOB DATE NOT NULL,CITY VARCHAR(20) NOT NULL
CHECK(CITY=UPPER(CITY)));
table created

B> LOANS(LOANID INTEGER,CID INTEGER,LDATE DATE,LAMOUNT


NUMBER(10,2),LCLOSEDATE DATE,STATUS CHAR(1))
SQL> CREATE TABLE LOANS(LOANID INT,CID INT,LDATE
DATE,LAMOUNT NUMBER(10,2),LCLOSEDATE DATE,STATUS CHAR(1));
table created

2> Add the following constraints


A> Add constraints to loans to make lclosedate > ldate
SQL> ALTER TABLE LOANS ADD CHECK(LCLOSEDATE>LDATE);
table altered.

B> Make cname to accept in capital letters


SQL> ALTER TABLE BANK_CUSTOMER ADD
CHECK(CNAME=UPPER(CNAME));
table altered

C> Add constraints to loans make status to accept only the values ‘A’,’C’,’N’
SQL> ALTER TABLE LOANS ADD CHECK(STATUS IN(‘A’,’C’,’N’));
table altered.

3>Insert few records to both the table(3 records to bank_customer and 9 records to loans)
SQL> INSERT INTO BANK_CUSTOMER
VALUES(&CID,’&CNAME’,’&DOB’,’&CITY’);
ENTER VALUE FOR CID: 1000
ENTER VALUE FOR CNAME: SHRAV
ENTER VALUE FOR DOB: 26-MAY-1998
ENTER VALUE FOR CITY: GOA
OLD 1: INSERT INTO BANK_CUSTOMER
VALUES(&CID,’&CNAME’,’&DOB’,’&CITY’)
NEW 1:INSERT INTO BANK_CUSTOMER VALUES(1000,’SHRAV’,’26-MAY-
1998’,’GOA’)

1 row created.

SQL> SELECT * FROM BANK_CUSTOMER;


CID CNAME DOB CITY
--------------- --------------------- ------------------- ----------------------
100 SHRAV 26-MAY-98 COORG
101 CLINT 26-MAY-98 MANGALORE
102 SAMUEL 26-MAY-98 UPUPI

SQL> INSERT INTO LOANS


VALUES(&LOANID,&CID,’&LDATE’,&LAMOUNT,’&LCLOSEDATE’,’&STATUS’);
ENTER VALUE FOR LOANID: 1000
ENTER VALUE FOR CID: 100
ENTER VALUE FOR LDATE: 25-APR-2018
ENTER VALUE FOR LAMOUNT: 100000
ENTER VALUE FOR LCLOSEDATE: 18-DEC-2019
ENTER VALUE FOR STATUS: A
OLD 1: INSERT INTO LOANS
VALUES(&LOAND,&CID,’&LDATE’,&LAMOUNT,’&LCLOSEDATE’,’&STATUS’)
NEW 1: INSERT INTO LOANS
VALUES(1000,100,’25-APR-2018’,100000,’18-DEC-2019’,’A’)

1 row created.
SQL> SELECT * FROM LOANS;
LOANID CID LDATE LAMOUNT LCLOSEDATE STATUS
--------------- ------- --------------------- ------------------- ------------------------- -----------------
1000 100 25-APR-2018 100000 05-APR-2019 A
1001 101 15-MAY-2018 90000 15-JAN-2019 B
1002 102 02-APR-2018 10000 25-FEB-2019 A
1003 103 30-DEC-2018 300000 30-APR-2019 B
1004 104 01-NOV-2018 50000 10-MAR-2019 A
1005 105 25-JAN-2019 1000 26-DEC-2019 A
1006 106 03-APR-2018 12000 03-MAY-2019 C
1007 107 17-NOV-2018 1200000 21-JUN-2019 A
1008 108 19-FEB-2019 100000 13-APR-2019 B
1009 109 22-APR-2018 100000 26-JUL-2019 A

10 records selected.

4> Add the following constraints with the constraint names


A> Add primary key to bankcustomer(cid) and loans(loanid)
SQL> ALTER TABLE BANK_CUSTOMER ADD PRIMARY KEY(CID);
table altered.
SQL> ALTER TABLE LOANS ADD PRIMARY KEY(LOANID);
table altered.
B> Add foreign key to loans(cid)
SQL> ALTER TABLE LOANS ADD FOREIGN KEY(CID) REFERENCES
BANK_CUSTOMER(CID);
table altered
C> Drop the foreign key and recreate the same with on delete cascade/set null option
SQL> ALTER TABLE LOANS DROP CONSTRAINT SYS_C0010920;
table altered

SQL> ALTER TABLE LOANS ADD FOREIGN KEY(CID) REFERENCES


BANK_CUSTOMER(CID) ON DELETE CASCADE;
table altered
D> Drop the business rule constraints (lclosedate and cname)
SQL> ALTER TABLE LOANS DROP CONSTRAINT SYS_C0010841;
table altered
SQL> ALTER TABLE BANK_CUSTOMER DROP CONSTRAINT SYS_C0010841;
table altered
5> Do the following queries
A> Display all the customer id, name, city for those customers whose city=’mangaluru’
SQL> SELECT CID,CNAME,CITY FROM BANK_CUSTOMER WHERE
CITY=’MANGALORE’;
CID CNAME CITY
------------ ------------------- ----------------------------
101 CLINT MANGALORE

B> Display all the customer id, name, city for those customers whose city=’mangaluru’ in the
descending order of city and ascending order of customer name
SQL> SELECT CID,CNAME,CITY FROM BANK_CUSTOMER WHERE
CITY=’MANGALORE’ ORDER BY CITY DESC, CNAME ASC;
CID CNAME CITY
------------ ------------------- ----------------------------
101 CLINT MANGALORE

C> Display all the customer id, name, city for those customers whose city is either
‘mangaluru’,’mysore’ or ‘bengaluru’ in the ascending order of city
SQL> SELECT CID,CNAME,CITY FROM BANK_CUSTOMER WHERE CITY
IN(‘MANGALORE’,’MYSORE’,’BANGALORE’) ORDER BY CITY ASC;
CID CNAME CITY
------------ ------------------- ----------------------------
103 OSHIN MYSORE
104 SHRAVAN MANGALORE

D> Display all the name, city for those customers whose name begins with ‘o’ or ‘c’ and dob>1st
JAN 1990
SQL> SELECT CNAME,CITY FROM BANK_CUSTOMER WHERE CNAME LIKE
‘O%’ OR CNAME LIKE ‘C%’ AND DOB>’01-JAN-1990’;
CNAME CITY
------------------- ----------------------------
OSHIN MYSORE

E> Display all the customer id, name, city for those customers whose name ends with letter ‘a’
and city is not ‘mangaluru’,’mysore’ or ‘bengaluru’ or ‘coorg’ in the ascending order of city
SQL> SELECT CID,CNAME,CITY FROM BANK_CUSTOMER WHERE CNAME LIKE
‘%A’ AND CITY NOT IN(‘MANGALORE’,’MYSORE’,’BANGALORE’,’COORG’)
ORDER BY CITY ASC;
CID CNAME CITY
------------ ------------------- ----------------------------
103 OSHIN MYSORE

Display all the customer id, loanid, ldate, lamount for those customers whose loan amount is >50,000
and less than 1,00,000 and loan date is before 31st march 2016 in the descending order of lamount
SQL> SELECT CID,LOANID,LDATE,LAMOUNT FROM LOANS WHERE LAMOUNT
BETWEEN 50000 AND 100000 AND LDATE<’31-MAR-2016’ ORDER BY LAMOUNT DESC;
CID LOANID LDATE CITY
------------ ---------------- -------------------- --------------------------
101 1001 10-JAN-16 MANGALORE
105 1005 25-JAN-19 MANGALORE
107 1007 17-NOV-2018 MANGALORE
**********************************************************************************
Register Number:191805
Program Number:04
AIM : I)NAMING ALL THE CONSTRAINTS DURING CREATION OF TABLE
II)TESTING AGGREGATE FUNCTIONS
**********************************************************************************
PART – I
Create a table named student_bio(regno int primary key, sname varchar(20) not null,dob date not
null,city varchar(15), category varchar(3) should accept only ‘GEN’,’OBC’,’SC’,’ST’,total_marks
number(3) total_marks>0)
SQL> CREATE TABLE STUDENT_NIO(REGNO INT CONSTRAINT
STUDBIO_REGNO_PK PRIMARY KEY,SNAME VARCHAR(20) CONSTRAINT
STUDBIO_SNAME_NN NOT NULL,DOB DATE CONSTRAINT STUDBIO_DOB_NN NOT
NULL,CITY VARCHAR(15), CATEGORY VARCHAR(3) CONSTRAINT
STUDBIO_CAT_CCHECK(CATEGORY IN(‘GEN’,’OBC’,’SC’,’ST’)),TOTAL_MARKS
NUMBER(3) CONSTRAINT STUDBIO_TOT_CCHECK(TOTAL_MARKS>0));
table created

SQL> DESC STUDENT_BIO;


NAME NULL? TYPE
---------------------- ----------------------- ----------------------
REGNO NOT NULL NUMBER(38)
SNAME NOT NULL VARCHAR2(20)
DOB NOT NULL DATE
CITY VARCHAR2(15)
CATEGORY VARCHAR2(3)
TOTAL_MARKS NUMBER(3)

SQL> INSERT INTO STUDENT_BIO


VALUES(&REGNO,’&SNAME’,’&DOB’,’&CITY’,’&CATEGORY’,&TOTAL_MARKS);
ENTER VALUE FOR REGNO: 1001
ENTER VALUE FOR SNAME: OSHIN
ENTER VALUE FOR DOB: 17-JUL-98
ENTER VALUE FOR CITY: COORG
ENTER VALUE FOR CATEGORY: GEN
ENTER VALUE FOR TOTAL_MARKS: 300
OLD 1: INSERT INTO STUDENT_BIO
VALUES(&REGNO,’&SNAME’,’&DOB’,’&CITY’,’&CATEGORY’,&TOTAL_MARKS);
NEW 1: INSERT INTO STUDENT_BIO
VALUES(111,’OSHIN’,’18-AUG-1998’,’MARGAO’,’GEN’,300);

1 row created.

SQL> SELECT * FROM STUDENT_BIO


REGNO SNAME DOB CITY CAT TOTAL_MARKS
-------------- ------------------ --------------- ------------------- --------------------- -----------------------------
1001 OSHIN 17-JUL-98 COORG GEN 300
1002 ROHAN 21-MAR-98 COORG GEN 600
1003 ABHI 02-APR-98 GOA OBC 450
1004 KIM 26-MAY-98 DELHI ST 430
1005 BELLA 25-JUL-98 BOMABAY GEN 100
1006 RAJ 29-APR-98 MYSORE OBC 500
1007 ALLEN 20-APR-97 DELHI OBC 345
1008 CLINT 15-MAY-98 GOA GEN 210
1009 IVAN 21-MAR-98 COORG SC 390
1010 JASON 17-MAR-98 COORG GEN 270

10 records selected.

NOTE: ADD CONSTRAINTS WHILE CREATING TABLES AND ALSO NAME THE
CONSTRAINTS
i) Display all the regno, city, sname, total_marks in the ascending order of city descending order
of total_marks
SQL> SELECT REGNO,CITY,SNAME,TOTAL_MARKS FROM STUDENT_BIO ORDER BY
CITY ASC,TOTAL_MARKS DESC;
REGNO CITY SNAME TOTAL_MARKS
-------------- ------------------ ------------------- --------------------------
1001 COORG OSHIN 300
1002 COORG ROHAN 600
1003 GOA ABHI 450
1004 DELHI KIM 430
1005 BOMBAY BELLA 100
1006 MYSORE RAJ 500
1007 DELHI ALLEN 345
1008 GOA CLINT 210
1009 COORG IVAN 390
1010 COORG JASON 270

10 rows selected.

ii) Display all the regno, city, sname,totalmarks for category =”sc” or “st” in the descending
order of marks and descending order of sname.
SQL> SELECT REGNO,CITY,SNAME,TOTAL_MARKS FROM STUDENT_BIO WHERE
CATEGORY IN(‘SC’,’ST’) ORDER BY TOTAL_MARKS DESC,SNAME ASC;
REGNO CITY SNAME TOTAL_MARKS
-------------- ------------------ ------------------- --------------------------
1004 DELHI KIM 430
1009 COORG IVAN 390

iii) Display all students who do not belong to city ‘mangalore’,’kasaragod’ and ‘coorg’ and
whose category is not ‘sc’ and dob is in between 1st jan 1990 and jun 30th 1999
SQL> SELECT * FROM STUDENT_BIO WHERE CITY NOT
IN(‘MANGALORE’,’KASARAGOD’,’COORG’) AND CATEGORY!=’SC’ AND DOB
BETWEEN ’01-JAN-1990’ AND ’30-JUN-1999’;
REGNO SNAME DOB CITY CAT TOTAL_MARKS
-------------- ------------------ --------------- ------------------- --------------------- -----------------------------
1005 BELLA 25-JUL-98 BOMBAY GEN 100

iv) Display all the student name, city name, dob whose name begins with letter ‘a’ or letter ‘m’ in
the ascending order of city.
SQL> SELECT SNAME,CITY,DOB FROM STUDENT_BIO WHERE SNAME LIKE ‘A%’ OR
SNAME LIKE ‘M%’ ORDER BY CITY ASC;
SNAME DOB CITY
-------------- ------------------ ---------------
ALLEN 20-APR-97 DELHI
ABHI 02-APR-98 GOA

v) Display all the regno and marks for those whose marks are in between 300 and 500 and who do not
belong to city ‘mysore’,’bangalore’,’mangalore’
SQL> SELECT REGNO,TOTAL_MARKS FROM STUDENT_BIO WHERE TOTAL_MARKS
BETWEEN 300 AND 500 AND CITY NOT IN(‘MYSORE’,’BANGALORE’,’MANGALORE’);
REGNO TOTAL_MARKS
----------------------- ------------------------------
1001 300
1003 450
1004 430
1007 345
1009 390

5 rows selected

vi) Display all the regno and marks for those whose marks are in between 500 and 550 and city is
either ‘mangalore’ or ‘udupi’ and category is either ‘obc’ or ‘gen’
SQL> SELECT REGNO,TOTAL_MARKS FROM STUDENT_BIO WHERE TOTAL_MARKS
BETWEEN 500 AND 550 AND CITY IN(‘MANGALORE’,’UPUPI’)AND CATEGORY IN
(‘OBC’,’GEN’);
REGNO TOTAL_MARKS
----------------------- ------------------------------
1001 550
1006 500
vii) Display all the regno and marks for those whose marks are in between 300 and 550 and
category is either ‘obc’ or ‘gen’ and city name ends with letter ‘e’ in the descending order of
total_marks
SQL> SELECT REGNO,TOTAL_MARKS FROM STUDENT_BIO WHERE TOTAL_MARKS
BETWEEN 300 AND 550 AND CATEGORY IN(‘OBC’,’GEN’) AND CITY LIKE ‘%E’ ORDER
BY TOTAL_MARKS DESC;
REGNO TOTAL_MARKS
----------------------- ------------------------------
1001 550
1006 500

PART - II
Consider the following tables and execute the given queries
a. Bank_customer(cid integer,cname nn, dob nn, city nn city name in capital letters)
SQL> CREATE TABLE BANK_CUSTOMER(CID INT,CNAME VARCHAR(20) NOT
NULL, DOB DATE NOT NULL,CITY VARCHAR(20) NOT NULL
CHECK(CITY=UPPER(CITY)));
table created.

b. Loans(loanid integer,cid integer,ldate date,lamount number(10,2), lclosedate date, status


char(1), ltype varchar(10) ‘personal’,’consumer’,’vehicle’)
SQL> CREATE TABLE LOANS(LOANID INT,CID INT,LDATE DATE,LAMOUNT
NUMBER(10,2),LCLOSEDATE DATE,STATUS CHAR(1),LTYPE VARCHAR(10)
CONSTRAINT LOANS_LTYPE_CK CHECK(LTYPE
IN(‘PERSONAL’,’CONSUMER’,’VEHICLE’));
table created.

a. Count the total records in bank_customer whose city is not null


SQL> SELECT COUNT(*) FROM BANK_CUSTOMER WHERE CITY IS NOT
NULL;

COUNT(*)
--------------
3
b. Display max and min loan amount
SQL> SELECT MIN(LAMOUNT),MAX(LAMOUNT) FROM LOANS;
MIN(LAMOUNT) MAX(LAMOUNT)
-------------------------- ----------------------------
30000 350000

c. Display datewise total of loan where the total loan<200000


SQL> SELECT LDATE,SUM(LAMOUNT) FROM LOANS GROUP BY LDATE
HAVING SUM(LAMOUNT)<200000;

LDATE SUM(LAMOUNT)
--------------------- -----------------------------------------
26-MAR-15 150000
30-JUN-18 9000
13-FEB-16 15000
03-DEC-10 50000
4 rows selected.

d. Display total loan and average loan issued date wise in the ascending order of date
SQL> SELECT SUM(LAMOUNT),AVG(LAMOUNT),LDATE FROM LOANS
GROUP BY LDATE;

SUM(LAMOUNT) AVG(LAMOUNT) LDATE


-------------------------- -------------------------------- ----------------------
250000 350000 26-MAR-15
20000 150000 30-JUN-18
75000 100000 13-FEB-16
150000 200000 04-FEB-18
320000 560000 30-DEC-16
20000 290000 30-FEB-19

6 rows selected

e. Display status and total loan and average loan issued status wise for dates between 1st jan
2015 to 31st march 2017
SQL> SELECT STATUS,SUM(LAMOUNT),AVG(LAMOUNT) FROM LOANS
WHERE LDATE BETWEEN ’01-JAN-2015’ AND ’31-MAR-2017’ GROUP BY
STATUS;

S SUM(LAMOUNT) AVG(LAMOUNT)
------ ----------------------------- ----------------------------
A 290000 96666.667

f. Display the total loan amount status wise(only for personal loan)
SQL> SELECT SUM(LAMOUNT),STATUS FROM LOANS WHERE
LTYPE=’PERONAL’ GROUP BY STATUS;
SUM(LAMOUNT) S
---------------------------- ------------
100000 C
430000 A
g. Display total loan amount based on type and status not ‘c’ and amount<50000
SQL> SELECT SUM(LAMOUNT),LTYPE FROM LOANS WHERE STATUS!=’C’
GROUP BY LTYPE HAVING SUM(LAMOUNT)<50000;

SUM(LAMOUNT) LTYPE
--------------------------- -------------------
25000 PERSONAL

h. Display total loan amount based on type and for the total amount in between 3 lacs to 5
lacs and date <31st march 2016
SQL> SELECT LTYPE,SUM(LAMOUNT) FROM LOANS WHERE LDATE<’31-
MAR-2016’ GROUP BY LTYPE HAVING SUM(LAMOUNT) BETWEEN 100000
AND 500000;
LTYPE SUM(LAMOUNT)
------------------ -----------------------------
CONSUMER 240000
CONSUMER 380000

i. Display the total count of loans status wise in each category in the descending order of
type
SQL> SELECT COUNT(LOANID),STATUS,LTYPE FROM LOANS GROUP BY
STATUS,LTYPE ORDER BY LTYPE;

COUNT(LOANID) S LTYPE
--------------------------- ---------- -----------------
2 A CONSUMER
5 C CONSUMER

2 rows selected.
**********************************************************************************
Register Number:191805
Program Number:05
AIM : Testing Aggregate functions
**********************************************************************************
Create the following relations
a. Persons(PID Int Primary Key, Pname Varchar(20) in Proper case Letters, DOB Date Not
Null, City Varchar(15) Not Null, Category char(3))
b. Deposits(DID Int PK, PID Int FK, Date1 Date Not Null, CDate Date Cdate>Date1,AcBal
Number(10,2) AcBal>0, DepType Varchar(15) accept only ‘Savings’,’Recurring’,or
‘Current’, Status Char(1) accept only ‘A’, ‘S’,’C’)

a> CREATE TABLE PERSONS(PERSONS(PID INT PRIMARY KEY, PNAME


VARCHAR(20) IN PROPER CASE LETTERS, DOB DATE NOT NULL, CITY
VARCHAR(15) NOT NULL,CATEGORY CHAR(3))
PNAME VARCHAR(20) CHECK(PNAME=UPPER(PNAME)),
DOB DATE NOT NULL,
CITY VARCHAR(15) NOT NULL,
CATEGORY CHAR(3));

Table created.

b> Deposits(DID Int PK, PID Int FK, Date1 Date Not Null, CDate Date Cdate>Date1,AcBal
Number(10,2) AcBal>0, DepType Varchar(15) accept only ‘Savings’,’Recurring’,’Fixed’, or
‘Current’ , Status Char(1) accept only ‘A’,’S’,’C’)
SQL> CREATE TABLE DEPOSITS(DID INT PRIMARY KEY,
PID INT REFERENCES PERSONS(PID),
DATE1 DATE NOT NULL,
CDATE DATE,
CONSTRAINT DEP_CDATE_CHK CHECK(CDATE>DATE1),
ACBAL NUMBER(10,2) CONSTRAINT DEP_BAL_CHK CHECK(ACBAL>0),
DEPTYPE VARCHAR(15) CONSTRAINT DEP_TYPE_CHK
CHECK(DEPTYPE=ANY(‘SAVINGS,’RECURRING’,’FIXED’,’CURRENT’)),
8 STATUS CHAR(1) CONSTRAINT DEP_STATUS_CHK
CHECK(STATUS=ANY(‘A’,’S’,’C’)));

Note : All the constraints should be added while creating the tables (name all the
constraints)

i. Insert 15 or more records into the above tables


INSERT INTO PERSONS VALUES( 101,’PRATHAP’,’ 1-APR-
2016’,’MANGALORE’,’OBC’);
INSERT INTO DEPOSITS VALUES(102,’SUJATHA’,’5-MAR-
2017’,’BANGALORE’,’SC’);
INSERT INTO DEPOSITS VALUES(121,101,’4-MAY-2016’,’1-MAR-
2017’,90000,’SAVINGS’,’A’);

INSERT INTO DEPOSITS VALUES(122,102,’21-JUN-2014’,’1-MAR-


2016’,50000,’RECURRING’,’S’);
SQL> SELECT * FROM DEPOSITS;
DID PID DATE CDATE ACBAL DEPTYPE S
-------------------- ------------ --------------- ------------------ --------------- ---------------------- ---------------
121 101 02-APR-16 01-MAR-17 90000 SAVINGS A
121 101 02-APR-16 01-MAR-17 90000 SAVINGS A
121 101 02-APR-16 01-MAR-17 90000 SAVINGS A
121 101 02-APR-16 01-MAR-17 90000 SAVINGS A
121 101 02-APR-16 01-MAR-17 90000 SAVINGS A
121 101 02-APR-16 01-MAR-17 90000 SAVINGS A
6 rows selected

SQL> SELCT * FROM PERSONS;


PID PNAME DOB CITY CAT
------------ --------------- ------------------ --------------------- --------------------
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
101 ARJITH 01-APR-17 MANGALORE OBC
15 rows selected.

ii. Do the following queries


a> Count the total number of records in Persons table for city = ‘Mangaluru’
SQL> SELECT COUNT(*) FROM PERSONS WHERE CITY=’MANGALORE’;

COUNT(*)
---------------
1
b> Count the number of records in Deposits for savings account and Current Account
SQL> SELECT COUNT(*) FROM DEPOSITS WHERE DEPTYPE =
ANY(‘SAVINGS’,’CURRENT’);

COUNT(*)
----------------
4

c> Display Status and Total Loan issued Status wise for dates between 1st Apr 2016 to 31st
March 2017
SQL> SELECT STATUS,SUM(ACBAL),AVG(ACBAL) FROM DEPOSITS WHERE
DATE1 BETWEEN’01-APR-2016’ AND ’31-MAR-2017’ GROUP BY STATUS;

S SUM(ACBAL) AVG(ACBAL)
------------- ------------------------- ------------------------
A 90000 90000

d> Display Max and Min of Deposit amount (AcBal)


SQL> SELECT MAX(ACBAL),MIN(ACBAL) FROM DEPOSITS;

MAX(ACBAL) MIN(ACBAL)
-------------------- ------------------------
90000 40000

e> Display Total Deposit and Average Deposit amount DepType-wise in the ascending order
of DepType
SQL> SELECT DEPTYPE, SUM(ACBAL) FROM DEPOSITS GROUP BY DEPTYPE
ORDER BY DEPTYPE;

DEPTYPE SUM(ACBAL)
----------------- --------------------------
CURRENT 40000
FIXED 80000
RECURRING 50000
SAVINGS 220000

f> Display Total Deposit amount DepType-wise for sum of amount > 75000 in the
descending order TotalAmount
SQL> SELECT DEPTYPE,SUM(ACBAL) AS TOTAL_AMOUNT FROM DEPOSITS
GROUP BY DEPTYPE HAVING SUM(ACBAL)>75000 ORDER BY
TOTAL_AMOUNT DESC;

DEPTYPE TOTAL_AMOUNT
--------------- --------------------------------
SAVINGS 220000
FIXED 80000

g> Display Deposit Type, Total Deposit amount DepType and Status wise for only
AcBal>25,000
SQL> SELECT DEPTYPE ,SUM(ACBAL) FROM DEPOSITS WHERE
ACBAL>25000 GROUP BY DEPTYPE, STATUS;

DEPTYPE SUM(ACBAL)
----------------- --------------------------
CURRENT 40000
FIXED 80000
RECURRING 50000
SAVINGS 145000
SAVINGS 75000

h> Display Date1.DepositType,TotalDeposit amount Datewise and Deposit Type wise for
only Status = ‘A’ or ‘S’ and sum of amount <80,000 in the Ascending order of Total
DATE1 DEPTYPE SUM(ACBAL)
------------------- --------------------- ---------------------------
28-FEB-15 CURRENT 40000
21-JUN-14 RECURRING 40000
26-JUL-14 CURRENT 55000

PART – II
Aim: i) Learning simple joins (Inner Join)
ii) Testing Simple joins with aggregate function
i) Display pid, pname, city, did, acbal, deptype in the descending order of pname
SQL> SELECT P.PID,P.PNAME,P.CITY,D.DID,D.ACBAL,D.DEPTYPE FROM
DEPOSITS D,PERSONS P WHERE P.PID ORDER BY PNAME DESC;

PID PNAME CITY DID ACBAL


DEPTYPE
-------------- --------------------- --------------------- --------------- ------------------ ----------
---------
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING

6 rows selected

ii) Display Pid, Pname, City, DID, AcBal, DepType in the descending order of city
name and descending order of Pname ;
SQL> SELECT P.PID,P.PNAME,P.CITY,D.DID,D.ACBAL,D.DEPTYPE FROM
DEPOSITS D,PERSONS P WHERE P.PID=D.PID ORDER BY P.CITY DESC
,P.PNAME DESC;

PID PNAME CITY DID ACBAL


DEPTYPE
-------------- --------------------- --------------------- --------------- ------------------ ----------
---------
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING
102 SUJATHA BANGALORE 122 50000
RECURRING

6 rows selected
iii) Display PID, Pname, City, DID, AcBal, DepType, Status for City
Name=’Mangaluru’ or ‘Coorg’
SQL> SELECT
P.PID,P.PNAME,P.CITY,D.DID,D.ACBAL,D.DEPTYPE,D.STATUS FROM
DEPOSITS D,PERSONS P WHERE P.PID=D.PID AND P.CITY
IN(‘MANGALORE’,’COORG’);

PID PNAME CITY DID ACBAL


DEPTYPE
-------------- --------------------- --------------------- --------------- ------------------ ----------
---------
102 SUJATHA BANGALORE 122 50000
RECURRING

iv) Display PID, Pname, City, DID, AcBal, DepType, Status for City
Name=’Mangaluru’ or ‘Coorg’ and Date1 in between 1st Jan 2016 to 31st Dec 2016

SQL> SELECT
P.PID,P.PNAME,P.CITY,D.DID,D.ACBAL,D.DEPTYPE,D.STATUS FROM
DEPOSITS D,PERSONS P WHERE P.PID=D.PID AND P.CITY
IN(‘MANGALORE’,’COORG’) AND D.DATE1 BETWEEN ‘1-JAN-2016’ AND
’31-DEC-2016’;

PID PNAME CITY DID ACBAL DEPTYPE


S
-------------- --------------------- --------------------- --------------- ------------------ ------------------- ----------
----------
102 SUJATHA BANGALORE 122 50000 RECURRING
A

v) Display DepType, Total Deposit and Average Deposit amount DepType-wise in the
ascending order of DepType for city=’Mangaluru’
SQL> SELECT DEPTYPE,SUM(ACBAL),AVG(ACBAL) FROM DEPOSITS
D,PERSONS P WHERE P.PID=D.PID AND P.CITY =ANY(‘MANGALURU’)
GROUP BY D.DEPTYPE ORDER BY D DEPTYPE;

no rows selected

vi) Display City, Total Deposit and Average Deposit amount Citywise, DepType-wise in
the ascending order of city, DepType
SQL> SELECT CITY,SUM(ACBAL),AVG(ACBAL) FROM DEPOSITS
D,PERSONS P WHERE P.ID=D.PID GROUP BY P.CITY,D.DEPTYPE ORDER
BY P.CITY,D.DEPTYPE;

CITY SUM(ACBAL) AVG(ACBAL)


-------------------- -------------------------- -------------------------
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000

6 rows selected.

vii) Display City, Total Deposit City-wise for AcBal>10,000 in the ascending order of
City
SQL> SELECT CITY,SUM(ACBAL),AVG(ACBAL) FROM DEPOSITS
D,PERSONS P WHERE P.PID=D.PID AND ACBAL>10000 GROUP BY P.CITY
ORDER BY P.CITY;

CITY SUM(ACBAL) AVG(ACBAL)


-------------------- -------------------------- -------------------------
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000
BANGALORE 50000 50000

6 rows selected.

viii) Display City, DepType, Total Deposit Citywise, DepType-wise for TotalDepo
amount>50,000
SQL> SELECT CITY, DEPTYPE,SUM(ACBAL) FROM DEPOSITS D,PERSONS
P WHERE P.ID=D.PID GROUP BY D. DEPTYPE,P.CITY HAVING
SUM(ACBAL)>50000;

CITY DEPTYPE SUM(ACBAL)


--------------------- ----------------------- -----------------------------
MYSORE FIXED 80000
MYSORE FIXED 80000
MYSORE FIXED 80000
MYSORE FIXED 80000

You might also like