Структура
Всім привіт! На зв’язку Сергій Алпатов, ваш майбутній викладач курсу Python та Data Analyst. Якщо ви початківець в Python та Data Analytics, то ви точно хочете розібратися в основах роботи з базами даних, і в цьому вам допоможе ця стаття.
Пропоную познайомитись з дуже важливою темою, яка на перший погляд здається простою, хоча насправді має дуже багато нюансів, які часто можуть призвести до затримок у розробці програмного забезпечення та складності у процесах дослідження інформації.
У цьому матеріалі ми поговоримо про роботу з базою даних скину SQLite 3. Ця база не є поширеною, тому що специфіка її використання частіше за все спрямована на компактність та можливість статично зберігати велику кількість інформації для роботи застосунку, чи для швидкого опрацювання великої кількості даних, які до цього не були представлені у вигляді будь-якої іншої бази. Але попри все вона є важливою, тому нижче я розповім, як створити базу sqlite, як встановити sqlite,де її використовують, як з нею ефективно працювати та наведу практичні приклади.
Де використовують SQLite 3?
Внаслідок того, що ця база є файловою, ми отримуємо можливість використовувати її як основний носій інформації для застосунку, якщо нам не підходять інші, структуровані типи файлів. Це дуже зручний формат, коли вам потрібно зберегти інформацію, яка створюється користувачем, або коли інформація надається в систему через мікросервісну архітектуру.
Якщо розглядати такий підхід з боку бізнес аналізу: дуже часто можна зустріти ці бази як зручний та швидкий інструмент для збереження та відтворення інформації, яка була надана з різних джерел. Саме цей підхід дозволяє створити єдину точку входу до інформації та керувати нею за допомогою заздалегідь відомими інструментами. Якщо ви заглянете всередину будь-якого погоднього додатка або додатка-магазину, то з великою ймовірністю знайдете там файли нашої бази. Ми дуже часто використовували такі бази тоді, коли треба було зберігати навіть невелику кількість інформації, але потрібні були рішення, які надалі можна було масштабувати без зайвої метушні.
Що нам треба знати для того, щоб ефективно розпочати роботу?
Перш за все даймо характеристику цій базі.
Sqlite browser 3 є базою, яка представлена у вигляді спеціального файлу, який зберігає інформацію, яку потрібно використовувати користувачеві. Всередині вона має свою, унікальну структуру, яка дозволяє оперувати контентом за допомогою спеціального, зменшеного до базових понять, діалекту мови SQL. Це навіть і відображається у її назві, яка означає “легка” версія.
Для роботи з цією базою нам не потрібне спеціальне програмне забезпечення, ані серверна частина, щоби запускати цю базу та давати до неї доступ. Все функціонування будується навколо процесів опрацювання звичайного файлу, так само як ми працюємо з текстовими файлами, тільки замість читання в систему напряму для доступу до контенту нам знадобиться створювати спеціальні запити.
Зараз дана база є основною, її використовують за замовчуванням. Вона є базою даних, яка наявна у стандартному пакеті мови програмування Пайтон. Для роботи з нею дуже часто використовують прямий підхід. Це означає, що всередині коду нам потрібно створювати запити та передавати їх у вигляді окремих скриптів чи рядків, які записують контекст запиту прямо у коді, у вигляді змінної чи відразу у спеціальні функції.
Як запустити sqlite manager? Збираємо потрібні інструменти
- Для початку нам знадобиться, звісно ж, сама мова програмування Пайтон. Не забувайте перевіряти версію вашої операційної системи, щоб все працювало.
- В ідеалі нам знадобиться якась IDE, де ми зможемо писати код, та редагувати його. Зараз без підсвітки коду буває дуже складно написати навіть найпростіший скрипт. Моя рекомендація — PyCharm CE. Буде дуже круто, якщо у вас є професійна версія. Вона дозволяє більш ефективно працювати з базами даних, оскільки має підсвітку синтаксису та вбудовані інструменти, за допомогою яких можна передивлятися структуру бази. Але вона не безкоштовна, тому спеціально для цієї задачі краще її не купувати, бо в нас є альтернативи, які допоможуть працювати так само ефективно.
- Для того, щоб продивлятися структуру бази та бачити таблиці з інформацією, нам знадобиться програма, яка може відкривати даний тип файлів. Я користуюсь DB Browser for SQLite. Вона безкоштовна та має навіть надлишковий функціонал, як для наших задач.
Початок роботи
Коли все програмне забезпечення вже встановлене настає час писати код. Ттже давайте розберемо основні властивості та правила, за якими можна створити свою першу програму, яка використовує SQLite3.
Робота з sqlite3 охоплює декілька основних етапів: підключення до бази даних, створення таблиць, вставку, вибірку та оновлення даних. Ось кілька основних методологій для роботи з sqlite3 та даними:
- Підключення до бази даних: для роботи з базою даних sqlite використовується sqlite3.connect(). Цей метод створює об’єкт з’єднання, який потрібно використовувати для взаємодії з базою даних.
import sqlite3
conn = sqlite3.connect(‘mydatabase.db’)
2. Створення таблиць: визначте схему бази даних, а потім використовуйте CREATE TABLE для створення таблиць.
cursor = conn.cursor()
cursor.execute(”’CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)”’)
conn.commit()
3. Вставка даних: використовуйте INSERT INTO для додавання нових записів до таблиці.
cursor.execute(“INSERT INTO users (name, age) VALUES (?, ?)”, (‘John’, 25))
conn.commit()
Тут у коді наведені спеціальні символи — знаки питання. Вони використовуються для того, щоб ми могли використовувати змінні для передачі інформації у базу чи для того, щоб зробити код більш безпечним. Більш детально зможете дізнатись про це в кінці статті.
- Вибірка даних: використовуйте SELECT для отримання даних з таблиці.
cursor.execute(“SELECT * FROM users”)
rows = cursor.fetchall()
for row in rows:
print(row)
2. Оновлення даних: використовуйте UPDATE для зміни наявних записів.
cursor.execute(“UPDATE users SET age = ? WHERE name = ?”, (30, ‘John’))
conn.commit()
3. Видалення даних: використовуйте DELETE для видалення записів з таблиці.
cursor.execute(“DELETE FROM users WHERE name = ‘John'”)
conn.commit()
4. Закриття з’єднання: після виконання операцій з базою даних необхідно закрити з’єднання.
conn.close()
Це базові методології для роботи з sqlite3 в Python. Зверніть увагу, що для безпечного використання слід використовувати параметризовані запити (за допомогою знака питання та кортежу значень), щоб уникнути SQL-ін’єкцій.
Для використання параметризованих запитів у Python з бібліотекою sqlite3, можна застосовувати плейсхолдери у вигляді знака питання (?). Вони вказують місце у запиті, де будуть вставлені безпечні значення. Такий підхід допомагає уникнути SQL-ін’єкцій, оскільки значення обробляються бібліотекою перед вставкою в SQL-запит.
Ось базовий приклад роботи з параметризованими запитами у sqlite3:
import sqlite3
# Підключення до бази даних (або створення нової, якщо вона не існує)
conn = sqlite3.connect(‘example.db’)
cursor = conn.cursor()
# Створення таблиці
cursor.execute(”’
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)
”’)
# Додавання даних до таблиці за допомогою параметризованого запиту
name = ‘John’
age = 30
cursor.execute(‘INSERT INTO users (name, age) VALUES (?, ?)’, (name, age))
# Вибірка даних з параметризацією
user_id = 1
cursor.execute(‘SELECT * FROM users WHERE id=?’, (user_id,))
print(cursor.fetchone())
# Завершення транзакції і закриття підключення
conn.commit()
conn.close()
У цьому прикладі:
- При створенні та модифікації таблиці users ми використовуємо параметризовані запити для вставки та вибірки даних.
- Замість того, щоб вставляти змінні безпосередньо в SQL-запит, використовуються плейсхолдери (?), і відповідні значення передаються у вигляді кортежу як другий аргумент методу execute().
- Це забезпечує безпеку та допомагає уникнути потенційних вразливостей пов’язаних з SQL-ін’єкцією.
Але це тільки початок. Існує ще декілька варіантів, як можна працювати з цією базою у середовищі Пайтон. Якщо ви хочете дізнатись про це більше, приходьте на курс Python. Я не тільки допоможу вам досконально опанувати саму мову запитів SQL, але ще й познайомлю з одним з найактуальніших форматів використання баз всередині коду Пайтон — ORM. На наших заняттях все навчається базується на реальних кейсах та практиці, тож після курсу ви зможете успішно працевлаштуватись або покращити вже наявні навички та перейти в більш круту компанію!