Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL Учебник.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.28 Mб
Скачать

Сортировка

Определение:

Сортировка это расположение данных в определенном порядке.

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

Направление сортировки

Для сортировки в порядке возрастания используется ключевое слово ASC, а для сортировки по убыванию, ключевое слово DESС по умолчанию, сортировка всегда осуществляется в возрастающем порядке.

Сотрудники

Фамилия

Имя

Отдел

Лосев

Петр

3

Бобров

Михаил

3

Гарин

Петр

2

Романов

Андрей

3

Бобров

Алексей

1

Конев

Василий

1

Для таблицы "Сотрудники", применить следующие запросы:

Сортировка по одному столбцу

  1. Отсортировать все строки по фамилии в порядке возрастания.

  2. Отсортировать все строки по номеру отдела в порядке убывания.

Сортировка по нескольким столбцам

  1. Отсортировать все строки по фамилии и отделу в порядке возрастания.

  2. Отсортировать все строки по имени, в порядке возрастания и фамилии, в порядке убывания.

Сортировка по одному столбцу

Запросы: Запрос 1(а) и Запрос 1(б), сортируют по возрастанию и совершенно идентичны по результату. Запрос 2, сортирует по убыванию.

Запрос 1(а)

SELECT Фамилия, Имя, Отдел

FROM Сотрудники

ORDER BY Фамилия ASC

Фамилия

Имя

Отдел

Бобров

Михаил

3

Бобров

Алексей

1

Гарин

Петр

2

Конев

Василий

1

Лосев

Петр

3

Романов

Андрей

3

Запрос 1(б)

SELECT Фамилия, Имя, Отдел

FROM Сотрудники

ORDER BY Фамилия

Фамилия

Имя

Отдел

Бобров

Михаил

3

Лосев

Петр

3

Романов

Андрей

3

Гарин

Петр

2

Бобров

Алексей

1

Конев

Василий

1

Запрос 2

SELECT Фамилия, Имя, Отдел

FROM Сотрудники

ORDER BY Отдел DESС

Сортировка по нескольким столбцам

Для сортировки по нескольким столбцам, необходимо в предложении ORDER BY, перечислить столбцы сортировки и после имени каждого столбца, указать направление его сортировки (ASC,DESC)

Фамилия

Имя

Отдел

Бобров

Алексей

1

Бобров

Михаил

3

Гарин

Петр

2

Конев

Василий

1

Лосев

Петр

3

Романов

Андрей

3

Запрос 3.

SELECT Фамилия, Имя, Отдел

FROM Сотрудники

ORDER BY Фамилия ASC, Отдел ASC

Фамилия

Имя

Отдел

Бобров

Алексей

1

Романов

Андрей

3

Конев

Василий

1

Бобров

Михаил

3

Лосев

Петр

3

Гарин

Петр

2

Запрос 4.

SELECT Фамилия, Имя, Отдел

FROM Сотрудники

ORDER BY Имя ASC,

Фамилия DESC

Предикаты

(лат. praedicatum - сказанное) - выражение, обозначающее какое-то свойство или действие

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

Предикат TOP N

Возвращает N записей, находящихся в начале или в конце диапазона, описанного с помощью предложения ORDER BY.

SELECT TOP 25 Фамилия

FROM Студенты

WHERE [Год Выпуска] = 1994

SELECT TOP 10 Фамилия

FROM Студенты

ORDER BY Балл DESC

Предикат DISTINCT

Исключает записи, которые содержат повторяющиеся значения в выбранных полях.

SELECT DISTINCT Фамилия

FROM Ведомость

Занятие 5

Логический оператор LIKE

Назначение оператора LIKE

Логический оператор LIKE применяется для поиска по шаблону, когда точного совпадения не требуется.

С

Фамилия

Телефон

Клемин

475-35-42

Минаев

357-67-98

Васильев

926-267-33-45

Абрамов

373-67-22

Юдин

397-76-90

Лебедев

916-456-35-33

Коваленко

311-54-77

Смирнов

903-255-29-15

Москвин

926-431-72-97

Романов

433-39-45

Для таблицы "Сотрудники", применить следующие запросы:

  1. Отобрать строки (записи), где фамилия сотрудников начинается на "К".

  2. Отобрать строки, где в номере телефона сотрудника вторая цифра "7".

  3. Отобрать строки, где в номере телефона сотрудника есть "97".

  4. Отобрать строки, где фамилии оканчиваются на "ов", а номер телефона оканчивается на "45".

