Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db / Лекции / 6 семестр / Языки запросов.docx
Скачиваний:
127
Добавлен:
23.03.2015
Размер:
280.32 Кб
Скачать
        1. Включение литералов в результат запроса

Во фразе SELECT кроме имен столбцов и выражений с ними можно указывать константы (и константные выражения). Это приведет к тому, что в результирующей таблице будет создан столбец с одинаковыми значениями во всех строках. Такой константой может быть любой литерал, в том числе и символьный. Покажем это на примере.

Запрос.Вывести ставки преподавателей, оформив результат предложениями на русском языке.

SELECT 'Преподаватель', Name, 'имеет ставку', Salary

FROM TEACHER;

ПРЕПОДАВАТЕЛЬ

NAME

ИМЕЕТСТАВКУ

SALARY

Преподаватель

Сидоров

имеет ставку

1070

Преподаватель

Рамишевский

имеет ставку

830

Преподаватель

Хоренко

имеет ставку

670

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

Запрос.Вывести зарплату преподавателей, оформив результат предложениями на русском языке без лишних пробелов.

SELECT 'Преподаватель ' || Name || ' имеет ставку ' || Salary

as“Сведения о зарплате”

FROMTEACHER;

или (MySQL)

SELECTCONCAT('Преподаватель ',Name, ' имеет ставку ',Salary)

as“Сведения о зарплате”

FROMTEACHER;

Сведения о зарплате

Преподаватель Сидоров имеет ставку 1070

Преподаватель Рамишевский имеет ставку 830

Преподаватель Хоренко имеет ставку 670

Фраза SELECTобладает ограниченными возможностями форматирования результирующих данных. Обычно в таких случаях в дополнение к базовым средствам СУБД используются сервисные программы, в частности так называемые генераторы отчетов. Они, как правило, обладают широкими возможностями визуального представления результатов запросов.

        1. Вывод результатов в файл

Если необходимо вывести результаты запроса в файл в MySQL можно использовать фразу INTO OUTFILE. Ее синтаксис:

SELECT список_выбора

INTO OUTFILE имя_файла

Например:

Запрос. Вывести имена преподавателей и ставки в текстовый файл.

SELECT Преподаватель, Salary

INTO OUTFILE “d:/salary.txt”

FROM TEACHER;

      1. Фраза from

        1. Синтаксис фразы from

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

FROM

{имя_таблицы | (подзапрос)} [алиас][,

{имя_таблицы | (подзапрос)} [алиас]]...

В запросе могут использоваться несколько таблиц. В этом случае во фразе FROM приводятся их имена, перечисленные через запятую. Например:

FROM FACULTY. DEPARTMENT. SGROUP

        1. Синонимы таблиц

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

FROMFACULTYF.DEPARTMENTD.SGROUPG

FROM FACULTY F. DEPARTMENT D. SGROUP G

В случае использования для имени таблицы синонима уточнять столбцы следует только указанным синонимом, например:

F.Name, F.Building, F.Fund, D.Head, D.Fund, G.Year, G.Quantity

В следующем примере слева приведен правильный запрос, а справа – нет:

SELECT f.Name, f.Fund

FROM FACULTY f

SELECT FACULTY.Name,f.Fund

FROM FACULTY f;

В случае, когда в списке FROM одна и та же таблица указана более одного раза, переопределение имени этой таблицы синонимом является обязательным, и синонимы должны различаться. Например:

FROM TEACHER Tl. TEACHER T2

Теперь к первой копии таблицы можно обращаться с помощью синонима Т1, а ко второй — синонима Т2. Правила именования синонима таблицы те же, что и для имени таблицы, принятые в той или иной СУБД.