
К9-12В. Вопросы и ответы к ГОСам 2013 / Базы данных / 10. Работа с датами в SQL. Левые и правые соединения. Работа с NULL значениями. Выборка уникальных записей. Примеры
.docx-
Работа с датами в SQL. Левые и правые соединения. Работа с NULL значениями. Выборка уникальных записей. Примеры.
Соединение таблиц
элемент1 [тип_соединения] JOIN элемент2 ON условие_соединения
Элементом может быть:
Ссылка на таблицу.
Соединение таблиц.
Вложенное табличное выражение.
Работа с NULL значениями:
1) COALESCE (expr1, expr2, … exprN) – возвращает первый NOT NULL аргумент, т.е. для трех аргументов аналогично NVL(expr1,NVL(expr2, expr3))2) Создание NULL-значений
2) NULLIF (<выр>, <значение>)
Если <выр>=<значение>, то функция возвращает NULL, иначе <выр>, которое обычно является именем столбца, например NULLIF(1,1), всегда возвращает NULL.
3) Особенности NULL-значений в предикатах сравнения
Если в предикате сравнения одно из сравниваемых значений равно NULL, то и результат сравнения равен NULL.
4) is null , is not null
5) NVL(expr1, expr2) – в случае, если expr1 IS NOT NULL, выводится expr1, в противном случае – expr2
Уникальные записи: DISTINCT
Работа с датами
Для ORACLE
Тип данных DATE. Исходный тип данных для предоставления даты и времени.В нем в виде 7-байтового значения фиксированной длины хранятся: год, месяц, день, часы, минуты,секунды.
Тип TIMESTAMP: как DATE + доли секунды.
TIMESTAMP WITH TIMEZONE – с хранением таймзоны
TIMESTAMP WITH LOCAL TIMEZONE
Table 4-1 Datetime Functions Designed for the DATE Datatype
Function |
Description |
ADD_MONTHS |
Returns the date d plus n months |
LAST_DAY |
Returns the last day of the month that contains date |
MONTHS_BETWEEN |
Returns the number of months between date1 and date2 |
NEW_TIME |
Returns the date and time in zone2 time zone when the date and time in zone1 time zone are date Note: This function takes as input only a limited number of time zones. You can have access to a much greater number of time zones by combining the FROM_TZ function and the datetime expression. |
NEXT_DAY |
Returns the date of the first weekday named by char that is later than date |
ROUND (date) |
Returns date rounded to the unit specified by the fmt format model |
TRUNC (date) |
Returns date with the time portion of the day truncated to the unit specified by the fmt format model |
SYSDATE |
Returns the date and time of the operating system on which the database resides, taking into account the time zone of the database server's operating system that was in effect when the database was started |