11-й час
Изменение представления данных при выводе

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

Основными на этом уроке будут следующие темы.

• Обзор функций для работы со строками символов
• Как и когда используются функции для работы со строками
• Примеры функций, определяемых ANSI SQL
• Примеры функций, общих для основных реализаций SQL
• Обзор функций преобразования
• Как и когда используются функции преобразования

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

Функции для работы с символьными строками используются в SQL для представления данных в формате, отличном от того, в котором эти данные хранятся в таблице базы данных. Сначала мы обсудим те функции, которые включены в стандарт ANSI, а затем рассмотрим примеры использования функций, предлагаемых основными реализациями SQL. Из функций,  определяемых стандартом ANSI, мы рассмотрим CONCATENATION, SUBSTRING, TRANSLATE, REPLACE, UPPER И LOWER.

  Конкатенация

Конкатенация — это соединение двух строк в одну. Например, можно соединить имя и фамилию персоны в одну строку.

В результате конкатенации строк джон и СМИТ получается строка джон СМИТ.

 

  Выделение частей строки

Подстрока (substring) — это строка символов, входящая в данную строку, другими словами, часть данной строки Например, следующие строковые значения являются подстроками строки ДЖОНСОН

Д     ДЖОН    ДЖО    ОН    СОН

  Трансляция

Для посимвольной трансляции строк (т е замены одних символов на другие) используется функция TRANSLATE Обычно функция TRANSLATE имеет три аргумента конвертируемую строку, список заменяемых символов и список символов, на которые заменяются символы из первого списка Примеры использования функции будут рассмотрены позже

  Общие функции для работы со строками

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

В следующих разделах мы рассмотрим использование концепций ANSI в основных реализациях SQL, к которым относятся Oracle, Sybase, SQLBase, Informix и SQL Server

Обсуждаемые в данной книге концепции ANSI являются не более, чем концепциями Предлагаемые ANSI стандарты являются только рекомендациями, которые должны использовать и учитывать разработчики при создании реализаций SQL для реляционных баз данных В связи с этим, всегда помните о том, что обсуждаемые здесь функции не обязательно должны в точности соответствовать тем, которые вы найдете в используемой вами конкретной реализации SQL Конечно, подходы будут совпадать и работать функции будут практически так же, но вот имена функций и их синтаксис могут оказаться другими

  Конкатенация

Конкатенация, как и многие другие функции, в разных реализациях SQL представлена по-разному Вот примеры использования конкатенации в Oracle и SQL Server

Oracle__________

SELECT 'ДЖОН || 'СОН' возвратит ДЖОНСОН

SQL Server_____

SELECT 'ДЖОH' + 'СОН' возвратит ДЖОНСОН

Синтаксис использования конкатенации в Oracle следующий

