You are on page 1of 18

import mysql.

connector

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707"
)
mycursor = mydb.cursor()
mycursor.execute("create database coffee3")

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707"
)
mycursor = mydb.cursor()
mycursor.execute("show databases")

for x in mycursor:
print(x)

('coffee',)
('coffee2',)
('coffee3',)
('films',)
('information_schema',)
('movies',)
('movies2',)
('mysql',)
('performance_schema',)
('sys',)

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE client (name VARCHAR(255), address
VARCHAR(255), Phone int)")

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)
mycursor = mydb.cursor()
mycursor.execute("show tables")
for x in mycursor:
print(x)

('client',)

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT
PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

name = input("Enter Name:")


address = input("Enter Address:")

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"


val = (name,address)
mycursor.execute(sql, val)

mydb.commit()
print(mycursor.rowcount, "record inserted.")

Enter Name:Leonardo
Enter Address:CDMX
1 record inserted.

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)
mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"


val = [
('John', 'California 2'),
('Juliette', 'Paris 4'),
('Varun', 'Ontario'),
('Franz', 'Berlin'),
('Giulio', 'Rome'),
]

mycursor.executemany(sql, val)

mydb.commit()
print(mycursor.rowcount, "record inserted.")

5 record inserted.

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
print(x)

(1, 'Leonardo', 'CDMX')


(2, 'John', 'California 2')
(3, 'Juliette', 'Paris 4')
(4, 'Varun', 'Ontario')
(5, 'Franz', 'Berlin')
(6, 'Giulio', 'Rome')

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)
mycursor = mydb.cursor()

mycursor.execute("SELECT name, address FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
print(x)

('Leonardo', 'CDMX')
('John', 'California 2')
('Juliette', 'Paris 4')
('Varun', 'Ontario')
('Franz', 'Berlin')
('Giulio', 'Rome')

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT name, address FROM customers")

myresult = mycursor.fetchone()

print(myresult)

('Leonardo', 'CDMX')

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address ='Ontario'"
mycursor.execute(sql)

myresult = mycursor.fetchall()
for x in myresult:
print(x)
(4, 'Varun', 'Ontario')

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

sql = "DELETE FROM customers WHERE address = %s"


adr = ("Ontario", )

mycursor.execute(sql, adr)
mydb.commit()

print(mycursor.rowcount, "record(s) deleted")

1 record(s) deleted

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()
sql = "UPDATE customers SET address = 'Hong Kong' WHERE address =
'CDMX'"
mycursor.execute(sql)
mydb.commit()

print(mycursor.rowcount, "record(s) affected")

1 record(s) affected

Join
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE product (id int, prodname
VARCHAR(255))")

sql = "INSERT INTO product (id, prodname) VALUES (%s, %s)"


val = [
('2', 'Black'),
('4', 'Latte'),
('6', 'Americano'),
('7', 'Cold Brew'),
('1', 'Flat'),
]

mycursor.executemany(sql, val)

mydb.commit()
print(mycursor.rowcount, "record inserted.")

5 record inserted.

Inner Join
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

sql = "SELECT * FROM customers JOIN product ON customers.id =


product.id"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
print(x)

(2, 'John', 'California 2', 2, 'Black')


(6, 'Giulio', 'Rome', 6, 'Americano')
(1, 'Leonardo', 'Hong Kong', 1, 'Flat')

Select
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

sql = "SELECT
customers.id,customers.name,customers.address,product.prodname \
FROM customers JOIN product ON customers.id = product.id"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
print(x)

(2, 'John', 'California 2', 'Black')


(6, 'Giulio', 'Rome', 'Americano')
(1, 'Leonardo', 'Hong Kong', 'Flat')

Left Join
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

sql = "SELECT
customers.id,customers.name,customers.address,product.prodname \
FROM customers LEFT JOIN product ON customers.id = product.id"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
print(x)

(1, 'Leonardo', 'Hong Kong', 'Flat')


(2, 'John', 'California 2', 'Black')
(3, 'Juliette', 'Paris 4', None)
(5, 'Franz', 'Berlin', None)
(6, 'Giulio', 'Rome', 'Americano')

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

sql = "SELECT
customers.id,customers.name,customers.address,product.prodname \
FROM customers RIGHT JOIN product ON customers.id = product.id"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
print(x)

(2, 'John', 'California 2', 'Black')


(None, None, None, 'Latte')
(6, 'Giulio', 'Rome', 'Americano')
(None, None, None, 'Cold Brew')
(1, 'Leonardo', 'Hong Kong', 'Flat')

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="TTtms5134070707",
database="coffee3"
)

mycursor = mydb.cursor()

sql = "SELECT * from customers as t1 LEFT JOIN product as t2 ON t1.id


= t2.id \
UNION SELECT * from customers as t1 RIGHT JOIN product as t2 ON t1.id
= t2.id "

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
print(x)

(1, 'Leonardo', 'Hong Kong', 1, 'Flat')


(2, 'John', 'California 2', 2, 'Black')
(3, 'Juliette', 'Paris 4', None, None)
(5, 'Franz', 'Berlin', None, None)
(6, 'Giulio', 'Rome', 6, 'Americano')
(None, None, None, 4, 'Latte')
(None, None, None, 7, 'Cold Brew')

import pandas as pd

from_database = []

for result in myresult:


result = list(result)
from_database.append(result)

columns = ["Id", "Customer", "City", "Product", "Prodname"]


df = pd.DataFrame(from_database, columns=columns)

display(df)

Id Customer City Product Prodname


0 1.0 Leonardo Hong Kong 1.0 Flat
1 2.0 John California 2 2.0 Black
2 3.0 Juliette Paris 4 NaN None
3 5.0 Franz Berlin NaN None
4 6.0 Giulio Rome 6.0 Americano
5 NaN None None 4.0 Latte
6 NaN None None 7.0 Cold Brew

Homework
1 .− Add a column price to the previous table. Compute the following associated to the
prices:
• mean
• min
• max
and order the table rom the highest price to the lowest. Then, select the row with the
highest price.
df1 = pd.DataFrame(
{
"Prices": ["3.90", "4.00", "2.50", "2.75", "3.25", "4.50",
"5.00"],
},

) #Creamos un Data Frame de los precios

df1
Prices
0 3.90
1 4.00
2 2.50
3 2.75
4 3.25
5 4.50
6 5.00

tabla = pd.concat([df, df1], axis=1) #Con la función "concat" unimos


el Data Frame original con el de precios.

print(tabla)

Id Customer City Product Prodname Prices


0 1.0 Leonardo Hong Kong 1.0 Flat 3.90
1 2.0 John California 2 2.0 Black 4.00
2 3.0 Juliette Paris 4 NaN None 2.50
3 5.0 Franz Berlin NaN None 2.75
4 6.0 Giulio Rome 6.0 Americano 3.25
5 NaN None None 4.0 Latte 4.50
6 NaN None None 7.0 Cold Brew 5.00

Q = tabla["Prices"] #Renombramos nuestra tabla de arriba.

P = pd.to_numeric(Q) #Convertimos los valores de la tabla de precios a


númericos para poder hacer cálculos con ellos

print(P)

0 3.90
1 4.00
2 2.50
3 2.75
4 3.25
5 4.50
6 5.00
Name: Prices, dtype: float64

P.min() #Calculamos mínimo.

2.5

P.max() #Calculamos máximo.

5.0

P.mean() #Calculamos media.

3.6999999999999997

2 .− Using the db writers, use the left join method to add the columns: ouvre 2, year of
appareance of ouvre 2 and another characteristic that you think is important.
Este inciso se encuentra resuelto abajo de la base de datos de 'Films'.
3 . − Use all the sort methods that you already know in Pandas.
print(tabla["Id"]) #Le pedimos que nos muestre sólo la columna "Id".

0 1.0
1 2.0
2 3.0
3 5.0
4 6.0
5 NaN
6 NaN
Name: Id, dtype: float64

print(tabla["Customer"]) #Le pedimos que nos muestre sólo la columna


"Customer".

0 Leonardo
1 John
2 Juliette
3 Franz
4 Giulio
5 None
6 None
Name: Customer, dtype: object

print(tabla.loc[4]) #Todos los elementos que se encuentren en el '4'


nos los va a mostrar.

Id 6.0
Customer Giulio
City Rome
Product 6.0
Prodname Americano
Prices 3.25
Name: 4, dtype: object

tabla[::-1] #Hacemos que nos muestre la tabla en orden descendente.

Id Customer City Product Prodname Prices


6 NaN None None 7.0 Cold Brew 5.00
5 NaN None None 4.0 Latte 4.50
4 6.0 Giulio Rome 6.0 Americano 3.25
3 5.0 Franz Berlin NaN None 2.75
2 3.0 Juliette Paris 4 NaN None 2.50
1 2.0 John California 2 2.0 Black 4.00
0 1.0 Leonardo Hong Kong 1.0 Flat 3.90

print(tabla.loc[0]) #Todos los elementos que se encuentren en el '0'


nos los va a mostrar.
Id 1.0
Customer Leonardo
City Hong Kong
Product 1.0
Prodname Flat
Prices 3.90
Name: 0, dtype: object

