Условие для получения среза данных

Условие для получения среза данных

Найдём студента с фамилией Иванов. Для этого нам потребуется определить дополнительное условие в части WHERE:

sqlite>.header on sqlite>.mode column sqlite> SELECT * FROM students WHERE surname = 'Иванов'; id     surname name      ---------- ---------- ---------- 1      Иванов Игорь     sqlite>

 

В результате выполнения запроса мы получили идентификатор пользователя и его имя.

В таблице оценок grades нет фамилий учеников, но есть их идентификаторы (столбец student_id). В таком случае в условии WHERE определяем фильтр на значение student_id = 1. То, что идентификатор ученика Игоря Иванова равен единице, мы узнали из предыдущего запроса к таблице students.

sqlite> SELECT stream_id, grade FROM grades WHERE student_id = 1; stream_id grade ---------- ------------- 1      4.9          2      4.9          3      5   sqlite>

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

Ограничение на вывод количества строк

Если все записи, возвращаемые запросом, нас не интересуют, мы можем ограничить количество строк результата посредством ключевого слова LIMIT. Например, нам надо узнать, закончил ли ученик хотя бы один из курсов. В этом случае в конце команды определяется ограничение LIMIT 1:

sqlite> SELECT stream_id, grade FROM grades WHERE student_id = 1 LIMIT 1; stream_id grade ---------- ------------- 1      4.9   sqlite>

 

Сортировка результатов

Мы можем отсортировать вывод по одному или нескольким столбцам в прямом и обратном порядке, используя инструкцию ORDER BY. Для сортировки по возрастанию значений надо задать ASC, для сортировки в обратном порядке — DESC. В примере ниже отсортируем содержимое таблицы оценок по значению средней оценки в порядке возрастания значений:

sqlite> SELECT * FROM grades ORDER BY grade ASC; student_id stream_id grade ---------- ---------- ------------- 1      1      4.9          1      2      4.9          2      1      5            1      3      5            sqlite>

 

Сортировка по возрастанию значений применяется по умолчанию, поэтому ASC указывать необязательно:

sqlite> SELECT * FROM grades ORDER BY grade; student_id stream_id grade ---------- ---------- ------------- 1      1      4.9          1      2      4.9          2      1      5            1      3      5            sqlite>

 

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

sqlite> SELECT * FROM grades ORDER BY grade DESC; student_id stream_id grade ---------- ---------- ------------- 2      1      5            1      3      5            1      1      4.9          1      2      4.9          sqlite>

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: