Рубрики
Без рубрики

Как создать таблицу базы данных с PyoDBC в Python

В этой статье вы получите необходимую информацию о том, как создать таблицу в SQLite с помощью пакета Pyodbc в Python. Пример код включен, и ссылка на репо GitHub будет предоставлена в разделе «Ссылки». Предварительные условия Чтобы использовать Pyodbc в этой статье некоторые предпосылки должны быть выполнены. ODBC … Как создать таблицу базы данных с PyoDBC в Python Подробнее »

Автор оригинала: Francisco R Porrata.

В этой статье вы получите необходимую информацию о том, как Создать таблицу в SQLite Используя пакет Pyodbc в Python. Пример код включен, и ссылка на репо GitHub будет предоставлена в разделе «Ссылки».

Предпосылки

Использовать Pyodbc В этой статье необходимо соблюдать некоторые предпосылки.

  1. Драйвер ODBC – Вам необходимо загрузить и установить драйвер ODBC для провайдера базы данных, который вы используете. В этой статье я использую SQLite. Скачал драйвер ODCB для SQLite3 из http://www.ch-werner.de/sqliteodbc/ ,
  2. SQLite3 – Эта статья предполагает, что у вас есть SQLite3 в вашей системе и создал базу данных под названием testdb.db Отказ
  3. База данных DDL – Различные поставщики баз данных используют разные языки определения данных. DDL – это язык, необходимый для создания таблиц в базе данных. Вы должны быть знакомы с этим синтаксисом, чтобы успешно создать таблицу. Создание таблиц в SQLite можно найти здесь: https://sqlite.org/lang_createtable.html.
  4. Дизайнировать свой стол – Это таблица, которая будет реализована в примере ниже:
Столбец Тип данных Ограничение Значение по умолчанию
Персильник Целое число ПЕРВИЧНЫЙ КЛЮЧ
Имя Текст НЕНУЛЕВОЙ
Фамилия Текст НЕНУЛЕВОЙ
Возраст Целое число НОЛЬ
Создано на Текст НЕНУЛЕВОЙ Сейчас

Вот пример того, почему вам нужно знать Язык определения данных вашей базы данных. Следующая информация была взята из https://www.sqlite.org/datatype3.html.

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

  • Текст Как строки ISO8601 ( "ГГГГ-ММ-ДД HH: мм: С.С.Ссс" ).
  • Реальный Как номера Джулианских дней, количество дней с полудня в Гринвиче 24 ноября 4714 г. B.C. Согласно проливому григорианскому календарю.
  • Целое число Как время Unix, количество секунд с 1970-01-01 00:00:00 UTC.

Приложения могут выбрать хранить даты и время в любом из этих форматов и свободно преобразовывать между форматами, используя встроенный Дата и время Функции

SQLite Создать язык определения данных таблицы для таблицы настроек:

CREATE TABLE PeopleInfo (
        PersonId INTEGER PRIMARY KEY,
        FirstName TEXT NOT NULL,
        LastName  TEXT NOT NULL,
        Age INTEGER NULL,
        CreatedAt TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL
 
);

Давайте погрузимся в шаги, чтобы создать таблицу в SQLite с помощью Pyodbc в Python.

Шаг 1: Установите пакет PyODBC

Установите Pyodbc Пакет с использованием следующей команды:

pip install pyodbc

Для Anaconda используйте следующую команду:

conda install -c anaconda pyodbc

Шаг 2: Подключите сценарий Python к SQLite

Далее вам нужно будет подключить свой скрипт к SQLite.

Вы можете использовать этот шаблон для выполнения соединения:

Не забудьте импортировать Pyodbc Пакет первым. Подключите к базе данных с помощью метода Connect с подключением подключения ODBC для SQLite.

import pyodbc
conn = pyodbc.connect('Driver={SQLite3 ODBC Driver};'
                      'Server=server_name;'
                      'Database=database_name;'
                      'Trusted_Connection=yes;')

Шаг 3: Создайте курсор из вашего соединения

Объект курсора, созданный Курсор () Позволяет выполнять запросы.

cursor = conn.cursor()

Шаг 4: Создайте таблицу в SQLite

Теперь вы сможете создать свой стол в SQLite

Для нашего примера, вот код, который я использовал для создания таблицы в SQL Server с помощью Python:

cursor.execute('''
 CREATE TABLE PeopleInfo (
        PersonId INTEGER PRIMARY KEY,
        FirstName TEXT NOT NULL,
        LastName  TEXT NOT NULL,
        Age INTEGER NULL,
        CreatedAt TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL
 
);

               ''')

Шаг 5: совершить транзакцию

conn.commit()

Совершение транзакции является важной темой для обсуждения. Заявление выше явно совершает транзакцию. Если вы не совершаете транзакцию, база данных не будет создавать таблицу. Транзакция будет откатываться назад.

Другие варианты рассмотреть:

1 – Добавьте параметр AutoCommit для подключения. Это не потребует вручения руководства. Например:

con = pyodbc.connect(your_connection_string, autocommit = True)

2 – Используйте с Блок и все будут преданы до того, как соединение прекращено в конце с блокировать. Например:

with pyodbc.connect(your_connection_string) as con:
    CREATE_TABLE_CODE

Шаг 6: Вставьте записи, чтобы убедиться, что ваша таблица настроена правильно.

cursor.execute('''
                INSERT INTO PeopleInfo (PersonId, FirstName, LastName, Age)
                VALUES
                (1,'Bob','Smith', 55),
                (2, 'Jenny','Smith', 66)
                ''')
conn.commit()

Шаг 7: Запустите запрос SELECT, чтобы получить записи.

cursor.execute('SELECT * FROM PeopleInfo')
for row in cursor:
    print(row)

Шаг 8: Закройте ваше соединение, если это не нужно.

conn.close()

Соединения в базе данных являются дорогим ресурсом, и для вашей базы данных могут быть ограниченные соединения. Не забудьте закрыть связь явно, если вы не используете блок «с», как объяснено на шаге 5.

Полный код:

import pyodbc
conn = pyodbc.connect('Driver={SQLite3 ODBC Driver};'
                      'Server=localhost;'
                      'Database=testDB.db;'
                      'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute('''
 CREATE TABLE PeopleInfo (
        PersonId INTEGER PRIMARY KEY,
        FirstName TEXT NOT NULL,
        LastName  TEXT NOT NULL,
        Age INTEGER NULL,
        CreatedAt TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL
 
);

               ''')
conn.commit()

cursor.execute('''
                INSERT INTO PeopleInfo (PersonId, FirstName, LastName, Age)
                VALUES
                (1,'Bob','Smith', 55),
                (2, 'Jenny','Smith', 66)
                ''')
conn.commit()

cursor.execute('SELECT * FROM PeopleInfo ')
for row in cursor:
    print(row)

conn.close()

Выход:

(1, 'Bob', 'Smith', 55, '2020-08-01 20:37:04')
(2, 'Jenny', 'Smith', 66, '2020-08-01 20:37:04')

Рекомендации

1 – PyoDBC Github Repo: https://github.com/mkleehammer/pyodbc.

2 – PyoDBC Начало работы: https://code.google.com/archive/p/pyodbc/wikis/gettingStarted.wiki.

3 – Создание таблиц с SQLite: https://www.sqliteTutorial.net/sqlite-create-table/