Встроенные функции языка SQL (диалект Oracle)

Автор работы: Пользователь скрыл имя, 27 Октября 2013 в 20:04, доклад

Краткое описание

Цифровые функции обеспечивают точность вычислений – 38 десятичных знаков (36 для трансцендентных функций).

Содержимое работы - 1 файл

Встроенные функции языка SQL.doc

— 167.00 Кб (Скачать файл)

Встроенные функции языка  SQL (диалект Oracle)

Цифровые функции обеспечивают точность вычислений – 38 десятичных знаков (36 для трансцендентных функций)

  1. ABS(n)

Например: SELECT ABS(-15) "Absolute"   FROM DUAL

Результат:      Absolute

             ----------

    15

2. CEIL(n) – наименьшее целое, большее или равное n

Например: SELECT CEIL(15.7) "Ceiling" FROM DUAL

Результат:    Ceiling

-------------

16

             3. COS (x) x- в радианах

Например: SELECT COS( 3.14159265359) "Cos of 180 degrees”  FROM DUAL

Результат: Cos of 180 degrees

---------------------------------

-1

   4. COSH (x)

Например: SELECT COSH(0) "Hyperbolic cosine of 0" FROM DUAL

Результат: Hyperbolic cosine of 0

---------------------------------

1

    5. EXP (X)

Например: SELECT EXP(4) "e to the 4th power" FROM DUAL

Результат: e to the 4th power

---------------------------

     54.59815

               6. FLOOR (n)- наименьшее целое, меньшее или равное n

Например: SELECT FLOOR(15.7) "Floor"  FROM DUAL

Результат: Floor

----------

15

                7. LN (x)

Например: SELECT LN(95) "Natural log of 95" FROM DUAL

Результат: Natural log of 95

------------------------

4.55387689 

                8. LOG (m,n) – логарифм по основанию m от n

Например: SELECT LOG(10,100) "Log base 10 of 100" FROM DUAL

Результат: Log base 10 of 100

---------------------------

2

                  9. MOD (m,n) – остаток от деления m на n

Например: SELECT m,n,MOD(m,n), m-n*FLOOR(m/n) "Classical Modulus"FROM test_table

Результат:   M N MOD (M,N) Classical Modulus

              ---- ---- ----------------- --------------------------

             11  4   3  

             -11  4 -3   1

             11 -4 -3  -1

             -11 -4  3  -3

          10. POWER(m, n) – m в степени n

Например: SELECT POWER(3,2) "Raised" FROM DUAL

Результат:     Raised

           -------------------

9

                   11. ROUND(n[,m]) - округление

Например: SELECT ROUND(15.193,1) "Round 1" ROUND(15.193,-1) "Round -1"

                        FROM DUAL

Результат:     Round  1                               Round -1         

     --------------------                  --------------------

15.2               20

                   12. SIGN (n) – знак n

 

Например: SELECT SIGN(-15) "Sign" FROM DUAL

Результат: Sign

--------------------

-1

          13. SIN(n)

Например: SELECT SIN(30 * 3.14159265359/180) "Sin of 30 degrees FROM DUAL

Результат: Sine of 30 degrees

--------------------------

.5

        14. SINH(n)

Например: SELECT SINH(1) "Hyperbolic sine of 1" FROM DUAL

Результат: Hyperbolic sine of 1

----------------------------

               1.17520119

                    15.  SQRT (n)

Например: SELECT SQRT(26) "Square root"  FROM DUAL

Результат: Square root

-----------------

5.09901951

           16. TAN (n)

Например: SELECT TAN(135 * 3.14159265359/180) "Tangent of 135 degrees" FROM DUAL

Результат:    Tangent of 135 degrees

-----------------------------------

-1

                    17. TANH(n)

Например: SELECT TANH(.5) "Hyperbolic tangent of .5"  FROM DUAL

Результат: Hyperbolic tangent of .5

------------------------------------

.462117157

                    18.  TRUNC(n[,m]) –усечение

Например: SELECT TRUNC(15.79,1) "Truncate" FROM DUAL 

Результат:    Truncate

-------------

15.7

Символьные функции – возвращают тип VARCHAR2, ограниченный  2000 байтами или   CHAR(255 байт). Для конкатенации строк используется  ||

                   1. CHR(n)

Например: SELECT CHR(67)||CHR(65)||CHR(84) "Dog" FROM DUAL

 

