W Cat - Справка по SQL
- Название:Справка по SQL
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Справка по SQL краткое содержание
Справка по SQL - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Mb |
Gb |
---|---|
64 |
8 |
32 |
10 |
Переименованиеособенно желательно при использовании в предложении SELECTвыражений для вычисления значения. Эти выражения позволяют получать данные, которые не находятся непосредственно в таблицах. Если выражениесодержит имена столбцов таблицы, указанной в предложении FROM, то выражение подсчитывается для каждой строки выходных данных. Так, например, чтобы вывести объем оперативной памяти в килобайтах, можно написать:
SELECT ram * 1024 AS Kb, hd Gb
FROM Pc
WHERE cd = '24x';
Теперь будет получен следующий результат:
Kb |
Gb |
---|---|
65536 |
8 |
32768 |
10 |
Иногда бывает необходимо выводить поясняющую информацию рядом с соответствующим значением. Это можно сделать, добавив строковое выражение как дополнительный столбец. Например, запрос
SELECT ram, 'Mb' AS ram_units, hd, 'Gb' AS hd_units
FROM Pc
WHERE cd = '24x';
даст следующий результат:
ram |
ram_units |
hd |
hd_units |
---|---|---|---|
64 |
Mb |
8 |
Gb |
32 |
Mb |
10 |
Gb |
Если же явно не указать имя для выражения, то будет использован способ именования по умолчанию, который зависит от используемой СУБД. Так в MS Access будут использованы имена типа выражение1 и т.д., а выходной столбец в MS SQL Server вообще не будет иметь заголовка.
Проверка наличия подстроки. Предикат LIKE
Синтаксис LIKE::=
[NOT] LIKE
[ESCAPE ]
Предикат LIKEсравнивает строку, указанную в первом выражении для вычисления значения строки , называемого проверяемым значением, с шаблоном, который определен во втором выражении для вычисления значения строки . В образце разрешается использовать два трафаретныхсимвола:
* Символ подчеркивания (_), который можно использовать вместо любого единичного символа в проверяемом значении.
* Символ процента (%), который заменяет набор любых символов (число символов в наборе может быть от 0 и более) в проверяемом значении.
Если проверяемое значение соответствует образцу с учетом трафаретных символов, то значение предиката равно TRUE. Ниже приводится несколько примеров написания шаблонов.
Шаблон |
Описание |
---|---|
'abc%' |
Любые строки, которые начинаются с букв "abc". |
'abc_' |
Строки длиной строго 4 символа, причем первыми символами строки должны быть "abc". |
'%z' |
Любая последовательность символов, которая обязательно заканчивается символом "z". |
'%Rostov%' |
Любая последовательность символов, содержащая слово "Rostov" в любом месте строки. |
Пример. Найти все корабли, имена классов которых заканчиваются на букву 'о':
SELECT *
FROM Ships
WHERE class LIKE '%o';
Результатом выполнения запроса будет следующая таблица:
name |
class |
launched |
---|---|---|
Haruna |
Kongo |
1916 |
Hiei |
Kongo |
1914 |
Kirishima |
Kongo |
1915 |
Kongo |
Kongo |
1913 |
Musashi |
Yamato |
1942 |
Yamato |
Yamato |
1941 |
Пример. Найти все корабли, имена классов которых заканчиваются на букву 'о', но не на 'go':
SELECT *
FROM Ships
WHERE class NOT LIKE '%go' AND class LIKE '%o';
name |
class |
launched |
---|---|---|
Musashi |
Yamato |
1942 |
Yamato |
Yamato |
1941 |
Если искомая строка содержит трафаретный символ, то следует задать управляющийсимвол в предложении ESCAPE. Этот управляющий символ должен использоваться в шаблоне перед трафаретным символом, сообщая о том, что трафаретный символ следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ "_", то шаблон '%_%' приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом:
'%#_%' ESCAPE '#'
Для проверки значения на соответствие строке "25%" можно воспользоваться таким предикатом:
LIKE '25|%' ESCAPE '|'
Истинностное значение предиката LIKEприсваивается в соответствии со следующими правилами:
* Если либо проверяемое значение, либо образец, либо управляющий символ равен NULL, истинностное значение равно UNKNOWN.
* В противном случае, если проверяемое значение и образец имеют нулевую длину, истинностное значение равно TRUE.
* В противном случае, если проверяемое значение соответствует шаблону, то предикат LIKEравен TRUE.
* Если не соблюдается ни одно из перечисленных выше условий, предикат LIKEравен FALSE.
Проверка отсутствия/наличия значения. Предикат IS NULL
Предикат
IS [NOT] NULL
позволяет проверить отсутствие( наличие) значения в полях таблицы. Использование в этих случаях обычных предикатов сравненияможет привести к неверным результатам, т.к. сравнение со значением NULLдает результат UNKNOWN(неизвестно).
Так, если требуется найти записи в таблице Pc, для которых в поле price отсутствует значение (поиск ошибок ввода), можно воспользоваться следующим оператором:
SELECT *
FROM Pc
WHERE price IS NULL;
Получение итоговых значений
Как узнать количество моделей ПК, выпускаемых тем или иным поставщиком? Как определить среднее значение цены на компьютеры, имеющие одинаковые технические характеристики? На эти и многие другие вопросы, связанные с некоторой статистической информацией, можно получить ответы при помощи итоговых (агрегатных) функций. Стандартом предусмотрены следующие агрегатные функции:
Функция |
Описание |
---|---|
COUNT(*) |
Возвращает количество строк источника записей. |
COUNT() |
Возвращает количество значений в указанном столбце. |
SUM() |
Возвращает сумму значений в указанном столбце. |
AVG() |
Возвращает среднее значение в указанном столбце. |
MIN() |
Возвращает минимальное значение в указанном столбце. |
MAX() |
Возвращает максимальное значение в указанном столбце. |
Все эти функции возвращают единственное значение. При этом функции COUNT, MINи MAXприменимы к любым типам данных, в то время как SUMи AVGиспользуются только для числовых полей. Разница между функцией COUNT(*)и COUNT()состоит в том, что вторая при подсчете не учитывает NULL-значения.
Читать дальшеИнтервал:
Закладка: