Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
15.01.2021
Размер:
227 Кб
Скачать

Использование вычисляемых

выражений

SELECT Name, Salary, Rise, Salary+Rise,

Rise*100/Salary

FROM TEACHER;

Переопределение имен результирующих столбцов

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

Или в случае Rise*100/Salary. Как сослаться на такой столбец?

Пример переопределения имен, «алиас столбца»

SELECT Name AS Faculty_Name, 2*Fund AS Double_Fund

FROM FACULTY;

FACULTY_NAME DOUBLE_FUND

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

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

информатика

50000

кибернетика

54000

математика

46000

• 3 строк выбрано.

 

Если алиас представляет несколько слов, то

SELECT Name AS “Name of the teacher“,

Salary + Commission AS “Total salary of the teacher“

FROM TEACHER;

Включение текста в результат

запроса

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

FROM TEACHER;

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

Name

Salary

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

------

-----

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

500

грн.

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

470

грн.

Фраза FROM – указание используемой таблицы

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

FROM FACULTY, DEPARTMENT, SGROUP

Приписывание таблице синонима:

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 *

FROM FACULTY, DEPARTMENT;

производит конкатенацию всех строк таблицы FACULTY со всеми строками таблицы DEPARTMENT.

Этот запрос эквивалентен операции декартова произведения реляционной алгебры.

Соединение двух таблиц

Используя столбец FacNo, который присутствует в обоих таблицах, вы можете соединить факультеты только с их кафедрами с помощью условия фразы WHERE, как это показано в следующем запросе:

SELECT *

FROM FACULTY, DEPARTMENT

WHERE FACULTY.FacNo = DEPARTMENT.FacNo;

Такое соединение называется экви-соединением

Соединение многих таблиц

SELECT FACULTY.Name, TEACHER.Name

FROM FACULTY, DEPARTMENT, TEACHER

WHERE FACULTY.FacNo = DEPARTMENT.FacNo

AND DEPARTMENT.DepNo = TEACHER.DepNo;

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