Результат:      Dog

            ------

                CAT

                    2. CONCAT (char1, char2) – конкатенация, эквивалент операции ||

Например: SELECT CONCAT( CONCAT(ename, ' is a '), job) "Job" FROM emp

WHERE empno = 7900

Результат:    Job

             -------------------------

               JAMES is a CLERK

          3. INITCAP(char) – первый символ каждого слова делает прописной буквой, а остальные строчными

Например: SELECT INITCAP('the soap') "Capitals" FROM DUAL

Результат:    Capitals

                          --------

                        The Soap

                   4.  LOWER (char) – заменяет все буквы на строчные

Например: SELECT LOWER('MR. SAMUEL') "Lowercase" FROM DUAL

Результат:    Lowercase

              --------------------

                mr. samuel

          5. LPAD (char1,n [,char2]) – дополняет строку char1 слева пробелами или последовательностью символов char2 до длины n.

Например: SELECT LPAD('Page 1',15,'*.') "LPAD пример:"

FROM DUAL

Результат:    LPAD пример:

               ---------------

               *.*.*.*.*Page 1

                   6.   LTRIM (char1 [,char2]) – удаляет из строки ведущие пробелы или символы, заданные в char2.

Например: SELECT LTRIM('             LAST WORD') "LTRIM пример:" FROM DUAL

Результат:    LTRIM пример:

               ----------------------

                        LAST WORD – удалены все пробелы слева

                   7.  NLS_INITCAP – аналогично INITCAP, но может учитывать лингвистические особенности для разных языков.

Например: SELECT NLS_INITCAP('ijsland', 'NLS_SORT = XDutch') "Capital" FROM DUAL

Результат:    Capital

               -----------

                IJsland

                    8. NLS_LOWER (char [, 'nlsparams'] ) – то же, что LOWER, но с учетом национальных лингвистических особенностей

Например: SELECT NLS_LOWER('CITTA''', 'NLS_SORT = XGerman') "Lower” FROM DUAL

Результат:    Lower

                -----

                cittа

                     9.  NLS_UPPER (char [, 'nlsparams'] )- то же, что UPPER, но с учетом национальных лингвистических особенностей

Например: SELECT NLS_UPPER('gro?e', 'NLS_SORT = Xgerman') "Upper" FROM DUAL

Результат:  Upper

                         -----

              GROSS

                   10.  REPLACE (char, search_string[,replacement_string]) – замена в строке char одного фрагмента на другой или удаление заданного фрагмента

Например: SELECT REPLACE('JACK and JUE','J','BL') "Changes” FROM DUAL

Результат:   Changes

               --------------

               BLACK and BLUE

                  11. RPAD (char1, n [,char2]) – дополнение строки char1 пробелами или заданными в char2 символами справа до длины n.

Например: SELECT RPAD(ename,12,'ab') "RPAD пример:"  FROM emp

WHERE ename = 'TURNER'

Результат :   RPAD пример:

               ------------

               TURNERababab

                  12.  RTRIM (char [,set]) – удаляет из строки завершающие пробелы или

Например: SELECT RTRIM('TURNERyxXxy','xy') "RTRIM пример" FROM DUAL

 Результат: RTRIM пример

              ---------

               TURNERyxX

         13. SOUNDEX(char) – заменяет символы в строке в соответствии с фонетикой английского языка

Например: SELECT ename FROM emp 

                        WHERE SOUNDEX(ename)    = SOUNDEX('SMYTHE')

Результат : ENAME

             ----------

             SMITH

        14. SUBSTR (char, m [,n]) – выделение фрагмента строки  char длиной n, начиная с позиции m. Если n опущено, то выделяются символы до конца строки, начиная с позиции m.

Например: SELECT SUBSTR('ABCDEFG',3,4) "Subs" FROM DUAL

Результат:  Subs

                ----

               CDEF

Тот же результат можно получить с помощью запроса:

              SELECT SUBSTR('ABCDEFG',-5,4) "Subs"  FROM DUAL

       15. TRANSLATE (char, from, to) – преобразует каждый символ строки char в соответствии с функцией преобразования, заданной при помощи строк from и to.

