Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Labs / Russian / Lab4R-SELECTBasicFeatures.doc
Скачиваний:
39
Добавлен:
20.02.2016
Размер:
346.62 Кб
Скачать

Описание и примеры

SQL-запрос описывается с помощью предложения SELECT с использование следующих фраз:

SELECT, FROM, WHERE, GROUP BY, HAVING, UNION, UNION ALL, INTERSECT, MINUS, ORDER BY.

Имеются также и другие фразы, которые мы не будем изучать. Среди перечисленных выше фраз только SELECT и FROM являются обязательными, все остальные – факультативные.

В этой лабораторной работе мы изучим основные возможности фраз SELECT, FROM и WHERE.

Основные фразы запроса: select и from Фраза select

В простейшем случае фраза SELECT содержит список столбцов, которые следует вывести, а фраза FROM идентифицирует таблицу.

Вывод указанных столбцов. Для вывода конкретных столбцов они должны быть перечислены во фразе SELECT. Следующий запрос выводит названия факультетов и имена их деканов:

SELECT Name, Dean

FROM FACULTY;

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

SELECT *

FROM FACULTY;

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

table_name.column_name

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

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

FROM ROOM;

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

SELECT DISTINCT Post SELECT UNIQUE Post

FROM TEACHER; FROM TEACHER;

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

SELECT ALL Post SELECT Post

FROM TEACHER; FROM TEACHER;

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

SELECT Name, Salary, Salary + Commission, Commission * 100 / (Salary + Commission)

FROM TEACHER;

Литералы в списке фразы SELECT. Список фразы SELECT может содержать литералы или литеральные выражения. Во время вывода столбец с литералом будет содержать значение литерала во всех выходных строках. Например, запрос:

SELECT 'The teacher', Name, 'has salary', Salary, 'UAH'

FROM TEACHER;

может иметь следующий результат:

Name Salary

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

The teacher Ivanov has salary 500 UAH

The teacher Petrov has salary 470 UAH

Переименование элементов списка фразы SELECT. Любой элемент списка фразы SELECT может быть переименован с помощью так называемого «алиаса столбца». Это оказывается особенно полезным, когда следует сослаться на элемент, который представляет собой выражение. Алиас столбца также используется в качестве заголовка столбца при выводе результатов. В следующем запросе оба элемента списка SELECT переименовываются с помощью алиаса столбца:

SELECT Name AS Teacher_name,

Salary + Commission AS Total_salary

FROM TEACHER;

Ключевое слово AS факультативно.

Если вы хотите, чтобы алиас представлял собой несколько слов, разделенных пробелами, то алиас следует заключить в двойные кавычки, например:

SELECT Name AS “Name of the teacher“,

Salary + Commission AS “Total salary of the teacher“

FROM TEACHER;

Соседние файлы в папке Russian