0Pricing
Python Academy · Урок

Подключение и создание таблиц

Открывайте базу данных и определяйте схему

«Подключение и создание таблиц» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Что такое sqlite3?

Python поставляется с модулем sqlite3 в составе стандартной библиотеки. Он позволяет работать с SQLite — лёгкой файловой базой данных SQL, которой не нужен отдельный сервер.

  • Установка не требуется
  • Вся база данных хранится в одном файле
  • Отлично подходит для прототипов, тестов и небольших приложений
import sqlite3
print(sqlite3.version)

Подключение к базе данных

Используйте sqlite3.connect(), чтобы открыть базу данных. Если файл не существует, SQLite создаст его.

Передача ':memory:' создаёт временную базу данных в памяти, которая исчезает после закрытия соединения.

import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()

Объект cursor

Чтобы выполнять SQL-запросы, Вам понадобится cursor. Вызовите conn.cursor(), чтобы получить его, а затем используйте cursor.execute() для отправки SQL-инструкций.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()

Создание таблицы

Определите схему с помощью CREATE TABLE. Для каждого столбца нужно указать имя и тип, например INTEGER, TEXT или REAL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()

Первичные ключи

Первичный ключ однозначно идентифицирует каждую строку. Объявление INTEGER PRIMARY KEY позволяет SQLite автоматически увеличивать это значение.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()

IF NOT EXISTS

Повторный запуск CREATE TABLE вызывает ошибку. Добавьте IF NOT EXISTS, чтобы инструкцию можно было безопасно выполнять несколько раз.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()

Ограничения столбцов

Ограничения применяют правила для данных на уровне базы данных.

  • NOT NULL требует наличия значения
  • UNIQUE запрещает дубликаты
  • DEFAULT задаёт значение по умолчанию
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()

Просмотр схемы

SQLite хранит сведения о схеме в sqlite_master. Выполните запрос к этой таблице, чтобы получить список своих таблиц.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()

Сохранение в файл

Чтобы сохранять данные, передайте имя файла в connect(). База данных сохранится после завершения программы.

Необходимо вызвать conn.commit(), чтобы записать изменения на диск.

import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()

Удаление таблицы

Удалите таблицу с помощью DROP TABLE. Используйте IF EXISTS, чтобы избежать ошибок, если таблицы уже нет.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()

Всегда закрывайте соединение

Открытые соединения удерживают дескрипторы файлов. Всегда закрывайте их с помощью conn.close() после завершения работы или используйте блок with для автоматической очистки.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')

Быстрая проверка

Проверьте, насколько хорошо Вы поняли создание таблиц.

Итоги

Вы изучили основы sqlite3.

  • connect() открывает или создаёт файл базы данных
  • cursor() возвращает объект для выполнения SQL-запросов
  • CREATE TABLE определяет схему с типами и ограничениями
  • commit() сохраняет изменения, а close() освобождает соединение

Далее Вы научитесь добавлять и читать строки.

Часто задаваемые вопросы

Урок «Подключение и создание таблиц» бесплатный?

Да — полный текст урока «Подключение и создание таблиц» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Подключение и создание таблиц»?

Открывайте базу данных и определяйте схему Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Подключение и создание таблиц»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Подключение и создание таблиц
  2. Insert, Select, Update, Delete
  3. Параметризованные запросы
  4. Транзакции и менеджеры контекста
← Назад к Python Academy