Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2 - все в одном.doc
Скачиваний:
6
Добавлен:
04.09.2019
Размер:
84.99 Кб
Скачать

II) Вопросы по языку sql

  1. Как можно специфицировать вывод всех столбцов таблицы?

Для вывода всех столбцов таблицы следует либо перечислить все столбцы во фразе SELECT, либо воспользоваться символом ‘*’ вместо списка столбцов. В следующем запросе выводится вся таблица FACULTY:

SELECT *

FROM FACULTY;

  1. Зачем необходимы алиасы имена столбцов? Как это делается?

Квалификация имен столбцов именами таблиц. Имя столбца может быть квалифицировано (уточнено) именем таблицы с использованием следующего синтаксиса:

table_name.column_name

Уточнение имени столбца необходимо в том случае, когда запрос использует много таблиц (см. позже) и различные таблицы имеют столбцы с одинаковыми именами. Уточнение имени столбца можно производить и в том случае, когда нет необходимости в этом. Например, следующий запрос считается корректным:

SELECT ROOM.Num, ROOM.Seats, ROOM.Floor

FROM ROOM;

  1. Содержит ли результат запроса повторяющиеся строки? Как можно удалить повторяющиеся строки?

Вы можете удалить дубликаты строк результата, используя фразу DISTINCT или UNIQUE во фразе SELECT. Эта фраза применяется ко всей выходной строке, а не к отдельному столбцу. Например, следующий два запроса эквивалентны и дают список всех имеющихся должностей:

SELECT DISTINCT Post SELECT UNIQUE Post

FROM TEACHER; FROM TEACHER;

Ключевое слово ALL означает, что дубликаты должны быть сохранены. Это значение используется по умолчанию, если перечисленные выше ключевые слова не указываются. Следующие два запроса эквивалентны:

SELECT ALL Post SELECT Post

FROM TEACHER; FROM TEACHER;

  1. Зачем нужны алиасы столбцов? Как они задаются?

Предоставляет другое имя для выражения столбца и этот алиас используется в качестве заголовка столбца. Фраза AS является факультативной. Алиас переименовывает элемент списка фразы SELECT в контексте всего запроса. Алиас может использоваться во фразе ORDER BY, однако его использование в других фразах запрещено.  

  1. Зачем нужна квалификация столбцов именами таблиц?

Квалификация имен столбцов именами таблиц. Имя столбца может быть квалифицировано (уточнено) именем таблицы с использованием следующего синтаксиса:

table_name.column_name

Уточнение имени столбца необходимо в том случае, когда запрос использует много таблиц (см. позже) и различные таблицы имеют столбцы с одинаковыми именами. Уточнение имени столбца можно производить и в том случае, когда нет необходимости в этом. Например, следующий запрос считается корректным:

SELECT ROOM.Num, ROOM.Seats, ROOM.Floor

FROM ROOM;

  1. Что такое внешнее соединение? Сформулируйте и запишите запрос с внешним соединением.

Внешнее соединение (оuter join). Внешнее соединение расширяет возможности обычного соединения. Внешнее соединение возвращает все строки, которые удовлетворяют условию соединения, а также строки одной из таблиц, для которых не нашлось строки из другой таблицы, которые бы удовлетворили условию соединения. Такие строки не возвращаются обычным соединением. Для того, чтобы произвести внешнее соединение таблиц A и B с получением в результате ВСЕХ строк таблицы A, следует применить оператор внешнего соединения (+) ко всем столбцам таблицы В. Для всех тех строк таблицы А, для которых не нашлось совпадающих строк из таблицы В, Oracle возвращает значение NULL для всех тех выражений из списка SELECT, которые используют столбцы из В. В следующем примере мы получаем список факультетов и их кафедр, причем имена кафедр присутствуют даже в том случае, когда у них нет факультетов – в этом случае вместо имени факультета выводится значение NULL:

SELECT FACULTY.Name AS FacName, DEPARTMENT.Name AS DepName, DEPARTMENT.Fund AS DepFund

FROM FACULTY, DEPARTMENT

WHERE FACULTY.FacNo = DEPARTMENT.FacNo (+);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]