Перейти к основному содержимому
Informatik.uz
Глава 3. Базы данных

Язык SQL: основные запросы

SQL — язык для работы с базами данных. Изучаем команды `SELECT`, `WHERE`, `ORDER BY`, `INSERT`, `UPDATE`, `DELETE` и их использование в Python через `sqlite3`.

Тема 9 из 11Чтение: 2 минОбновлено: 27 октября 2026 г.
Список тем (9 из 11)

SQL (Structured Query Language) — стандартный язык для работы с реляционными базами данных. В SQL пишут не «как», а «что» нужно: вы описываете, каким должен быть результат, а поиск выполняет сама СУБД. Ниже приведены примеры для таблицы «students» (поля id, name, grade, score).

Для чтения данных применяют SELECT: SELECT name, score FROM students возвращает имя и балл всех учеников, а SELECT * FROM students — все поля. Условие задаётся с помощью WHERE: SELECT name FROM students WHERE grade = 11 AND score >= 80. Для сортировки результата пишут ORDER BY score DESC (по убыванию). Есть и агрегатные функции: COUNT(*) — число записей, AVG(score) — среднее, MAX(score) — наибольшее значение.

Команды, изменяющие данные: INSERT INTO students (name, grade, score) VALUES (“Ali”, 11, 90) добавляет новую запись; UPDATE students SET score = 95 WHERE name = “Ali” обновляет существующую; DELETE FROM students WHERE id = 3 удаляет запись. Забыть WHERE в UPDATE и DELETE опасно: команда затронет все записи таблицы. Поэтому такие команды лучше сначала проверить с помощью SELECT.

В Python с базой SQLite работают через стандартный модуль sqlite3: con = sqlite3.connect("school.db"), затем cur = con.execute("SELECT name FROM students") и for row in cur: print(row[0]). После команд, изменяющих данные, вызывают con.commit(), чтобы сохранить изменения. Не подставляйте значения пользователя в запрос обычной строкой: используйте знак ?, как в con.execute("SELECT * FROM students WHERE name = ?", (name,)) — это защищает от SQL-инъекций.

Главное

  • В SQL описывают, каким должен быть результат, а поиск выполняет СУБД.
  • SELECT … FROM … WHERE … ORDER BY … служит для выбора, сортировки и фильтрации данных.
  • Функции COUNT, AVG, MAX дают сводный результат.
  • INSERT, UPDATE, DELETE добавляют, обновляют и удаляют данные; не забывайте WHERE.
  • В Python работают через модуль sqlite3, значения передают через знак ?.

Практические задания

  1. Напишите SQL-запрос к таблице «students»: он должен вывести имена учеников 10 класса с баллом выше 70 в порядке убывания балла.
  2. С помощью sqlite3 создайте в Python базу в памяти (sqlite3.connect(“:memory:”)), создайте таблицу «students», добавьте 3 учеников и вычислите средний балл с помощью AVG(score).
  3. Сравните две команды: UPDATE students SET score = 0 и UPDATE students SET score = 0 WHERE id = 1. Объясните, чем опасна первая, и как можно проверить её перед выполнением.

Вопросы для закрепления

Проверьте себя: сначала подумайте, потом откройте ответ.

  1. 1Для чего нужна часть `WHERE`?
    Она задаёт условие: команда применяется только к записям, которые ему соответствуют.
  2. 2Почему значения пользователя нужно передавать в запрос через знак `?`?
    Так значение не будет воспринято как часть текста запроса, что защищает от SQL-инъекций.

Пройдено тем: 0 из 11

Войти и отметить
Informatika 11-sinf darsligi muqovasi
В учебникеИнформатика — 11 класс