Sei sulla pagina 1di 18

create database movie_db;

use movie_db;

Create table CUSTOMER_MASTER ( CUSTOMER_ID Varchar(10), CUSTOMER_NAME Varchar(30) NOT NULL, CONTACT_NO BIGINT(10), CONTACT_ADD Varchar(20), DATE_OF_REGISTRATION Date NOT NULL, AGE Varchar(15)NOT NULL, Constraint MT_cts1 PRIMARY KEY(CUSTOMER_ID) );

Create table LIBRARY_CARD_MASTER ( CARD_ID Varchar(10), DESCRIPTION Varchar(30) NOT NULL, AMOUNT BIGINT(50),

NUMBER_OF_YEARS bigint(10) NOT NULL, Constraint MT_cts2 PRIMARY KEY(CARD_ID) );

Create table MOVIES_MASTER ( MOVIE_ID Varchar(10), MOVIE_NAME Varchar(50) NOT NULL, RELEASE_DATE Varchar(30) NOT NULL, LANGUAGE Varchar(30), RATING int(2), DURATION VARCHAR(10) NOT NULL, MOVIE_TYPE Varchar(3), MOVIE_CATEGORY VARCHAR(20) NOT NULL, DIRECTOR VARCHAR(20) NOT NULL, LEAD_ROLE_1 Varchar(3) NOT NULL, LEAD_ROLE_2 VARCHAR(4) NOT NULL, RENT_COST BIGINT(10), Constraint MT_cts4 PRIMARY KEY(MOVIE_ID) );

Create table CUSTOMER_CARD_DETAILS ( CUSTOMER_ID Varchar(10), CARD_ID VARCHAR(10), ISSUE_DATE DATE NOT NULL, Constraint MT_cts3 PRIMARY KEY(CUSTOMER_ID), Constraint MT_CTS41 FOREIGN KEY(CUSTOMER_ID) References CUSTOMER_MASTER(CUSTOMER_ID), Constraint MT_CTS42 FOREIGN KEY(CARD_ID) References LIBRARY_CARD_MASTER(CARD_ID)

);

Create table CUSTOMER_ISSUE_DETAILS ( ISSUE_ID Varchar(10) NOT NULL, CUSTOMER_ID Varchar(10) NOT NULL, MOVIE_ID VARCHAR(10), ISSUE_DATE Date NOT NULL, RETURN_DATE Date NOT NULL, ACTUAL_DATE_RETURN Date NOT NULL, Constraint MT_cts5 PRIMARY KEY(ISSUE_ID), Constraint MT_Mem FOREIGN KEY(CUSTOMER_ID) References CUSTOMER_MASTER(CUSTOMER_ID), Constraint MT_Mem1 FOREIGN KEY(MOVIE_ID) References MOVIES_MASTER(MOVIE_ID)

);

/*Insert records */

Insert into CUSTOMER_MASTER Values('CUS001', 'AMIT', 9876543210,'ADD1', '2012-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS002', 'ABDHUL', 8765432109,'ADD2', '2012-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS003', 'GAYAN', 7654321098,'ADD3', '2012-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS004', 'RADHA', 6543210987,'ADD4', '2012-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS005', 'GURU', NULL,'ADD5', '2012-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS006', 'MOHAN', 4321098765,'ADD6', '2012-02-12', '21');

Insert into CUSTOMER_MASTER Values('CUS007', 'NAME7', 3210987654,'ADD7', '2012-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS008', 'NAME8', 2109876543,'ADD8', '2013-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS009', 'NAME9', NULL,'ADD9', '2013-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS010', 'NAM10', 9934567890,'ADD10', '2013-02-12', '21'); Insert into CUSTOMER_MASTER Values('CUS011', 'NAM11', 9875678910,'ADD11', '2013-02-12', '21');

Insert into LIBRARY_CARD_MASTER Values('CR001', 'DES1', 200, 5); Insert into LIBRARY_CARD_MASTER Values('CR002', 'DES2', 400, 9); Insert into LIBRARY_CARD_MASTER Values('CR003', 'DES3', 600, 8); Insert into LIBRARY_CARD_MASTER Values('CR004', 'DES4', 800, 7); Insert into LIBRARY_CARD_MASTER Values('CR005', 'DES5', 1200, 6);

