Мартин грубер понимание sql перевод Лебедева В. Н. Под редакцией Булычева В. Н. Москва, 1993 martin gruber


Download 1.45 Mb.
bet161/172
Sana26.01.2023
Hajmi1.45 Mb.
#1128343
1   ...   157   158   159   160   161   162   163   164   ...   172
Bog'liq
Грубер. Понимание SQL

|| Объединяет две строки в выводе, так чтобы после первой немедленно следовала вторая. (значек || называется оператором сцепления).
LPAD(,X,'*' ) Дополняет строку слева звездочками '*', или любым другим указанным символом, с колличестве, определяемом X.
RPAD(,X, ") То же самое что и LPAD, за исключением того, что дополнение делается справа.
SUBSTR(,X,Y) Извлекает Y символов из строки начиная с позиции X.


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

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




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


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

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


ФУНКЦИЯ ЗНАЧЕНИЕ


NVL(,) NVL (NULL Значение) будет меняться на значение каждое NULL значение, найденое в столбце . Если полученное значение не =NULL, NVL ничего не делает.
INTERSECT_И_MINUS'>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 значения будут вставлены там, где такого совпадения не будет найдено.
Например, предположим, вы хотите видеть ваших продавцов и соответствующих им заказчиков, не исключая тех продавцов, которым не назначено ни одного заказчика (хотя такого нет в наших типовых таблицах, но в действительности это возможно):

Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   157   158   159   160   161   162   163   164   ...   172




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