|
Программирование >> Понятие sql
* обеспечение заголовков внизу или вверху страниц выводимых на печать. * навязывает присвоение или изменение форматам полей содержащих значения даты, времени или денежной суммы. * вычисляет общие и промежуточные суммы, не исключая возможности обобщения поля, как это делает например SUM. (Альтернативным подходом к этой проблеме в некоторых программах является предложение COMPUTE.) Команда FORMAT может вводиться сразу перед или сразу после запроса, кко-торому она применяется, в зависимости от реализации. Одна команда FORMAT обычно может применяться только к одному запросу, хотя любое число команд FORMAT может применяться к одному и тому же запросу. Вот некоторые примеры команды FORMAT: FORMAT NULL ; FORMAT BTITLE Orders Grouped by Salesperson; FORMAT EXCLUDE (2, 3); Первая из них представляет значения NULL ввиде при выводе на печать; вторая вставляет заголовок Orders Grouped by Salesperson внижнюю часть каждой страницы; третья исключает второй и третий столбцы из вывода предыдущего запроса. Вы могли бы использовать последнюю из них, если вы выбираете конкретные столбцы, чтобы использовать их в предложении ORDER BY, в вашем выводе. Так как указанные функции команды FORMAT могут выполняться по разному, весь набор их приложений не может быть здесь показан. Имеются другие команды, которые могут использоваться для выполнения тех же функций. Команда SET подобна команде FORMAT; она является вариантом или дополнением к команде, которая применяется во всех запросах текущего сеанса пользователя, а не просто в одиночном запросе. В следующей реализации, команда FORMAT начинается ключевым словом COLUMN следующим образом: COLUMN odate FORMAT dd-mon-yy; что навязывает формат типа 10-Oct-90 в поле даты, использующемся в выводе запроса на печать. Предложение COMPUTE, упомянутое ранее, вставляется в запрос следующим образом: SELECT odate, amt FROM Orders WHERE snum = 1001 COMPUTE SUM (amt); Оно выводит все порядки продавца Peel, с датой и суммой приобретения по каждой дате, а в конце общую сумму приобретений. Другая реализация выводит промежуточные суммы приобретений, используя COMPUTE в качестве команды. Сначала, она определяет разбивку BREAK ON odate; вывода вышеупомянутого запроса на страницы - сгруппировав их по датам, поэтому все значения odate в каждой группе - одинаковые. Затем вы можете ввести следующее предложение: COMPUTE SUM OF amt ON odate; Столбец в предложении ON предварительно должен быть использован в команде BREAK. ФУНКЦИИ Для SQL в стандарте ANSI, вы можете применять агрегатные функции для столбцов или использовать их значения в скалярных выражениях, таких например как - comm * 100. Имеется много других полезных функций, которые вы, вероятно встречали на практике. Имеется список некоторых общих функций SQL, отличающихся от стандартных агрегатов. Они могут использоваться в предложениях SELECT запросов, точно так же как агрегатные функции, но эти функции выполняются для одиночных значений, ане для групповых. В следующем списке они классифицированны согласно типам данных, с которыми они выполняются. Если нет примечаний, то переменные в этом списке стандартизованы для любого выражения значений соответствующего типа, которые могут быть использованы в предложении SELECT: МАТЕМАТИЧЕСКИЕ ФУНКЦИИ Эти функции применяются для чисел. ФУНКЦИЯ ЗНАЧЕНИЕ ABX(X) Абсолютное значение из Х(преобразование отрицательного или положительного значений в положительное) CEIL(X) Х является десятичным значением, которое будет округляться свер- FLOOR (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) Возвращает минус если Х<0, или плюс если Х>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);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |