1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>MySQL - описание и особенности</a><ul><li><a>Минусы</a></li>
1
<ul><li><a>MySQL - описание и особенности</a><ul><li><a>Минусы</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>SQLite - что это</a><ul><li><a>SQLite3 - определение</a></li>
3
<li><a>SQLite - что это</a><ul><li><a>SQLite3 - определение</a></li>
4
<li><a>Преимущества и недостатки</a><ul><li><a>Сильные стороны</a></li>
4
<li><a>Преимущества и недостатки</a><ul><li><a>Сильные стороны</a></li>
5
<li><a>Слабые стороны</a></li>
5
<li><a>Слабые стороны</a></li>
6
</ul></li>
6
</ul></li>
7
</ul></li>
7
</ul></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
<li><a>Вставка</a></li>
11
<li><a>Вставка</a></li>
12
<li><a>Чтение</a></li>
12
<li><a>Чтение</a></li>
13
<li><a>Обновление</a></li>
13
<li><a>Обновление</a></li>
14
<li><a>Удаление</a></li>
14
<li><a>Удаление</a></li>
15
<li><a> Транзакции</a></li>
15
<li><a> Транзакции</a></li>
16
<li><a>Ошибки и их обработка</a></li>
16
<li><a>Ошибки и их обработка</a></li>
17
<li><a>Основы работы с SQLite3</a><ul><li><a>Cursor в SQLite3</a></li>
17
<li><a>Основы работы с SQLite3</a><ul><li><a>Cursor в SQLite3</a></li>
18
<li><a>Создание</a></li>
18
<li><a>Создание</a></li>
19
</ul></li>
19
</ul></li>
20
<li><a>Как быстрее понять тему</a></li>
20
<li><a>Как быстрее понять тему</a></li>
21
</ul><p>Давайте в данной статье поговорим о том, как подключать и использовать в Питоне таблицы базы данных. Это пригодится как новичкам, так и опытным разработчикам. Упор будет сделан на базах данных MySQL и SQLite.</p>
21
</ul><p>Давайте в данной статье поговорим о том, как подключать и использовать в Питоне таблицы базы данных. Это пригодится как новичкам, так и опытным разработчикам. Упор будет сделан на базах данных MySQL и SQLite.</p>
22
<h2>MySQL - описание и особенности</h2>
22
<h2>MySQL - описание и особенности</h2>
23
<p>MySQL представляет собой систему управления базами данных. Это - организованная в виде таблиц система открытого типа, которая поддерживает универсальные языки программирования SQL.</p>
23
<p>MySQL представляет собой систему управления базами данных. Это - организованная в виде таблиц система открытого типа, которая поддерживает универсальные языки программирования SQL.</p>
24
<p>При помощи нее пользователи смогут выполнять различные операции с БД:</p>
24
<p>При помощи нее пользователи смогут выполнять различные операции с БД:</p>
25
<ul><li>обнаруживать;</li>
25
<ul><li>обнаруживать;</li>
26
<li>редактировать;</li>
26
<li>редактировать;</li>
27
<li>удалять.</li>
27
<li>удалять.</li>
28
</ul><p>Это - специализированный инструмент для поиска и внесения корректировок в документы немалого объема.</p>
28
</ul><p>Это - специализированный инструмент для поиска и внесения корректировок в документы немалого объема.</p>
29
<p>Работа здесь производится по принципу клиент-сервер. MySQL производит обмен между пользователем и хранилищами данных. Поиск и выдача результата делаются по принципам множества и записи, где первое - это наименования таблицы, второе - строчка в оной.</p>
29
<p>Работа здесь производится по принципу клиент-сервер. MySQL производит обмен между пользователем и хранилищами данных. Поиск и выдача результата делаются по принципам множества и записи, где первое - это наименования таблицы, второе - строчка в оной.</p>
30
<p>Это значит, что:</p>
30
<p>Это значит, что:</p>
31
<ol><li>Все таблицы будут связаны между собой, образовывая круговую (циркулярную) связь.</li>
31
<ol><li>Все таблицы будут связаны между собой, образовывая круговую (циркулярную) связь.</li>
32
<li>Система будет автоматически подбирать подходящую под запрос оператора информацию.</li>
32
<li>Система будет автоматически подбирать подходящую под запрос оператора информацию.</li>
33
<li>Данные берутся из уже имеющихся табличных "списков".</li>
33
<li>Данные берутся из уже имеющихся табличных "списков".</li>
34
</ol><p>Эта СУБД представляет собой гибкую и практичную систему с поддержкой графических интерфейсов. Она часто применяется в разработке контента. Через Python тоже.</p>
34
</ol><p>Эта СУБД представляет собой гибкую и практичную систему с поддержкой графических интерфейсов. Она часто применяется в разработке контента. Через Python тоже.</p>
35
<h3>Минусы</h3>
35
<h3>Минусы</h3>
36
<p>Обратите внимание на то, что у Питона имеется поддержка самых разных СУБД. MySQL не является единственным доступным вариантом. Эта система обладает не только преимуществами, но и рядом недостатков, о которых должен знать каждый разработчик.</p>
36
<p>Обратите внимание на то, что у Питона имеется поддержка самых разных СУБД. MySQL не является единственным доступным вариантом. Эта система обладает не только преимуществами, но и рядом недостатков, о которых должен знать каждый разработчик.</p>
37
<p>Среди таковых выделяют:</p>
37
<p>Среди таковых выделяют:</p>
38
<ul><li>ограниченные функциональные возможности (пример - отсутствие вложенных запросов);</li>
38
<ul><li>ограниченные функциональные возможности (пример - отсутствие вложенных запросов);</li>
39
<li>стоимость - полная техподдержка предоставляется только платно, а бесплатный вариант сильно ограничен "по умолчанию";</li>
39
<li>стоимость - полная техподдержка предоставляется только платно, а бесплатный вариант сильно ограничен "по умолчанию";</li>
40
<li>затраты на ПО - для того, чтобы работать с СУБД, придется иметь мощный сервер и компьютер;</li>
40
<li>затраты на ПО - для того, чтобы работать с СУБД, придется иметь мощный сервер и компьютер;</li>
41
<li>преобразования - MySQL быстро блокирует таблицы, из-за чего в больших "перечнях" приходится использовать конвертацию;</li>
41
<li>преобразования - MySQL быстро блокирует таблицы, из-за чего в больших "перечнях" приходится использовать конвертацию;</li>
42
<li>последствия при выходе из строя - восстановить данные при критических сбоях и неполадках программного кода в этой СУБД довольно тяжело.</li>
42
<li>последствия при выходе из строя - восстановить данные при критических сбоях и неполадках программного кода в этой СУБД довольно тяжело.</li>
43
</ul><p>Зато MySQL предусматривает высокий уровень безопасности и отсутствие противоречивости информации. Обработка электронных материалов здесь ведется совместно. Есть службы резервного копирования, развитые на достойном уровне.</p>
43
</ul><p>Зато MySQL предусматривает высокий уровень безопасности и отсутствие противоречивости информации. Обработка электронных материалов здесь ведется совместно. Есть службы резервного копирования, развитые на достойном уровне.</p>
44
<h2>SQLite - что это</h2>
44
<h2>SQLite - что это</h2>
45
<p>SQLite - быстрая и легко встраиваемая однофайловая система управления базами данных. Написана на языке C. Не имеет серверов, что позволяет хранить БД в пределах одного устройства локально. Сторонние библиотеки и службы для того, чтобы пользоваться оной, не пригодятся.</p>
45
<p>SQLite - быстрая и легко встраиваемая однофайловая система управления базами данных. Написана на языке C. Не имеет серверов, что позволяет хранить БД в пределах одного устройства локально. Сторонние библиотеки и службы для того, чтобы пользоваться оной, не пригодятся.</p>
46
<p>СУБД не будет применять при своем функционировании парадигму клиент-серверной модели. SQLite - это не самостоятельный движок, а своеобразная библиотека для обработки данных и их массивов. Компонуется совместно с написанным приложением. В виде протокола обмена данными задействованы вызовы функций (API) библиотеки SQLite.</p>
46
<p>СУБД не будет применять при своем функционировании парадигму клиент-серверной модели. SQLite - это не самостоятельный движок, а своеобразная библиотека для обработки данных и их массивов. Компонуется совместно с написанным приложением. В виде протокола обмена данными задействованы вызовы функций (API) библиотеки SQLite.</p>
47
<h3>SQLite3 - определение</h3>
47
<h3>SQLite3 - определение</h3>
48
<p>SQLite3 - консольное программное обеспечение для работы с SQLite. Запуск и работа производятся в командной строке, консоли ОС. Совместима с Windows, MacOS и Linux.</p>
48
<p>SQLite3 - консольное программное обеспечение для работы с SQLite. Запуск и работа производятся в командной строке, консоли ОС. Совместима с Windows, MacOS и Linux.</p>
49
<p>Предусматривает такие особенности:</p>
49
<p>Предусматривает такие особенности:</p>
50
<ul><li>представление в виде клиента для клиент-серверных утилит;</li>
50
<ul><li>представление в виде клиента для клиент-серверных утилит;</li>
51
<li>позволяет вводить и передавать разные запросы к базе данных;</li>
51
<li>позволяет вводить и передавать разные запросы к базе данных;</li>
52
-
<li>обращение происходит не к отдельному процессу-серверу, а ко всему встроенному в софт движку SQLite.</li>
52
+
<li>обращение происходит не к отдел��ному процессу-серверу, а ко всему встроенному в софт движку SQLite.</li>
53
</ul><p> В QSLite3 можно вписать SQL-код. Тогда ПО будет отправлять запросы к ядру, после чего получит и сможет вывести на экран результат.</p>
53
</ul><p> В QSLite3 можно вписать SQL-код. Тогда ПО будет отправлять запросы к ядру, после чего получит и сможет вывести на экран результат.</p>
54
<h3>Преимущества и недостатки</h3>
54
<h3>Преимущества и недостатки</h3>
55
<p>Использование той или иной СУБД должно быть обоснованным. Поэтому о каждом варианте требуется знать максимально точную информацию. У SQL есть плюсы и минусы, способные как облегчить написание ПО на Python, так и сделать процесс труднее.</p>
55
<p>Использование той или иной СУБД должно быть обоснованным. Поэтому о каждом варианте требуется знать максимально точную информацию. У SQL есть плюсы и минусы, способные как облегчить написание ПО на Python, так и сделать процесс труднее.</p>
56
<h4>Сильные стороны</h4>
56
<h4>Сильные стороны</h4>
57
<p>К плюсам этой СУБД относят:</p>
57
<p>К плюсам этой СУБД относят:</p>
58
<ul><li>быстродействие;</li>
58
<ul><li>быстродействие;</li>
59
<li>хранение информации в одном документе;</li>
59
<li>хранение информации в одном документе;</li>
60
<li>минимализм;</li>
60
<li>минимализм;</li>
61
<li>надежную систему защиты;</li>
61
<li>надежную систему защиты;</li>
62
<li>нулевые конфигурации;</li>
62
<li>нулевые конфигурации;</li>
63
<li>небольшой размер;</li>
63
<li>небольшой размер;</li>
64
<li>высокий уровень доступности - находится в свободном доступе;</li>
64
<li>высокий уровень доступности - находится в свободном доступе;</li>
65
<li>кроссплатформенность;</li>
65
<li>кроссплатформенность;</li>
66
<li>автономное функционирование.</li>
66
<li>автономное функционирование.</li>
67
</ul><p>Это - отличный вариант для начала знакомства с БД и их внедрением в программное обеспечение.</p>
67
</ul><p>Это - отличный вариант для начала знакомства с БД и их внедрением в программное обеспечение.</p>
68
<h4>Слабые стороны</h4>
68
<h4>Слабые стороны</h4>
69
<p>Минусы у этой СУБД такие:</p>
69
<p>Минусы у этой СУБД такие:</p>
70
<ul><li>ограничения в поддержке типов данных;</li>
70
<ul><li>ограничения в поддержке типов данных;</li>
71
<li>хранимых процедур нет;</li>
71
<li>хранимых процедур нет;</li>
72
<li>ограниченность в применении;</li>
72
<li>ограниченность в применении;</li>
73
<li>бесплатной поддержки нет.</li>
73
<li>бесплатной поддержки нет.</li>
74
</ul><p>Профессиональная поддержка от разработчиков обойдется в сумму от 1 500 долларов США в год. Бесплатно пользоваться SQL придется при помощи туториалов и разнообразной документации.</p>
74
</ul><p>Профессиональная поддержка от разработчиков обойдется в сумму от 1 500 долларов США в год. Бесплатно пользоваться SQL придется при помощи туториалов и разнообразной документации.</p>
75
<h2>Питон и БД</h2>
75
<h2>Питон и БД</h2>
76
<p>Python может работать с самыми разными СУБД. Часто для разработки применяется MySQL, а также SQLite. Второй вариант поддерживается системой по умолчанию, поэтому пользоваться им проще. Упор лучше сделать на MySQL, но он не совместим с 3 версией ЯП. Вместо популярного модуля MySQLdb нужно применить PyMySQL.</p>
76
<p>Python может работать с самыми разными СУБД. Часто для разработки применяется MySQL, а также SQLite. Второй вариант поддерживается системой по умолчанию, поэтому пользоваться им проще. Упор лучше сделать на MySQL, но он не совместим с 3 версией ЯП. Вместо популярного модуля MySQLdb нужно применить PyMySQL.</p>
77
<p>Это - интерфейс, гарантирующий соединение с базой данных MySQL из Питона. Реализует APIБД Python 2.0. Включает в себя чистую клиентскую библиотеку СУБД. Ключевая цель PyMySQL - это быстрая замена MySQLdb.</p>
77
<p>Это - интерфейс, гарантирующий соединение с базой данных MySQL из Питона. Реализует APIБД Python 2.0. Включает в себя чистую клиентскую библиотеку СУБД. Ключевая цель PyMySQL - это быстрая замена MySQLdb.</p>
78
<h2>Инициализация</h2>
78
<h2>Инициализация</h2>
79
<p>Перед началом работы нужно убедиться в том, что рассматриваемая библиотека установлена на задействованном устройстве. В случае отсутствия таковой - провести ее инициализацию.</p>
79
<p>Перед началом работы нужно убедиться в том, что рассматриваемая библиотека установлена на задействованном устройстве. В случае отсутствия таковой - провести ее инициализацию.</p>
80
<p>В скрипте Питона нужно набрать код и обработать его:</p>
80
<p>В скрипте Питона нужно набрать код и обработать его:</p>
81
#!/usr/bin/python3 import pymysql<p>Далее все зависит от ситуации. Существуют разные варианты. Иногда необходимый компонент уже есть на устройстве. Тогда пользователь увидит соответствующее сообщение. Если модуль MySQL отсутствует, на экране появится такая запись:</p>
81
#!/usr/bin/python3 import pymysql<p>Далее все зависит от ситуации. Существуют разные варианты. Иногда необходимый компонент уже есть на устройстве. Тогда пользователь увидит соответствующее сообщение. Если модуль MySQL отсутствует, на экране появится такая запись:</p>
82
Traceback (most recent call last): File "test.py", line 3, in <module> Import pymysql ImportError: No module named pymysql<p>Для того, чтобы инициализировать библиотеку, потребуется выполнить команду:</p>
82
Traceback (most recent call last): File "test.py", line 3, in <module> Import pymysql ImportError: No module named pymysql<p>Для того, чтобы инициализировать библиотеку, потребуется выполнить команду:</p>
83
pip install pymysql<p>Если Pip не доступен, можно осуществить загрузку с GitHub и провести инициализацию с Setuptools. Вот примеры команд:</p>
83
pip install pymysql<p>Если Pip не доступен, можно осуществить загрузку с GitHub и провести инициализацию с Setuptools. Вот примеры команд:</p>
84
<p>Для успешного выполнения команды предстоит выполнять все перечисленные операции через права суперпользователя.</p>
84
<p>Для успешного выполнения команды предстоит выполнять все перечисленные операции через права суперпользователя.</p>
85
<h2>Подключение к БД</h2>
85
<h2>Подключение к БД</h2>
86
<p>Использоваться сведения из БД смогут только после непосредственного подключения "таблицы с информацией" к приложению Питона. Перед тем, как устанавливать соединение, требуется убедиться в то, что:</p>
86
<p>Использоваться сведения из БД смогут только после непосредственного подключения "таблицы с информацией" к приложению Питона. Перед тем, как устанавливать соединение, требуется убедиться в то, что:</p>
87
<ul><li>была создана подходящая база данных - Test DB;</li>
87
<ul><li>была создана подходящая база данных - Test DB;</li>
88
<li>есть таблица Employee в оной;</li>
88
<li>есть таблица Employee в оной;</li>
89
<li>присутствуют поля first_name, last_name, age, income, sex;</li>
89
<li>присутствуют поля first_name, last_name, age, income, sex;</li>
90
<li>для доступа к БД установлено имя testuser, а также пароль test123;</li>
90
<li>для доступа к БД установлено имя testuser, а также пароль test123;</li>
91
<li>на устройстве есть PyMySQL.</li>
91
<li>на устройстве есть PyMySQL.</li>
92
</ul><p>Далее будут рассмотрены примеры работ, базирующиеся на БД Test. Чтобы грамотно управлять информацией в приложении, предстоит предварительно разобраться с основами MySQL.</p>
92
</ul><p>Далее будут рассмотрены примеры работ, базирующиеся на БД Test. Чтобы грамотно управлять информацией в приложении, предстоит предварительно разобраться с основами MySQL.</p>
93
<p>Вот пример соединения:</p>
93
<p>Вот пример соединения:</p>
94
<p>Он при запуске выдаст надпись с версией БД. Если соединение с источником провелось успешно, объект коннектинга вернется и будет сохранен в БД. Его можно задействовать позже. В противном случае для базы данных устанавливается значение НЕТ. Объект db применяется для создания объекта курсора (cursor). Последний позволяет выполнять запросы SQL. Перед выходом cursor будет гарантировать закрытость соединения с "хранилищем", а также освобождение ресурсов устройства.</p>
94
<p>Он при запуске выдаст надпись с версией БД. Если соединение с источником провелось успешно, объект коннектинга вернется и будет сохранен в БД. Его можно задействовать позже. В противном случае для базы данных устанавливается значение НЕТ. Объект db применяется для создания объекта курсора (cursor). Последний позволяет выполнять запросы SQL. Перед выходом cursor будет гарантировать закрытость соединения с "хранилищем", а также освобождение ресурсов устройства.</p>
95
<p>Create Table отвечает за создание таблички.</p>
95
<p>Create Table отвечает за создание таблички.</p>
96
<h2>Вставка</h2>
96
<h2>Вставка</h2>
97
<p>Следующая важная операция - это вставка. Операция insert позволяет создавать собственные записи и дополнения.</p>
97
<p>Следующая важная операция - это вставка. Операция insert позволяет создавать собственные записи и дополнения.</p>
98
<p>А вот так будет выглядеть динамическое создание SQL-запросов:</p>
98
<p>А вот так будет выглядеть динамическое создание SQL-запросов:</p>
99
#!/usr/bin/python3 import pymysql # Open database connection db = pymysql.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ LAST_NAME, AGE, SEX, INCOME) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Mac', 'Mohan', 20, 'M', 2000) try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # disconnect from server db.close()<p>А вот еще один наглядный пример того, как выполняется передача параметров напрямую:</p>
99
#!/usr/bin/python3 import pymysql # Open database connection db = pymysql.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ LAST_NAME, AGE, SEX, INCOME) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Mac', 'Mohan', 20, 'M', 2000) try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # disconnect from server db.close()<p>А вот еще один наглядный пример того, как выполняется передача параметров напрямую:</p>
100
<h2>Чтение</h2>
100
<h2>Чтение</h2>
101
<p>Здесь нужно учесть следующее:</p>
101
<p>Здесь нужно учесть следующее:</p>
102
<ol><li>Чтение отвечает за получение полезной информации из "таблицы".</li>
102
<ol><li>Чтение отвечает за получение полезной информации из "таблицы".</li>
103
<li>Может применяться сразу после соединения с базой данных.</li>
103
<li>Может применяться сразу после соединения с базой данных.</li>
104
<li>Допустимо использование любых доступных методов: fetchone() или fetchall().</li>
104
<li>Допустимо использование любых доступных методов: fetchone() или fetchall().</li>
105
</ol><p>Стоит обратить внимание на несколько ключевых моментов:</p>
105
</ol><p>Стоит обратить внимание на несколько ключевых моментов:</p>
106
<ol><li>Fetchone - извлекает следующую строку из набора результатов заданного запроса. Результирующий набор - объект, который возвращает система после того, как cursor был применен для запроса table.</li>
106
<ol><li>Fetchone - извлекает следующую строку из набора результатов заданного запроса. Результирующий набор - объект, который возвращает система после того, как cursor был применен для запроса table.</li>
107
<li>Fetchall - извлекает все строки в результирующем наборе. Если какие-то строчки уже были "прочитаны", система "заберет" то, что осталось.</li>
107
<li>Fetchall - извлекает все строки в результирующем наборе. Если какие-то строчки уже были "прочитаны", система "заберет" то, что осталось.</li>
108
<li>Rowcount - атрибут, который предназначается для чтения. Возвращает количество строк, на которые ранее действовал метод execute.</li>
108
<li>Rowcount - атрибут, который предназначается для чтения. Возвращает количество строк, на которые ранее действовал метод execute.</li>
109
</ol><p>При помощи метода close завершается работа с db.</p>
109
</ol><p>При помощи метода close завершается работа с db.</p>
110
<p>Выше - пример того, как происходит запрос с заработной платой работников выше 1 000 единиц.</p>
110
<p>Выше - пример того, как происходит запрос с заработной платой работников выше 1 000 единиц.</p>
111
<h2>Обновление</h2>
111
<h2>Обновление</h2>
112
<p>При использовании Python в работе с MySQL, нужно знать много разнообразных операций и операторов. Есть обновление. Оно отвечает за ввод новых данных в одну или несколько записей.</p>
112
<p>При использовании Python в работе с MySQL, нужно знать много разнообразных операций и операторов. Есть обновление. Оно отвечает за ввод новых данных в одну или несколько записей.</p>
113
<p>Вот пример того, как происходит замена пола с буквой "М". Кодификация будет увеличивать на год возраст:</p>
113
<p>Вот пример того, как происходит замена пола с буквой "М". Кодификация будет увеличивать на год возраст:</p>
114
<h2>Удаление</h2>
114
<h2>Удаление</h2>
115
<p>Если оператор DELETE будет передан системе, он сотрет записи из хранилища информации. Ниже - пример команды, которая в Python при помощи MySQLCommands убирает все записи работников, возраст которых составляет более 20 лет.</p>
115
<p>Если оператор DELETE будет передан системе, он сотрет записи из хранилища информации. Ниже - пример команды, которая в Python при помощи MySQLCommands убирает все записи работников, возраст которых составляет более 20 лет.</p>
116
<h2> Транзакции</h2>
116
<h2> Транзакции</h2>
117
<p>Когда стало понятно, что такое cursor, за что отвечает print, а также как выполнять основные действия с табличками, можно взяться за транзакции. Они представлены механизмами, которые отвечают за согласованной данных. Предусматривают несколько свойств:</p>
117
<p>Когда стало понятно, что такое cursor, за что отвечает print, а также как выполнять основные действия с табличками, можно взяться за транзакции. Они представлены механизмами, которые отвечают за согласованной данных. Предусматривают несколько свойств:</p>
118
<ol><li>Атомарность. Любая транзакция или завершена, или ничего не происходит.</li>
118
<ol><li>Атомарность. Любая транзакция или завершена, или ничего не происходит.</li>
119
<li>Согласованность. Операция должна начинаться в заранее согласованном состоянии. Результат - тоже в таком же "положении".</li>
119
<li>Согласованность. Операция должна начинаться в заранее согласованном состоянии. Результат - тоже в таком же "положении".</li>
120
<li>Изоляция. Промежуточные результаты не будут видны за пределами операции.</li>
120
<li>Изоляция. Промежуточные результаты не будут видны за пределами операции.</li>
121
<li>Долговечность. После того, как транзакция завершится, последствия сохраняются. Принцип распространяется даже при системных сбоях и неполадках.</li>
121
<li>Долговечность. После того, как транзакция завершится, последствия сохраняются. Принцип распространяется даже при системных сбоях и неполадках.</li>
122
</ol><p>У API Питона 2.0 есть два метода для фиксации и отката транзакций.</p>
122
</ol><p>У API Питона 2.0 есть два метода для фиксации и отката транзакций.</p>
123
<p>Commit - это фиксация. Операция, которая передает "зеленый сигнал" базе для завершения изменений. После нее никакие корректировки не допускаются. Они просто фиксируются.</p>
123
<p>Commit - это фиксация. Операция, которая передает "зеленый сигнал" базе для завершения изменений. После нее никакие корректировки не допускаются. Они просто фиксируются.</p>
124
<p>Rollback - отвечает за полную отмену внесенных корректировок. Для отключения "хранилища" используйте метод close. При его активации все незавершенные транзакции будут откатываться.</p>
124
<p>Rollback - отвечает за полную отмену внесенных корректировок. Для отключения "хранилища" используйте метод close. При его активации все незавершенные транзакции будут откатываться.</p>
125
<h2>Ошибки и их обработка</h2>
125
<h2>Ошибки и их обработка</h2>
126
<p>При использовании cursor и других возможностей, могут возникать разного рода ошибки. Примеры: синтаксис в операторе, сбой соединения, вызов метода выборки для завершенного дескриптора.</p>
126
<p>При использовании cursor и других возможностей, могут возникать разного рода ошибки. Примеры: синтаксис в операторе, сбой соединения, вызов метода выборки для завершенного дескриптора.</p>
127
<p>Через API можно определить количество ошибок. Они будут существовать в пределах каждого модуля "таблички". Ниже указаны исключения.</p>
127
<p>Через API можно определить количество ошибок. Они будут существовать в пределах каждого модуля "таблички". Ниже указаны исключения.</p>
128
<p>Вся перечисленная информация о cursor, а также СУБД пригодится при коддинге на Python. Особенно тогда, когда планируется написание клиент-серверной утилиты.</p>
128
<p>Вся перечисленная информация о cursor, а также СУБД пригодится при коддинге на Python. Особенно тогда, когда планируется написание клиент-серверной утилиты.</p>
129
<h2>Основы работы с SQLite3</h2>
129
<h2>Основы работы с SQLite3</h2>
130
<p>Для начала работы с SQLite3 в Питоне нужно провести импорт соответствующего модуля, а затем создать объект коннектинга к базе. Сделать это можно так:</p>
130
<p>Для начала работы с SQLite3 в Питоне нужно провести импорт соответствующего модуля, а затем создать объект коннектинга к базе. Сделать это можно так:</p>
131
<h3>Cursor в SQLite3</h3>
131
<h3>Cursor в SQLite3</h3>
132
<p>Cursor - это элемент, без которого невозможно продолжить работу. Представляет собой метод соединения. Сначала устанавливается коннектинг, после чего происходит создание cursor с применением объекта соединения.</p>
132
<p>Cursor - это элемент, без которого невозможно продолжить работу. Представляет собой метод соединения. Сначала устанавливается коннектинг, после чего происходит создание cursor с применением объекта соединения.</p>
133
<p>Выше - наглядный пример контактирования с cursor.</p>
133
<p>Выше - наглядный пример контактирования с cursor.</p>
134
<h3>Создание</h3>
134
<h3>Создание</h3>
135
<p>После того, как с cursor стало все ясно, третьей важной операцией выступает создание "табличного хранилища":</p>
135
<p>После того, как с cursor стало все ясно, третьей важной операцией выступает создание "табличного хранилища":</p>
136
<p>Здесь будет происходить следующее:</p>
136
<p>Здесь будет происходить следующее:</p>
137
<ol><li>Импортируется модуль SQLite3.</li>
137
<ol><li>Импортируется модуль SQLite3.</li>
138
<li>Осуществляется определение функции с именем sql_connection.</li>
138
<li>Осуществляется определение функции с именем sql_connection.</li>
139
<li>Внутри оной будет установлен блок try, в котором метод connect() вернет объект соединения после коннектинга.</li>
139
<li>Внутри оной будет установлен блок try, в котором метод connect() вернет объект соединения после коннектинга.</li>
140
<li>Определяется блок исключений. При наличии оных осуществляется вывод на печать сообщения об ошибке.</li>
140
<li>Определяется блок исключений. При наличии оных осуществляется вывод на печать сообщения об ошибке.</li>
141
<li>Когда неполадки отсутствуют, соединение устанавливается. Скрипт сообщит об успешном подключении к памяти.</li>
141
<li>Когда неполадки отсутствуют, соединение устанавливается. Скрипт сообщит об успешном подключении к памяти.</li>
142
</ol><p>Теперь соединение блока finally будет закрыто. Это не обязательный шаг. Он просто помогает освобождать память устройства.</p>
142
</ol><p>Теперь соединение блока finally будет закрыто. Это не обязательный шаг. Он просто помогает освобождать память устройства.</p>
143
<p><a>Здесь</a>можно увидеть, как на SQLite происходит создание базы в Питоне.</p>
143
<p><a>Здесь</a>можно увидеть, как на SQLite происходит создание базы в Питоне.</p>
144
<h2>Как быстрее понять тему</h2>
144
<h2>Как быстрее понять тему</h2>
145
<p>Примеры Python с MySQL уже были рассмотрены. К моменту написания собственного кода программер должен изучить оператор select и другие действия в пределах табличек, а также разбираться в принципах функционирования cursor.</p>
145
<p>Примеры Python с MySQL уже были рассмотрены. К моменту написания собственного кода программер должен изучить оператор select и другие действия в пределах табличек, а также разбираться в принципах функционирования cursor.</p>
146
<p>Чтобы быстрее вникнуть в тему, существуют три способа получения информации:</p>
146
<p>Чтобы быстрее вникнуть в тему, существуют три способа получения информации:</p>
147
<ol><li>Обучение в ВУЗе. На информационных направлениях часто изучают рассмотренную тему.</li>
147
<ol><li>Обучение в ВУЗе. На информационных направлениях часто изучают рассмотренную тему.</li>
148
<li>Самообразование. Не самый лучший вариант для тех, кто хочет получить документальное подтверждение знаний. Зато он помогает начинать с нуля и учиться, когда удобно.</li>
148
<li>Самообразование. Не самый лучший вариант для тех, кто хочет получить документальное подтверждение знаний. Зато он помогает начинать с нуля и учиться, когда удобно.</li>
149
<li>Посещение онлайн курсов. Самый верный и надежный прием. Позволяет получить практику и новые полезные знакомства. В конце программы будет выдан электронный сертификат установленного образца.</li>
149
<li>Посещение онлайн курсов. Самый верный и надежный прием. Позволяет получить практику и новые полезные знакомства. В конце программы будет выдан электронный сертификат установленного образца.</li>
150
</ol><p>Все эти методы помогут лучше разобраться в if, where, for row in и других моментах программирования.</p>
150
</ol><p>Все эти методы помогут лучше разобраться в if, where, for row in и других моментах программирования.</p>
151
<a></a><a></a>
151
<a></a><a></a>