Бази даних-20210115T104840Z-001 / Oracle_SQL_4
.pdfИспользование вычисляемых
выражений
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 не выводятся, она используется только для соединения факультетов с преподавателями