You are on page 1of 8

DBMS LAB

END TERM EXAM


27/05/2021

AKSHAY HARISH
20191ISE0008
4ISE1
20191ISE0008 AKSHAY HARISH 4ISE1
SET 5
1. Develop DDL to implement the above schema specifying appropriate data types
for each attributes, enforcing primary key, foreign key constraints, unique, not
null and cascading. (Note: table name must be rollno_tablename)

mysql> CREATE TABLE 20191ISE0008_PRODUCTS(


-> ITEM_NO INT(10) PRIMARY KEY NOT NULL,
-> ITEM_NAME VARCHAR(20) ,STYLE VARCHAR(20),
-> COLOR VARCHAR(20),BRAND VARCHAR(20),COST INT(10));
Query OK, 0 rows affected, 2 warnings (0.06 sec)

mysql> CREATE TABLE 20191ISE0008_CUSTOMER(


-> CNAME VARCHAR(30) PRIMARY KEY NOT NULL,
-> PH_NO INT(10),ADDRESS VARCHAR(50),CARD_DETAILS VARCHAR(20));
Query OK, 0 rows affected, 1 warning (0.04 sec)

mysql> CREATE TABLE 20191ISE0008_ORDER(


-> ORDER_NO INT(10) PRIMARY KEY NOT NULL,
-> CNAME VARCHAR(30),ITEM_NO INT(10),QUANTITIES INT(4),
-> FOREIGN KEY (CNAME) REFERENCES 20191ISE0008_CUSTOMER(CNAME) ON
DELETE CASCADE,
-> FOREIGN KEY (ITEM_NO) REFERENCES 20191ISE0008_PRODUCTS(ITEM_NO)
ON DELETE CASCADE);
Query OK, 0 rows affected, 3 warnings (0.05 sec)

mysql> CREATE TABLE 20191ISE0008_PAYMENT(


-> ITEM_NO INT(10),ORDER_NO INT(10),
-> PAY_OPTIONS VARCHAR(10),AMOUNT_PAID INT(10),
-> FOREIGN KEY (ITEM_NO) REFERENCES 20191ISE0008_PRODUCTS(ITEM_NO)
ON DELETE CASCADE,
-> FOREIGN KEY (ORDER_NO) REFERENCES 20191ISE0008_ORDER(ORDER_NO)
ON DELETE CASCADE);
Query OK, 0 rows affected, 3 warnings (0.04 sec)

2
20191ISE0008 AKSHAY HARISH 4ISE1

3
20191ISE0008 AKSHAY HARISH 4ISE1

2. Populate the database with rich data set (insert five rows for each table).

mysql> INSERT INTO 20191ISE0008_PRODUCTS VALUES


-> (1,'SNEAKERS','CASUAL','WHITE','PUMA',4599),
-> (2,'SNEAKERS','CASUAL','BLACK','PUMA',4599),
-> (3,'TRACK PANTS','SPORTS','RED','PUMA',1599),
-> (4,'FLIP FLOPS','CASUAL','BLUE','NIKE',2599),
-> (5,'FLIP FLOPS','CASUAL','RED','NIKE',2599);
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> INSERT INTO 20191ISE0008_CUSTOMER VALUES


-> ('JHON',9988,'BENGALURU','346'),
-> ('NITIN',9431,'BENGALURU','543'),
-> ('RAHUL',9212,'BENGALURU','623'),
-> ('NEHA',5654,'HYDERABAD','623'),
-> ('ASHINA',4454,'KOLKATA','221');
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> INSERT INTO 20191ISE0008_ORDER VALUES


-> (1,'JHON',1,2),
-> (2,'RAHUL',3,2),
-> (3,'JHON',2,11),
-> (4,'NITIN',4,12),
-> (5,'NEHA',5,2);
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> INSERT INTO 20191ISE0008_PAYMENT VALUES


-> (1,1,'UPI','9100'),
-> (3,2,'NET','9100'),
-> (2,3,'NET','9999'),
-> (4,4,'NET','9999'),
-> (5,5,'UPI','5100');
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0

4
20191ISE0008 AKSHAY HARISH 4ISE1

5
20191ISE0008 AKSHAY HARISH 4ISE1

3. Determine the total number of products of the brand puma.


mysql> SELECT COUNT(ITEM_NO) FROM 20191ISE0008_PRODUCTS WHERE
BRAND='PUMA';

4. Find all the customers belonging to Bangalore city who have ordered >10
quantities of any product.
mysql> SELECT C.CNAME FROM 20191ISE0008_CUSTOMER C, 20191ISE0008_ORDER O
WHERE O.QUANTITIES>10 AND C.ADDRESS='BENGALURU' GROUP BY C.CNAME;

5. Create a view to Display the customer information who has ordered more than
one product.
mysql> CREATE VIEW CUST_DETAILS AS
-> SELECT * FROM 20191ISE0008_CUSTOMER WHERE CNAME IN(SELECT CNAME
FROM 20191ISE0008_ORDER WHERE QUANTITIES >1);
Query OK, 0 rows affected (0.01 sec)

6
20191ISE0008 AKSHAY HARISH 4ISE1

6. Create a function to display the address of a given customer name.


mysql> DELIMITER //
mysql> CREATE FUNCTION ADDRESS( NAME VARCHAR(20))
-> RETURNS VARCHAR(20)
-> DETERMINISTIC
-> BEGIN
-> DECLARE NAM VARCHAR(20);
-> SET NAM=(SELECT ADDRESS FROM 20191ISE0008_CUSTOMER WHERE
CNAME=NAME);
-> RETURN NAM;
-> END //
Query OK, 0 rows affected (0.03 sec)

mysql> DELIMITER ;
mysql> SELECT ADDRESS('JHON');

7
20191ISE0008 AKSHAY HARISH 4ISE1

7. Create a trigger to change the quantity in order table to 1 if negative value is


inserted for it.
mysql> DELIMITER //
mysql> CREATE TRIGGER QUANT
-> AFTER INSERT ON 20191ISE0008_ORDER
-> FOR EACH ROW
-> BEGIN
-> IF NEW.QUANTITIES<0 THEN
-> UPDATE 20191ISE0008_ORDER
-> SET QUANTITIES=1;
-> END IF;
-> END //
Query OK, 0 rows affected (0.01 sec)

You might also like