отрудники

Запрос 1.

SELECT Фамилия, Телефон

FROM Сотрудники

WHERE Фамилия LIKE "К*"

Фамилия

Телефон

Клемин

745-35-42

Коваленко

311-54-77

З

Фамилия

Телефон

Клемин

475-35-42

Абрамов

373-67-22

апрос 2.

SELECT Фамилия, Телефон

FROM Сотрудники

WHERE Телефон LIKE "?7*"

З апрос 3.

SELECT Фамилия, Телефон

FROM Сотрудники

WHERE Телефон LIKE "*97*"

Фамилия

Телефон

Юдин

397-76-90

Москвин

926-431-72-97

З

SELECT Фамилия, Телефон

FROM Сотрудники

WHERE Фамилия LIKE "*ов" AND

Телефон LIKE "*45"

Фамилия

Телефон

Романов

433-39-45

апрос 4.

В приведенных запросах присутствуют некоторые специальные знаки: *,?, есть и другие. Эти специальные знаки называются метасимволами, и используются для задания различного вида шаблонов.

Метасимволы в операторе LIKE

Метасимволы: *, ?, #.

* - на месте этого метасимвола, стоит любое количество, любых символов.

? - на месте этого метасимвола, стоит один, любой символ.

# - на месте этого метасимвола, стоит одна, любая цифра.

Метасимвол []

Метасимвол [] используется для указания набора символов, каждый из которых, должен совпадать с символом, стоящим на месте метасимвола.

[акн] - на месте этого метасимвола, стоит одна из перечисленных букв.

[!акн] - на месте этого метасимвола, не должна стоять ни одна из перечисленных букв.

[а-д] - на месте этого метасимвола, стоит одна буква из указанного диапазона букв.

[358] - на месте этого метасимвола, стоит одна из перечисленных цифр.

[3-7] - на месте этого метасимвола, стоит одна цифра из указанного диапазона цифр.

[!358] - на месте этого метасимвола, не должна стоять ни одна из перечисленных цифр.

Примечание:

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

Следующая таблица содержит примеры использования оператора шаблонов с метасимволами в операторе LIKE.

Шаблон из метасимволов

Варианты, которые могут быть найдены

a*a

aa, aBa, aBBBa

*ab*

abc, AABB, Xab

ab*

abcdefg, abc

a?a

aaa, a3a, aBa

a#a

a0a, a1a, a2a

?[acz]#

dz4, @c8, Sc7

[a-z]

f, p, j

[!a-z]

9, &, %

[!0-9]

A, a, &, ~

a[!b-m]#

An9, az0, a99

С

Фамилия

Телефон

Клемин

475-35-42

Минаев

357-67-98

Васильев

926-267-33-45

Абрамов

373-67-22

Юдин

397\76\90

Лебедев

916-456-35-33

Коваленко

311\54\77

Смирнов

903-255-29-15

Москвин

926-431-72-97

Романов

926-39-45

Для таблицы "Сотрудники", применить следующие запросы:

  1. Отобрать строки, где фамилия сотрудников состоит из 6 символов.

  2. Отобрать строки, где номер телефона состоит из 9 символов и вторая цифра либо "3" либо "1"

  3. Отобрать строки, где номер телефона принадлежит оператору "Мегафон".

  4. Отобрать строки, где вторыми буквами в фамилии не могут быть "о", "и", "а", "е".

  5. Отобрать строки, где предпоследняя цифра телефона либо "3" либо "1", а последняя либо "3" либо "5".

отрудники

Запрос 1.

SELECT Фамилия, Телефон

FROM Сотрудники

WHERE Фамилия LIKE "??????"

Фамилия

Телефон

Клемин

475-35-42

Минаев

357-67-98

Запрос 2

SELECT Телефон

FROM Сотрудники

WHERE Телефон LIKE "#[31]#?##?##"

Телефон

311\54\77

433-39-45

Запрос 3

SELECT Телефон

FROM Сотрудники

WHERE Телефон LIKE "926?###?##?##"

Телефон

926-267-33-45

926-431-72-97

З

Фамилия

Клемин

Абрамов

Юдин

Смирнов

апрос 4

SELECT Фамилия

FROM Сотрудники

WHERE Фамилия LIKE "?[!оиае]*"

З

Телефон

916-456-35-33

903-255-29-15

апрос 5

SELECT Телефон

FROM Сотрудники

WHERE Телефон LIKE "*[31][35]"

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]