Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по ORACLE 2004 года.doc
Скачиваний:
28
Добавлен:
03.05.2015
Размер:
466.43 Кб
Скачать

Пример.

Вывод названий фильмов и дат и дат их выпуска, в 1991 году. Вывод дат должен производиться в формате типа "7 February 1991".

SQL> select namef, to_char (god_vip, 'fmDD "of Mounth YYYY') Date1

2 from film

3 where god_vip like '%91';

NAMEF DATE1

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

Дом 17 of Mounth 1991

Элементы формата числа

Для вывода символьных строк, содержащих цифры, используются следующие элементы формата:

Элемент

Описание

Пример

Результат

9

Числовая позиция (число девяток определяет ширину поля вывода)

999999

1234

0

Вывод ведущих нулей

099999

001234

$

Плавающий знак доллара

$999999

$1234

L

Плавающий знак местной валюты

L999999

FF1234

.

Задает наличие в данной позиции десятичной точки

999999.99

1234.00

,

Ставит запятую в заданной позиции

999,999

1,234

MI

Знак минус справа (для отрицательных значений)

1234-

PR

Заключение отрицательных значений в скобки

999999

<1234>

ЕЕЕЕ

Научный формат (должен быть задан четырьмя символами 'Е').

99.999ЕЕЕЕ

1.234Е+03

V

Умножить на 10 n раз (n = число символов "9" после V)

9999V99

123400

В

Вывод нулевых значений пробелами вместо нулей

В9999.99

1234.00

Пример.

Вывод сообщения о стоимости проката фильма с указанным номером для каждого фильма, выпущенного позже 1 января 1987.

SQL> select 'Фильм' || ' ' || TO_CHAR(filmID),

2 'Сдается в прокат по цене ',

3 TO_CHAR(stoimost_prok, 'fm99') NOTE

4 from film

5 WHERE god_vip>'01.01.1987';

Функции TO_NUMBER и TO_DATE

Функции TO_NUMBER и TO_DATE преобразовывают строку символов в числовой формат или формат даты.

Пример.

Вывод фильмов с датой выпуска 12 марта 1988 года. Символьная строка с датой преобразуется в формат даты.

SQL> select filmid, namef, god_vip

2 from film

3 where god_vip = TO_DATE('Февраль 1, 2002', 'Month dd, YYYY');

FILMID NAMEF GOD_VIP

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

3 Азазель 01.02.02

Пример.

Вывод под заголовком "Фильм" названия каждого фильма, начинающиеся с буквы «К», заглавными буквами, и фамилии режиссера строчными.

SQL> SELECT CONCAT(UPPER(namef),LOWER(regiser)) "Фильм"

2 FROM film

3 WHERE namef LIKE 'К%';

Фильм

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

КРАСОТКАполански

КУКЛА такеши китано

КРАСНЫЙ ДРАКОН

Пример.

Вывод названий фильмов, у которых не указан режиссер. Выходная строка должна указывать, что для этого фильма режиссер не указан.

SQL> select namef,

2 NVL (TO_CHAR(regiser), 'Режиссер не указан')

3 FROM film

4 WHERE regiser IS NULL;

NAMEF NVL(TO_CHAR(REGISER)

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

Азазель Режиссер не указан

Ва-банк Режиссер не указан

Красный дракон Режиссер не указан

Пример.

Вывод даты следующей пятницы, отстоящей на шесть месяцев от даты выпуска фильма. Выходная дата должна иметь следующий вид: Февраль, Март 12th, 1999.

SQL> SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS(god_vip,6), 'ПЯТНИЦА'),

2 'fmDAY, Month, ddth, YYYY')

3 "Через 6 месяцев будет:"

4 FROM film

5 WHERE regiser IS NULL;

Через 6 месяцев будет:

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

ПЯТНИЦА, Август, 2nd, 2002

ПЯТНИЦА, Сентябрь, 6th, 1985

ПЯТНИЦА, Сентябрь, 16th, 1988

Лабораторная работа № 6.

Тема: ВЫБОРКА ДАННЫХ ИЗ НЕСКОЛЬКИХ ТАБЛИЦ

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

SQL> SELECT NAMEF, FIO

2 FROM FILM, KLIENT;

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

Простой запрос с соединением

Для отображения данных из двух или более связанных таблиц необходимо задать простое условие соединения в предложении WHERE.

Синтаксис

SELECT таблица.столбец, таблица.столбец

FROM таблица1, та блица 2

WHERE таблица1.столбец1 = таблица2.столбец2

где таблица, столбец таблица и столбец, из которых производится выборка

таблица1,столбец1= условие, соединяющее таблицы (или задающее их таблица.2. столбец2 взаимосвязь)

Пример.

Соединение таблиц KLIENT и FILM для вывода названия фильмов и фамилии клиентов, взявших фильмы на прокат.

SQL> SELECT FILM.NAMEF "Film", FIO

2 FROM FILM, KLIENT, DOGOVOR

3 WHERE FILM.FILMID=DOGOVOR.FILMID AND

4 KLIENT.KLIENTID=DOGOVOR.KLIENTID;

Film FIO

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

Красный дракон Иванов И.Н.

Использование псевдонимов таблиц

Различение столбцов с помощью имен таблиц может отнимать очень много времени - особенно, если имена у таблиц длинные. Поэтому вместо имен используются псевдонимы таблиц. Аналогично псевдонимам столбцов псевдонимы таблиц позволяют присвоить таблице другое имя для конкретного предложения SELECT. Употребив псевдоним таблицы один раз, необходимо продолжать его использовать для квалификации каждого столбца.

Пример.

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

SQL> SELECT f.NAMEF "Film", k.FIO

2 FROM FILM f, KLIENT k, DOGOVOR d

3 WHERE f.FILMID=d.FILMID AND

4 k.KLIENTID=d.KLIENTID;

  • Псевдонимы таблиц могут содержать до тридцати символов, но чем они короче, тем лучше.

  • Если псевдоним таблицы используется для указания таблицы в предложении FROM, этот же псевдоним должен использоваться вместо имени этой таблицы во всем предложении SELECT.

  • Следует выбирать осмысленные псевдонимы.

  • Действие псевдонима таблицы распространяется лишь на текущую команду SELECT.