Compare commits

..

No commits in common. "da3ef56abb087ef808861de6935b905f9ce0fbd5" and "f30b224e99b195c2dad29e92fe2fc0b610fc40a0" have entirely different histories.

4 changed files with 58 additions and 150 deletions

View File

@ -1,91 +1,75 @@
## Creating tables ## Creating tables & inserting data
Student marks:
```sql ```sql
CREATE TABLE Borrower ( CREATE TABLE Stud_Marks(
Roll_no NUMBER(15), Roll NUMBER(14),
Name VARCHAR(255), name VARCHAR(255),
DateOfIssue DATE, total_marks NUMBER(14),
NameOfBook VARCHAR(255), PRIMARY KEY(Roll)
Status VARCHAR(255),
PRIMARY KEY(Roll_no)
); );
CREATE TABLE Fine ( INSERT INTO Stud_Marks VALUES (1, 'Arora', 1350);
Roll_no NUMBER(15), INSERT INTO Stud_Marks VALUES (2, 'Shankar', 979);
DateOfReturn DATE, INSERT INTO Stud_Marks VALUES (3, 'Lara', 834);
Amount NUMBER(15), INSERT INTO Stud_Marks VALUES (4, 'Jambo', 667);
FOREIGN KEY(Roll_no) REFERENCES Borrower(Roll_no) INSERT INTO Stud_Marks VALUES (5, 'Tinde', 1400);
);
``` ```
## Inserting data Result:
```sql ```sql
INSERT INTO Borrower (Roll_no, Name, DateOfIssue, NameOfBook, Status) values (1, 'Ayush Kalaskar', TO_DATE('2024-07-28','YYYY-MM-DD'), 'DBMS', 'I'); CREATE TABLE Result(
Roll NUMBER(14),
INSERT INTO Borrower (Roll_no, Name, DateOfIssue, NameOfBook, Status) values (2, 'Himanshu Patil', TO_DATE('2024-07-01','YYYY-MM-DD'),'IOT', 'I'); name VARCHAR(255),
Class VARCHAR(255),
INSERT INTO Borrower (Roll_no, Name, DateOfIssue, NameOfBook, Status) values (3, 'Kshitij', TO_DATE('2024-08-05','YYYY-MM-DD'), 'TOC', 'I'); FOREIGN KEY (Roll) REFERENCES Stud_Marks (Roll)
);
``` ```
## Procedure ## Procedure
```sql ```sql
DECLARE CREATE OR REPLACE PROCEDURE proc_grade
p_nameofbook VARCHAR(255); (rollno in number,
p_rollno NUMBER(15) := 1; p_roll_no out Stud_Marks.Roll%type,
p_dateofissue DATE; p_name out Stud_Marks.name%type,
currentdate DATE; p_total out Stud_Marks.total_marks%type)
noofdays NUMBER(15); AS
amount NUMBER(15);
nodata EXCEPTION;
BEGIN BEGIN
p_nameofbook := '&p_nameofbook'; SELECT Roll, name, total_marks into p_roll_no, p_name, p_total from Stud_Marks WHERE Roll = rollno;
currentdate := SYSDATE; IF p_total <= 1500 and p_total >= 990
THEN
IF p_rollno <= 0 THEN INSERT INTO Result VALUES (p_roll_no, p_name, 'Distinction');
RAISE nodata; ELSE IF p_total <= 989 and p_total >= 900
END IF; THEN
INSERT INTO Result VALUES (p_roll_no, p_name, 'First Class');
SELECT DateOfIssue ELSE IF p_total <= 899 and p_total >= 825
INTO p_dateofissue THEN
FROM Borrower INSERT INTO Result VALUES (p_roll_no, p_name, 'Higher Second Class');
WHERE Roll_no = p_rollno AND NameOfBook = p_nameofbook;
SELECT TRUNC(SYSDATE) - p_dateofissue
INTO noofdays
FROM dual;
DBMS_OUTPUT.PUT_LINE('No of days: ' || noofdays);
IF (noofdays > 30) THEN
amount := noofdays * 50;
ELSIF (noofdays >= 15 AND noofdays <= 30) THEN
amount := noofdays * 5;
ELSE ELSE
amount := 0; INSERT INTO Result VALUES (p_roll_no, p_name, 'FAIL');
END IF; END IF;
IF amount > 0 THEN
INSERT INTO Fine (Roll_no, DateOfReturn, Amount)
VALUES (p_rollno, SYSDATE, amount);
END IF; END IF;
IF amount > 0 THEN
UPDATE Borrower
SET Status = 'R'
WHERE Roll_no = p_rollno;
END IF; END IF;
EXCEPTION EXCEPTION
WHEN nodata THEN WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE('Roll number or book name not found.'); dbms_output.put_line('Rollno ' || rollno || ' is not present!!');
WHEN NO_DATA_FOUND THEN END;
DBMS_OUTPUT.PUT_LINE('No entry found for the provided roll number and book name.'); /
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM); ```
## Calling Procedure:
```sql
DECLARE
rollno number(14);
p_roll_no Stud_Marks.Roll%type;
p_name Stud_Marks.name%type;
p_total_marks Stud_Marks.total_marks%type;
BEGIN
rollno := &rollno;
proc_grade(rollno, p_roll_no, p_name, p_total_marks);
END; END;
/ /

