Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы языка SQL.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
97 Кб
Скачать
☆

Работа с датами

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

  • "October 27, 1995"

  • "27-OCT-1994"

  • "10-27-95"

  • "10/27/95"

  • "27.10.95"

Кроме абсолютных дат, в SQL-выражениях можно также пользоваться относительным заданием дат:

  • "yesterday" - вчера

  • "today" - сегодня

  • "now" - сейчас (включая время)

  • "tomorrow" - завтра

Дата может неявно конвертироваться в строку (из строки), если:

  • строка, представляющая дату, имеет один из вышеперечисленных форматов;

  • выражение не содержит неоднозначностей в толковании типов столбцов.

SELECT first_name, last_name, hire_date

FROM employee

WHERE hire_date > '1-1-94'

получить список сотрудников, принятых на работу после 1 января 1994 года

FIRST_NAME

LAST_NAME

HIRE_DATE

Pierre

Osborne

3-JAN-1994

John

Montgomery

30-MAR-1994

Mark

Guckenheimer

2-MAY-1994

Значения дат можно сравнивать друг с другом, сравнивать с относительными датами, вычитать одну дату из другой.

SELECT first_name, last_name, hire_date

FROM employee

WHERE 'today' - hire_date > 365 * 7 + 1

получить список служащих, проработавших на предприятии к настоящему времени более 7 лет

FIRST_NAME

LAST_NAME

HIRE_DATE

Robert

Nelson

28-DEC-1988

Bruce

Young

28-DEC-1988

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

К агрегирующим функциям относятся функции вычисления суммы (SUM), максимального (SUM) и минимального (MIN) значений столбцов, арифметического среднего (AVG), а также количества строк, удовлетворяющих заданному условию (COUNT).

SELECT count(*), sum (budget), avg (budget),

min (budget), max (budget)

FROM department

WHERE head_dept = 100

вычислить: количество отделов, являющихся подразделениями отдела 100 (Маркетинг и продажи), их суммарный, средний, мини- мальный и максимальный бюджеты

COUNT

SUM

AVG

MIN

MAX

5

3800000.00

760000.00

500000.00

1500000.00

Предложение FROM команды SELECT

В предложении FROM перечисляются все объекты (один или несколько), из которых производится выборка данных (рис.2). Каждая таблица или представление, о которых упоминается в запросе, должны быть перечислены в предложении FROM.

Ограничения на число выводимых строк

Число возвращаемых в результате запроса строк может быть ограничено путем использования предложения WHERE, содержащего условия отбора (предикат, рис.2). Условие отбора для отдельных строк может принимать значения true, false или unnown. При этом запрос возвращает в качестве результата только те строки (записи), для которых предикат имеет значение true.

Типы предикатов, используемых в предложении WHERE:

  • сравнение с использованием реляционных операторов

    • = равно

    • <> не равно

    • != не равно

    • > больше

    • < меньше

    • >= больше или равно

    • <= меньше или равно

  • BETWEEN

  • IN

  • LIKE

  • CONTAINING

  • IS NULL

  • EXIST

  • ANY

  • ALL