Методические указания по их использованию. Пособие содержит большое количество примеров на использование операторов sql, которые могут быть полезны как на этапе освоения материала, так и выступать в качестве вопросов для самопроверки



Download 441,57 Kb.
bet16/71
Sana15.01.2023
Hajmi441,57 Kb.
#899634
TuriМетодические указания
1   ...   12   13   14   15   16   17   18   19   ...   71
Bog'liq
Методичка SQL(14) (оптимизация)

ID_блюда

Блюдо

Вид

Основа

Вес

Труд

1

Салат летний

1

Овощи

200

3

3

Салат витаминный

1

Овощи

200

4

16

Драчена

3

Яйца

180

4

17

Морковь с рисом

3

Овощи

260

3

19

Омлет с луком

3

Яйца

200

5

20

Каша рисовая

3

Крупа

210

4

21

Пудинг рисовый

3

Крупа

160

6

23

Помидоры с луком

3

Овощи

260

4

Рассмотренная форма IN является в действительности просто краткой записью последовательности отдельных сравнений, соединенных операторами OR. Предыдущее предложение эквивалентно такому:


SELECT *
FROM Блюда
WHERE Основа=’Яйца’ OR Основа=’Крупа’ OR Основа=’Овощи’;

3.2.2.5. Использование LIKE.


LIKE определяет, совпадает ли указанная символьная строка с заданным шаблоном. Шаблон может включать обычные символы и символы-шаблоны. Во время сравнения с шаблоном необходимо, чтобы его обычные символы в точности совпадали с символами, указанными в строке. Использование символов-шаблонов с оператором LIKE предоставляет больше возможностей, чем использование операторов сравнения строк = и < >.
Синтаксис:
выражение [NOT] LIKE строка_шаблон [ESCAPE esc_символ]
Символы строки_ шаблона интерпретируются следующим образом:

  • символ _ (подчеркивание) – заменяет любой одиночный символ,

  • символ % (процент) – заменяет любую последовательность из N символов (где N может быть нулем),

  • все другие символы означают просто сами себя.

  • [] – любой одиночный символ внутри диапазона([a-f]) или набора [abcdf].

  • [^]- любой одиночный символ, не принадлежащий диапазону ([^a-f]) или набору [^abcdf].

Пример 9.



Результат




Блюдо

Салат летний

Салат мясной

Салат витаминный

Салат рыбный
Выдать перечень салатов.
SELECT Блюдо
FROM Блюда
WHERE Блюдо LIKE 'Салат%';

В приведенном примере SELECT будет осуществлять выборку записей из таблицы Блюда, для которых значение в столбце Блюдо начинается сочетанием 'Салат' и содержит любую последовательность из нуля или более символов, следующих за сочетанием 'Салат'. Если бы среди блюд были "Луковый салат", "Фруктовый салат" и т.п., то они не были бы найдены. Для их отыскания надо изменить фразу WHERE:


WHERE Блюдо LIKE '%салат%'
(при отсутствии различий между малыми и большими буквами (такую настройку допускают некоторые СУБД))
А что делать, если необходимо искать знак процента или знак подчеркивания в строке? В LIKE предикате, вы можете определить любой одиночный символ как символ ESCAPE. Символ ESCAPE используется сразу перед процентом (подчеркиванием) в предикате, и означает, что процент (подчеркивание) будет интерпретироваться как обычный символ, а не как служебный. Например, мы могли бы найти все блюда, где присутствует символ подчеркивания, следующим образом:
SELECT *
FROM Блюда
WHERE Блюдо LIKE '%/_%' ESCAPE '/';
Данное предложение WHERE определяет '/' как символ ESCAPE. Символ ESCAPE должен быть одиночным символом и применяться только к одиночному символу сразу после него.
В примере выше, символ % начала и символ % окончания обрабатываются как служебные символы; только подчеркивание предоставлено само себе.

3.2.2.6. Выборка с упорядочением.


