0% found this document useful (0 votes)
9 views

Dbms Assignment

Uploaded by

Cyber News
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Dbms Assignment

Uploaded by

Cyber News
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

HARCOURT BUTLER TECHNICAL UNIVERSITY

NAWABGANJ, KANPUR

LAB RECORD

Course: Bachelor of Technology


Subject Code: ECS-353

Submitted
SubmittedTo:
To: Submitted
Submitted By: By:
Sonia Gupta Ma’am Anuj Srivastava
Sonia Gupta Ma’am Prashant Kumar
Department of SR No: 200108023
SR No: 200108041
Department of Computer Science
Computer Science and Engineering
and Engineering Year: 3rd B.Tech
Year: 3rd B.Tech
Information
Branch: Information Technology
TTechnology
1. Write the queries for Data Definition and Data Manipulation language.

Data Definition Commands:

1. CREATE

CREATE TABLE Employee_Info


(
EmployeeID int,
EmployeeName varchar(255),
PhoneNumber int,
Address varchar(255),
City varchar(255),
Country varchar(255)
);

Output: (DESC Employee_Info)

2. ALTER

ALTER TABLE Employee_Info


ADD BloodGroup varchar(255);

Output: (DESC Employee_Info)


3. DROP

DROP Table Employee_Info;

Output:
Table 'Employee_Info' doesn't exist

Data Manipulation Commands:


1. INSERT

INSERT INTO Employee_Info(EmployeeID, EmployeeName, PhoneNumber,


Address, City, Country)
VALUES
('06', 'Sanjana', '9921321141', 'Camel Street House No 12', 'Chennai',
'India'),
('07', 'Sayantini', '9934567654', 'Nice Road 21', 'Pune', 'India');

Output: (SELECT * from Employee_Info)

2. UPDATE

UPDATE Employee_Info
SET EmployeeName = 'Laila', City= 'Ahmedabad'
WHERE EmployeeID = 6;

Output: (SELECT * from Employee_Info)

3. DELETE

DELETE FROM Employee_Info


WHERE EmployeeName='Laila';
Output:
2. Write SQL queries using Logical operators (=, <, >, etc.).
Table:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
7 rows in set (0.00 sec)
Query:
SQL> SELECT * FROM CUSTOMERS WHERE AGE >= 25 AND SALARY >= 6500;

Output:
+----+----------+-----+---------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+---------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
+----+----------+-----+---------+---------+
2 rows in set (0.00 sec)
3. Write SQL queries using SQL operators (Between…. AND, IN(List), Like,
ISNULL and withnegating expressions).

AND
SELECT * FROM employee WHERE emp_city = 'Allahabad' AND emp_country
= 'India';

IN
SELECT * FROM employee WHERE emp_city IN ('Allahabad', 'Patna');

LIKE
SELECT * FROM employee WHERE emp_city LIKE 'P%';
BETWEEN
SELECT * FROM employee WHERE emp_id BETWEEN 101 AND 104;
4. Write SQL query using character, number, date and group functions.

CHARACTER FUNCTIONS :

LOWER

Input1: SELECT LOWER('DATABASEMANAGEMENTSYSTEM') FROM DUAL;


Output1: databasemanagementsystem

UPPER
Input2: SELECT UPPER('dbms$508%7') FROM DUAL;
Output2: DBMS$508%7

INITCAP