ИМЯ_СТРОКИ || ["II] ИМЯ_СТРОКИ [ ИМЯ_СТРОКИ ]

Синтаксис использования конкатенации в SQL Server следующий.

ИМЯ_СТРОКИ + [ " + ] ИМЯ_СТРОКИ [ ИМЯ_СТРОКИ ]

Пример_______________________________Значение________

SELECT CITY + STATE          Этот оператор SQL Server объединяет названия

FROM EMPLOYEEJTBL;         города и штата в одну строку

SELECT CITY ||', '|| STATE       Этот оператор Oracle объединяет названия го-

FROM EMPLOYEE_TBL;        рода и штата в одну строку, помещая междуними запятую

SELECT CITY + '   ' + STATE  Этот оператор SQL Server объединяет названия 

FROM EMPLOYEE_TBL;        города и штата в одну строку, помещая между ними пробел

 

Пример

SELECT LAST_NAME || ', ' || FIRST_NAME 

FROM EMPLOYEEJTBL;

NAME

STEPHENS, TINA 

PLEW, LINDA 

GLASS, BRANDON 

GLASS, JACOB 

WALLACE, MARIAH 

SPURGEON, TIFFANY

6 строк выбраны.

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

  Функция TRANSLATE

Функция TRANSLATE заменяет символы в строке символов в соответствии с указанным правилом замены Правило замены определяется посимвольным соответствием пары заданных буквальных символьных значений Синтаксис оператора функции TRANSLATE Следующий

TRANSLATE(МНОЖЕСТВО СТРОК, ЗНАЧЕНИЕ1, ЗНАЧЕНИЕ2)

Пример______________________Значение_____________________

SELECT TRANSLATE         Этот оператор SQL заменяет все имеющиеся в строке

(CITY, ' IND ' , 'ABC' символы I на А, N на В и D на С

FROM EMPLOYEEJTBL;

Вот пример использования функции TRANSLATE с реальными данными.

SELECT CITY, TRANSLATE(CITY,'IND",'ABC') 

FROM EMPLOYEE_TBL;

CITY             TRANSLATE(CI

GFEENWOOD     GREEBWOOC

INDIANAPOLIS  ABCAABAPOLAS

WHITELAND     WHATELABC

INDIANAPOLIS  ABCAABAPOLAS

INDIANAPOLIS  ABCAABAPOLAS

INDIANAPOLIS  ABCAABAPOLAS

6 строк выбраны.

Здесь все встречающиеся символы I заменены на А, N — на в и D — на с. В названии города INDIANAPOLIS подстрока IND была заменена на ABC, а в названии города GREENWOOD символ D был заменен на с. Обратите также внимание на то, каким образом транслировалось название города WHITELAND.

  Функция REPLACE

Функция REPLACE используется для замены в строке некоторого заданного символа (или строки символов) другим заданным символом (строкой символов). Используется эта функция подобно функции TRANSLATE, только здесь заданный символ или строка заменяется другим заданным символом или строкой.

Синтаксис соответствующего оператора следующий.

REPLACE''ЗНАЧЕНИЕ', 'ЗНАЧЕНИЕ', [ NULL ] 'ЗНАЧЕНИЕ'}

Пример_______________________Значение________________________

SELECT                                    Этот оператор возвращает список имен, заменив в

REPLACE (FIRST_NAME,     них все встречающиеся буквы т на в

'T' , 'B')

FROM EMPLOYEEJTBL;

SELECT CITY, REPLACE(CITY, 'I' , 'Z') 

FROM EMPLOYEE_TBL;

CITY         TRANSLATE(CI

GREENWOOD      GREENWOOD

INDIANAPOLIS   ZNDZANAPOLZS

WHITELAND      WHZTELAND

INDIANAPOLIS   ZNDZANAPOLZS

INDIANAPOLIS   ZNDZANAPOLZS

INDIANAPOLIS   ZNDZANAPOLZS

6 строк выбраны.


  Функция UPPER

В большинстве реализаций SQL имеются средства для изменения регистра символов с помощью функций. Функция UPPER используется для изменения регистра символов заданной строки с нижнего на верхний.

Синтаксис соответствующего оператора следующий.

UPPER(строка символов)

Пример___________________________Значение_____________________ 

SELECT UPPER (LAST_NAME)         Этот оператор изменяет регистр всех символов 

FROM EMPLOYEE_TBL,                    в  заданном столбце с нижнего на верхний

SELECT UPPER(CITY)

FROM EMPLOYEE_TBL;

  UPPER(CITY)

GREENWOOD

INDIANAPOLIS

WHITELAND

INDIANAPOLIS

INDIANAPOLIS

INDIANAPOLIS

б строк выбраны.

  Функция LOWER

В противоположность функции UPPER, функция LOWER используется для изменения регистра символов заданной строки с верхнего на нижний. Синтаксис соответствующего оператора следующий.

LOWER(строка символов)

Пример____________________________Значение____________________

 SELECT LOWER (LAST_NAME)        Этот оператор изменяет регистр всех символов в 

FROM EMPLOYEEJTBL,                       заданном столбце с верхнего на нижний

SELECT LOWER(CITY) 

FROM EMPLOYEEJTBL;

LOWER(CITY)

greenwood

Indianapolis

whiteland

Indianapolis

indianapolis

indianapolis

6 строк выбраны.

 

  Функция SUBSTR

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

В Oracle синтаксис соответствующего оператора следующий.

SUBSTR(имя столбца, начальная позиция, длина)

В случае SQL Server синтаксис соответствующего оператора будет следующим.

SUBSTRING(имя столбца, начальная позиция, длина)

Как видите, отличаются только имена функций.

Пример__________________________________Значение___________

SELECT SUBSTRING (EMP_ID,1,3)     Этот оператор SQL возвращает первые три

FROM EMPLOYEE_TBL;                       символа строки EMP_ID

SELECT SUBSTRING (EMP_ID,4,2)      Этот оператор SQL возвращает четвертый

FROM EMPLOYEE_TBL;                        ипятый символы строки EMP_ID

SELECT SUBSTRING (EMP_ID,6,4)      Этот оператор SQL возвращает символы

FROM EMPLOYEE_TBL;                       с шестого по девятый включительно

                                                                  строки EMP_ID

Вот пример использования данной функции в SQL Server.

SELECT EMP_ID, SUBSTRING(EMP_ID,1,3) 

FROM EMPLOYEE_TBL;

EMP__ID        SUB

311549902      311

442346889      442

213764555      213

313782439      313

220984332      220

443679012      443

6 rows affected.  

А вот пример использования данной функции в Oracle.

SELECT EMP_ID, SUBSTR(EMP_ID,1, 3) 

FROM EMPLOYEEJTBL;

EMP_ID      SUB

311549902   311

442346889   442

213764555   213

313782439   313

220984332   220

443679012   443

6 rows selected.

Обратите внимание на выводимые в этих двух случаях сообщения базы данных. В первом случае это 6 rows affected, а во втором — 6 rows selected. Оба сообщения имеют одинаковый смысл (6 строк выбраны), но такого рода отличия нередко можно увидеть при сравнении различных реализаций SQL.

  Функция INSTR

Функция INSTR используется для поиска заданного множества символов в строке и возвращает позицию, в которой данное множество символов встретилось. Синтаксис соответствующего оператора следующий.

INSTR(имя строки, 'множество символов',

[ начальная позиция поиска [ , номер появления ] ]);

Пример______________________________Значение_______________

SELECT INSTR (STATE, ' I ', 1, 1)        Этот оператор SQL для каждого названия 

FROM EMPLOYEE_TBL;                      штата из таблицы EMPLOYEE_TBL возвраща-

                                                                 ет номер позиции, в которой первый раз

                                                                 встречается буква I

SELECT PROD_DESC,

INSTR(PROD_DESC,'A',1,1) 

FROM PRODUCTSJTBL;

PROD_DESC                        INSTR(PROD_DESC, 'A',1,1)

КОСТЮМ ВЕДЬМЫ                                           О

ПЛАСТИКОВЫЕ ТЫКВЫ                                       3 

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ                         16

ФОНАРИ                                                  4

КОСТЮМЫ В АССОРТИМЕНТЕ                                 11

СЛАДКАЯ КУКУРУЗА                                        3

ТЫКВЕННЫЕ КОНФЕТЫ                                       О

ПЛАСТИКОВЫЕ ПАУКИ                                       3

МАСКИ В АССОРТИМЕНТЕ                                    2

ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ                                      7

ПОЛОЧКА ИЗ ДУБА                                         7

11 строк выбраны.

Обратите внимание на то, что в том случае, когда символ А в строке не найден, для позиции возвращается значение 0.

  Функция LTRIM

Функция LTRIM представляет еще одну возможность для выделения части строки. Эта функция относится к тому же семейству, что и функция SUBSTRING. Функция LTRIM обрезает заданное множество символов с начала строки.

Синтаксис соответствующего оператора следующий.

LTRIM(строка символов, [ , 'множество символов' ]);

Пример_________________________________Значение___________

SELECT LTRIM(FIRST_NAME, ' LES')         Этот оператор SQL обрезает символы 

LES FROM CUSTOMERJTBL                          в начале всех имен LESLIE

WHERE FIRST_NAME = 'LESLIE';

SELECT POSITION, LTRIM(POSITION,'SALES') 

FROM EMPLOYEE_PAY_TBL;

POSITION           LTRIM(POSITION,

MARKETING          MARKETING

TEAM LEADER        TEAM LEADER

SALES MANAGER      MANAGER

SALESMAN           MAN

SHIPPER            HIPPER

SHIPPER            HIPPER

6 строк выбраны.

В строке SHIPPER была обрезана буква S, хотя эта строка и не содержит подстроку SALES. В данном случае первые четыре символа строки SALES были проигнорированы. Искомые символы должны встречаться в строке именно в заданном порядке и находиться с самого левого края строки. Другими словами, функция LTRIM срезает в строке все символы слева до последнего символа искомой строки включительно.

  Функция RTRIM

Подобно LTRIM, функция RTRIM обрезает заданное множество символов в конце строки.

Синтаксис соответствующего оператора следующий.

RTRIM(CTpoKa символов, [ , 'множество символов' ]);

Пример_______________________________________Значение______

SELECT RTRIM(FIRST_NAME, 'ON' )          Этот оператор SQL возвращает имя 

FROM EMPLOYEEJTBL BRANDON            и обрезает символы ON в конце,

WHERE FIRST_NAME = ' BRANDON ' ;      остается только BRAND

SELECT POSITION, RTRIM(POSITION,'ER') 

FROM EMPLOYEE_PAY_TBL;

POSITION              RTRIM(POSITION,

MARKETING             MARKETING

TEAM LEADER           TEAM LEAD

SALES MANAGER         SALES MANAG

ALESMAN               SALESMAN

SHIPPER               SHIPP

SHIPPER               SHIPP

6 строк выбраны.  

Здесь строка ER была обрезана в конце всех подходящих строк.

  Функция DECODE

Функция DECODE к стандартным функциям ANSI не относится — по крайней мере, на момент написания данной книги, — но ее использование обсуждается здесь ввиду предоставляемых ею больших возможностей. Эта функция имеется в SQLBase, Oracle и, возможно, других реализациях SQL. Функция DECODE используется для поиска строк по заданному значению или строке, и если строка найдена, в результатах запроса отображается другая заданная строка.

Синтаксис соответствующего оператора следующий.

DECODE(имя столбца, 'искомая1', 'возвращаемая1'

[,'искомая2', 'возвращаемая2', 'значение по умолчанию']);

Пример____________________________Значение________________

SELECT DECODE (LAST_NAME,          Этот запрос извлекает все фамилии из таблицы

'СМИТ', 'ДЖОНС', 'ДРУГОЕ')                 EMPLOYEE_TBL, причем вместо фамилии 

FROM EMPLOYEE_TBL;                          СМИТ отображается ДЖОНС, а вместо любой

                                                                    другой — значение по умолчанию, которым в данном 

                                                                     случае является значение ДРУГОЕ

В следующем примере функция DECODE используется по отношению к значениям столбца CITY таблицы EMPLOYEEJTBL.

SELECT CITY,

DECODE(CITY,'INDIANAPOLIS', 'INDY',

'GREENWOOD', 'GREEN', 'OTHER') 

FROM EMPLOYEE _TBL;

CITY                   DECOD

GREENWOOD             GREEN

INDIANAPOLIS          INDY

WHITELAND             OTHER

INDIANAPOLIS          INDY

INDIANAPOLIS          INDY

INDIANAPOLIS          INDY

6 строк выбраны.

В результате вместо названия Индианаполиса отображается INDY, вместо Гринвуда отображается GREEN, а для любого другого города — OTHER.

  Другие функции для работы со строками

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

  Выяснение длины значения

Для выяснения длины строки символов, числа, значения даты или выражения в байтах используется функция LENGTH.

Синтаксис соответствующего оператора следующий.

LENGTH(строка символов)

Пример____________________________Значение________________

 SELECT LENGTH (LAST_NAME)       Этот оператор SQL возвращает длину фами-

FROM EMPLOYEE_TBL;                      лии для каждого из служащих

SELECT PROD_DESC, LENGTH(PROD_DESC) 

FROM PRODXCTS_TBL;

PROD_DESC                   LENGTH(PROD_DESC)

КОСТЮМ ВЕДЬМЫ                         13

ПЛАСТИКОВЫЕ ТЫКВЫ                     17 

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ        30

ФОНАРИ                                 6

КОСТЮМЫ В АССОРТИМЕНТЕ                22

СЛАДКАЯ КУКУРУЗА                      16

ТЫКВЕННЫЕ КОНФЕТЫ                     17

ПЛАСТИКОВЫЕ ПАУКИ                     17

МАСКИ В АССОРТИМЕНТЕ                  20

ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ                    18

ПОЛОЧКА ИЗ ДУБА                       15

11 строк выбраны.

  Функция NVL (замещение значения NULL)

Функция NVL используется для отображения значения некоторого выражения, когда значение другого заданного выражения оказывается NULL Функцию NVL можно использовать с данными большинства типов, однако, проверяемое значение и замещающее его значение должны быть одного типа

Синтаксис соответствующего оператора следующий.

NVL('значение', 'замещающее значение')

Пример______________________________Значение______________

SELECT NVL (SALARY, '00000')      Этот оператор SQL находит пустые значения 

FROM EMPLOYEE_PAY_TBL;         для зарплаты и заменяет их значением 00000

SELECT PAGER, NVL(PAGER,9999999999) 

FROM EMPLOYBE_TBL;

PAGER                NVL(PAGER,

                     9999999999

                     9999999999

3175709980           3175709980

8887345678           8887345678

                     9999999999

                     9999999999

6 строк выбраны.  

Значение 9999999999 было подставлено только вместо значений NULL


  Функция LPAD

Функция LPAD используется для добавления символов или пробелов в начало строки. Синтаксис соответствующего оператора следующий

LPAD(множество строк, число, символ)

В следующем примере в начало описаний товаров добавляются точки так, чтобы общее число символов в описании оказалось равным 33.

SELECT LPAD(PROD_DESC,33,'.') 

PRODUCT FROM PRODICTS_TBL;

PRODUCT

.................... КОСТЮМ ВЕДЬМЫ

................ ПЛАСТИКОВЫЕ ТЫКВЫ

...ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 

........................... ФОНАРИ

........... КОСТЮМЫ В АССОРТИМЕНТЕ

................. СЛАДКАЯ КУКУРУЗА

................ ТЫКВЕННЫЕ КОНФЕТЫ

................ ПЛАСТИКОВЫЕ ПАУКИ

............ .МАСКИ В АССОРТИМЕНТЕ

............... ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ

.................. ПОЛОЧКА ИЗ ДУБА

11 строк выбраны.

 

  Функция RPAD

Функция RPAD используется для добавления символов или пробелов в конец строки Синтаксис соответствующего оператора следующий.

RPAD(множество строк, число, символ)

В следующем примере в конец описаний товаров добавляются точки так, чтобы общее число символов в описании оказалось равным 33

SELECT RPAD(PROD_DESC,33,'.') 

PRODUCT FROM PRODICTSJTBL;

PRODUCT

КОСТЮМ ВЕДЬМЫ....................

ПЛАСТИКОВЫЕ ТЫКВЫ................

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ... 

ФОНАРИ...........................

КОСТЮМЫ В АССОРТИМЕНТЕ...........

СЛАДКАЯ КУКУРУЗА.................

ТЫКВЕННЫЕ КОНФЕТЫ................

ПЛАСТИКОВЫЕ ПАУКИ................

МАСКИ В АССОРТИМЕНТЕ.............

ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ...............

ПОЛОЧКА ИЗ ДУБА..................

11 строк выбраны.

 

  Функция ASCII

Функция ASCII возвращает ASCII-код самого левого символа в строке (ASCII расшифровывается как American Standard Code for Information Interchange - американский стандартный код для обмена информацией).

Синтаксис соответствующего оператора следующий.

ASCII(строка)

Например,

ASCII ('A') возвратит 65, 

ASCII (' в') возвратит 66, 

ASCII (' с') возвратит 67.

 

  Математические функции

Математические функции для всех реализаций SQL стандартны. С помощью этих функций выполняются вычисления с числовыми значениями базы данных. Из наиболее используемых математических функций выделим следующие.

Абсолютное значение ABS Округление ROUND Квадратный корень SQRT Знак числа SIGN Возведение в степень POWER Целая часть и ближайшее целое сверху FLOOR, CEIL Экспонента ЕХР Тригонометрические функции SIN, cos, TAN Общий синтаксис большинства математических функций следующий. 

ФУНКЦИЯ(выражение)

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

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

Абсолютное значение 

Округление 

Квадратный корень 

Знак числа 

Возведение в степень 

Целая часть и ближайшее целое сверху

Экспонента 

Тригонометрические функции

ABS 

ROUND 

SQRT 

SIGN 

POWER

FLOOR, 

CEIL EXP

SIN, COS, TAN

 

К главным классам преобразования данных относятся следующие преобразования:

• символьного типа данных в числовой;
• числового типа данных в символьный;
• символьного типа данных в тип даты и времени;
• типа даты и времени в символьный.

В ходе данного урока обсуждаются первые два класса преобразований. Остальные будут обсуждаться в ходе урока 12, "Работа с датами и временем".

В некоторых реализациях предусмотрено неявное преобразование данных одних типов в другие при необходимости

  Преобразование символьных строк в числа

Относительно различия числовых и символьных данных вы должны четко представлять себе два момента.

1. К числовым данным могут применяться арифметические операции и функции.

2. При неформатированном выводе числовые значения выравниваются по правому краю, а символьные строки — по левому.

После преобразования символьной строки в число результат получает соответствующие только что указанные свойства.

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

SELECT SUM(LENGTH(LAST_NAME) + LENGTH{FIRST_NAME)) TOTAL 

FROM EMPLOYEE_TBL;

TOTAL

--------

71 

1 строка выбрана.

В этом примере использованы функция LENGTH и арифметический оператор +, чтобы вычислить суммарную длину имени и фамилии для каждой записи таблицы, а после этого с помощью функции SUM вычисляется сумма длин всех имен и фамилий в таблице.

При вложении одних функций SQL в другие вычисление начинается с внутренней функции, и все вложенные функции обрабатываются последовательно по уровням вложения от внутренней к внешней

  Резюме

Вы ознакомились с рядом функций, используемых в операторах SQL — как правило, в запросах, — чтобы изменить представление данных при выводе. Среди таких функций есть символьные, математические и функции преобразования. Очень важно  понимать, что стандарт ANSI является только общим руководством для производителей при создании реализации языка, он не диктует точный синтаксис соответствующих операторов и не ограничивает право производителя на нововведения. Большинство производителей предлагают стандартные функции в соответствии с концепциями ANSI, но каждый производитель предлагает свой список доступных пользователю функций. Могут отличаться как имена функций, так и их синтаксис, но лежащие в основе функций концепции одинаковы.

  Вопросы и ответы

Все ли функции относятся к стандарту ANSI?

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

В результате применения функций по отношению к данным меняются ли эти данные в базе данных?

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

  Практикум

Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".

  Тесты

1. Свяжите описания с подходящими функциями.

Описания______________________________Функции_____ 

а. Используется для                                                 | |I 

извлечения части строки                                        RPAD 

из данной строки                                                     LPAD

б. Используется для                                                  LENGTH 

обрезания части строки                                           UPPER 

в ее начале или конце

в. Используется для                                                  LTRIM 

изменения регистра                                                  RTRIM

всех символов строки на нижний                           LOWER

г. Используется для                                                   SUBSTR 

выяснения длины строки

д. Используется для объединения строк

2. Верно ли следующее утверждение: "При использовании в запросе функций для изменения отображения выводимых данных изменяется также и пред* ставление данных в самой базе данных?"

3. Верно ли следующее утверждение: "При использовании в запросах сложных выражений, где одни функции оказываются вложенными в другие, внешняя функция всегда выполняется первой?"

  Упражнения

1. С помощью подходящей функции преобразуйте все буквы строки hello в прописные.

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

3. С помощью подходящей функции соедините строки Джон и СОН в одну.