Insert into MOVIES_MASTER Values('MV001', 'DIEHARD', '2012-05-13','ENGLISH', 4 , '2HRS', 'U/A','ACTION','DIR1','L1','L2',100); Insert into MOVIES_MASTER Values('MV002', 'THE MATRIX', '2012-05-13','ENGLISH', 4 , '2HRS', 'A','ACTION','DIR2','L1','L2',100); Insert into MOVIES_MASTER Values('MV003', 'INCEPTION', '2012-05-13','ENGLISH', 4 , '2HRS', 'U/A','ACTION','DIR3','L1','L2',100); Insert into MOVIES_MASTER Values('MV004', 'DARK KNIGHT', '2012-05-13','ENGLISH', 4 , '2HRS', 'A','ACTION','DIR4','L1','L2',100); Insert into MOVIES_MASTER Values('MV005', 'OFFICE S', '2012-05-13','ENGLISH', 4 , '2HRS', 'U/A','COMEDY','DIR5','L1','L2',100); Insert into MOVIES_MASTER Values('MV006', 'SHAWN OF DEAD', '2012-05-13','ENGLISH', 4 , '2HRS', 'U/A','COMEDY','DIR6','L1','L2',100); Insert into MOVIES_MASTER Values('MV007', 'YOUNG FRANKEN', '2012-05-13','ENGLISH', 4 , '2HRS', 'U/A','COMEDY','DIR7','L1','L2',100); Insert into MOVIES_MASTER Values('MV008', 'CAS', '2012-05-13','ENGLISH', 4 , '2HRS', 'A','ROMANCE','DIR8','L1','L2',100);

Insert into MOVIES_MASTER Values('MV009', 'GWW', '2012-05-13','ENGLISH', 4 , '2HRS', 'A','ROMANCE','DIR9','L1','L2',100); Insert into MOVIES_MASTER Values('MV010', 'TITANIC', '2012-05-13','ENGLISH', 4 , '2HRS', 'A','ROMANCE','DIR10','L1','L2',100); Insert into MOVIES_MASTER Values('MV011', 'THE NOTE BOOK', '2012-05-13','ENGLISH', 4 , '2HRS', 'A','ROMANCE','DIR11','L1','L2',100);

Insert into CUSTOMER_CARD_DETAILS Values('CUS001', 'CR001', '2012-05-13'); Insert into CUSTOMER_CARD_DETAILS Values('CUS002', 'CR002', '2012-05-13'); Insert into CUSTOMER_CARD_DETAILS Values('CUS003', 'CR002', '2013-05-13'); Insert into CUSTOMER_CARD_DETAILS Values('CUS004', 'CR003', '2013-05-13'); Insert into CUSTOMER_CARD_DETAILS Values('CUS005', 'CR003', '2012-05-13');

