ДВОЙНАЯ таблица SQL
Что такое ДВОЙНОЙ стол?
DUAL - это специальная таблица с одной строкой и одним столбцом, присутствующая по умолчанию во всех базах данных Oracle. Владельцем DUAL является SYS (SYS владеет словарем данных, поэтому DUAL является частью словаря данных.) Но доступ к DUAL может получить каждый пользователь. В таблице есть один столбец VARCHAR2 (1) с именем DUMMY, который имеет значение «X». MySQL позволяет указывать DUAL в виде таблицы в запросах, которым не нужны данные из каких-либо таблиц. В SQL Server DUAL таблица не существует, но вы можете ее создать.
Таблица DUAL была создана Чарльзом Вейссом из корпорации Oracle для предоставления таблицы для объединения во внутренние представления.
Смотрите следующие команды:
Следующая команда отображает структуру таблицы DUAL:
DESC DUAL;
Выход:
Имя Нуль? Тип --------------------------- ------ DUMMY VARCHAR2 (1)
Следующая команда отображает содержимое таблицы DUAL:
SELECT * FROM DUAL;
Выход:
DUMMY ---------- Икс
Следующая команда отображает количество строк таблицы DUAL:
SELECT COUNT(*) FROM DUAL;
Выход:
COUNT (*) ---------- 1
Следующая команда отображает строковое значение из таблицы DUAL:
SELECT 'ABCDEF12345' FROM DUAL;
Выход:
«ABCDEF1234 ----------- ABCDEF12345
Следующая команда отображает числовое значение из таблицы DUAL:
SELECT 123792.52 FROM DUAL;
Выход:
123792,52 ---------- 123792,52
Следующая команда пытается удалить все строки из таблицы DUAL:
DELETE FROM DUAL;
Выход:
УДАЛИТЬ ИЗ ДВОЙНОГО * ОШИБКА в строке 1: ORA-01031: недостаточные привилегии
Следующая команда пытается удалить все строки из таблицы DUAL:
TRUNCATE TABLE DUAL;
Примечание. Команда DELETE используется для удаления строк из таблицы. После выполнения операции DELETE вам нужно выполнить COMMIT или ROLLBACK транзакцию, чтобы сделать изменение постоянным или отменить его. TRUNCATE удаляет все строки из таблицы. Операция не может быть отменена.
Выход:
TRUNCATE TABLE DUAL * ОШИБКА в строке 1: ORA-00942: таблица или представление не существует
Следующая команда выбирает две строки из двух:
SELECT dummy FROM DUAL
UNION ALL
SELECT dummy FROM DUAL;
Выход
DUMMY ---------- Икс Икс
Пример - 1
Вы также можете проверить системную дату из таблицы DUAL, используя следующую инструкцию:
SELECT sysdate FROM DUAL ;
Выход:
SYSDATE --------- 11-ДЕК-10
Пример - 2
Вы также можете проверить арифметическое вычисление из таблицы DUAL, используя следующую инструкцию:
SELECT 15+10-5*5/5 FROM DUAL;
Выход:
15 + 10-5 * 5/5 ----------- 20
Пример - 3
Следующий код отображает числа 1..10 от DUAL:
SELECT level
FROM DUAL
CONNECT BY level <=10;
Выход:
УРОВЕНЬ ---------- 1 2 3 4 5 6 7 8 9 10
Пример - 4
В следующем коде DUAL предполагает использование декодирования с NULL.
SELECT декодировать (ноль, ноль, 1,0) ОТ ДВОЙНОГО;
Выход:
ДЕКОДИРОВАНИЯ (NULL, NULL, 1,0) --------------------- 1
ДВОЙНАЯ таблица: Oracle против MySQL
Мы уже узнали, что DUAL - это специальная таблица из одной строки в один столбец. Для Oracle это полезно, потому что Oracle не допускает такие выражения, как:
ВЫБЕРИТЕ 15 + 10-5 * 5/5;
Выход:
ВЫБЕРИТЕ 15 + 10-5 * 5/5 * ОШИБКА в строке 1: ORA-00923: ключевое слово FROM не найдено там, где ожидается
Но следующая команда будет выполнена (см. Вывод предыдущего примера):
SELECT 15+10-5*5/5 FROM DUAL;
В случае MySQL будет выполнена следующая команда:
SELECT 15+10-5*5/5;
Выход:
В следующей таблице показано использование фиктивной таблицы в стандартной СУБД.
СУБД | Концепция пустышки |
---|---|
MSSQL | Нет концепции пустышки. |
MySQL | Нет концепции пустышки. |
оракул | Пустой стол: ДВОЙНОЙ. |
Informix | Начиная с версии 11.10, фиктивная таблица была включена: sysmaster: sysdual |
PostgreSQL | Нет концепции пустышки. |
DB2 | Пустой стол: SYSIBM.SYSDUMMY1 |
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущий: вывод порядка SQL по номеру столбца с группировкой по
Далее: SQL-инъекция
Новый контент: Composer: менеджер зависимостей для PHP , R программирования