35906

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

Контрольная

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

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

Русский

2013-09-20

77 KB

9 чел.

Оператор 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


 

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

28799. Какими характерными чертами отмечено социально-культурное развитие восточно-славянских племен в 6-9вв 19.3 KB
  Предки славян принадлежали к древнему индоевропейскому единству. Одним из них и стали славяне. Позднее в славянском массиве возникают западные венеды и восточные анты ветви.
28800. Как происходило образование Древнерусского государства? Какие точки зрения по этому вопросу вам известны 21.64 KB
  Образование государства у восточных славян длительный процесс растянутый во времени благодаря чему сохранились пережитки племенной демократии. ОБРАЗОВАНИЕ ДРЕВНЕРУССКОГО ГОСУДАРСТВА 1. К политическим факторам образования государства у восточных славян следует отнести усложнение внутриплеменных отношений и межплеменные столкновения которые ускоряли становление княжеской власти повышали роль князей и дружины как обороняющих племя от внешних врагов так и выступающих в качестве арбитра при различного рода спорах.
28801. Государство Киевская Русь и его цивилизационные особенности (социально-политический строй, экономика, законодательство, культура) 16.04 KB
  на Руси распространялись славянские азбуки кириллица и глаголица созданные Кириллом и Мефодием. На Руси широкое распространение получила грамотность также ставшая результатом принятия христианства и появления литературы на славянском языке. Было принято христианство означавшее включение Руси в христианский мир. Для Киевской Руси характерно было слабое юридическое развитие недостаточность развития государственных начал отсутствие единства приведшее к последующему распаду.
28802. Почему Русь приняла христианство? Какое значение имело принятие христианства для развития страны 13.83 KB
  Культурные связи с более развитыми странами и прежде всего с Византией содействовали принятию христианства. Принятие христианства имело колоссальное политическое и культурное значение в русской истории: 1. Влияние христианства на развитие культуры проявилось в распространении на Русь славянской письменности развитии иконописи.
28803. Каковы причины политической раздробленности на Руси? Дайте характеристику русских княжеств и земель в условиях децентрализации Киевской Руси 15.29 KB
  Причины: борьба за власть рост городов набеги кочевников Киев теряет свое значение 1ВладимироСуздальскаяЮрий Долгоруковвласть принадлежала князю 2Галецко Волынская князь Даниил Романович власть принадлежала боярем князю 3Новгород власть вече народное собрание Последствие раздробленности: новые торговли развитие новых город развитие культур ослабление междоусобных войск и дробление княжеств ослабление центральной власти.
28804. Русь и Золотая Орда. Какие оценки монгольского фактора в истории России существуют в исторической литературе 15.88 KB
  Карамзина состояли в следующем: согласие с татарами позволившее провести 40 мирных лет; большая заслуга перед своей малой Родиной Московским княжеством: обогатил усилил расширил; ЛН Гумилев считал что монголотатарского ига на Руси не было Нашествия Батыя были лишь военным рейдом и последующие события не имеют к нему непосредственного отношения Он утверждал что Великое княжество Владимирское в лице Александра Невского добилось выгодного союза с Золотой Ордой В 1237 г. Батый вторгся в земли Руси. ×Ярлык на княжение зависимые...
28805. Каковы причины возвышения Москвы? Какие еще альтернативы объединения Руси вы могли бы назвать 14.07 KB
  свержение монголотатарского ига Иван III происшедшее мирным путем после отказа платить дань Орде и последующего стояния на Угре русского и татарского войск друг против друга когда хан так и не решился вступить в битву. первый свод законов нового объединенного Русского государства Судебник Ивана III. завершение процесса объединения при сыне Ивана III Василии III.
28806. Образование централизованного Московского государства в 15-16вв. Чем данный процесс в России отличается от западноевропейского 13.91 KB
  Особенностями политической системы Московского царства были: а внутренней: 1 авторитарный характер государственной власти 2 превращения Руси с XV в и единственное в мире независимое православное государство; 3 закрепление политической и культурной изоляции и отставания от Европы; б внешней: 1 огромная территория государства 2 превращение Руси в многонациональное государство Завершающий этап централизации Русского государства связан с именем и царствованием внука Ивана III Ивана Грозного впервые принявшего в 1547 г. Тем самым...
28807. Внешняя политика Советского государства в 20-30-х гг. Почему в данный период не удалось создать систему международной безопасности 15.85 KB
  Почему в данный период не удалось создать систему международной безопасности Внешняя политика СССР в 2030 гг. СССР добился снятия экономической блокады. 1924-1933 годы постепенного признания СССР.В конце 20х годов произошло резкое ухудшение международного положения СССР.