View File

@ -1,76 +0,0 @@
## Creating tables & inserting data
Student marks:
```sql
CREATE TABLE Stud_Marks(
Roll NUMBER(14),
name VARCHAR(255),
total_marks NUMBER(14),
PRIMARY KEY(Roll)
);
INSERT INTO Stud_Marks VALUES (1, 'Arora', 1350);
INSERT INTO Stud_Marks VALUES (2, 'Shankar', 979);
INSERT INTO Stud_Marks VALUES (3, 'Lara', 834);
INSERT INTO Stud_Marks VALUES (4, 'Jambo', 667);
INSERT INTO Stud_Marks VALUES (5, 'Tinde', 1400);
```
Result:
```sql
CREATE TABLE Result(
Roll NUMBER(14),
name VARCHAR(255),
Class VARCHAR(255),
FOREIGN KEY (Roll) REFERENCES Stud_Marks (Roll)
);
```
## Procedure
```sql
CREATE OR REPLACE PROCEDURE proc_grade
(rollno in number,
p_roll_no out Stud_Marks.Roll%type,
p_name out Stud_Marks.name%type,
p_total out Stud_Marks.total_marks%type)
AS
BEGIN
SELECT Roll, name, total_marks into p_roll_no, p_name, p_total from Stud_Marks WHERE Roll = rollno;
IF p_total <= 1500 and p_total >= 990
THEN
INSERT INTO Result VALUES (p_roll_no, p_name, 'Distinction');
ELSE IF p_total <= 989 and p_total >= 900
THEN
INSERT INTO Result VALUES (p_roll_no, p_name, 'First Class');
ELSE IF p_total <= 899 and p_total >= 825
THEN
INSERT INTO Result VALUES (p_roll_no, p_name, 'Higher Second Class');
ELSE
INSERT INTO Result VALUES (p_roll_no, p_name, 'FAIL');
END IF;
END IF;
END IF;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('Rollno ' || rollno || ' is not present!!');
END;
/
```
## Calling Procedure:
```sql
DECLARE
rollno number(14);
p_roll_no Stud_Marks.Roll%type;
p_name Stud_Marks.name%type;
p_total_marks Stud_Marks.total_marks%type;
BEGIN
rollno := &rollno;
proc_grade(rollno, p_roll_no, p_name, p_total_marks);
END;
/
```

View File

@ -16,7 +16,7 @@ A one-stop Git repository for third year SPPU Computer Engineering students foll
### Practical ### Practical
> Each folder contains **handout**, **write-up** and **database** and **softcopy** (i.e. copy + output). > Each folder contains **handout**, **write-up** and **database**.
1. [Assignment-A2](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Assignment-A2) 1. [Assignment-A2](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Assignment-A2)
2. [Assignment-A3](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Assignment-A3) 2. [Assignment-A3](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Assignment-A3)