HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Типы данных</a></li>
1 <ul><li><a>Типы данных</a></li>
2 <li><a>Начало работы с SQLite</a><ul><li><a>Создание базы</a></li>
2 <li><a>Начало работы с SQLite</a><ul><li><a>Создание базы</a></li>
3 <li><a>Резидентная база</a></li>
3 <li><a>Резидентная база</a></li>
4 <li><a>Объект cursor</a></li>
4 <li><a>Объект cursor</a></li>
5 <li><a>Создание таблиц</a></li>
5 <li><a>Создание таблиц</a></li>
6 <li><a>Добавление информации</a></li>
6 <li><a>Добавление информации</a></li>
7 <li><a>Загрузка</a></li>
7 <li><a>Загрузка</a></li>
8 <li><a>Получение информации</a></li>
8 <li><a>Получение информации</a></li>
9 <li><a>Объединение</a></li>
9 <li><a>Объединение</a></li>
10 <li><a>Удаление</a></li>
10 <li><a>Удаление</a></li>
11 </ul></li>
11 </ul></li>
12 <li><a>Как быстро разобраться с SQLite</a></li>
12 <li><a>Как быстро разобраться с SQLite</a></li>
13 </ul><p>В статье будут рассмотрены основы SQLite в Python. Это может быть полезным при работе с таблицами в процессе написания кода на Пайтоне. Особое внимание будет уделено:</p>
13 </ul><p>В статье будут рассмотрены основы SQLite в Python. Это может быть полезным при работе с таблицами в процессе написания кода на Пайтоне. Особое внимание будет уделено:</p>
14 <ul><li>загрузке библиотек;</li>
14 <ul><li>загрузке библиотек;</li>
15 <li>созданию и соединению с базой данных;</li>
15 <li>созданию и соединению с базой данных;</li>
16 <li>созданию таблиц БД;</li>
16 <li>созданию таблиц БД;</li>
17 <li>добавлению новых данных и запросам на их получение;</li>
17 <li>добавлению новых данных и запросам на их получение;</li>
18 <li>удалению информации.</li>
18 <li>удалению информации.</li>
19 </ul><p>Согласно информации в Google, SQLite3 (часто называется просто SQLite) - часть стандартного Python-пакета, подключенного в версии 3.0. Чтобы использовать таблицы в коде языка, не придется ничего дополнительно устанавливать.</p>
19 </ul><p>Согласно информации в Google, SQLite3 (часто называется просто SQLite) - часть стандартного Python-пакета, подключенного в версии 3.0. Чтобы использовать таблицы в коде языка, не придется ничего дополнительно устанавливать.</p>
20 <p>Выше - пример таблиц, с которыми предстоит работать далее в качестве "базы". Этот прием позволит без поиска дополнительной информации в Google освоить SQLite в Питоне.</p>
20 <p>Выше - пример таблиц, с которыми предстоит работать далее в качестве "базы". Этот прием позволит без поиска дополнительной информации в Google освоить SQLite в Питоне.</p>
21 <h2>Типы данных</h2>
21 <h2>Типы данных</h2>
22 <p>SQLite3 в Python дает возможность создать таблицы с ограниченным типом данных. Этот спектр оказывается меньше, чем в других SQL, зато здесь более простая и понятная реализация.</p>
22 <p>SQLite3 в Python дает возможность создать таблицы с ограниченным типом данных. Этот спектр оказывается меньше, чем в других SQL, зато здесь более простая и понятная реализация.</p>
23 <p>Согласно источникам в Google, здесь поддерживаются такие типы данных:</p>
23 <p>Согласно источникам в Google, здесь поддерживаются такие типы данных:</p>
24 <ul><li>NULL - значение NULL;</li>
24 <ul><li>NULL - значение NULL;</li>
25 <li>integer - целочисленные значения;</li>
25 <li>integer - целочисленные значения;</li>
26 <li>text - текстовые данные;</li>
26 <li>text - текстовые данные;</li>
27 <li>real - числа с плавающей точкой;</li>
27 <li>real - числа с плавающей точкой;</li>
28 <li>blob - бинарное представление крупных элементов.</li>
28 <li>blob - бинарное представление крупных элементов.</li>
29 </ul><p>В SQLite отсутствуют другие привычные для SQL типы данных. Далее предстоит изучить основы работы с таблицами.</p>
29 </ul><p>В SQLite отсутствуют другие привычные для SQL типы данных. Далее предстоит изучить основы работы с таблицами.</p>
30 <h2>Начало работы с SQLite</h2>
30 <h2>Начало работы с SQLite</h2>
31 <p>Перед использованием SQLite необходимо загрузить соответствующую библиотеку. Для этого потребуется выполнить команду import.</p>
31 <p>Перед использованием SQLite необходимо загрузить соответствующую библиотеку. Для этого потребуется выполнить команду import.</p>
32 <p>После этого предстоит создать базу данных, с которой будет проводиться дальнейшая работа. Выше можно увидеть команду загрузки, необходимую для выполнения операций с запросами и таблицами библиотеки.</p>
32 <p>После этого предстоит создать базу данных, с которой будет проводиться дальнейшая работа. Выше можно увидеть команду загрузки, необходимую для выполнения операций с запросами и таблицами библиотеки.</p>
33 <h3>Создание базы</h3>
33 <h3>Создание базы</h3>
34 <p>Как официальная документация, так и свободные источники Google указывают на то, что перед созданием таблиц и выводом их на дисплей требуется сформировать базу информации. Без нее дальнейшие действия бесполезны. Разработчику попросту не с чем будет работать.</p>
34 <p>Как официальная документация, так и свободные источники Google указывают на то, что перед созданием таблиц и выводом их на дисплей требуется сформировать базу информации. Без нее дальнейшие действия бесполезны. Разработчику попросту не с чем будет работать.</p>
35 <p>В рассматриваемой библиотеке поддерживаются несколько способов создания БД. Первый - это применение функции connect(). Ниже - пример того, как это делается в случае с "обычной" БД.</p>
35 <p>В рассматриваемой библиотеке поддерживаются несколько способов создания БД. Первый - это применение функции connect(). Ниже - пример того, как это делается в случае с "обычной" БД.</p>
36 <p>Здесь:</p>
36 <p>Здесь:</p>
37 <ol><li>Создан файл .db. Он выступает стандартным способом управления базой SQLite.</li>
37 <ol><li>Создан файл .db. Он выступает стандартным способом управления базой SQLite.</li>
38 <li>Файл получил название orders. За соединение ответит переменная conn.</li>
38 <li>Файл получил название orders. За соединение ответит переменная conn.</li>
39 <li>После обработки строки будет создан объект connection и файл orders.db. Они разместятся в рабочей директории.</li>
39 <li>После обработки строки будет создан объект connection и файл orders.db. Они разместятся в рабочей директории.</li>
40 <li>Функция connect будет создавать соединение с базой SQLite. Источники Google указывают на то, что она также возвращает представляющий ее объект.</li>
40 <li>Функция connect будет создавать соединение с базой SQLite. Источники Google указывают на то, что она также возвращает представляющий ее объект.</li>
41 </ol><p>Иногда бывает так, что необходимо использовать не рабочую директорию, а другую. В этом случае необходимо воспользоваться такой командой:</p>
41 </ol><p>Иногда бывает так, что необходимо использовать не рабочую директорию, а другую. В этом случае необходимо воспользоваться такой командой:</p>
42 <p>Если файл уже имеется, функция connect подключится к нему и выведет соответствующие сведения. Перед строкой с путем установлен управляющий символ "r". В источниках Google подчеркивается, что с его помощью Питон понимает: речь идет о "сырой" строке. В ней слеши не отвечают за непосредственное экранирование.</p>
42 <p>Если файл уже имеется, функция connect подключится к нему и выведет соответствующие сведения. Перед строкой с путем установлен управляющий символ "r". В источниках Google подчеркивается, что с его помощью Питон понимает: речь идет о "сырой" строке. В ней слеши не отвечают за непосредственное экранирование.</p>
43 <h3>Резидентная база</h3>
43 <h3>Резидентная база</h3>
44 <p>Сделать БД в SQLite не так трудно, как и сформировать таблицу, а затем вывести ее на устройство. Можно сделать "хранилище информации" в памяти устройства. Такой вариант подойдет для тестирования. Связано это с существованием базы непосредственно в оперативной памяти.</p>
44 <p>Сделать БД в SQLite не так трудно, как и сформировать таблицу, а затем вывести ее на устройство. Можно сделать "хранилище информации" в памяти устройства. Такой вариант подойдет для тестирования. Связано это с существованием базы непосредственно в оперативной памяти.</p>
45 <p>Знать о подобной концепции необходимо, но также предстоит учесть - этот подход на практике используется редко. Далее будет применяться первый вариант формирования "хранилища информации".</p>
45 <p>Знать о подобной концепции необходимо, но также предстоит учесть - этот подход на практике используется редко. Далее будет применяться первый вариант формирования "хранилища информации".</p>
46 <h3>Объект cursor</h3>
46 <h3>Объект cursor</h3>
47 <p>Перед тем как сделать таблицу и начать работу с ней, потребуется обеспечить в БД объект cursor. Он поможет объединить элемент соединения с "хранилищем информации" и дает возможность формировать SQL-запросы.</p>
47 <p>Перед тем как сделать таблицу и начать работу с ней, потребуется обеспечить в БД объект cursor. Он поможет объединить элемент соединения с "хранилищем информации" и дает возможность формировать SQL-запросы.</p>
48 <p>Для хранения объекта необходимо воспользоваться переменной cur:</p>
48 <p>Для хранения объекта необходимо воспользоваться переменной cur:</p>
49 <p>Запросы будут выполняться так:</p>
49 <p>Запросы будут выполняться так:</p>
50 <p>Сами запросы помещаются в кавычки. Они могут быть тройными, одинарными или двойными. Первый вариант применим к особо длинным запросам, которые пишутся на нескольких строчках.</p>
50 <p>Сами запросы помещаются в кавычки. Они могут быть тройными, одинарными или двойными. Первый вариант применим к особо длинным запросам, которые пишутся на нескольких строчках.</p>
51 <h3>Создание таблиц</h3>
51 <h3>Создание таблиц</h3>
52 <p>Вывод информации из таблиц возможен после их создания и заполнения. Ее структура будет представлена в следующем виде:</p>
52 <p>Вывод информации из таблиц возможен после их создания и заполнения. Ее структура будет представлена в следующем виде:</p>
53 <p>Первое, что необходимо делать - это сформировать таблицу users:</p>
53 <p>Первое, что необходимо делать - это сформировать таблицу users:</p>
54 <p>Здесь будут выполняться такие операции:</p>
54 <p>Здесь будут выполняться такие операции:</p>
55 <ol><li>Функция execute будет отвечать за запрос SQL.</li>
55 <ol><li>Функция execute будет отвечать за запрос SQL.</li>
56 <li>SQL сгенерирует таблицу users.</li>
56 <li>SQL сгенерирует таблицу users.</li>
57 <li>Запись "If not exists" помогает при попытке повторного подключения к БД. Запрос проверит, существует ли соответствующая таблица. Если да - просмотрит ее на наличие изменений.</li>
57 <li>Запись "If not exists" помогает при попытке повторного подключения к БД. Запрос проверит, существует ли соответствующая таблица. Если да - просмотрит ее на наличие изменений.</li>
58 <li>Создаются несколько колонок: userid, fname, lname и gender. Userid выступит основным ключом.</li>
58 <li>Создаются несколько колонок: userid, fname, lname и gender. Userid выступит основным ключом.</li>
59 <li>Изменения будут сохранены при помощи функции commit для объекта соединения.</li>
59 <li>Изменения будут сохранены при помощи функции commit для объекта соединения.</li>
60 </ol><p>Теперь можно сформировать вторую таблицу. Ее код предстанет в следующем виде:</p>
60 </ol><p>Теперь можно сформировать вторую таблицу. Ее код предстанет в следующем виде:</p>
61 <p>После обработки предложенных скриптов база будет включать две таблицы. Чтобы вывести их содержимое в терминал, потребуется внести данные.</p>
61 <p>После обработки предложенных скриптов база будет включать две таблицы. Чтобы вывести их содержимое в терминал, потребуется внести данные.</p>
62 <h3>Добавление информации</h3>
62 <h3>Добавление информации</h3>
63 <p>Для добавления информации необходимо использовать объект cursor:</p>
63 <p>Для добавления информации необходимо использовать объект cursor:</p>
64 <p>В Python часто приходится иметь дело с переменными, которые включают в себя числа. Пример - кортежи со сведениями о клиенте:</p>
64 <p>В Python часто приходится иметь дело с переменными, которые включают в себя числа. Пример - кортежи со сведениями о клиенте:</p>
65 <p>Что дальше? Если поискать ответ в том же Google, то мы увидим, что при необходимости загрузки в базу данных кортежа используется такой формат:</p>
65 <p>Что дальше? Если поискать ответ в том же Google, то мы увидим, что при необходимости загрузки в базу данных кортежа используется такой формат:</p>
66 <p>Все значения здесь заменены на знаки вопроса. Также добавлен параметр, включающий в себя добавляемые значения.</p>
66 <p>Все значения здесь заменены на знаки вопроса. Также добавлен параметр, включающий в себя добавляемые значения.</p>
67 <p>SQLite ожидает получения значения в формате кортежа, но это не обязательно. В переменной может быть список с кортежным набором. Несколько пользователей удастся добавить так:</p>
67 <p>SQLite ожидает получения значения в формате кортежа, но это не обязательно. В переменной может быть список с кортежным набором. Несколько пользователей удастся добавить так:</p>
68 <p>Вместо обычной execute потребуется использование функции executemany:</p>
68 <p>Вместо обычной execute потребуется использование функции executemany:</p>
69 <p>Если использовать функцию в неизмененном виде, система подумает, что клиент передает в таблицу два объекта (кортежа), а не два кортежа, каждый из которых включает в себя некоторое количество значений для пользователей. В приведенном примере - 4. Из-за этого возникают конфликты и ошибки.</p>
69 <p>Если использовать функцию в неизмененном виде, система подумает, что клиент передает в таблицу два объекта (кортежа), а не два кортежа, каждый из которых включает в себя некоторое количество значений для пользователей. В приведенном примере - 4. Из-за этого возникают конфликты и ошибки.</p>
70 <h3>Загрузка</h3>
70 <h3>Загрузка</h3>
71 <p>Вывод информации доступен после того, как она будет внедрена in tables. Для этого можно использовать скрипты:</p>
71 <p>Вывод информации доступен после того, как она будет внедрена in tables. Для этого можно использовать скрипты:</p>
72 <p><a>Здесь</a>можно увидеть полный текст скрипта. Также необходимо воспользоваться запросами:</p>
72 <p><a>Здесь</a>можно увидеть полный текст скрипта. Также необходимо воспользоваться запросами:</p>
73 <p>Все это поможет подготовиться к выводу табличных данных через SQLite.</p>
73 <p>Все это поможет подготовиться к выводу табличных данных через SQLite.</p>
74 <h3>Получение информации</h3>
74 <h3>Получение информации</h3>
75 <p>Выбор данных - это the wide theme. Он в SQL может реализовываться несколькими способами:</p>
75 <p>Выбор данных - это the wide theme. Он в SQL может реализовываться несколькими способами:</p>
76 <ul><li>через fetchone();</li>
76 <ul><li>через fetchone();</li>
77 <li>при помощи fetchmany();</li>
77 <li>при помощи fetchmany();</li>
78 <li>через fetchall().</li>
78 <li>через fetchall().</li>
79 </ul><p>Каждый из предложенного числа запросов поддерживает свои особенности. Первый подход - fetchone(). Он позволяет вывести в терминал только один результат. Имеет формат:</p>
79 </ul><p>Каждый из предложенного числа запросов поддерживает свои особенности. Первый подход - fetchone(). Он позволяет вывести в терминал только один результат. Имеет формат:</p>
80 <p>При обработке получится следующий результат:</p>
80 <p>При обработке получится следующий результат:</p>
81 <p>Функция fetchmany() - это wider-понятие. Она позволяет вывести много данных из заданной table. Вот пример с генерацией трех результатов:</p>
81 <p>Функция fetchmany() - это wider-понятие. Она позволяет вывести много данных из заданной table. Вот пример с генерацией трех результатов:</p>
82 <p>На экране высветится следующая информация:</p>
82 <p>На экране высветится следующая информация:</p>
83 <p>Последний вариант - это fetchall(). Данная функция используется для полноценного выведения результатов. Применяется в отношении небольших таблиц. При обработке скрипта с fetchall() система выведет в терминале все табличные данные. Если их много, на реализацию запроса уйдет немало времени.</p>
83 <p>Последний вариант - это fetchall(). Данная функция используется для полноценного выведения результатов. Применяется в отношении небольших таблиц. При обработке скрипта с fetchall() система выведет в терминале все табличные данные. Если их много, на реализацию запроса уйдет немало времени.</p>
84 <p>Выше - пример скрипта, который позволит увидеть всю информацию из users.</p>
84 <p>Выше - пример скрипта, который позволит увидеть всю информацию из users.</p>
85 <h3>Объединение</h3>
85 <h3>Объединение</h3>
86 <p>Еще одной базовой операцией при работе с таблицами в Питоне является объединение нескольких tables. Этот вариант больше подойдет опытным разработчикам, решающим сложные задачи.</p>
86 <p>Еще одной базовой операцией при работе с таблицами в Питоне является объединение нескольких tables. Этот вариант больше подойдет опытным разработчикам, решающим сложные задачи.</p>
87 <p>Вот пример генерации запроса, который включает в себя имя и фамилию каждого покупателя заказа. Этот вариант подойдет и для иных SQL-операций.</p>
87 <p>Вот пример генерации запроса, который включает в себя имя и фамилию каждого покупателя заказа. Этот вариант подойдет и для иных SQL-операций.</p>
88 <h3>Удаление</h3>
88 <h3>Удаление</h3>
89 <p>Иногда может потребоваться удаление информации из SQL-table. Данная операция тоже относится к базовым. Она имеет простую и понятную структуру. Использует оператор Delete from.</p>
89 <p>Иногда может потребоваться удаление информации из SQL-table. Данная операция тоже относится к базовым. Она имеет простую и понятную структуру. Использует оператор Delete from.</p>
90 <p>На основании сформированной БД необходимо удалить пользователя. Пример - Parker. Для этого формируется запрос:</p>
90 <p>На основании сформированной БД необходимо удалить пользователя. Пример - Parker. Для этого формируется запрос:</p>
91 <p>После этого потребуется сделать еще один запрос:</p>
91 <p>После этого потребуется сделать еще один запрос:</p>
92 <p>Он необходим для проверки грамотности работы команды delete. На экране появится пустой список, который подтвердит выполнение операции. В удаленном поле не будет никаких сведений.</p>
92 <p>Он необходим для проверки грамотности работы команды delete. На экране появится пустой список, который подтвердит выполнение операции. В удаленном поле не будет никаких сведений.</p>
93 <h2>Как быстро разобраться с SQLite</h2>
93 <h2>Как быстро разобраться с SQLite</h2>
94 <p>Python и SQLite - не самые сложные инструменты для работы с запросами и базами данных.<a>Здесь</a>можно увидеть подробный туториал по работе с таблицами.</p>
94 <p>Python и SQLite - не самые сложные инструменты для работы с запросами и базами данных.<a>Здесь</a>можно увидеть подробный туториал по работе с таблицами.</p>
95 <p>Чтобы лучше и быстрее разобраться в выбранном направлении, рекомендуется закончить дистанционные онлайн-курсы. Пример - от образовательного центра OTUS. Все обучение организовано дистанционно. Пользователи смогут просмотреть вебинар в записи, если они отсутствовали во время прямых трансляций.</p>
95 <p>Чтобы лучше и быстрее разобраться в выбранном направлении, рекомендуется закончить дистанционные онлайн-курсы. Пример - от образовательного центра OTUS. Все обучение организовано дистанционно. Пользователи смогут просмотреть вебинар в записи, если они отсутствовали во время прямых трансляций.</p>
96 <p>Дистанционные курсы подают информацию сжато и понятным языком. С их помощью в срок до года удастся разобраться с любым языком разработки и запросов. Гарантированы интересные домашние задания, а также богатая практика. В конце выдается электронный сертификат для подтверждения приобретенных навыков и умений.</p>
96 <p>Дистанционные курсы подают информацию сжато и понятным языком. С их помощью в срок до года удастся разобраться с любым языком разработки и запросов. Гарантированы интересные домашние задания, а также богатая практика. В конце выдается электронный сертификат для подтверждения приобретенных навыков и умений.</p>
97 <p>Интересует <a>Python</a>? Добро пожаловать на курс в Otus!</p>
97 <p>Интересует <a>Python</a>? Добро пожаловать на курс в Otus!</p>
98  
98