HTML Diff
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 &lt;module&gt; Import pymysql ImportError: No module named pymysql<p>Для того, чтобы инициализировать библиотеку, потребуется выполнить команду:</p>
82 Traceback (most recent call last): File "test.py", line 3, in &lt;module&gt; 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>