Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика по созданию БД.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
556.41 Кб
Скачать
  1. Фильтрация. Логический оператор like

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

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

Метасимволы в операторе LIKE *, ?, #, []

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

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

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

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

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

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

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

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

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

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

SELECT Фамилия, Серия, [Номер Паспорта]

FROM Студенты

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

  1. WHERE Фамилия LIKE К??????” (Киташов Комаров Карелин…)

  2. WHERE Фамилия LIKE *си*” (Сидоренко Васильев … )

  3. WHERE Адрес LIKE *Кравченко*” (г. Москва ул. Кравченко д.4 кв.375)

  1. WHERE [Номер Паспорта] LIKE #####7” (647467 897657 334507…)

  2. WHERE [Номер Паспорта] LIKE *7” (647467 897657 334507…)

  3. WHERE [Номер Паспорта] LIKE #####[38]” (964648 757653 231808…)

  4. WHERE [Номер Паспорта] LIKE ###38#” (646389 576386 318380…)

Что делает данный запрос?

SELECT Фамилия, Серия, [Номер Паспорта]

FROM Студенты

Вар.1 WHERE Серия NOT LIKE ####OR [Номер Паспорта] NOT LIKE ######

Вар.2 WHERE NOT (Серия LIKE ####AND [Номер Паспорта] LIKE ######”)

Фамилия

Серия

Номер Паспорта

КИЙКО

4534

65734

ДЯЧКИН

370

527649

ЛИСИЧКИН

9567

64Ж395

ГРЕБЕНЩИКОВ

57Р2

810,45

  1. Условным оператором iif

Синтаксис:

IIF (Условие, если истина, если ложь)

IIF (Условие, если истина, IIF (Условие, если истина, если ложь))

IIF (Условие, если истина, IIF (Условие, если истина, IIF(….))…)

Ведомость

ID_С

Оценка

ID_Д

1

3

1

1

2

2

1

5

3

2

4

1

2

5

2

2

4

3

3

2

2

3

5

3

4

4

1

10

2

1

10

3

2

10

4

3

Дисциплины

ID

Дисциплина

1

Информатика

2

Линейка

3

Иностранный

Студенты

Фамилия

Дата

Пол

Группа

ID

Васильева

23.11.1998

Ж

103

1

Тюрин

13.09.1997

М

103

2

Паневкина

11.01.1998

Ж

101

3

Пахомов

15.12.1997

М

101

4

Маркова

17.07.1998

Ж

5

Большаков

29.12.1997

М

103

6

Глубоков

10.02.1996

М

101

7

Брызгалов

01.03.1996

М

102

8

Максимов

07.05.1998

М

102

9

Асеева

11.07.1997

Ж

101

10

SELECT Фамилия, Дисциплина, Оценка

FROM (Студенты INNER JOIN Ведомость ON Студенты.ID = Ведомость.ID_C)

INNER JOIN Дисциплины ON Ведомость.ID_Д = Дисциплины.ID

WHERE Группа = 101 AND Пол = ”Ж”

Фамилия

Дисциплина

Оценка

Паневкина

Линейка

2

Паневкина

Иностранный

3

………..

……………………….

…………

Асеева

Информатика

2

Асеева

Линейка

3

Асеева

Иностранный

4

Запрос 1

SELECT Фамилия, Дисциплина, IIF (Оценка=5, “отлично”,

IIF (Оценка=4, “хорошо”,

IIF (Оценка=3, “удов”, “неуд”))) аs Результат

FROM (Студенты INNER JOIN Ведомость ON Студенты.ID = Ведомость.ID_C)

INNER JOIN Дисциплины ON Ведомость.ID_Д = Дисциплины.ID

WHERE Группа = 101 AND Пол = “Ж”

Фамилия

Дисциплина

Результат

Паневкина

Линейка

неуд

Паневкина

Иностранный

удов

………….

…………………

……………

Асеева

Информатика

неуд

Асеева

Линейка

удов

Асеева

Иностранный

хорошо

Запрос 2

SELECT Фамилия, Пол, Оценка

FROM Студенты INNER JOIN Ведомость ON Студенты.ID = Ведомость.ID_C

WHERE (Оценка = 5 AND Пол = “Ж”) OR (Оценка = 2 AND Пол = “М”)

SELECT Фамилия, Пол, Оценка

FROM Студенты INNER JOIN Ведомость ON Студенты.ID = Ведомость.ID_C

WHERE Оценка = IIF (Пол = Ж”, 5, 2)