Å sende spørringer til databasen i Python

Etter å ha opprettet tilkobling til databasen, kan du sende spørringer til den. Dette gjøres ved hjelp av variabelen query, der SQL-spørringen for å hente alle data fra tabellen users skrives. Denne variabelen bør skrives i blokken med variabelen connection:

pythontry:
  with connect(
      host='localhost',
      user='root',
      password='',
      database='test',
  ) as connection:
    query = "SELECT * FROM users"
    
  except Error as e:
  print(e)

Deretter skriver vi en with-konstruksjon til for å jobbe med MySQLConnection-objektet, som er lagret i variabelen connection. Til dette objektet må vi bruke spesielle metoder sekvensielt. Den første av dem er metoden cursor, som lar MySQLConnection-objektet lage et CMySQLCursor-objekt. På dette objektet brukes metoden execute, som sikrer utførelsen av SQL-spørringen som sendes til den som en parameter:

pythontry:
  with connect(
    ...
  ) as connection:
    query = "SELECT * FROM users"
    with connection.cursor() as cursor:
      cursor.execute(query)

Deretter må du hente alle dataene ved hjelp av metoden fetchall og lagre dem i variabelen result. Og for å vise de innhentede dataene, må du sende dem gjennom en for-løkke:

pythontry:
  with connect(
    ...
  ) as connection:
    query = "SELECT * FROM users"
    with connection.cursor() as cursor:
      cursor.execute(query)
      result = cursor.fetchall()
      
      for row in result:
        print(row)

Den fullstendige koden vil se slik ut:

pythontry:
with connect(
    host='localhost',
    user='root',
    password='',
    database='test',
) as connection:
  query = "SELECT * FROM users"
  with connection.cursor() as cursor:
    print(cursor)
    cursor.execute(query)
    result = cursor.fetchall()
    
    for row in result:
      print(row)
      
except Error as e:
print(e)

Etter at koden er kjørt, vil alle postene bli skrevet ut i konsollen som tupler:

python(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Задание 1

Skriv ut alle data fra tabellen users.