Элементы формата числа для TO_CHAR и TO_NUMBER
В следующей таблице перечислены элементы формата числа. Комбинацию этих элементов можно использовать как аргумент fmt функции TO_CHAR.
Элемент формата
|
Пример
|
Описание
|
9
|
'999'
|
Количество девяток указывает число возвращаемых значащих цифр.
|
0
|
'0999'
|
Добавляет нули перед числом.
|
$
|
'$9999'
|
Добавляет знак доллара перед числом.
|
B
|
'B9999'
|
Заменяет нулевые значения пробелами.
|
MI
|
'99999MI'
|
Возвращает знак '-' после отрицательных значений.
|
S
|
S9999
|
Возвращает знак '+' для положительных значений и знак '-' для отрицательных значений в указанную позицию.
|
PR
|
'9999PR'
|
Возвращает отрицательные значения в <угловых скобках>.
|
D
|
99D99
|
Возвращает символ, представляющий десятичную точку, в указанную позицию.
|
G
|
9G999
|
Возвращает символ разделения цифр на группы в указанную позицию.
|
C
|
C999
|
Возвращает международный знак валюты в указанную позицию.
|
L
|
L999
|
Возвращает знак местной валюты в указанную позицию.
|
,
|
'9,999'
|
Возвращает запятую в указанную позицию.
|
.
|
'99.99'
|
Возвращает точку в указанную позицию.
|
V
|
'999V99'
|
Умножает значение на 10n, где n количество девяток после 'V'.
|
EEEE
|
'9.999EEEE'
|
Возвращает значение в нормализованном формате. В fmt должно быть ровно четыре буквы 'E'.
|
RN или rn
|
RN
|
Возвращает римские цифры прописными или строчными буквами (целое число в диапазоне от 1 до 3999).
|
DATE
|
'DATE'
|
Возвращает значение, преобразованное из даты юлианского календаря в формат 'MM/DD/YY'.
|
Форматные маски дат в TO_CHAR и TO_DATE
Любую комбинацию этих форматных элементов можно использовать как аргумент fmt функции TO_CHAR или TO_DATE.
Элемент формата
|
Возвращаемое значение
|
|
|
YYYY, YY, RR
|
Год.
|
YEAR
|
Год, записанный словами, а не цифрами.
|
MM
|
Месяц (01-12).
|
MONTH
|
Название месяца, дополненное пробелами до 9 символов.
|
MON
|
Сокращенное название месяца.
|
DDD или DD или D
|
День года (1-366) или месяца (1-31) или недели (1-7).
|
DAY
|
Название дня недели, дополненное пробелами до 9 символов.
|
DY
|
Сокращенное название дня недели.
|
HH24
|
Час дня (1-24).
|
MI
|
Минута (0-59).
|
SS
|
Секунда (0-59).
|
- / , . : ;
|
Знаки пунктуации.
|
"..текст.."
|
Присутствующий в форматной маске произвольный текст.
|
Функции общего назначения
Функция
|
Возвращаемое значение
|
|
|
GREATEST(expr[,expr]...)
|
Возвращает наибольшее значение expr.
|
LEAST(expr[,expr]...)
|
Возвращает наименьшее значение expr.
|
USER
|
Имя текущего пользователя ORACLE.
|
DECODE(expr, search1,return1,
[search2,return2,]...[default])
|
Если expr равно search, возвращается соответствующий результат return. Если соответствующей пары не найдено, возвращается default.
|
NVL(expr1,expr2)
|
Возвращает expr2, если expr1 имеет пустое значение, в противном случае возвращается expr1.
|
Функция
|
Возвращаемое значение
|
|
|
AVG([DISTINCT|ALL expr)
|
Среднее значение от expr, неопределенные значения опускаются. Когда задается ключевое слово DISTINCT, ORACLE учитывает только неповторяющиеся значения аргумента. При указании ALL (по умолчанию) учитываются все значения.
|
COUNT([DISTINCT|ALL expr)
|
Число строк, для которых expr принимает не пустое значение.
|
MAX([DISTINCT|ALL expr)
|
Максимальное значение выражения expr.
|
MIN([DISTINCT|ALL expr)
|
Минимальное значение выражения expr.
|
SUM([DISTINCT|ALL expr)
|
Сумма значений выражения expr.
|
Пример. Получить суммы продаж, для каждого изготовителя товара
SELECT ТОВАР_ИЗГОТОВИТЕЛЬ, SUM(СУММА)
|
FROM ЗАКАЗЫ
|
GROUP BY ТОВАР_ИЗГОТОВИТЕЛЬ;
|
Пример. Получить идентификаторы продавцов и сумму их продаж, для продавцов, оформивших более 2 заказов.
SELECT ПРОД_ИД, SUM(СУММА)
|
FROM ЗАКАЗЫ
|
GROUP BY ПРОД_ИД
|
HAVING COUNT(*)>2;
|
Контрольные вопросы:
Числовые функции?
Символьные функции?
Функции для работы с датами?
Преобразование типов данных?
Лекция №5. Выборка данных из нескольких таблиц
План:
Архитектура ODBC
Источники данных и ODBC
Создание соединения: класс Connection.
Создание оператора: класс Statement.
Создание оператора: класс PreparedStatement
Обращение к базе данных с использованием технологии ADO.
Объект Connection.
Язык SQL можно использовать как в интерактивном режиме, так и путем внедрения его операторов в программы, написанные на процедурных языках высокого уровня. Примером интерактивного использования SQL-операторов является окно Query Analyzer в среде MS SQL Server. Применение же языка SQL в прикладных программах на практике реализовано двумя различными способами:
Внедренные SQL-операторы. Отдельные SQL-операторы внедряются прямо в исходный текст, программы и смешиваются с операторами базового языка. Этот подход позволяет создавать программы, обращающиеся непосредственно к базе данных. Специальные программы-предкомпиляторы преобразуют исходный текст с целью замены SQL-операторов соответствующими вызовами подпрограмм СУБД, затем он компилируется и собирается обычным способом.
Использование прикладного интерфейса программирования (API). Альтернативный вариант состоит в предоставлении программисту стандартного набора функций, к которым можно обращаться из создаваемых им программ. Конкретный вариант API может предоставлять тот же набор функциональных возможностей, который существует при подключении встроенных операторов, однако при этом устраняется необходимость предкомпилирования исходного текста. Кроме того, некоторые разработчики указывают, что в этом случае используется более понятный интерфейс и созданный программный текст более удобен с точки зрения его сопровождения.
Оба способа предполагают использование операторов как статического SQL, так и динамического SQL.
Что касается операторов статического SQL, то какого-либо изменения после их однократного написания не предполагается. Они могут храниться как в файлах, предназначенных для дальнейшего использования, так и в виде хранимых процедур базы данных, однако программисты не получают всей той гибкости, которую предлагает им динамический SQL. Несмотря на наличие большого числа запросов, доступных конечному пользователю, может случиться так, что ни один из этих "законсервированных" запросов не сможет удовлетворить его текущим потребностям.
Динамический SQL дает возможность программисту или конечному пользователю создавать операторы во время выполнения приложения и передавать их базе данных, которая после выполнения этих операторов помещает выходные данные в переменные программы. Динамический SQL часто используется инструментальными средствами, предназначенными для построения заранее незапланированных запросов, позволяющих оперативно формировать тот или иной оператор SQL в зависимости от особых требований, возникших в конкретной ситуации. После настройки оператора SQL в соответствии с потребностями пользователя он направляется серверу баз данных для проверки на наличие синтаксических ошибок и необходимых для его выполнения привилегий, после чего происходит его компиляция и выполнение.
Рассмотрим применение прикладного интерфейса программирования (API) для выполнения операторов SQL.
Прикладной API включает набор библиотечных функций, предоставляющих программисту разнообразные типы доступа к базе данных, а именно: подключение, выполнение различных SQL-операторов, выборка отдельных строк данных из результирующих наборов данных и т. д.
Чтобы не разрабатывать отдельные версии пользовательского приложения для каждой из целевых СУБД, с которыми данное приложение планируется использовать, Microsoft разработала стандарт, получивший название Open Database Connectivity ODBC. Технология ODBC предусматривает применение единого интерфейса для доступа к различным базам данных SQL, причем язык SQL рассматривается как основное стандартное средство доступа. Этот интерфейс обеспечивает высокую степень универсальности, в результате одно и то же приложение может получать доступ к данным, хранящимся в базах различных целевых СУБД, без необходимости внесения изменений в его программный текст. Таким образом, разработчики получили инструмент для создания и распространения приложений архитектуры "клиент-сервер", способных работать с широким спектром различных целевых СУБД, а связать приложения с любой выбранной целевой СУБД можно посредством соответствующего ODBC-драйвера.
В настоящее время технология ODBC фактически приобрела значение отраслевого стандарта. Основной причиной ее популярности является присущая ей гибкость, предоставляющая разработчикам следующие преимущества:
приложения больше не связаны с прикладным API какой-то одной СУБД;
SQL-операторы могут явно включаться в исходный текст приложения либо динамически создаваться непосредственно во время выполнения программ;
приложение способно игнорировать особенности используемых протоколов передачи данных;
данные посылаются и доставляются в том формате, который наиболее удобен для конкретного приложения;
средства поддержки ODBC разработаны с учетом требований стандартов X/Open и CLI (Call Level Interface);
в настоящее время существуют драйверы ODBC для различных типов самых распространенных СУБД.
Do'stlaringiz bilan baham: |