Составитель: Герасимов Дмитрий Александрович
Группа: П1-18
Создание базы данных и таблицы
Бд = База данных
Поле = название столбика в таблице
Первой строкой мы импортировали библиотеку sqlite3
Четвёртой строкой мы подключились к бд с именем 'mydatabase.db'.
Пятой строкой мы создаем переменную cursor она позволяет взаимодействовать с бд. Также будет позволять добавлять, удалять, обновлять и.т.д. записи бд.
Восьмой строкой мы создаем таблицу 'students' в нашей бд и задаем ей следующие поля:
1. name <тип text>
2. group <тип text>
3. lang <тип text>
Здесь используется обычный синтаксис SQL.
Добавление записей в таблицу
Запись = строка в таблице
На 8-ой строке описано добавление записи с известными данными в таблицу 'students'.
Здесь мы передаем в таблицу 'students' запись со следующими полями:
1. 'Рома' — поле name
2. 'П1-18' — поле group
3. 'Java' — поле lang
На 10-ой строке продемонстрировано сохранение изменений.
На 11-ой строке описано добавление записи с неизвестными данными в таблицу 'students'.
Здесь мы передаем в таблицу 'students' запись со следующими полями:
1. 'Андрон' — переменная name, поле name
2. П1-18' — переменная group, поле group
3. 'C++' — переменная lang, поле lang
На 12-ой строке вы можете увидеть скобочку с 3-мя вопросами. Именно туда мы передаем неизвестные данные (т.е переменные). Знака вопроса 3, т.к в нашей таблице есть 3 поля.
Данные передаются в виде кортежа, т.е в скобочках (конец 12-ой строки)
На 13-ой строке мы сохраняем изменения.
На 14-ой строке описано добавление списка записей в таблицу 'students'.
С 8-13 строчки мы описали наши запросы. Она представлены в виде списка кортежей (список — квадратные скобочки, кортеж — круглые скобочки).
|
Далее на 12-ой строке мы добавляем в таблицу 'students', список запросов.
Если раньше мы использовали метод execute, то в этот раз используем метод executemany, т.к передаем несколько записей за раз. При этом рядом с VALUES все равно 3 знака вопроса. Это потому что полей все также 3.
На 16-ой строке мы сохраняем изменения.
Редактирование записей в таблице
Кавычки — это важно!!!
Одинарные кавычки (') — строка
Двойные кавычки (") — имя поля
Кавычка курильщика (`) — универсальная кавычка
Запрос мы поместили в переменную sql.
Здесь мы всем записям у которых name = «Антон», переименовываем данные в group на «Ю1-19».
На 13-ой строке выполняем запрос.
На 14-ой строке мы сохраняем изменения.
Удаление записей из таблицы
На 8-ой строке мы прописали запрос, который удаляет все записи у которых поле group!= «П1-18»
На 9-ой строке мы выполняем запросов
10-ая строка сохраняет все изменения
Запросы типа SELECT *
На 8-9 строке мы описали следующие. Мы хотим выбрать все записи, подходящие под переданное имя, в нашем случае «C++». Т.е мы запросили все записи у которых поле lang = «C++».
Все записи которые вы получили мы передали в переменную result. Но если вывести эту переменную, то мы получим нечто аномальное и непонятное.
Существует 2 метода для получения записей в нормальной форме:
1. метод fetchall() — вернет все записи. [ print(result.fetchall()) ]
2. метод fetchone() — вернет только первую запись. [ print(result.fetchone()) ]
Разберем запрос.
В запросе мы запрашиваем у таблицы students все записи и сортируем их по полю name. Также перед SELECT вы можете увидеть rowid. Это поле есть у каждой таблицы, оно обозначает какое id у записи или записей которые мы получаем. Так вот, из-за того что мы поставили rowid перед SELECT, мы получим записи с их id.
|
Т.е, если мы уберем rowid, то получим записи в следующей форме:
('Leхa', 'П1-18', 'Kotlin')
А если оставим:
(3, 'Leхa', 'П1-18', 'Kotlin')
Далее все записи что мы получили мы выводим на экран через цикл
На строке 8 описан запрос с тайной командой LIKE. Команда LIKE используется для поиска частичных фраз. Знак процента (%) является подстановочным оператором.
На 10ой строке продемонстрирован ещё один вывод. Дело в том, что данные которые мы получаем после выполнения запроса кладутся в переменную cursor.
При выводе на экран мы получим:
[('Рома', 'П1-18', 'Java'), ('Илья', 'П1-18', 'JavaScript')]