5 . − Create a table with 5 other writers with the same characteristics as before and add it to
the existing one.
data = {
"Rank" : ["19", "20", "21", "22", "23"],
"Name Film" : ["Spider-Man: NWH", "Iron Man", "Deadpool", "Space
Jam", "Sonic"],
"Director" : ["Jon Watts", "Jon Favreau", "Tim Miller", "Joe
Pytka", "Jeff Fowler"],
"Language" : ["ENG", "ENG", "ENG", "ENG", "ENG"],
"Year" : ["2021", "2008", "2016", "1996", "2020"]
}

data #Aquí creamos otro conjunto de datos con las divisiones que ya
tenía la base de datos original de "Films".

{'Rank': ['19', '20', '21', '22', '23'],


'Name Film': ['Spider-Man: NWH',
'Iron Man',
'Deadpool',
'Space Jam',
'Sonic'],
'Director': ['Jon Watts',
'Jon Favreau',
'Tim Miller',
'Joe Pytka',
'Jeff Fowler'],
'Language': ['ENG', 'ENG', 'ENG', 'ENG', 'ENG'],
'Year': ['2021', '2008', '2016', '1996', '2020']}
import mysql.connector
from mysql.connector import Error

def create_server_connection(host_name, user_name, user_password):


connection = None
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password
)
print("MySQL Database connection successful")
except Error as err:
print(f"Error: '{err}'")

return connection

pw="TTtms5134070707"
db="Films"

connection = create_server_connection("localhost", "root", pw)

MySQL Database connection successful

def create_database(connection, query):


cursor = connection.cursor()
try:
cursor.execute(query)
print("Database created successfully")
except Error as err:
print(f"Error: '{err}'")

create_database_query = "CREATE DATABASE Films"


create_database(connection, create_database_query)

Error: '1007 (HY000): Can't create database 'Films'; database exists'

def create_db_connection(host_name, user_name, user_password,


db_name):
connection = None
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password,
database=db_name
)
print("MySQL Database connection successful")
except Error as err:
print(f"Error: '{err}'")
return connection

def execute_query(connection,query):
cursor = connection.cursor()
try:
cursor.execute(query)
connection.commit()
print("Query successful")
except Error as err:
print(f"Error: '{err}' ")

create_Films_table = """
CREATE TABLE Films (
Movie_pos INT,
Movie VARCHAR(40) NOT NULL,
Director VARCHAR(40) NOT NULL,
Language VARCHAR(3) NOT NULL,
Year INT

);
"""

connection = create_db_connection("localhost", "root", pw, db)


execute_query(connection, create_Films_table)

MySQL Database connection successful


Query successful

my_films = """
INSERT INTO Films VALUES
(1, 'Minions', 'Pierre Coffin', 'ENG', 2015),
(2, 'Baby Driver', 'Edgar Wright', 'ENG', 2017),
(3, 'Star Wars: Rogue One', 'Gareth Edwards', 'ENG', 2016),
(4, 'Interestellar', 'Cristopher Nolan', 'ENG', 2014),
(5, 'Spider-Man 2', 'Sam Reimi', 'ENG', 2004),
(6, 'Nerve', 'Ariel Schulman', 'ENG', 2016),
(7, 'Cars', 'John Lasseter', 'ENG', 2006),
(8, 'Bird Box', 'Sussane Dier', 'ENG', 2018),
(9, 'The Simpsons: Movie', 'Matt Groening', 'ENG', 2007);

"""

connection = create_db_connection("localhost", "root", pw, db)


execute_query(connection, my_films)

MySQL Database connection successful


Query successful
def read_query(connection, query):
cursor = connection.cursor()
result = None
try:
cursor.execute(query)
result = cursor.fetchall()
return result
except Error as err:
print(f"Error: '{err}'")

q1 = """
SELECT *
FROM Films;
"""

connection = create_db_connection("localhost", "root", pw, db)


results = read_query(connection, q1)

for result in results:


print(result)

MySQL Database connection successful


(1, 'Minions', 'Pierre Coffin', 'ENG', 2015)
(2, 'Baby Driver', 'Edgar Wright', 'ENG', 2017)
(3, 'Star Wars: Rogue One', 'Gareth Edwards', 'ENG', 2016)
(4, 'Interestellar', 'Cristopher Nolan', 'ENG', 2014)
(5, 'Spider-Man 2', 'Sam Reimi', 'ENG', 2004)
(6, 'Nerve', 'Ariel Schulman', 'ENG', 2016)
(7, 'Cars', 'John Lasseter', 'ENG', 2006)
(8, 'Bird Box', 'Sussane Dier', 'ENG', 2018)
(9, 'The Simpsons: Movie', 'Matt Groening', 'ENG', 2007)

import pandas as pd

from_db = []

for result in results:


result = list(result)
from_db.append(result)

columns = ["Rank", "Name Film", "Director", "Language", "Year"]


df = pd.DataFrame(from_db, columns=columns)

display(df)

Rank Name Film Director Language Year


0 1 Minions Pierre Coffin ENG 2015
1 2 Baby Driver Edgar Wright ENG 2017
2 3 Star Wars: Rogue One Gareth Edwards ENG 2016
3 4 Interestellar Cristopher Nolan ENG 2014
4 5 Spider-Man 2 Sam Reimi ENG 2004
5 6 Nerve Ariel Schulman ENG 2016
6 7 Cars John Lasseter ENG 2006
7 8 Bird Box Sussane Dier ENG 2018
8 9 The Simpsons: Movie Matt Groening ENG 2007

import pandas as pd #Importamos 'pandas' como "pd" para que así lo


identifique.

NameFilm2 = pd.DataFrame(
{
"Name Film 2": ["Despicable Me", "Ant-Man", "Godzilla",
"Batman: The Dark Night", "The Jungle Book", "Catfish", "Toy Story 2",
"Serena", "Futurama: Bender's Big Score"],
},

) #Creamos un Data Frame con nuevas peliculas.

NameFilm2

Name Film 2
0 Despicable Me
1 Ant-Man
2 Godzilla
3 Batman: The Dark Night
4 The Jungle Book
5 Catfish
6 Toy Story 2
7 Serena
8 Futurama: Bender's Big Score

Year2 = pd.DataFrame(
{
"Year 2": ["2010", "2015", "2014", "2008", "2016", "2010",
"1999", "2014", "2007"],
},

) #Hacemos un Data Frame con los años en los que salieron esas
películas.

Year2

Year 2
0 2010
1 2015
2 2014
3 2008
4 2016
5 2010
6 1999
7 2014
8 2007
tabla = pd.concat([NameFilm2, Year2], axis=1) #Usamos la función
'concat' para unir estos últimos 2 Data Frames. También renombramos
esa unión como "tabla".

print(tabla)

Name Film 2 Year 2


0 Despicable Me 2010
1 Ant-Man 2015
2 Godzilla 2014
3 Batman: The Dark Night 2008
4 The Jungle Book 2016
5 Catfish 2010
6 Toy Story 2 1999
7 Serena 2014
8 Futurama: Bender's Big Score 2007

FilmsFinal = pd.concat([df, tabla]) #Volvemos a usar 'concat' para


unir la tabla original de "Films" con la nueva "tabla".

print(FilmsFinal)

Rank Name Film Director Language Year \


0 1.0 Minions Pierre Coffin ENG 2015.0
1 2.0 Baby Driver Edgar Wright ENG 2017.0
2 3.0 Star Wars: Rogue One Gareth Edwards ENG 2016.0
3 4.0 Interestellar Cristopher Nolan ENG 2014.0
4 5.0 Spider-Man 2 Sam Reimi ENG 2004.0
5 6.0 Nerve Ariel Schulman ENG 2016.0
6 7.0 Cars John Lasseter ENG 2006.0
7 8.0 Bird Box Sussane Dier ENG 2018.0
8 9.0 The Simpsons: Movie Matt Groening ENG 2007.0
9 1.0 Minions Pierre Coffin ENG 2015.0
10 2.0 Baby Driver Edgar Wright ENG 2017.0
11 3.0 Star Wars: Rogue One Gareth Edwards ENG 2016.0
12 4.0 Interestellar Cristopher Nolan ENG 2014.0
13 5.0 Spider-Man 2 Sam Reimi ENG 2004.0
14 6.0 Nerve Ariel Schulman ENG 2016.0
15 7.0 Cars John Lasseter ENG 2006.0
16 8.0 Bird Box Sussane Dier ENG 2018.0
17 9.0 The Simpsons: Movie Matt Groening ENG 2007.0
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN
Name Film 2 Year 2
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
6 NaN NaN
7 NaN NaN
8 NaN NaN
9 NaN NaN
10 NaN NaN
11 NaN NaN
12 NaN NaN
13 NaN NaN
14 NaN NaN
15 NaN NaN
16 NaN NaN
17 NaN NaN
0 Despicable Me 2010
1 Ant-Man 2015
2 Godzilla 2014
3 Batman: The Dark Night 2008
4 The Jungle Book 2016
5 Catfish 2010
6 Toy Story 2 1999
7 Serena 2014
8 Futurama: Bender's Big Score 2007

You might also like