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

SQL Lab Correction

The document contains examples of SQL queries that create databases and tables, insert data, and perform various selects. It defines tables for clients, hotels, and bookings, inserts sample data, and writes multi-table queries to retrieve and aggregate booking information grouped by different fields.

Uploaded by

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

SQL Lab Correction

The document contains examples of SQL queries that create databases and tables, insert data, and perform various selects. It defines tables for clients, hotels, and bookings, inserts sample data, and writes multi-table queries to retrieve and aggregate booking information grouped by different fields.

Uploaded by

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

EX1:

1)
CREATE DATABASE my_booking;

2)
CREATE TABLE client(
id_clt int(11),
name_clt varchar(50),
fname_clt varchar(50),
address_clt varchar(50),
phone_clt varchar(20),
PRIMARY KEY (id_clt)
);

CREATE TABLE hotel(


id_h int(11),
name_h varchar(50),
nb_star tinyint(4),
city_h varchar(50),
PRIMARY KEY (id_h)
);

CREATE TABLE booking(


id_b int(11) NOT NULL,
id_clt int(11),
id_h int(11),
date_b datetime,
date_checkin date,
date_checkout date,
room varchar(20),
type varchar(20),
price decimal(10,0),
PRIMARY KEY (id_b),
FOREIGN KEY (id_clt) REFERENCES client(id_clt),
FOREIGN KEY (id_h) REFERENCES hotel(id_h)
);

3)
INSERT INTO client(id_clt,name_clt,fname_clt,address_clt,phone_clt)
VALUES(1,'Adem','DHARFI','Tunis','98552637');

INSERT INTO hotel(id_h,name_h,nb_star,city_h)


VALUES(1,'Sultan',4,'Hammamet');

INSERT INTO booking


VALUES(1,1,4,'2012-09-04','2012-09-18','2012-09-21','DOUBLE','FB','85.236');

4)
a.
SELECT name_h,nb_star FROM hotel
WHERE city_h='Hammamet';

b.
SELECT * FROM hotel
WHERE city_h='Djerba' AND nb_star=5;
c.
SELECT * FROM client, booking, hotel
WHERE client.id_clt=booking.id_clt
AND booking.id_h=hotel.id_h
AND hotel.nb_star=3
AND hotel.name_h='Hammamet';

d.
SELECT * FROM client, booking
WHERE booking.date_b BETWEEN '2012-07-01' AND '2012-08-22';

e.
SELECT * FROM client, hotel
WHERE client.address_clt='Tunis'
AND hotel.city_h='Mahdia';

f.
SELECT COUNT(id_b) FROM booking, hotel
WHERE booking.id_h=hotel.id_h
GROUP BY hotel.name_h;

g.
SELECT SUM(price) FROM booking, hotel
WHERE booking.id_h=hotel.id_h
GROUP BY name_h;

h.
SELECT SUM(price) FROM booking, hotel
WHERE booking.id_h=hotel.id_h
GROUP BY city_h;

i.
SELECT SUM(price) FROM booking, hotel
WHERE booking.id_h=hotel.id_h
GROUP BY nb_star;

j.
SELECT SUM(price) FROM booking, hotel
WHERE booking.id_h=hotel.id_h
GROUP BY booking.room;

EX2:
PART1:

Question1:
CREATE TABLE PERSON(
PersonNum INT(11) PRIMARY KEY,
Last_name VARCHAR(20),
First_name VARCHAR(20),
Numfather INT(11),
NumMother INT(11),
Gender CHAR(1),
FOREIGN KEY (Numfather) REFERENCES PERSON(PersonNum),
FOREIGN KEY (NumMother) REFERENCES PERSON(PersonNum)
);

Question2:
CREATE TABLE UNIONS(
Num_husband INT(11) PRIMARY KEY,
NumWife INT(11) PRIMARY KEY,
FOREIGN KEY (Num_husband) REFERENCES PERSON(PersonNum),
FOREIGN KEY (NumWife) REFERENCES PERSON(PersonNum)
);

Question3:
ALTER TABLE UNIONS
ADD COLUMN WeddingDate DATE PRIMARY KEY;

Question4:
INSERT INTO PERSON
VALUES(3, 'Hammami', 'Karim', 1, 2, 'M');

INSERT INTO PERSON


VALUES(4, 'Hammami', 'Kalthoum', 1, 2, 'F');

INSERT INTO UNIONS


VALUES(1, 2, '22-12-1987');

PART2:

Question1:
UPDATE PERSON
SET First_name = 'AbdelKarim'
WHERE PersonNum=3;

Question2:
SELECT * FROM PERSON
WHERE PersonNum = 9;

Question3:
SELECT First_name FROM PERSON,UNIONS
WHERE Num_husband = 9
AND NumWife = PersonNum
AND Gender = 'F';

Question4:
SELECT COUNT(*) FROM PERSON
WHERE Numfather = 9
AND Gender='F';

Question5:
SELECT First_name,Last_name FROM PERSON
WHERE EXISTS (
SELECT * FROM UNIONS
WHERE Num_husband = PERSON.PersonNum
AND MariageDate BETWEEN '2000-10-10' AND '2020-10-10'
);

You might also like