|
|
|
@ -12,83 +12,86 @@ co = None
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
co = psy. connect(host='londres',
|
|
|
|
|
database ='dbanperederi',
|
|
|
|
|
user='anperederi',
|
|
|
|
|
database ='dbvidufour1',
|
|
|
|
|
user='vidufour1',
|
|
|
|
|
password = getpass("Mot de passe:"))
|
|
|
|
|
|
|
|
|
|
curs = co.cursor()
|
|
|
|
|
|
|
|
|
|
curs. execute ('''DROP TABLE IF EXISTS Car, Model, Seller ;''')
|
|
|
|
|
curs. execute ('''DROP TABLE IF EXISTS Car, Brand, Model, Person, Marque;''')
|
|
|
|
|
|
|
|
|
|
curs. execute ('''CREATE TABLE Car (
|
|
|
|
|
IdCar numeric NOT NULL,
|
|
|
|
|
Model varchar(100) NOT NULL,
|
|
|
|
|
Price numeric(12) NOT NULL,
|
|
|
|
|
Color numeric(12) NOT NULL,
|
|
|
|
|
Year year NOT NULL,
|
|
|
|
|
Kilometer numeric NOT NULL,
|
|
|
|
|
PRIMARY KEY (IdCar)
|
|
|
|
|
IdCar numeric,
|
|
|
|
|
Model varchar(100),
|
|
|
|
|
Price numeric,
|
|
|
|
|
Color varchar(32),
|
|
|
|
|
Year numeric,
|
|
|
|
|
Kilometer numeric,
|
|
|
|
|
PRIMARY KEY (IdCar)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE Brand (
|
|
|
|
|
Name varchar(80),
|
|
|
|
|
CreationDate numeric,
|
|
|
|
|
Founder varchar(80),
|
|
|
|
|
CEO varchar(80),
|
|
|
|
|
Headquarter varchar(80),
|
|
|
|
|
Value numeric,
|
|
|
|
|
PRIMARY KEY(Name)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE Model (
|
|
|
|
|
Name varchar(120) NOT NULL,
|
|
|
|
|
Brand varchar(80) NOT NULL,
|
|
|
|
|
FuelType varchar(50) NOT NULL,
|
|
|
|
|
Transmission varchar(50) NOT NULL,
|
|
|
|
|
Engine varchar(15) NOT NULL,
|
|
|
|
|
MaxPower varchar(20) NOT NULL,
|
|
|
|
|
MaxTorque varchar(20) NOT NULL,
|
|
|
|
|
Drivetrain varchar(5) NOT NULL,
|
|
|
|
|
Length numeric(5,2) NOT NULL,
|
|
|
|
|
Width numeric(5,2) NOT NULL,
|
|
|
|
|
Height numeric(5,2) NOT NULL,
|
|
|
|
|
SeatingCapacity numeric(2,1) NOT NULL,
|
|
|
|
|
FuelTankCapacity numeric(3,1) NOT NULL,
|
|
|
|
|
Name varchar(120),
|
|
|
|
|
Brand varchar(80),
|
|
|
|
|
FuelType varchar(50),
|
|
|
|
|
Transmission varchar(50),
|
|
|
|
|
Engine varchar(32),
|
|
|
|
|
MaxPower varchar(32),
|
|
|
|
|
MaxTorque varchar(32),
|
|
|
|
|
Drivetrain varchar(5),
|
|
|
|
|
Length numeric,
|
|
|
|
|
Width numeric,
|
|
|
|
|
Height numeric,
|
|
|
|
|
SeatingCapacity numeric,
|
|
|
|
|
FuelTankCapacity numeric,
|
|
|
|
|
PRIMARY KEY (Name),
|
|
|
|
|
FOREIGN KEY (Brand) REFERENCES Brand(Name)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE Brand (
|
|
|
|
|
Name varchar(80) NOT NULL,
|
|
|
|
|
CreationDate DATE NOT NULL,
|
|
|
|
|
Founder varchar(80) NOT NULL,
|
|
|
|
|
CEO varchar(80) NOT NULL,
|
|
|
|
|
Headquarter varchar(80) NOT NULL,
|
|
|
|
|
Value numeric NOT NULL,
|
|
|
|
|
PRIMARY KEY(Name)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE Person (
|
|
|
|
|
Id numeric NOT NULL,
|
|
|
|
|
Name varchar(80) NOT NULL,
|
|
|
|
|
Job varchar IN("CEO", "Founder") NOT NULL,
|
|
|
|
|
Brand varchar(80) NOT NULL,
|
|
|
|
|
Id numeric,
|
|
|
|
|
Name varchar(80),
|
|
|
|
|
Job varchar(80) CHECK (Job IN('CEO', 'Founder')),
|
|
|
|
|
Brand varchar(80),
|
|
|
|
|
PRIMARY KEY(Id),
|
|
|
|
|
FOREIGN KEY (Brand) REFERENCES Brand(Name)
|
|
|
|
|
);
|
|
|
|
|
''')
|
|
|
|
|
|
|
|
|
|
id=1
|
|
|
|
|
|
|
|
|
|
for row in df.itertuples():
|
|
|
|
|
curs.execute('''INSERT INTO Car VALUES (%s ,%s ,%s ,%s, %s, %s);''',
|
|
|
|
|
(row.IdCar , row.Model , row.Price, row.Color , row.Year , row.Kilometer))
|
|
|
|
|
(id , row.Model , row.Price , row.Color , row.Year, row.Kilometer))
|
|
|
|
|
id = id + 1
|
|
|
|
|
curs.execute('''INSERT INTO Model VALUES (%s ,%s ,%s ,%s, %s, %s ,%s ,%s ,%s, %s, %s ,%s ,%s);''',
|
|
|
|
|
(row.Name , row.Brand , row.FuelType , row.Transmission , row.Engine, row.MaxPower,
|
|
|
|
|
(row.Model , row.Brand , row.FuelType , row.Transmission , row.Engine, row.MaxPower,
|
|
|
|
|
row.MaxTorque, row.Drivetrain, row.Length, row.Width, row.Height, row.SeatingCapacity, row.FuelTankCapacity))
|
|
|
|
|
curs.execute('''INSERT INTO Brand VALUES (%s ,%s ,%s ,%s, %s, %s);''',
|
|
|
|
|
(row.Name , row.CreationDate , row.Founder , row.CEO , row.Headquarter, row.Value))
|
|
|
|
|
curs.execute('''INSERT INTO Person VALUES (%s ,%s ,%s ,%s);''',
|
|
|
|
|
(row.Id , row.Name, row.Job , row.Brand))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
curs.execute ('''SELECT * FROM Car, Model, Brand, Person;''')
|
|
|
|
|
# curs.execute ('''SELECT * FROM Car, Model, Brand, Person;''')
|
|
|
|
|
|
|
|
|
|
# curs.execute('''SELECT AVG(Price) FROM Car;''')
|
|
|
|
|
|
|
|
|
|
curs.execute('''SELECT AVG(Price) FROM Car;''')
|
|
|
|
|
curs.execute('''SELECT DISTINCT * FROM Marque;''')
|
|
|
|
|
result = curs.fetchall()
|
|
|
|
|
for row in result:
|
|
|
|
|
print(row)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
datafr = pd.read_sql('''SELECT AVG(Price) FROM Car GROUP BY Brand''', con = co)
|
|
|
|
|
datafr.plot.bar(x='Brand', y='AVG(Price)')
|
|
|
|
|
plt.show()
|
|
|
|
|
# datafr = pd.read_sql('''SELECT AVG(Price) FROM Car GROUP BY Brand''', con = co)
|
|
|
|
|
# datafr.plot.bar(x='Brand', y='AVG(Price)')
|
|
|
|
|
# plt.show()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|