Abfragen normalisierter Daten¶
Abfragen aller Bücher sortiert nach
language_id
undtitle
:7def select_all_records_ordered_by_language_number(cursor): 8 print("All books ordered by language id and title:") 9 for row in cursor.execute( 10 """SELECT language_code, author, title FROM books 11 ORDER BY language_code,title""" 12 ): 13 print(row)
>>> import create_db >>> import create_data_from_csv >>> import normalise >>> import query_normalised All books ordered by language id and title: (1, 'Veit Schiele', 'Jupyter Tutorial') (2, 'Veit Schiele', 'Jupyter Tutorial') (2, 'Veit Schiele', 'PyViz Tutorial') (2, 'Veit Schiele', 'Python basics')
Um nun nicht nur die ID der Sprachen zu erhalten sondern die zugehörigen Sprachcodes wird mit
JOIN
über dieid
-Spalte in derlanguages
-Tabelle eine Verbindung zu den dort hinterlegten Sprachcodes hergestellt:16def select_all_records_ordered_by_language_code(cursor): 17 print("All books ordered by language code and title:") 18 for row in cursor.execute( 19 """SELECT languages.language_code, books.author, books.title 20 FROM books 21 JOIN languages ON (books.language_code = languages.id) 22 ORDER BY languages.language_code,title""" 23 ): 24 print(row)
>>> import query_normalised … All books ordered by language code and title: ('de', 'Veit Schiele', 'Jupyter Tutorial') ('en', 'Veit Schiele', 'Jupyter Tutorial') ('en', 'Veit Schiele', 'PyViz Tutorial') ('en', 'Veit Schiele', 'Python basics')