Использование функций SQL в запросах к базе данных Oracle

Vovan_ST

Vovan_ST

ИТ специалист со стажем. Автор статьи. Профиль

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


Оглавление статьи[Показать]


Однострочные функции

Однострочные функции (single-row functions) обычно применяются для выполнения задач вроде преобразования слова из нижнего регистра в верхний или наоборот или замены какой-нибудь части текста в строке. Ниже перечислены наиболее важные однострочные функции, которые часто используются в Oracle.

SQL> SELECT LOWER('SHANNON ALAPATI') from dual;
LOWER('SHANNONALAPATI')
-----------------------
shannon alapati
SQL>

 

Агрегатные функции SQL

Агрегатные функции (aggregate functions) применяются для вычисления деталей наподобие средних и суммарных значений выбранного столбца в запросе. Ниже перечислены наиболее важные агрегатные функции.

      SELECT MIN(join_date) FROM employees; 
      SQL> SELECT SUM(bytes) FROM dba_free_space; 

 

Числовые и календарные функции SQL

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

      SQL> SELECT sysdate FROM dual;
      SYSDATE
      --------------------
      07/AUG/2008
      SQL> 
      SQL> SELECT TO_DATE('August 20,2008', 'MonthDD,YYYY') FROM dual;
      TO_DATE('AUGUST20,2008'
      -----------------------
      08/20/2008
      SQL>
 
      SQL> SELECT SYSDATE FROM dual;
      SYSDATE
      -----------
      04-AUG-2008
      SQL>
      SQL> SELECT TO_CHAR(SYSDATE, 'DAY, DDTH MONTH YYYY') FROM DUAL;
      TO_CHAR(SYSDATE,'DAY,DDTHMON
      --------------------------------
      THURSDAY , 04TH AUGUST 2008
      SQL> 
      SQL> UPDATE employees SET salary = salary +
      TO_NUMBER('100.00', '9G999D99')
      WHERE last_name = 'Alapati'; 

Обучение применению SQL функций в СУБД Oracle с примерами 

Универсальные и условные функции SQL

В Oracle предлагаются кое-какие очень мощные универсальные (general) и условные (conditional) функции, которые позволяют увеличивать мощь простых SQL-операторов до уровня, подобного конструкциям традиционных языков программирования. Условные функции помогают делать выбор между несколькими вариантами. Ниже перечислены наиболее важные универсальные и условные функции, которые могут применяться в Oracle.

      SQL> SELECT last_name, title,
           salary * NVL (commission_pct,0)/100 COMM
           FROM employees; 
      SQL> COALESCE(region1, region2, region3, region4)
      SQL> SELECT DECODE(affiliation, 'D', 'Democrat',
      'R', 'Republican', 'Independent') FROM voters; 
      SQL> SELECT ename,
           (CASE deptno
           WHEN 10 THEN 'Accounting'
           WHEN 20 THEN 'Research'
           WHEN 30 THEN 'Sales'
           WHEN 40 THEN 'Operations'
           ELSE 'Unknown'
           END)
           department
           FROM employees; 

 

Аналитические функции SQL

Предлагаемые в Oracle аналитические функции SQL являются мощными инструментами для приложений бизнес-аналитики. В Oracle заявляют, что в случае применения этих функций скорость выполнения запросов может увеличиваться на 200–500%. Они предназначены для выполнения сложных суммарных вычислений без написания слишком большого объема кода. Ниже перечислены наиболее важные аналитические функции SQL, которые могут применяться в базе данных Oracle.

Функции ранжирования (ranking functions). Такие функции позволяют ранжировать элементы набора данных в соответствии с определенными критериями. В Oracle доступно несколько функций ранжирования: RANK, DENSE_RANK, CUME_DIST, PERCENT_RANK и NTILE. В листинге 1 приведен простой пример,
показывающий, как функция ранжирования помогает расположить в нужном порядке данные по продажам.


 

SQL> SELECT sales_type,
TO_CHAR(SUM(amount_sold), '9,999,999,999') SALES,
RANK() OVER (ORDER BY SUM(amount_sold) ) AS original_rank,
RANK() OVER (ORDER BY SUM(amount_sold)
DESC NULLS LAST) AS derived_rank
FROM sales, products, customers, time_frame, sales_types
WHERE sales.prod_id=products.prod_id AND
sales.cust_id=customers.cust_id AND
sales.time_id=time_frame.time_id AND
sales.sales_type_id=sales_types.sales_type_id AND
timeframe.calendar_month_desc IN ('2008-07', '2008-08')
AND country_id='INDIA'
GROUP BY sales_type;
SALES_TYPE      SALES       ORIGINAL_RANK  DERIVED_RANK
------------- ---------    --------------  ------------
Direct Sales    5,744,263         5        1
Internet        3,625,993         4        2
Catalog         1,858,386         3        3
Partners        1,500,213         2        4
Tele Sales        604,656         1        5
SQL>

Вас заинтересует / Intresting for you:

Oracle и непроцедурный доступ ...
Oracle и непроцедурный доступ ... 8522 просмотров Antoni Tue, 21 Nov 2017, 13:32:50
Создание базы данных Oracle
Создание базы данных Oracle 34400 просмотров Александров Попков Wed, 14 Nov 2018, 12:44:39
Видеокурс по администрированию...
Видеокурс по администрированию... 10719 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
СУБД Oracle: обзор характерист...
СУБД Oracle: обзор характерист... 15813 просмотров Antoni Fri, 24 Nov 2017, 07:35:05
Печать
Войдите чтобы комментировать