Input1: SELECT INITCAP('geeksforgeeks is a computer science portal


for geeks') FROM DUAL;
Output1: Geeksforgeeks Is A Computer Science Portal For Geeks

LENGTH

Input1: SELECT LENGTH('Learning Is Fun') FROM DUAL;


Output1: 15

NUMBER FUNCTIONS:

ABS

Syntax: SELECT ABS(-243.5);


Output: 243.5

CEIL(): It returns the smallest integer value that is greater than or equal
to a number.
Syntax: SELECT CEIL(25.75);
Output: 26

EXP(): It returns e raised to the power of number.


Syntax: SELECT EXP(1);
Output: 2.718281828459045

GREATEST(): It returns the greatest value in a list of expressions.


Syntax: SELECT GREATEST(30, 2, 36, 81, 125);
Output: 125
DATE FUNCTIONS :

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

GROUP FUNCTIONS
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
5. Write SQL queries for Relational Algebra (UNION, INTERSECT, and
MINUS, etc.).

Union Operator:
SELECT * FROM BOOKS
UNION
SELECT * FROM MOVIES
Output:

Minus Operator:
SELECT * FROM BOOKS
MINUS
SELECT * FROM MOVIES
Output:

Intersect Operator:
SELECT * FROM BOOKS
INTERSECT
SELECT * FROM MOVIES

Output:

6. Write SQL queries for extracting data from more than one table
(Equi-Join, Non-Equi-Join, Outer Join)
Tables:
Equi-Join:
SELECT * FROM state
JOIN city
ON state.State_ID = city.City_ID;

Output:
Non Equi-Join:
Tables:
Query:
SELECT * FROM test1,test2 WHERE test1.SNo > test2.SNo;
Output:
7. Write SQL queries for sub queries, nested queries.
SUB QUERIES::

SELECT STATEMENT

SQL> SELECT *
FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS
WHERE SALARY > 4500) ;

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 35 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+

UPDATE STATEMENT

SQL> UPDATE CUSTOMERS


SET SALARY = SALARY * 0.25
WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP
WHERE AGE >= 27 );

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 35 | Ahmedabad | 125.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 2125.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
NESTED QUERIES ::

SELECT job_id,AVG(salary)
FROM employees
GROUP BY job_id
HAVING AVG(salary)<
(SELECT MAX(AVG(min_salary))
FROM jobs
WHERE job_id IN
(SELECT job_id FROM job_history
WHERE department_id
BETWEEN 50 AND 100)
GROUP BY job_id);

Output

JOB_ID AVG(SALARY)
---------- -----------
IT_PROG 5760
AC_ACCOUNT 8300
ST_MAN 7280
AD_ASST 4400
SH_CLERK 3215
FI_ACCOUNT 7920
PU_CLERK 2780
SA_REP 8350
MK_REP 6000
ST_CLERK 2785
HR_REP 6500
8. Write programs by the use of PL/SQL.
#FOR LOOP

PL/SQL Block

-- available online in file 'sample1'


DECLARE
x NUMBER := 100;
BEGIN
FOR i IN 1..10 LOOP
IF MOD(i,2) = 0 THEN -- i is even
INSERT INTO temp VALUES (i, x, 'i is even');
ELSE
INSERT INTO temp VALUES (i, x, 'i is odd');
END IF;
x := x + 100;
END LOOP;
COMMIT;
END;

Output Table

SQL> SELECT * FROM temp ORDER BY col1;

NUM_COL1 NUM_COL2 CHAR_COL


-------- -------- ---------
1 100 i is odd
2 200 i is even
3 300 i is odd
4 400 i is even
5 500 i is odd
6 600 i is even
7 700 i is odd
8 800 i is even
9 900 i is odd
10 1000 i is even
#CURSOR

PL/SQL Block

-- available online in file 'sample2'


DECLARE
CURSOR c1 is
SELECT ename, empno, sal FROM emp
ORDER BY sal DESC; -- start with highest paid employee
my_ename VARCHAR2(10);
my_empno NUMBER(4);
my_sal NUMBER(7,2);
BEGIN
OPEN c1;
FOR i IN 1..5 LOOP
FETCH c1 INTO my_ename, my_empno, my_sal;
EXIT WHEN c1%NOTFOUND; /* in case the number requested */
/* is more than the total */
/* number of employees */
INSERT INTO temp VALUES (my_sal, my_empno, my_ename);
COMMIT;
END LOOP;
CLOSE c1;
END;

Output Table
SQL> SELECT * FROM temp ORDER BY col1 DESC;

NUM_COL1 NUM_COL2 CHAR_COL


-------- -------- --------
5000 7839 KING
3000 7902 FORD
3000 7788 SCOTT
2975 7566 JONES
2850 7698 BLAKE
9. Concepts for ROLL BACK, COMMIT & CHECK POINTS.

Table:

Queries:
INSERT INTO class VALUES(5, 'Rahul');
COMMIT;
UPDATE class SET name = 'Abhijit' WHERE id = '5';
SAVEPOINT A;
INSERT INTO class VALUES(6, 'Chris');
SAVEPOINT B;
INSERT INTO class VALUES(7, 'Bravo');
SAVEPOINT C;
SELECT * FROM class;
Output:

RollBack:
ROLLBACK TO B;
SELECT * FROM class;

Output:
10. Create VIEWS, CURSORS, and TRIGGRS & write ASSERTIONS.

#VIEWS::

mysql> CREATE TABLE t (qty INT, price INT);


mysql> INSERT INTO t VALUES(3, 50);
mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
mysql> SELECT * FROM v;
+------+-------+-------+
| qty | price | value |
+------+-------+-------+
| 3 | 50 | 150 |
+------+-------+-------+

mysql> CREATE VIEW v (mycol) AS SELECT 'abc';


Query OK, 0 rows affected (0.01 sec)

mysql> SET sql_mode = '';


Query OK, 0 rows affected (0.00 sec)

mysql> SELECT "mycol" FROM v;


+-------+
| mycol |
+-------+
| mycol |
+-------+
1 row in set (0.01 sec)

mysql> SET sql_mode = 'ANSI_QUOTES';


Query OK, 0 rows affected (0.00 sec)

mysql> SELECT "mycol" FROM v;


+-------+
| mycol |
+-------+
| abc |
+-------+
1 row in set (0.00 sec)
#CURSORS::

DECLARE @name VARCHAR(50) -- database name


DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'C:\Backup\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR


SELECT name
FROM MASTER.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name


END

CLOSE db_cursor
DEALLOCATE db_cursor

#TRIGGRS::

create trigger stud_marks


before INSERT
on
Student
for each row
set Student.total = Student.subj1 + Student.subj2 + Student.subj3,
Student.per = Student.total * 60 / 100;

mysql> insert into Student values(0, "ABCDE", 20, 20, 20, 0, 0);
Query OK, 1 row affected (0.09 sec)
mysql> select * from Student;
+-----+-------+-------+-------+-------+-------+------+
| tid | name | subj1 | subj2 | subj3 | total | per |
+-----+-------+-------+-------+-------+-------+------+
| 100 | ABCDE | 20 | 20 | 20 | 60 | 36 |
+-----+-------+-------+-------+-------+-------+------+

#ASSERTIONS

create assertion sum-constraint check


(not exists (select * from branch
where (
select sum(amount) from loan
where loan.branch-name =
branch.branch-name)
>= (select sum(amount) from account
where loan.branch-name = branch.branch-name)))

Ensuring every loan customer keeps a minimum of $1000 in an account.

create assertion balance-constraint check

(not exists (select * from loan L

(where not exists (select *

from borrower B, depositor D, account A

where L.loan# = B.loan# and B.cname = D.cname

andD.account# = A.account#

and A.balance >= 1000 )))


11. Create FORMS and REPORTS.
Creating Reports in Oracle SQL DEVELOPER 2000
1. Click View, then Reports.
2. Reports Navigator is displayed. Right-click User Defined Reports and
select New Report.

3. For the Master Report name, enter Departments.


4. For the style, select Table.
5. In the SQL text box, enter

select employee_id, first_name, last_name


from employees where department_id = :DEPARTMENT_ID.

Your screen should look like this:

6. Click Apply
7. The Departments report is added to the User Defined Reports tree.

8. Click Departments to open the report.


9. Select hr_connection, then click OK.
10. The Departments report is displayed.
Creating Reports in Oracle FORMS DEVELOPER for ORACLE DATABASE

1. On the Workspace home page, click the Application


Builder icon.
2. Select an application.
3. Click Create Page.
4. Select Form and click Next.
5. Under Forms, select a type of form page as described
in Table 10-1.

Output for Tabular Form:

You might also like