Обновление данных в таблице SQLite: простые запросы и их использование

Базы данных

Как обновить данные в таблице SQLite с помощью простых запросов

Базы данных являются одним из наиболее востребованных инструментов для организации данных в приложениях. SQLite является одним из наиболее распространенных и удобных инструментов для создания баз данных. Он имеет небольшой размер, легко интегрируется в приложения и поддерживает большинство типов данных, включая числа, строки, даты и т.д.

Один из наиболее распространенных запросов в SQLite – это обновление данных в таблице. Это может быть полезно при изменении информации в базе данных или при редактировании уже существующих записей. Существует несколько способов обновления данных в SQLite, но в этой статье мы рассмотрим простые запросы.

Чтобы обновить данные в таблице SQLite, необходимо выполнить запрос UPDATE. Этот запрос обновляет одну или несколько записей в таблице, в зависимости от условия. Обратите внимание, что операция обновления может повлиять на несколько строк, поэтому всегда лучше указать условие для того, чтобы обновлять только нужные записи.

Содержание
  1. Как обновить данные в таблице SQLite
  2. Основные понятия
  3. SQL
  4. Таблицы в SQLite
  5. Обновление данных в SQLite
  6. Простые запросы для обновления данных
  7. WHERE – ключевое слово для обновления конкретных данных
  8. UPDATE – как изменить данные в SQLite
  9. Примеры запросов для обновления данных в SQLite
  10. Изменение данных в строке с определенным ID
  11. Изменение данных в нескольких строках
  12. Изменение данных, используя подзапросы
  13. Дополнительные возможности обновления данных в SQLite
  14. ON CONFLICT – обновление данных в случае конфликта
  15. TRIGGER – автоматическое обновление данных при определенных условиях
  16. Пакетное обновление данных
  17. Вопрос-ответ:
  18. Как обновить данные в таблице SQLite?
  19. Можно ли обновить данные в таблице SQLite без использования ключевого слова WHERE
  20. Как обновить значение только для определенной строки в таблице SQLite?
  21. Можно ли обновить несколько полей одновременно в таблице SQLite?
  22. Можно ли обновить только одно поле для всех строк в таблице SQLite?
  23. Как обновить данные с использованием подзапроса в таблице SQLite?
  24. Видео:
  25. 1. База SQLite – Установка, создание таблицы, набор SQL-запросов

Как обновить данные в таблице SQLite

Как обновить данные в таблице SQLite

Когда в SQLite возникает необходимость в обновлении данных в таблице, можно использовать простой запрос SQL. Для этого требуется знать название таблицы, поле для обновления и какие данные нужно внести в таблицу.

Для обновления данных существует ключевое слово SQL UPDATE. Оно позволяет обновлять содержимое таблицы. При этом можно обновить сразу несколько полей в одной строке.

Для того чтобы выполнить обновление, следует указать название таблицы, новые значения, которыми нужно заменить старые, и условие, по которому определяются строки, которые нужно обновить. Например:

UPDATE название_таблицы SET название_столбца = значение WHERE условие;

Обновление может включать в себя изменение одного или нескольких полей. Если находится несколько строк, которые соответствуют условию, то они будут обновлены одновременно. Если уже есть данные в ячейках, их можно заменить на новые, указав новые значения при выполнении запроса.

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

Основные понятия

SQLite – это легковесный реляционный базы данных, который помогает хранить приложения в компактном и мобильном формате. Он доступен для использования исходного кода и не требует сервера для работы.

Таблица – это основная структура для хранения данных в SQLite. Она состоит из столбцов и строк, где каждый столбец отображает конкретный тип данных, например, числа или строки.

Запрос – это команда для извлечения данных из базы данных. Он может быть написан на SQL (Structured Query Language) или на диалекте SQL, таком как SQLite.

Обновление – это операция для изменения данных в таблице. Оно может быть использовано для изменения значения в определенном столбце или для обновления нескольких строк в таблице.

SET – это оператор, используемый в запросе UPDATE для указания нового значения для столбца. Он указывает имя столбца и новое значение. Например, SET age = 25 обновит значение столбца age в таблице на 25.