Синтаксис:
ORDER BY {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]
[, {[таблица.]столбец | номер_элемента_SELECT } [ [ASC] | DESC] ] ...]
Простейший вариант этой фразы - упорядочение строк результата по значению одного из столбцов с указанием порядка (ASC возрастание (ASCending)(по умолчанию) или убывания DESC (DESCending)) сортировки.
Пример 10.
Выдать перечень продуктов и содержание в них основных веществ в порядке убывания содержания белка.

Результат










Продукт

Белки

Жиры

Углеводы

Судак

190

80

NULL

Говядина

189

124

NULL

Творог

167

90

13

Яйца

127

115

7












Яблоки

4

NULL

113
SELECT Продукт, Белки,
Жиры, Углеводы
FROM Продукты
ORDER BY Белки DESC;

При включении в список ORDER BY нескольких столбцов, СУБД сортирует строки результата по значениям первого столбца списка, пока не появится несколько строк с одинаковыми значениями данных в этом столбце. Такие строки сортируются по значениям следующего столбца из списка ORDER BY и т.д.


Например, выдать содержимое таблицы Блюда, отсортировав ее строки по видам блюд и основе:

Результат
















ID_блюда

Блюдо

Вид

Основа

Вес

Труд

7

Сметана

1

Молоко

140

1

8

Творог

1

Молоко

140

2

2

Салат мясной

1

Мясо

200

4

6

Мясо с гарниром

1

Мясо

250

3

1

Салат летний

1

Овощи

200

3

3

Салат витаминный

1

Овощи

200

4

4

Салат рыбный

1

Рыба

200

4

5

Паштет из рыбы

1

Рыба

120

5

12

Суп молочный

2

Молоко

500

3

9

Суп харчо

2

Мясо

500

5

















SELECT *
FROM Блюда
ORDER BY Вид, Основа;

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


Например, запрос
SELECT Продукт, ((Белки + Углеводы)*4.1+Жиры*9.3)
FROM Продукты
ORDER BY 2;
Пример 11.
Найти продукт, содержащий наименьшее число калорий
SELECT TOP 1 Продукт,
( ISNULL(Белки,0)+ISNULL(Углеводы,0))*4.1+ISNULL(Жиры,0) *9.3

Результат




Продукт




Масло

8287,5
FROM Продукты
ORDER BY 2 DESC;

Результат упорядочен по убыванию цены, и с помощью TOP 1 в выборку включена только первая строка.



3.2.3. Использование агрегатных функций для подведения итогов.


В SQL существует ряд специальных агрегатных (статических) функций. Каждая из этих функций оперирует совокупностью значений столбца некоторой таблицы и создает единственное значение, определяемое так:

  • COUNT(столбец) – возвращает количество строк с непустым значением (не NULL) в заданном столбце,

  • COUNT(*) – возвращает общее количество строк в выборке, включая строки со значением NULL,

  • SUM (столбец) – возвращает сумму всех значений в пределах группы в заданном столбце, применима только к столбцам с числовыми значениями,

  • AVG (столбец) – возвращает среднее арифметическое для указанного столбца в пределах строк, принадлежащих одной группе, применима только к столбцам с числовым типом данных,

  • MAX(столбец) - возвращает наибольшее значение в указанном столбце в пределах группы,

  • MIN (столбец) - возвращает наименьшее значение в указанном столбце в пределах группы.

Следует отметить, что здесь столбец - это столбец виртуальной таблицы, в которой могут содержаться данные не только из столбца базовой таблицы, но и данные, полученные путем функционального преобразования и (или) связывания символами арифметических операций значений из одного или нескольких столбцов. При этом выражение, определяющее столбец такой таблицы, может быть сколь угодно сложным, но не должно содержать агрегатные функции (вложенность агрегатных функций не допускается). Однако из агрегатных функций можно составлять любые выражения.
Аргументу всех функций, кроме COUNT(*), может предшествовать ключевое слово DISTINCT (различный), указывающее, что избыточные дублирующие значения должны быть исключены перед тем, как будет применяться функция.
Агрегатные функции могут быть использованы в качестве выражений только в следующих случаях.

  • Список выбора инструкции SELECT (вложенный или внешний запрос).

  • Предложение HAVING.




Download 441,57 Kb.

Do'stlaringiz bilan baham:
1   ...   12   13   14   15   16   17   18   19   ...   71




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish