Импорт библиотеки, создание базы данных и объекта cursor
SQLite — это часть стандартного пакета Python 3, поэтому ничего дополнительно устанавливать не придется.
Импортируем библиотеку sqlite3. Прописываем первой строчкой кода:
import sqlite3
Библиотека импортирована, далее создаём базу данных. База данных создаётся в формате .db так и назовём нашу переменную и используем объект connect(), назовём нашу базу данных server.db:
db = sqlite3.connect('server.db')
Следующей строкой создаём переменную sql к созданной переменной db присваиваем объект cursor (cursor - нужен для работы с базой данных):
sql = db.cursor()
Создаём первую таблицу
Начинаем работать с cursor'ом, а точнее с переменной которой присвоен данный объект - sql:
sql.execute("CREATE TABLE IF NOT EXISTS users ("
"id INT NOT NULL PRIMARY KEY,"
"login TEXT,"
"password TEXT,"
"points BIGINT)")
Функция execute отвечает за SQL-запрос. CREATE TABLE - создать таблицу. IF NOT EXISTS - если такой таблицы не существует (поможет избежать ошибки при повторном создании таблицы с таким же названием). users - название таблицы.
Создаём столбцы, id - название столбца, INT - целочисленное значение, NOT NULL - не может равняться нулю (не может быть пустым), PRIMARY KEY - первичный ключ.
- NULL — значение NULL
- INTEGER — целое число
- BIGINT — целое число, но с большим диапазоном
- REAL — число с плавающей точкой
- TEXT — текст
- BLOB — бинарное представление крупных объектов, хранящееся в точности с тем, как его ввели
После каждого действия связанного с изменением таблицы, необходимо сохранить её:
db.commit()
Добавление данных в созданную таблицу командой INSERT INTO
INSERT INTO - используется для вставки новых строк в таблицу. Существует два способа использования инструкций.
- Способ первый
Первый способ он менее гибкий, если у вас 4 столбца, обязательно к заполнению всех 4х столбцов:
sql.execute("INSERT INTO users VALUES (1, 'Login', 'Password', 10)")
Сохраняем изменения:
db.commit()
Для предотвращения SQL-инъекции используем следующий код. Создаём список из нескольких данных:
info_users = [(2, 'Ivan', 'Ivanov', 10), (3, 'Sergey', 'Sergy', 10), (4, 'Andrey', '1234', 10)]
Добавляем этот список в таблицу и сохраняем её:
sql.executemany("INSERT INTO users VALUES (?, ?, ?, ?)", info_users)
db.commit()
2. Способ второй
Второй способ уже более гибкий и тут вступает в ход Python.
Будем записывать все столбцы по порядку. Т. к. первый столбец id у нас с значением PRIMARY KEY, он будет заполняться автоматический, к каждой новой записи прибавляя номер. Заполним второй столбец, для начала создадим переменную user_login куда будем записывать введённый нами логин:
user_login = input('Введите логин: ')
Запишем введенный нами логин в таблицу и сохраним её:
sql.execute(f"INSERT INTO users (login) VALUES ('{user_login}')")
db.commit()
Запустите код, введите логин и посмотрите, что получилось.
В следующей части мы научимся выводить таблицу и делать проверку введён ли такой логин или нет.