Insert into CUSTOMER_ISSUE_DETAILS Values ('IS001', 'CUS001', 'MV001', '2012-05-13', '2012-0513','2012-05-13'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS002', 'CUS001', 'MV001', '2012-05-01', '2012-0516','2012-05-16'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS003', 'CUS002', 'MV004', '2012-05-02', '2012-0506','2012-05-16'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS004', 'CUS002', 'MV004', '2012-04-03', '2012-0416','2012-04-20'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS005', 'CUS002', 'MV009', '2012-04-04', '2012-0416','2012-04-20'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS006', 'CUS003', 'MV002', '2012-03-30', '2012-0415','2012-04-20'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS007', 'CUS003', 'MV003', '2012-04-20', '2012-0505','2012-05-05'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS008', 'CUS003', 'MV005', '2012-04-21', '2012-0507','2012-05-25');

Insert into CUSTOMER_ISSUE_DETAILS Values ('IS009', 'CUS003', 'MV001', '2012-04-22', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS010', 'CUS003', 'MV009', '2012-04-22', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS011', 'CUS003', 'MV010', '2012-04-23', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS012', 'CUS003', 'MV010', '2012-04-24', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS013', 'CUS003', 'MV008', '2012-04-25', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS014', 'CUS004', 'MV007', '2012-04-26', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS015', 'CUS004', 'MV006', '2012-04-27', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS016', 'CUS004', 'MV006', '2012-04-28', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS017', 'CUS004', 'MV001', '2012-04-29', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS018', 'CUS010', 'MV008', '2012-04-24', '2012-0507','2012-05-25'); Insert into CUSTOMER_ISSUE_DETAILS Values ('IS019', 'CUS011', 'MV009', '2012-04-27', '2012-0507','2012-05-25');

/*1.count the members who has gold cards*/

select count(customer_id) from customer_card_details

where card_id IN ( select card_id from library_card_master where description='des1' );

/* 2.display the name of member who issued movie and the count of the movies issued and display 0 for the member who have not issued any movie */

select cm.customer_id,customer_name,IF((NULLIF(issue_id,0)),0,count(issue_id)) FROM customer_master cm LEFT OUTER JOIN customer_issue_details ci ON cm.customer_id=ci.customer_id group BY cm.customer_id;

/* OR */

select cm.customer_id,customer_name,count(issue_id) count FROM customer_master cm LEFT OUTER JOIN customer_issue_details ci ON cm.customer_id=ci.customer_id group BY cm.customer_id UNION select customer_id,customer_name,0 count FROM customer_master WHERE customer_id NOT IN(select customer_id from customer_issue_details);

/* 3.display the name of the person starting with letter 'r' and category is 'comedy'*/

select customer_name FROM customer_master where customer_name like 'r%' and customer_id IN (select customer_id from movies_master m JOIN customer_issue_details c ON m.movie_id=c.movie_id where movie_category='comedy' );

/* 4.display id,name & total rent of customers for movie issued */ select a.customer_id,customer_name , count(c.movie_id)*rent_cost amt FROM customer_master a JOIN customer_issue_details b JOIN (select movie_id,rent_cost from movies_master) c ON a.customer_id=b.customer_id and b.movie_id=c.movie_id group by a.customer_id;

/*5.display id,name,card id,amount in $(amount/54.42) upto 0 decimals*/ select a.customer_id,customer_name,c.card_id,ROUND(amount/54.52)

FROM customer_master a,customer_card_details b,library_card_master c where a.customer_id=b.customer_id and b.card_id=c.card_id group by a.customer_id;

/* 6.display id,name of customers who dont have library card but still have issued the movie*/

select customer_id,customer_name FROM customer_master WHERE customer_id NOT IN (select customer_id from customer_card_details a,library_card_master b where a.card_id=b.card_id ) and customer_id IN (select distinct a.customer_id FROM customer_master a,customer_issue_details b where a.customer_id=b.customer_id );

/* 7.display the no.of customers with first letter 'r' and have paid fine i.e actual return date is greater than return date */

select count(a.customer_id) cnt

FROM customer_master a JOIN customer_issue_details b ON a.customer_id = b.customer_id where customer_name like 'a%' and return_date > actual_date_return ;

/* 8.display customer name,customer id who have issued max and min no.of movies issued */ select customer_id,customer_name from customer_master where customer_id IN( select customer_id from customer_issue_details group by customer_id having count(issue_id)=( select count(issue_id) from customer_issue_details group by customer_id order by count(issue_id) desc limit 1 ) union

select customer_id from customer_issue_details group by customer_id

having count(issue_id)=( select count(issue_id) from customer_issue_details group by customer_id order by count(issue_id) asc limit 1 ) );

/* 9.display id,name,mobile num and description of all customers.if mobile num is not available then display address as alias contact, for those who does't have library cards display null as description */

select cm.customer_id,customer_name,coalesce(CAST(contact_no AS CHAR),CAST(contact_add AS CHAR)) datail,description from customer_master cm, customer_card_details cd ,library_card_master lc where cm.customer_id=cd.customer_id and cd.card_id=lc.card_id

union select customer_id,customer_name,coalesce(CAST(contact_no AS CHAR),CAST(contact_add AS CHAR)) detail ,null description from customer_master where customer_id NOT IN (

select customer_id from customer_card_details ) ;

/* 10.display customer details and movie id for those who issued same movie more than one time OR //dislay customer details who watched same movie more than once */

select a.customer_id,a.customer_name,a. age,c.movie_id,c.movie_name,count(c.movie_id) from customer_master a JOIN customer_issue_details b JOIN movies_master c ON a.customer_id = b.customer_id and b.movie_id = c.movie_id group by a.customer_id,c.movie_id having count(c.movie_id)>1;

/*11.display customer information those who has library cards */

select cm.customer_id ,customer_name from customer_master cm JOIN customer_card_details cc ON cm.customer_id=cc.customer_id;

/* 12.display the members who watch the movie but doesnt have card*/

select cm.customer_id,customer_name from customer_master cm,customer_issue_details cd where cm.customer_id=cd.customer_id and cm.customer_id NOT IN( select customer_id from customer_card_details ) ;

/* 13.display sr no as 2 digits of issue id,emp id,movie watched,video id and sort by sr no*/

select substring(issue_id,4,2) sr_no,customer_id,movie_id from customer_issue_details order by sr_no;

/* 14.display total revenue spent on videos by each customer*/

select cd.customer_id,sum(rent_cost) rent from customer_issue_details cd ,movies_master mm

where cd.movie_id = mm.movie_id group by cd.customer_id union select customer_id,0 rent from customer_master where customer_id NOT IN(select customer_id from customer_issue_details);

/*15.display customer name in perfect order i.e 1st letter in ucase remaining lcase */ select customer_id , concat(ucase(substring(customer_name,1,1)),lcase(substring(customer_name,2))) name from customer_master order by name;

/*16.count how many times a movie issued and arrange them in desc order and display 0 for the movie */

select mm.movie_id ,count(mm.movie_id) cnt from customer_issue_details cd,movies_master mm where cd.movie_id= mm.movie_id group by mm.movie_id

UNION

select movie_id,0 cnt from movies_master where movie_id NOT IN(select movie_id from customer_issue_details);

/* 17.waq to display cus id and cus name and address as if phone num presents display phone num otherwise address.*/

select customer_id , coalesce(CAST(contact_no AS CHAR),CAST(contact_add AS CHAR)) addr from customer_master;

/* 18.waq that num of customers registered in 2012 year and provided contact num use NO_OF_CUSTOMERS as alias name. */

select count(customer_id) NO_OF_CUSTOMER from customer_master where extract(year from date_of_registration)='2012' and contact_no IS NOT NULL;

/* 19.display customer id, cus name,year of registration,library card id,card issue date alias name registered_year for year of registration. */

select cm.customer_id,customer_name, extract(year from date_of_registration) registered_year, lm.card_id, CAST(issue_date AS DATE) i_date from customer_master cm, customer_card_details cd, library_card_master lm where cm.customer_id = cd.customer_id and lm.card_id= cd.card_id union select cm.customer_id,customer_name, extract(year from date_of_registration) registered_year, 0, CAST(0 AS DATE) from customer_master cm where cm.customer_id NOT IN(select customer_id from customer_card_details);

/*20. (***REPEATED)waq to display movie name and num of times movie issued to

customers..in case of no movie issued to customers display 0.. use alias name as NO_OF_TIMES */

/*21.waq to display customer id and customer name ,num of times movie issued to customer in comedy movie category display only customers who has issude more than once */

select cm.customer_id,customer_name,count(mm.movie_id) cnt from customer_master cm, customer_issue_details cd ,movies_master mm where cm.customer_id = cd.customer_id and cd.movie_id = mm. movie_id and movie_category='comedy' group by cm.customer_id having cnt>1;

/*22.(***REPEATED)waq to display customerid and total rent paid by them. use alias name as total_cost. */

/*23.waq to display customerid,cusname,contactno,num of movies issued to customer based on category and category display the customer who has issude for more than one movie from that caregory. display phone num as "+91-987-654-3210". */

select cm.customer_id, contact_no ,concat('+91 - ',CAST(substring(contact_no,1,3) AS CHAR),' ',CAST(substring(contact_no,4,3) AS CHAR), ' - ',CAST(substring(contact_no,7,4) AS CHAR)) r_date , count(mm.movie_id) cnt from customer_master cm, customer_issue_details cd , movies_master mm where cm.customer_id= cd.customer_id and cd.movie_id = mm. movie_id group by cm.customer_id , movie_category;

select * from CUSTOMER_MASTER; select * from LIBRARY_CARD_MASTER; select * from MOVIEs_MASTER; select * from customer_card_details; select * from customer_issue_details;

Potrebbero piacerti anche