Введение
В этой лабораторной работе вы узнаете, как запрашивать и фильтровать данные в базе данных SQLite. Эта практическая работа предназначена для начинающих и познакомит вас с основными техниками SQL. Вы научитесь фильтровать данные с помощью предложения WHERE, сопоставлять шаблоны с помощью LIKE, сортировать результаты с помощью ORDER BY и ограничивать количество результатов с помощью LIMIT. К концу этой лабораторной работы вы сможете эффективно извлекать определенные данные из базы данных.
Подключение к SQLite и просмотр данных
На этом первом шаге вы подключитесь к базе данных SQLite под названием employees.db и просмотрите данные в таблице staff. Это позволит вам понять, с какими данными вы будете работать.
Откройте терминал в среде LabEx VM (виртуальной машины). Каталог по умолчанию:
/home/labex/project.Подключитесь к базе данных
employees.dbс помощью утилиты командной строкиsqlite3:sqlite3 employees.dbЭта команда открывает оболочку SQLite, обозначенную приглашением
sqlite>.Просмотрите данные в таблице
staff. Выполните следующую SQL-команду:SELECT * FROM staff;Эта команда выбирает все столбцы (
*) из таблицыstaffи отображает результаты. Вы должны увидеть следующий вывод:1|Alice|HR 2|Bob|IT 3|Charlie|HR 4|David|IT 5|Eve|Marketing 6|Frank|ITЭтот вывод показывает
id,name(имя) иdepartment(отдел) для каждого сотрудника в таблицеstaff.Чтобы выйти из оболочки SQLite, введите:
.quitВАЖНО: Убедитесь, что вы выполнили команду
.quitперед тем, как нажать кнопку "Continue" ("Продолжить"). В противном случае этот шаг не может быть проверен, поскольку история sqlite не будет записана.
Фильтрация данных с помощью предложения WHERE
Предложение WHERE позволяет фильтровать данные на основе определенных условий. Вы можете использовать его для извлечения только тех строк, которые соответствуют вашим критериям.
Подключитесь к базе данных
employees.db:sqlite3 employees.dbЧтобы получить только сотрудников из отдела
HR, используйте следующую SQL-команду:SELECT * FROM staff WHERE department = 'HR';Эта команда выбирает все столбцы из таблицы
staff, но включает только строки, в которых столбецdepartmentравенHR. Результат будет следующим:1|Alice|HR 3|Charlie|HRТеперь давайте найдем сотрудников с
idбольше 3:SELECT * FROM staff WHERE id > 3;Эта команда выбирает все столбцы из таблицы
staff, но включает только строки, в которых столбецidбольше 3. Результат будет следующим:4|David|IT 5|Eve|Marketing 6|Frank|ITВыйдите из оболочки SQLite:
.quitВАЖНО: Убедитесь, что вы выполнили команду
.quitперед тем, как нажать кнопку "Continue" ("Продолжить"). В противном случае этот шаг не может быть проверен, поскольку история sqlite не будет записана.
Сопоставление с образцом с помощью оператора LIKE
Оператор LIKE используется для сопоставления с шаблоном (pattern matching). Он полезен, когда вы хотите найти данные, которые соответствуют определенному шаблону, а не точному значению. Вы будете использовать подстановочные знаки (wildcards), такие как % (ноль или более символов) и _ (один символ).
Подключитесь к базе данных
employees.db:sqlite3 employees.dbЧтобы найти сотрудников, чьи имена начинаются с
A, используйте следующую команду:SELECT * FROM staff WHERE name LIKE 'A%';Эта команда выбирает все столбцы из таблицы
staff, но включает только строки, в которых столбецnameначинается сA. Подстановочный знак%соответствует нулю или более символам. Результат будет следующим:1|Alice|HRЧтобы найти сотрудников, чьи имена содержат букву
i, используйте:SELECT * FROM staff WHERE name LIKE '%i%';Эта команда выбирает все столбцы из таблицы
staff, но включает только строки, в которых столбецnameсодержит буквуi. Результат будет следующим:1|Alice|HR 3|Charlie|HR 4|David|ITВыйдите из оболочки SQLite:
.quit
Сортировка данных с помощью предложения ORDER BY
Предложение ORDER BY позволяет сортировать результаты вашего запроса. Вы можете сортировать по возрастанию (по умолчанию) или по убыванию.
Подключитесь к базе данных
employees.db:sqlite3 employees.dbЧтобы отсортировать данные в алфавитном порядке по
nameпо возрастанию, используйте:SELECT * FROM staff ORDER BY name;Эта команда выбирает все столбцы из таблицы
staffи сортирует результаты по столбцуnameпо возрастанию (от A до Z). Результат будет следующим:1|Alice|HR 2|Bob|IT 3|Charlie|HR 4|David|IT 5|Eve|Marketing 6|Frank|ITЧтобы отсортировать по
nameпо убыванию, используйте:SELECT * FROM staff ORDER BY name DESC;Эта команда выбирает все столбцы из таблицы
staffи сортирует результаты по столбцуnameпо убыванию (от Z до A). Результат будет следующим:6|Frank|IT 5|Eve|Marketing 4|David|IT 3|Charlie|HR 2|Bob|IT 1|Alice|HRВыйдите из оболочки SQLite:
.quit
Ограничение результатов с помощью предложения LIMIT
Предложение LIMIT ограничивает количество строк, возвращаемых запросом. Это полезно, когда вам нужна только часть данных (subset of the data).
Подключитесь к базе данных
employees.db:sqlite3 employees.dbЧтобы получить только первые 3 строки из таблицы
staff, используйте:SELECT * FROM staff LIMIT 3;Эта команда выбирает все столбцы из таблицы
staffи ограничивает результаты первыми 3 строками. Результат будет следующим:1|Alice|HR 2|Bob|IT 3|Charlie|HRОбъедините
LIMITсORDER BY, чтобы получить первых 2 сотрудников, отсортированных поnameв порядке убывания:SELECT * FROM staff ORDER BY name DESC LIMIT 2;Эта команда выбирает все столбцы из таблицы
staff, сортирует результаты по столбцуnameв порядке убывания и ограничивает результаты первыми 2 строками. Результат будет следующим:6|Frank|IT 5|Eve|MarketingВыйдите из оболочки SQLite:
.quit
Резюме
В этой лабораторной работе вы узнали, как запрашивать и фильтровать данные в базе данных SQLite. Вы подключились к базе данных, фильтровали данные с помощью предложения WHERE, сопоставляли шаблоны с помощью оператора LIKE, сортировали результаты с помощью ORDER BY и ограничивали количество возвращаемых строк с помощью LIMIT. Эти методы предоставляют вам фундаментальные навыки для эффективного извлечения и организации данных.