SQL

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

SQL содержит основные команды для работы с базой данных: создание таблиц, добавление и удаление записей, выборка данных, изменение и обновление записей в таблице, изменение структуры таблицы и многое другое.

Команды SQL выполняются либо непосредственно в СУБД, либо через средства Интернета, как, например, при работе с веб-приложениями, где пользователь взаимодействует с базой данных через веб-сайт.

Доступ к базе данных может быть получен непосредственно с помощью программ на языках программирования (например, на Java, C#), используя специальные библиотеки для работы с базой данных.

SQL является одним из основных инструментов для работы с базами данных, и большинство современных СУБД поддерживают его.

Для того, чтобы научиться работать с SQL, необходимо изучить его основные команды, структуры запросов, а также владеть навыками написания запросов на конкретный язык конкретной СУБД.

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

Таблицы в SQLite

SQLite – это простая в управлении, легковесная и быстрая СУБД, основные преимущества которой заключаются в ее гибкости, портируемости и минимальных требованиях к ресурсам системы. Основным элементом модели данных SQLite являются таблицы, которые могут содержать наборы строк (записей) с определенными полями (столбцами). Как и любая другая РСУБД, SQLite использует язык SQL для работы с таблицами.

Создание таблиц в SQLite заключается в выполнении запроса CREATE TABLE, в котором указываются названия и типы полей. Кроме того, в запросе CREATE TABLE можно указать различные ограничения целостности данных, например, ограничения на ввод NULL-значений или уникальности значений в определенном поле. В SQLite поддерживаются следующие типы данных: INTEGER, REAL, TEXT и BLOB.

Чтение данных из таблицы осуществляется с помощью запросов SELECT, которые позволяют выполнить выборку нужных полей и строк на основании определенных критериев фильтрации и сортировки. Обновление данных в таблице происходит с помощью запроса UPDATE, который позволяет изменить значения полей в строках, соответствующих определенным условиям фильтрации. Удаление данных из таблицы выполняется с помощью запроса DELETE, который удаляет строки, удовлетворяющие определенным критериям.

Читать:  Docker trust inspect: как узнать, насколько можно доверять контейнеру

В любой момент можно создавать новые таблицы, изменять структуру и удалять существующие таблицы в SQLite. Более того, при работе с SQLite может быть созданы “временные таблицы” (temporary table), которые существуют только во время выполнения программы и автоматически удаляются при ее завершении.

Обновление данных в SQLite

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

Для обновления данных нужно выполнить запрос типа UPDATE. В этом запросе нужно указать имя таблицы, которую нужно обновить, и новые значения. Также нужно указать условие изменения – какие строки нужно изменить.

Например, если мы хотим обновить имя пользователя с id=1 на новое значение “Иван”, мы можем использовать такой запрос:

UPDATE users SET name="Иван" WHERE id=1;

Этот запрос обновит имя пользователя с id=1 на значение “Иван”. Если нужно обновить более одного поля в таблице, то в запросе нужно указать все необходимые поля и их значения.

Таким образом, обновление данных в таблице SQLite – это простой процесс, который можно выполнить с помощью запроса типа UPDATE. Важно правильно указать имя таблицы, поля и условие изменения для успешного выполнения запроса.

Простые запросы для обновления данных

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

Самый простой способ обновления данных – это использование запроса UPDATE. Он позволяет изменить значения в одной или нескольких строках таблицы. Пример запроса:

UPDATE table_name SET column1 = new_value1, column2 = new_value2 WHERE condition;

Здесь мы указываем название таблицы, которую необходимо обновить, название столбцов и новые значения, которые должны быть записаны в эти столбцы. Также указываем условия, которые должны быть выполнены для обновления строк таблицы.

Если требуется обновить только одну строку, то можно использовать оператор LIMIT:

UPDATE table_name SET column1 = new_value1 WHERE condition LIMIT 1;

Если необходимо обновить несколько столбцов, то можно указать их в списке через запятую:

UPDATE table_name SET column1 = new_value1, column2 = new_value2 WHERE condition;

Также можно использовать подзапросы для обновления данных по сложным условиям.

Рекомендуется всегда делать копию базы данных перед проведением массовых операций обновления данных.

WHERE – ключевое слово для обновления конкретных данных

Для обновления конкретных данных в таблице SQLite нужно использовать ключевое слово WHERE. Оно позволяет указать условие, при котором необходимо произвести обновление данных.

Для примера рассмотрим таблицу пользователей со следующими данными:

ID Имя Фамилия Адрес
1 Иван Иванов ул. Ленина, д. 10
2 Петр Петров ул. Сталина, д. 5

Допустим, нам необходимо обновить адрес пользователя с ID 1. Для этого мы можем использовать следующий запрос:

  • UPDATE Пользователи SET Адрес = 'ул. Пушкина, д. 15' WHERE ID = 1;

В этом запросе мы указываем таблицу, которую необходимо обновить, столбец, который нужно изменить, и новое значение. Используя ключевое слово WHERE, мы указываем условие, при котором нужно произвести обновление данных – в данном случае ID равно 1.

Использование ключевого слова WHERE позволяет избежать ошибок при обновлении данных, так как позволяет указать конкретный элемент таблицы.

UPDATE – как изменить данные в SQLite

UPDATE - как изменить данные в SQLite

Команда UPDATE в SQLite используется для изменения данных в таблице. Для того чтобы выполнить запрос на изменение данных необходимо указать имя таблицы, данные которые нужно изменить, а также условие, по которому будет определена строка, которую нужно изменить. Формат запроса UPDATE следующий:

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

Где:

  • table_name – имя таблицы, в которой нужно изменить данные;
  • column1 = value1, column2 = value2 – столбцы и их новые значения;
  • WHERE condition – условие, по которому определяются строки, в которых нужно изменить данные.

Пример:

UPDATE users SET age = 25 WHERE name = 'John';

Этот запрос изменит возраст пользователя с именем John на 25 в таблице users.

Не забывайте, что при изменении данных в столбце с PRIMARY KEY значения не могут дублироваться. Также, обязательно делайте резервное копирование данных перед изменением, чтобы избежать потери важной информации.

Примеры запросов для обновления данных в SQLite

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

Пример 1:

Чтобы обновить данные в таблице SQLite, можно использовать запрос UPDATE. Например, если вы хотите изменить имя пользователя с ID 1, вы можете воспользоваться следующим запросом:

UPDATE users SET name='Новое имя' WHERE id=1;

В этом запросе мы указываем таблицу, в которой нужно провести изменение (users), а также новое имя и ID пользователя, которого нужно обновить.

Пример 2:

Также можно использовать подзапросы для обновления данных в SQLite. Например, если вы хотите обновить все записи в таблице orders, где сумма заказа больше 1000, вы можете использовать следующий запрос:

UPDATE orders SET status='completed' WHERE total > (SELECT AVG(total) FROM orders);

В этом запросе мы указываем таблицу, которую нужно обновить (orders), столбец, который нужно обновить (status) и условие, при котором нужно производить обновление (total больше среднего значения сумм всех заказов).

Пример 3:

Также можно использовать функцию REPLACE для обновления данных в SQLite. Например, если вы хотите заменить одно слово на другое в столбце, вы можете использовать следующий запрос:

UPDATE articles SET content = REPLACE(content, 'старое слово', 'новое слово')

В этом запросе мы указываем таблицу (articles), столбец, в котором нужно произвести замену (content), а также старое слово, которое нужно заменить на новое.

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

Изменение данных в строке с определенным ID

Для изменения данных в строке с определенным ID в таблице SQLite необходимо использовать команду UPDATE. Эта команда позволяет обновлять данные в отдельных записях таблицы.

Прежде чем использовать команду UPDATE, необходимо определить, какая строка в таблице должна быть изменена. Делается это с помощью оператора WHERE, который позволяет выбрать только те строки, которые соответствуют определенному условию.

Для изменения данных в строке с определенным ID нужно использовать следующий запрос:

UPDATE table_name SET column1 = value1, column2 = value2 WHERE id = specific_id;

В этом запросе:

– table_name – имя таблицы, в которой необходимо производить изменения;

– column1 и column2 – имена столбцов, которые нужно обновить;

– value1 и value2 – новые значения для соответствующих столбцов;

– id – имя столбца с ID, по которому будет произведен поиск;

– specific_id – значение ID, которое нужно найти и изменить.

Важно убедиться, что значение ID указано корректно и соответствует нужной строке в таблице. Иначе можно нежелательно изменить данные в других строках.

Также не забудьте про команду COMMIT, которая сохранит изменения в базе данных SQLite.

Использование команды UPDATE позволяет очень удобно и быстро изменять данные в отдельных строках таблицы. Это незаменимый инструмент для управления хранящимися в базе данных данными.

Изменение данных в нескольких строках

Для изменения данных в нескольких строках в SQLite используется оператор UPDATE с условием WHERE. Это позволяет обновлять данные в определенных строках, удовлетворяющих определенным условиям.

Например, вы можете изменить данные во всех строках таблицы “users”, где поле “age” больше 30.

UPDATE users SET name = 'Новое имя', age = 35 WHERE age > 30;

Для изменения данных в нескольких строках необходимо задать одинаковые значения для всех обновляемых строк. Если вы хотите изменить только определенные поля, оставьте остальные поля без изменений.

Также можно изменить данные в нескольких таблицах с помощью оператора JOIN. Например, вы можете объединить две таблицы “users” и “orders” и изменить данные в поле “order_date” таблицы “orders”, где значение поля “user_id” равно 10.

UPDATE orders

JOIN users ON orders.user_id = users.id

SET order_date = '2021-01-01'

WHERE users.id = 10;

Обновление данных в нескольких строках может быть полезным при работе с большими объемами данных. Это позволяет обновлять данные более эффективно и быстро.

Изменение данных, используя подзапросы

Для изменения данных в SQLite можно использовать не только простые запросы, но и первичные запросы, так называемые подзапросы. Этот метод позволяет сделать изменения данных более точными и точечными.

Подзапросы могут быть использованы для получения данных из одной таблицы и использования их в другой таблице для выполнения операции обновления. Кроме того, могут быть использованы для изменения данных в определенных строках таблицы, которые удовлетворяют условиям, определенным запросом.

Пример подзапроса для изменения данных таблицы:

UPDATE таблица_A SET поле_1 = (SELECT поле_2 FROM таблица_B WHERE условие) WHERE условие;

В этом примере мы берем значение поля_2 из таблицы_B, в которой удовлетворяется условие, и используем его для обновления поля_1 в таблице_A, которая также удовлетворяет условию.

Использование подзапросов в SQLite для изменения данных может быть очень удобным и эффективным методом для обработки больших объемов данных или для выполнения более точных операций обновления в таблице.

Дополнительные возможности обновления данных в SQLite

Одной из дополнительных возможностей обновления данных в SQLite является использование оператора REPLACE. Он позволяет не только изменять значения существующих строк, но и добавлять новые строки при отсутствии соответствующей записи. Единственным условием для использования оператора REPLACE является наличие уникального ключа в таблице.

Другой способ обновления данных в SQLite – использование вложенных подзапросов. В этом случае к запросу на обновление присоединяются подзапросы, которые в свою очередь выбирают данные из других таблиц. Таким образом, можно обновлять данные, используя информацию из нескольких разных таблиц.

Также, можно использовать запрос UPDATE с оператором JOIN. Этот способ позволяет объединять несколько таблиц по определенному условию и обновлять данные в одной или нескольких таблицах. Оператор JOIN может быть применен как к таблицам внутри одной базы данных, так и к таблицам, расположенным на разных серверах.

Кроме того, в SQLite есть возможность использовать триггеры. Триггеры позволяют автоматически выполнять определенные действия при выполнении определенных операций, в том числе при обновлении данных в таблице. Это может быть полезным, например, для автоматического обновления статистики или сведениям в таблицах, связанных с данной таблицей.

Итак, SQLite предоставляет широкий спектр возможностей для обновления данных в таблице, благодаря которым можно легко и удобно изменять данные, используя различные методы и операторы.

ON CONFLICT – обновление данных в случае конфликта

ON CONFLICT – это оператор, который позволяет задать действие, которое необходимо выполнить при возникновении конфликта в процессе добавления данных в таблицу SQLite. Например, если в таблицу уже были добавлены данные с таким же ключом, что и новые данные. В таком случае возникает конфликт, и ON CONFLICT позволяет обработать его.

Оператор ON CONFLICT может быть использован совместно с командами INSERT и UPDATE. При использовании с INSERT он позволяет выполнить определенное действие, если вставляемая строка содержит уникальный ключ, который уже есть в таблице. При использовании с UPDATE он позволяет выполнить действие, если запись, которую нужно обновить, уже удалена (или не существует).

Существует несколько способов обработки конфликта с помощью ON CONFLICT: REPLACE, IGNORE, ABORT, ROLLBACK, FAIL. Самый распространенный из них – REPLACE. Он заменяет существующую строку новой строкой. Также можно использовать ABORT, который отменяет операцию вставки, если ключ уже существует, или FAIL, который генерирует ошибку.

Для более детального понимания работы оператора ON CONFLICT можно рассмотреть пример использования. Например, наша таблица содержит информацию о студентах в колонках id, имя name и возраст age. Если мы хотим добавить новую запись, но у нас уже есть запись со значением id=1, мы можем использовать следующий запрос:

INSERT OR REPLACE INTO students (id, name, age) VALUES (1, ‘Алексей’, 19);

В этом случае, если запись с id=1 уже существует, то она будет заменена на новую запись с id=1 и новыми значениями name и age. Если же запись с id=1 еще не существует, то новая запись будет добавлена без проблем.

Таким образом, оператор ON CONFLICT позволяет гибко управлять обновлением данных в таблице SQLite, предотвращая возможные ошибки и конфликты в процессе работы с данными.

TRIGGER – автоматическое обновление данных при определенных условиях

TRIGGER (триггер) – это специальная процедура в SQL, которая автоматически вызывается при определенных событиях, таких как INSERT, UPDATE и DELETE в таблице. Триггеры позволяют автоматически обновлять данные в таблице при определенных условиях.

Наиболее распространенным типом триггеров является AFTER UPDATE, который вызывается после обновления строки в таблице. Также существуют триггеры BEFORE UPDATE, которые вызываются перед обновлением строки.

Например, предположим, что у нас есть таблица “users” с полями “id”, “name”, “email” и “phone”. Мы хотим, чтобы при обновлении электронной почты пользователя, его телефон автоматически обновлялся в зависимости от новой электронной почты.

Для этого мы можем создать триггер AFTER UPDATE, который будет вызываться после обновления таблицы “users”. Этот триггер будет проверять, было ли обновлено поле “email”, и если да, то обновлять поле “phone” в соответствии с новым значением электронной почты.

CREATE TRIGGER update_phone AFTER UPDATE ON users

BEGIN

IF NEW.email <> OLD.email THEN

UPDATE users SET phone = ‘новый телефон’ WHERE email = NEW.email;

END IF;

END;

Таким образом, при обновлении электронной почты пользователя, триггер автоматически обновит его телефон в таблице “users”.

Триггеры являются мощным инструментом в SQL, и их можно использовать для автоматического обновления данных при определенных условиях, что позволяет сократить количество кода и упростить процесс разработки.

Пакетное обновление данных

При работе с большим объёмом данных в таблице SQLite может возникнуть необходимость обновить множество записей за один раз. В таких случаях рекомендуется использовать пакетное обновление данных.

Для пакетного обновления данных необходимо сформировать запрос, в котором указать новые значения для обновления, а также условия для выбора нужных записей для обновления. В качестве условий можно использовать операторы сравнения, логические операторы и ключевое слово LIKE для поиска строк, подходящих под заданный шаблон.

Пакетное обновление данных может быть осуществлено с помощью запроса UPDATE с условием WHERE, аналогично одиночному обновлению данных. Однако вместо одной строки, указанной в условии WHERE, необходимо передать несколько строк через оператор IN, разделенные запятой. Например:

UPDATE users SET name = 'John' WHERE id IN (1, 2, 3)

Этот запрос изменит имя на ‘John’ для пользователей с id 1, 2 и 3.

Если требуется обновить большой объём записей, то возможно использование временной таблицы, в которую будут записаны значения для обновления. Создание временной таблицы описывается запросом CREATE TABLE AS SELECT, а значения для обновления могут быть загружены через оператор INSERT INTO. Далее следует запрос UPDATE с сопоставлением временной таблицы и таблицы, которую необходимо обновить:

CREATE TEMP TABLE temp_users AS SELECT id FROM users WHERE age < 25;

INSERT INTO temp_users (name) VALUES ('John');

UPDATE users SET name = 'John' WHERE id IN (SELECT id FROM temp_users);

Этот запрос создаст временную таблицу temp_users с id пользователей, у которых возраст меньше 25. Далее во временную таблицу будет добавлена новая запись для обновления со значением имени ‘John’. В заключении запроса будет выполнено обновление имени на ‘John’ для пользователей, id которых содержатся во временной таблице.

Таким образом, пакетное обновление данных в таблице SQLite позволяет быстро и удобно обновить большой объём записей с помощью одного запроса.

Вопрос-ответ:

Как обновить данные в таблице SQLite?

Для обновления данных в таблице SQLite необходимо использовать запрос SQL с ключевым словом UPDATE. Пример: UPDATE название_таблицы SET поле1=значение1, поле2=значение2 WHERE условие. В данном примере обновляются значения полей “поле1” и “поле2” таблицы “название_таблицы” на “значение1” и “значение2” соответственно, при соблюдении условия, заданного после ключевого слова WHERE.

Можно ли обновить данные в таблице SQLite без использования ключевого слова WHERE

Нет, обновление данных в таблице SQLite без использования ключевого слова WHERE невозможно, так как это приведет к изменению всех записей в таблице. Даже если целью является изменение всех записей, необходимо применять ключевое слово на пустом условии WHERE, например: UPDATE название_таблицы SET поле1=значение1 WHERE 1=1. Такая запись обновит все строки таблицы “название_таблицы” значениями “значение1” в поле “поле1”.

Как обновить значение только для определенной строки в таблице SQLite?

Чтобы обновить значение только для определенной строки в таблице SQLite, нужно использовать ключевое слово WHERE, которое определит, какую строку нужно изменить. Пример: UPDATE название_таблицы SET поле1=значение1 WHERE id=1. В данном примере обновляется значение поля “поле1” таблицы “название_таблицы” для строки, у которой значение столбца “id” равно 1.

Можно ли обновить несколько полей одновременно в таблице SQLite?

Да, можно обновить несколько полей одновременно в таблице SQLite, используя соответствующий запрос UPDATE. Пример: UPDATE название_таблицы SET поле1=значение1, поле2=значение2 WHERE условие. В данном примере обновляются значения полей “поле1” и “поле2” таблицы “название_таблицы” на “значение1” и “значение2” соответственно, при соблюдении условия, заданного после ключевого слова WHERE.

Можно ли обновить только одно поле для всех строк в таблице SQLite?

Да, можно обновить только одно поле для всех строк в таблице SQLite, задав пустое условие WHERE. Пример: UPDATE название_таблицы SET поле1=значение1. В данном примере обновится значение поля “поле1” для всех строк таблицы “название_таблицы” на “значение1”.

Как обновить данные с использованием подзапроса в таблице SQLite?

Для обновления данных с использованием подзапроса в таблице SQLite, можно использовать следующий запрос SQL: UPDATE название_таблицы SET поле1=(SELECT поле2 FROM другая_таблица WHERE условие) WHERE условие2. В данном примере обновляется значение поля “поле1” таблицы “название_таблицы” значением поля “поле2” из таблицы “другая_таблица”, когда условия WHERE для каждого запроса соблюдаются.

Видео:

1. База SQLite – Установка, создание таблицы, набор SQL-запросов

1. База SQLite – Установка, создание таблицы, набор SQL-запросов by Евгений Волосатов 6 years ago 14 minutes, 46 seconds 36,096 views

Оцените статью
Программирование на Python