Например: SELECT TRANSLATE('2KRW229',

                   '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',

          '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "Licence"

          FROM DUAL 

Результат: Licence

             --------------------------

              9XXX999

16. UPPER(char) – преобразует все буквы в заглавные

Например: SELECT UPPER('Large') "Uppercase"  FROM DUAL

Результат: Uppercase

             -----------------

             LARGE

Символьные функции, возвращающие цифровое значение

       1. ASCII(char) – код первого символа строки char

Например: SELECT ASCII('Q') FROM DUAL

 

Результат:  ASCII('Q')

                        --------------

          81

               2. INSTR (char1,char2[,n[,m]]) – позиция n-ного символа в m-ном вхождении фрагмента char2 в строку char1.Если n и m опущено, то они принимаются равными 1. Если фрагмент не входит в строку, то функция равна 0.

Например:s SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring" FROM DUAL

Результат : Instring

             ----------

              14

     3. LENGTH(char) – длина строки

 

Функции для  работы с датами

     1. ADD_MONTHS (d,n) – прибавляет к дате d n месяцев.

Например: SELECT TO_CHAR(ADD_MONTHS(hiredate,1),'DD-MON-YYYY') "Next month"

FROM emp

WHERE ename = 'SMITH'

Результат :   Next Month

               -----------------

               17-JAN-1981

              2. LAST_DAY (d) – дата последнего дня месяца d

Например: SELECT SYSDATE, LAST_DAY(SYSDATE) "Last",

LAST_DAY(SYSDATE) - SYSDATE "Days Left"    FROM DUAL

Результат:  SYSDATE Last         Days Left

             ------------ ------------ ------------

              10-APR-95 30-APR-95 20

      3.  MONTHS_BETWEEN (d1, d2) – число месяцев между датами d1 и d2

Например: SELECT MONTHS_BETWEEN(TO_DATE('02-02-1995','MM-DD-YYYY'),

TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months" FROM DUAL

Результат:  Months

             ----------------

               1.03225806

      4.  NEW_TIME(d, z1, z2) – дата и время d, соответствующие временному поясу z1, преобразуются к временному поясу z2. Обозначения временных поясов:

AST/ADT Atlantic Standard or Daylight Time

BST/BDT Bering Standard or Daylight Time

CST/CDT Central Standard or Daylight Time

EST/EDT Eastern Standard or Daylight Time

GMT Greenwich Mean Time

HST/HDT Alaska-Hawaii Standard Time or Daylight Time.

MST/MDT Mountain Standard or Daylight Time

NST Newfoundland Standard Time

PST/PDT Pacific Standard or Daylight Time

YST/YDT Yukon Standard or Daylight Time

NEXT_DAY

                  5. NEXT_DAY(d, char) – дата первого дня недели char, следующего за датой d.

Например: SELECT NEXT_DAY('15-MAR-92','TUESDAY') "NEXT DAY"

    FROM DUAL

Результат:   NEXT DAY

             ---------

                17-MAR-92 – первый вторник после 15 марта

        

       6.  ROUND (d[,fmt]) – округление даты в соответствии с заданным форматом fmt

Например: SELECT ROUND(TO_DATE('27-OCT-92'),'YEAR')

                          "FIRST OF THE YEAR"  FROM DUAL

Результат :     FIRST OF THE YEAR

                           -----------------

                           01-JAN-93

               7. SYSDATE – текущая дата

Например: SELECT TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS')    “NOW”

FROM DUAL

Результат : NOW

              -------------------

              10-29-1993 20:27:11.

 

     8. TRUNC(d,[fmt]) – усечение даты

Например: SELECT TRUNC(TO_DATE('27-OCT-92', 'DD-MON-YY'), 'YEAR')

"First Of The Year" FROM DUAL

Результат : FIRST OF THE YEAR

            -----------------

             01-JAN-92

Ниже приводятся форматы для  округления или усечения даты

Format Model Rounding or Truncating Unit

CC, SCC Century

SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y Year (rounds up on July 1)

IYYY, IY, IY, I ISO Year

Q Quarter (rounds up on the sixteenth day of the second month of the quarter)

MONTH, MON, MM, RM Month (rounds up on the sixteenth day)

WW Same day of the week as the first day of the year.

IW Same day of the week as the first day of the ISO year.

W Same day of the week as the first day of the month.

DDD, DD, J Day

DAY, DY, D Starting day of the week

HH, HH12, HH24 Hour

MI Minute

 

Функции преобразования типов

1. TO_CHAR(d [, fmt [, 'nlsparams'] ]) – преобразование даты или числа d в VARCHAR2

Например: SELECT TO_CHAR(HIREDATE, 'Month DD, YYYY') "New date format"

FROM emp WHERE ename = 'SMITH'  

New date format

-------------------------------

December 17, 1980

Например:    SELECT TO_CHAR(-10000,'L99G999D99MI') "Amount"  FROM DUAL

Результат:  Amount

             --------------------

              $10,000.00-

              2. TO_DATE (char [, fmt [, 'nlsparams'] ]) – преобразование строки в дату

Например: INSERT INTO bonus (bonus_date)

SELECT TO_DATE('January 15, 1989, 11:00 A.M.','Month dd, YYYY, HH:MI A.M.',

'NLS_DATE_LANGUAGE = American') FROM DUAL

 

     3. TO_NUMBER (char [,fmt [, 'nlsparams'] ])- преобразование строки в числовой тип

 

Например: UPDATE emp

SET sal = sal + TO_NUMBER('100.00', '9G999D99')

WHERE ename = 'BLAKE'

 

Другие функции

 

1. GREATEST (expr [,expr] ...) – наибольшее из списка

Например: SELECT GREATEST('HARRY','HARRIOT','HAROLD') "GREATEST"

FROM DUAL

Результат: GREATEST

             --------------

             HARRY

          2. LEAST (expr [,expr] ...) – наименьшее из списка

Например: SELECT LEAST('HARRY','HARRIOT','HAROLD') "LEAST"

FROM DUAL

Результат: LEAST

             ----------

               HAROLD

   3. NVL(expr1, expr2)- возвращает expr1, если оно не пустое, и expr2, если пустое

Например: SELECT ename, NVL(TO_CHAR(COMM),'NOT APPLICABLE') "COMMISSION"

FROM emp WHERE deptno = 30

Результат: ENAME  COMMISSION

             ----------- -----------

            ALLEN  300

            WARD  500

             MARTIN 1400

              BLAKE NOT APPLICABLE

    4. UID – возвращает идентификационный номер текущего пользователя

Например: SELECT USER, UID FROM DUAL

                    USER  UID

---------------------------- ----------

OPS$BQUIGLEY  46

 

             5. USERENV (option) – данные о текущей сессии

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Group Functions

 

  Group functions return results based on groups of rows, rather than on single rows. In this way, group functions are different from single row functions. For a discussion of the differences between group functions and single-row functions, see the section "Functions".

 

Many group functions accept these options:

 

DISTINCT  This option causes a group function to consider only distinct values of the argument expression.

ALL  This option causes a group function to consider all values including all duplicates.

 

For Например:, the DISTINCT average of 1, 1, 1, and 3 is 2; the ALL average is 1.5. If neither option is specified, the default is ALL.

 

All group functions except COUNT(*) ignore nulls. You can use the NVL in the argument to a group function to substitute a value for a null.

 

If a query with a group function returns no rows or only rows with nulls for the argument to the group function, the group function returns null.

 

AVG

 

Syntax   AVG([DISTINCT|ALL] n)

 

Purpose Returns average value of n.

Например: SELECT AVG(sal) "Average"

FROM emp

 

   Average

-----------------

2077.21429

 

COUNT

 

Syntax   COUNT({* | [DISTINCT|ALL] expr})

 

Purpose Returns the number of rows in the query.

 

 

If you specify expr, this function returns rows where expr is not null. You can count either all rows, or only distinct values of expr.

 

If you specify the asterisk (*), this function returns all rows, including duplicates and nulls.

 

Например:s SELECT COUNT(*) "Total"

FROM emp

 

        Total

---------------

          18

SELECT COUNT(job) "Count"

FROM emp

 

Count

----------

14

 

SELECT COUNT(DISTINCT job) "Jobs"

FROM emp

 

Jobs

----------

5

 

GLB

 

Syntax   GLB([DISTINCT|ALL] label)

 

Purpose Returns the greatest lower bound of label. For the definitions of greatest lower bound and Например: usage, see Trusted Oracle7 Server Administrator's Guide.

 

LUB

 

Syntax   LUB([DISTINCT|ALL] label)

 

Purpose Returns the least upper bound of label.

Информация о работе Встроенные функции языка SQL (диалект Oracle)