>>>> curs = db.cursor()
>>>> curs.execute('''create table book (title text, author text, year int)''')
>
>>>> db.commit()
7. Считайте данные из файла books.csv и добавьте их в таблицу book:
>>>> import csv
>>>> import sqlite3
>>>> ins_str = 'insert into book values(???)'
>>>> with open('books.csv', 'rt') as infile:
>…·····books = csv.DictReader(infile)
>…·····for book in books:
>…·········curs.execute(ins_str, (book['title'], book['author'], book['year']))
>…
>
>
>
>
>
>>>> db.commit()
8. Считайте и выведите на экран графу title таблицы book в алфавитном порядке:
>>>> sql = 'select title from book order by title asc'
>>>> for row in db.execute(sql):
>…·····print(row)
>…
>('Perdido Street Station',)
>('Small Gods',)
>('The Spellman Files',)
>('The Weirdstone of Brisingamen',)
>('Thud!',)
Если вы хотите вывести на экран значение title, не пользуясь конструкциями для работы с кортежем (круглыми скобками и запятой), попробуйте следующее:
>>>> for row in db.execute(sql):
>…·····print(row[0])
>…
>Perdido Street Station
>Small Gods
>The Spellman Files
>The Weirdstone of Brisingamen
>Thud!
Если хотите проигнорировать начальное слово 'The' в заголовках, вам нужно написать еще одну строку SQL:
>>>> sql = '''select title from book order by
>… case when (title like "The %") then substr(title, 5) else title end'''
>>>> for row in db.execute(sql):
>…·····print(row[0])
>…
>Perdido Street Station
>Small Gods
>The Spellman Files
>Thud!
>The Weirdstone of Brisingamen
9. Считайте и выведите на экран все графы таблицы book в порядке публикации:
>>>> for row in db.execute('select * from book order by year'):
>…·····print(row)
>…
>('The Weirdstone of Brisingamen', 'Alan Garner', 1960)
>('Small Gods', 'Terry Pratchett', 1992)
>('Perdido Street Station', 'China Miéville', 2000)
>('Thud!', 'Terry Pratchett', 2005)
>('The Spellman Files', 'Lisa Lutz', 2007)
Чтобы вывести на экран все поля каждого ряда, просто разделите их запятой и пробелом:
>>>> for row in db.execute('select * from book order by year'):
>…·····print(*row, sep=', ')
>…
>The Weirdstone of Brisingamen, Alan Garner, 1960
>Small Gods, Terry Pratchett, 1992
>Perdido Street Station, China Miéville, 2000
>Thud! Terry Pratchett, 2005
>The Spellman Files, Lisa Lutz, 2007
10. Используйте модуль sqlalchemy, чтобы подключиться к базе данных sqlite3 books.db, которую вы только что создали в упражнении 6. Как и в упражнении 8, считайте и выведите на экран графу title таблицы book в алфавитном порядке: