35906

Оператор SELECT как проекция результатов реляционных вычислений. Соединение отношений (JOIN) в операторе. Виды соединений (INNER и OUTER, LEFT, RIGHT)

Контрольная

Информатика, кибернетика и программирование

Оператор SELECT как проекция результатов реляционных вычислений. SELECT селект оператор DML языка SQL возвращающий набор данных выборку из базы данных удовлетворяющих заданному условию. При формировании запроса SELECT пользователь описывает ожидаемый набор данных: его вид набор столбцов и его содержимое критерий попадания записи в набор группировка значений порядок вывода записей и т. SELECT [Предикат] Поля FROM Таблицы [IN БазаДанных] [WHERE .

Русский

2013-09-20

77 KB

5 чел.

Оператор SELECT как проекция результатов реляционных вычислений. Соединение отношений (JOIN) в операторе. Виды соединений (INNER и OUTER, LEFT, RIGHT).

SELECT ("селект") — оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию. В большинстве случаев, выборка осуществляется из одной или нескольких таблиц. В последнем случае говорят об операции слияния (англ. join).

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

SELECT [Предикат] Поля FROM Таблицы [IN БазаДанных] [WHERE ...] [GROUP BY ...] [HAVING ...] [ORDER BY ...]; ( Необязательные аргументы заключены в [])

   Предикат - одно из четырёх слов ALL, DISTINCT, DISTINCTROW, TOP. Если предикат не указан, то устанавливается ALL. Предикат ALL позволяет отобрать все записи. При использовании предиката DISTINCT, записи, которые содержат повторяющиеся значения в выбранных в запросе полях, исключаются. Предикат DISTINCTROW исключает из выборки записи, если повторяется вся запись, а не одно из полей. Предикат TOP позволяет отобрать определённое количество записей.

Поля - имена одного или нескольких полей, выборка которых производится. Для выборки всех полей вместо имен полей можно поставить звёздочку [*].

Таблицы - имена одной или нескольких таблиц, из которых производится выборка.

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

   Минимальный синтаксис запроса на выборку выглядит так: SELECT поле FROM Таблица;

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

сначала составляется произведение таблиц, а уже затем из полученного набора отбираются требуемые записи.

  •  Список полей

SELECT first_name, last_name, phone_no

FROM phone_list

  •  Все поля

SELECT *

FROM phone_list

  •  Все поля в произвольном порядке

SELECT first_name, last_name, phone_no,

   location, phone_ext, emp_no

FROM phone_list

  •  Вычисления

SELECT emp_no, salary, salary * 1.15

FROM employee

  •  Литералы

Для придания большей наглядности получаемому результату можно использовать литералы. Литералы - это строковые константы, которые применяются наряду с наименованиями столбцов и, таким образом, выступают в роли "псевдостолбцов". Строка символов, представляющая собой литерал, должна быть заключена в одинарные или двойные скобки.

SELECT first_name, "получает", salary,

      "долларов в год"

FROM employee

  •  Конкатенация

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

SELECT "сотрудник " || first_name || " " ||   last_name

FROM employee

  •  Использование квалификатора AS

SELECT count(*) AS number

FROM employee

  •  Работа с датами

Внешне дата может быть представлена строками различных форматов, например:

  1.  "October 27, 1995"
    1.  "27-OCT-1994"
    2.  "10-27-95"
    3.  "10/27/95"
    4.  "27.10.95"

Кроме абсолютных дат, в SQL-выражениях можно также пользоваться относительным заданием дат:

  1.  "yesterday" - вчера
  2.  "today" - сегодня
  3.  "now" - сейчас (включая время)
  4.  "tomorrow" – завтра

Дата может неявно конвертироваться в строку (из строки), если:

  1.  строка, представляющая дату, имеет один из вышеперечисленных форматов;
  2.  выражение не содержит неоднозначностей в толковании типов столбцов.

SELECT first_name, last_name, hire_date

FROM employee

WHERE hire_date > '1-1-94'

SELECT first_name, last_name, hire_date

FROM employee

WHERE 'today' - hire_date > 365 * 7 + 1

  •  Агрегатные функции

К агрегирующим функциям относятся функции вычисления суммы (SUM), максимального (max) и минимального (MIN) значений столбцов, арифметического среднего (AVG), а также количества строк, удовлетворяющих заданному условию (COUNT).

SELECT count(*), sum (budget), avg (budget), min (budget), max (budget)

FROM department

WHERE head_dept = 100

JOIN — оператор языка SQL, позволяющий соединять записи из двух таблиц реляционной базы данных. Входит в раздел FROM оператора SELECT и отдельно от него не используется.

INNER JOIN

Оператор внутреннего соединения INNER JOIN соединяет две таблицы, причём порядок таблиц для оператора неважен. Тело результата логически формируется следующим образом. Каждая строка одной таблицы сопоставляется с каждой строкой второй таблицы, после чего для полученной «соединённой» строки проверяется условие соединения (вычисляется предикат соединения). Если условие истинно, в таблицу-результат добавляется соответствующая «соединённая» строка. 

SELECT * 

FROM

 Person

 INNER JOIN 

 City

   ON Person.CityId = City.Id

OUTER JOIN

Присоединение таблицы с необязательным присутствием записи в таблице.

LEFT OUTER JOIN

К левой таблице присоединяются все записи из правой, соответствующие условию (по правилам inner join), плюс все не вошедшие записи из левой таблицы, поля правой таблицы заполняются значениями NULL.

SELECT * 

FROM 

 Person

 LEFT OUTER JOIN 

 City

   ON Person.CityId = City.Id

RIGHT OUTER JOIN

Аналогично left outer join, но применяется для правой таблицы.

К правой таблице присоединяются все записи из левой, соответствующие условию (по правилам inner join), плюс все не вошедшие записи из правой таблицы, поля левой таблицы заполняются значениями NULL.

SELECT * 

FROM 

 Person

 RIGHT OUTER JOIN 

 City

   ON Person.CityId = City.Id


 

А также другие работы, которые могут Вас заинтересовать

46481. Государственный заказ 17.1 KB
  Субъекты системы госзакупок: госзаказчики формирующие и размещающие госзаказ на поставку продукции заключающие контракты и получающие продукцию непосредственные потребители товаров работ и услуг поставщики продукции участвующие в процедурах размещения гозакупок заключающие контракты на поставку продукции и поставляющие ее координатор уполномоченный орган исполнительной власти осуществляющий планирование координацию контроль и методическое руководство процессом формирования и размещения госзаказа специализированные...
46482. Несостоятельность (банкротство) предприятий. Основные понятия 17.1 KB
  К внешним факторам относят: Экономические уровень доходов и накопления населения покупательская способность; платежеспособность экономических партнеров кредитная и налоговая политика государства; изменение рыночных ориентаций потребителя конъюнктуры внутреннего и мирового рынков государственное регулирование уровень развития науки и техники инфляция; Социальные – изменение политической обстановки внутри страны и за рубежом; международная конкуренция уровень культуры предпринимателей и потребителей их продукции организация досуга...
46483. Анализ ликвидности и платежеспособности 17.1 KB
  Критерии банктротства предприятия: неудовлетворительная структура оборотных активов; тенденция к росту доли труднореализуемых активов материальнопроизводственных запасов имеющих медленную оборачиваемость сомнительной дебиторской задолженности может привести к неплатежеспособности организации; замедление оборачиваемости оборотных средств по причине накопления чрезмерных запасов и наличия просроченной задолженности покупателей и заказчиков; преобладание в обязательствах предприятия дорогостоящих кредитов и займов; наличие...
46484. Коммерческая деятельность на рынке товаров и услуг. Коммерческие сделки, контракты купли-продажи 17.14 KB
  Коммерческие сделки контракты куплипродажи. Контракт куплипродажи является основным коммерческим документом оформляющим внешнеторговую сделку в котором содержится письменная договоренность сторон о поставке товара: обязательство продавцаэкспортера передать определенный товар в собственность покупателяимпортера и обязательство покупателяимпортера принять этот товар и уплатить за него определенную денежную сумму или обязательства сторон выполнить условия товарообменной сделки. Согласно действующему законодательству статья 153 ГК РФ...
46485. Дисциплинарная и материальная ответственность за эколо¬гические правонарушения 17.16 KB
  Правовой режим особо охраняемых природных территорий. Особо охраняемые природные территории определены законодательством РФ как участки земли водной поверхности и воздушного пространства над ними где располагаются природные комплексы и объекты имеющие особое природоохранное научное культурное эстетическое рекреационное и оздоровительное значение. Общественные отношения в сфере организации охраны и использования особо охраняемых природных территорий с целью сохранения уникальных и типичных природных комплексов и объектов...
46486. НТР и ее влияние на ход общественного развития 17.19 KB
  Со второй половины XX века человечество вступило в этап научнотехнической революции НТРЧто такое НТР Какое определение ей можно дать Каковы особенности НТР и чем она отличается от революции социальной Если обратиться к справочной литературе то в ней дается следующее определение понятия НТР: НТР это коренное качественное преобразование производительных сил на основе превращения науки в непосредственную производительную силу и соответствующее этому революционное изменение материальнотехнического базиса общественного производства...
46487. Л.С. Выготский. «Вопросы детской (возрастной) психологии 17.22 KB
  Говоря о кризисах он выделяет помимо очевидного негативного характера ребенок становится капризен и трудновоспитуем еще и позитивный то есть возникновения новообразование. В этот период центральным новообразованием является индивидуальное существование собственная психическая жизнь хотя отделяясь от матери физически ребенок еще зависит биологически от нее способ питания новорожденного смешанный внеутробное своеобразен сон составляющий большую часть его времени новорожденный уязвим и беспомощен. Теперь ребенок переходит в период...
46488. Особенности защиты населения от возможных последствий аварий на АЭС 17.25 KB
  Предупреждение накопления радиоактивного йода в щитовидной железе путем приема внутрь лекарственных препаратов стабильного йода йодная профилактика; Впервые два месяца после аварии доза внутреннего облучения обусловлена радионуклидами йода и в первую очередь йода 131. Важное значение также имеет йодная профилактика как наиболее эффективный метод защиты щитовидной железы от радиоактивных изотопов йода. Суть ее в приеме внутрь лекарственных препаратов стабильного йода.
46489. Ставка капитализации 17.29 KB
  Существует несколько методов определения коэффициента капитализации: с учетом возмещения капитальных затрат с корректировкой на изменение стоимости актива; метод связанных инвестиций или техника инвестиционной группы; метод прямой капитализации. Определение коэффициента капитализации с учетом возмещения капитальных затрат. Коэффициент капитализации состоит из двух частей:1 ставки доходности инвестиции капитала являющейся компенсацией которая должна быть выплачена инвестору за использование денежных средств с учетом риска и других...