Вход/Регистрация
Понимание SQL
вернуться

Грубер Мартин

Шрифт:

COMPUTE SUM OF amt ON odate;

Столбец в предложении ON, предварительно, должен быть использован в команде BREAK.

ФУНКЦИИ

Для SQL в стандарте ANSI, вы можете применять агрегатные функции для столбцов или использовать их значения в скалярных выражениях, таких например как - comm * 100. Имеется много других полезных функций, которые вы, вероятно встречали на практике.

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

МАТЕМАТИЧЕСКИЕ ФУНКЦИИ

Эти функции применяются для чисел.

ФУНКЦИЯ

ЗНАЧЕНИЕ

ABX(X)

Абсолютное значение из X (преобразование отрицательного или положительного значений в положительное )

CEIL (X)

X - является десятичным значением которое будет округляться сверху.

FLOOR (X)

X - является десятичным значением которое будет округляться снизу.

GREATEST(X,Y)

Возвращает большее из двух значений.

LEAST(X,Y)

Возвращает меньшее из двух значений.

MOD(X,Y)

Возвращает остаток от деления X на Y.

POWER(X,Y)

Возвращает значение X в степени Y.

ROUND(X,Y)

Цикл от X до десятичного Y. Если Y отсутствует, цикл до целого числа.

SING(X)

Возвращает минус если X < 0, или плюс если X > 0.

SQRT (X)

Возвращает квадратный корень из X.

СИМВОЛЬНЫЕ ФУНКЦИИ

Эти функции могут быть применены для строк текста, либо из столбцов текстовых типов данных, либо из строк литерных текстов, или же комбинация из этих двух.

ФУНКЦИЯ

ЗНАЧЕНИЕ

LEFT(<string>,X)

Возвращает крайние левые(старшие) символы X из строки.

RICHT(<string>,X)

Возвращает символы X младшего разряда из строки

ASCII(<string>)

Возвращает код ASCII которым представляется строка в памяти компьютера.

CHR(<ASCIIcode>)

Возвращает принтерные символы кода ASCII.

VALUE(<string>)

Возвращает математическое значение для строки. Считается что строка имеет тип CHAR или VARCHAR, но состоит из чисел. VALUE('3') произведет число 3 типа INTEGER.

UPPER(<string>)

Преобразует все символы строки в символы верхнего регистра.

LOWER(<string>)

Преобразует все символы строки в символы нижнего регистра.

INlTCAP(<string>)

Преобразует символы строки в заглавные буквы. В некоторых реализациях может иметь название - PROPER.

LENGTH(<string>)

Возвращает число символов в строке.

<string>||<string>

Объединяет две строки в выводе, так чтобы после первой немедленно следовала вторая. (значек || называется оператором сцепления).

LPAD(<string >,X,'*')

Дополняет строку слева звездочками '*', или любым другим указанным символом, с колличестве, определяемом X.

RPAD(<string>,X, ")

То же самое что и LPAD, за исключением того, что дополнение делается справа.

SUBSTR(<string >,X,Y)

Извлекает Y символов из строки начиная с позиции X.

ФУНКЦИИ ДАТЫ И ВРЕМЕНИ

Эти функции выполняются только для допустимых значений даты или времени.

ФУНКЦИЯ

ЗНАЧЕНИЕ

DAY(<date>)

Извлекает день месяца из даты. Подобные же функции существуют для MONTH(МЕСЯЦ), YEAR(ГОД), HOUR(ЧАСЫ), SECOND(СЕКУНДЫ) и так далее.

WEEKDAY(<date>)

Извлекает день недели из даты.

ДРУГИЕ ФУНКЦИИ

Эта функция может быть применена к любому типу данных.

ФУНКЦИЯ

ЗНАЧЕНИЕ

NVL(<column>,<value>)

NVL (NULL Значение) будет меняться на значение <value> каждое NULL значение найденое в столбце <column>. Если полученное значение <column > не=NULL, NVL ничего не делает.

INTERSECT И MINUS

Команда UNION, как вы уже видели в Главе 14, может объединить два запроса, обьединив их вывод в один. Два других обычно имеющихся способа объединения отдельных запросов - это INTERSECT(Плюс) и MINUS(Минус). INTERSECT выводит только строки произведенные обоими перекресными запросами, в то время как MINUS выводит строки которые производятся одним запросом, но не другим. Следовательно, следующие два запроса

SELECT *

FROM Salespeople

WHERE city='London'

INTERSECT

SELECT *

FROM Salespeople

WHERE 'London' IN

(SELECT city

FROM Customers

WHERE Customers.snum=

Salespeople.snum);

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

SELECT *

FROM Salespeople

WHERE city='London'

MINUS

SELECT *

FROM Salespeople

WHERE 'London' IN

(SELECT sity

FROM Customers

WHERE Customers.snum=

Salespeople.snum);

удалит строки выбранные вторым запросом из вывода первого, и таким образом будут выводены все продавцы в Лондоне которые не имели там заказчиков. MINUS иногда еще называют DIFFERENCE (ОТЛИЧИЕ)

АВТОМАТИЧЕСКИЕ ВНЕШНИЕ ОБЬЕДИНЕНИЯ

В Главе 14, мы обсуждали внешнее обьединение и показывали вам как выполнять его используя команду UNION. Некоторые программы базы данных имеют более непосредственный способ выполнения внешних обьединений. В некоторых реализациях, вводимый знак " + " после предиката, может выводить строки которые удовлетворяют условию также как и строки которые ему не удовлетворяют. В условии предиката может содержаться поле совпадающее для обеих таблиц, и NULL значения будут вставлены там, где такого совпадения не будет найдено. Например, предположим вы хотите видеть ваших продавцов и соответствующих им заказчиков, не исключая тех продавцов которым не назначено ни одного заказчика (хотя такого нет в наших типовых таблицах, но в действительности это возможно ) :

  • Читать дальше
  • 1
  • ...
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: