Union (SQL)

Union — у мовах, подібних до SQL, DML-операція об'єднання записів в одну таблицю. Критерій відбору записів для об'єднання визначається виразом Where. Обидва запити повинні повертати однакове число стовпців і мати сумісні типи даних у відповідних стовпцях. Цей оператор було описано у другому стандарті SQL — SQL-89[1].

Синтаксис

Оператор вказується між запитами. У спрощеному вигляді це виглядає так:

<запит1>
UNION [ALL]
<запит2>
UNION [ALL]
<запит3>
 .....

За замовчуванням, будь-які повторювані записи автоматично ігноруються, якщо не використано вираз UNION ALL.

Необхідно зазначити, що UNION сам по собі не гарантує порядок рядків. Рядки з другого запиту можуть виявитися на початку, в кінці або взагалі змішатися з рядками з першого запиту. У випадках, коли потрібно забезпечити певний порядок, необхідно використовувати вираз Order by.

Правила використання

Існують два основні правила, що регламентують порядок використання оператора UNION:

  • Число та порядок видобутих стовпців повинні збігатися в усіх запитах, що об'єднуються;
  • Типи даних у відповідних стовпцях повинні бути сумісні.

Визначення стовпців, дані з яких беруться в об'єднувальних запитах, не повинні збігатися, проте повинні бути сумісними шляхом неявного перетворення. Якщо типи даних різняться, то тип даних, що вийшов, визначається на основі правил черговості типів даних (для конкретної СКБД). Якщо типи збігаються, але розрізняються в точності, масштабі або довжині, результат визначається на основі правил, використовуваних для об'єднання виразів (для конкретної СКБД)[2]. Типи даних, не визначені ANSI, такі як DATA і BINARY, зазвичай повинні збігатися з іншими стовпцями такого ж нестандартного типу[3].

У Microsoft SQL Server стовпці з типом даних XML повинні бути еквівалентними. Всі стовпчики повинні або мати тип, визначений у XML-схемі, або бути нетипізованими. Типізовані стовпці повинні стосуватися однієї і тієї ж колекції XML-схем[2].

Ще одне обмеження на сумісність — це заборона порожніх значень (NULL) у будь-якому стовпці об'єднання, причому ці значення необхідно заборонити і для всіх відповідних стовпців в інших запитах об'єднання, оскільки порожні значення (NULL) заборонені з обмеженням NOT NULL. Крім того, не можна використовувати UNION у підзапитах, а також не можна використовувати агрегатні функції в реченні Select запиту в об'єднанні (проте більшість СКБД нехтують цими обмеженнями)[3].

Приклади

Використання UNION при вибірці з двох таблиць

Дано дві таблиці:

sales-2008
person amount
Петро 1000
Павло 2000
Василь 5000
sales-2010
person amount
Петро 2000
Павло 2000
Семен 35000

При виконанні запиту

SELECT * FROM sales-2008
UNION
SELECT * FROM sales-2010;

виходить результатний набір, однак порядок рядків може бути довільним, оскільки ключовий вираз ORDER BY не було використано:

person amount
Петро 1000
Павло 2000
Василь 5000
Петро 2000
Семен 35000

У результаті буде два рядки з Петром, оскільки вони відрізняються значеннями, але рядок з Павлом буде один, бо рядки повністю ідентичні.

Використання UNION ALL при вибірці з двох таблиць

Використання UNION ALL дає інший результат, оскільки дублікати не ігноруються. Отже, виконання запиту:

SELECT * FROM sales-2008
UNION ALL
SELECT * FROM sales-2010;

дає наступний результат:

person amount
Петро 1000
Петро 2000
Павло 2000
Павло 2000
Василь 5000
Семен 35000

Використання UNION при вибірці з однієї таблиці

Аналогічним чином можна поєднувати два різні запити з однієї таблиці (хоча замість цього, як правило, необхідні параметри комбінують в одному запиті за допомогою ключових слів AND і OR в умові Where):

SELECT person, amount FROM sales-2008 WHERE amount=1000
UNION
SELECT person, amount FROM sales-2010 WHERE person like 'Василь';

У результаті отримаємо:

person amount
Петро 1000
Василь 5000

Використання UNION як зовнішнє об'єднання

За допомогою UNION можна створювати також повні зовнішні об'єднання (іноді використовується за відсутності вбудованої прямої підтримки зовнішніх об'єднань):

SELECT *
FROM   employee 
       LEFT JOIN department 
          ON employee.DepartmentID = department.DepartmentID
UNION
SELECT *
FROM   employee
       RIGHT JOIN department
          ON employee.DepartmentID = department.DepartmentID;

Але при цьому необхідно пам'ятати, що це все-таки не одне і те саме, що й оператор JOIN.

Примітки

  1. Кузнецов, С. Д. (2001). Язык баз данных SQL/89 [Мова баз даних SQL/89]. CITForum (російською) . Архів оригіналу за 29 грудня 2016. Процитовано 28 грудня 2016.
  2. а б UNION (Transact-SQL). MSDN (російською) . Архів оригіналу за 23 вересня 2010. Процитовано 28 грудня 2016.
  3. а б Использование предложения UNION [Використання виразу UNION]. Sql.ru (російською) . Архів оригіналу за 9 лютого 2010. Процитовано 28 грудня 2016.

Посилання

  • SQL UNION Operator [Оператор SQL UNION]. W3Schools (англійською) . Архів оригіналу за 7 жовтня 2010. Процитовано 28 грудня 2016.

Read other articles:

Questa voce o sezione sull'argomento aree naturali protette non è ancora formattata secondo gli standard. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Parco regionaleValle del TrejaL'area archeologica di Narce da Calcata Tipo di areaParco regionale Codice WDPA15293 Codice EUAPEUAP0442 Class. internaz.Categoria IUCN V: paesaggio terrestre/marino protetto Stati Italia Regioni Lazio Province Viterbo,  Rom…

此条目序言章节没有充分总结全文内容要点。 (2019年3月21日)请考虑扩充序言,清晰概述条目所有重點。请在条目的讨论页讨论此问题。 哈萨克斯坦總統哈薩克總統旗現任Қасым-Жомарт Кемелұлы Тоқаев卡瑟姆若马尔特·托卡耶夫自2019年3月20日在任任期7年首任努尔苏丹·纳扎尔巴耶夫设立1990年4月24日(哈薩克蘇維埃社會主義共和國總統) 哈萨克斯坦 哈萨克斯坦政府與…

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (مارس 2023)Learn how and when to remove this message غريمسبي تاون تأسس عام 1878  البلد المملكة المتحدة  الدور…

2017 single by Kasabian Bless This Acid HouseSingle by Kasabianfrom the album For Crying Out Loud Released4 May 2017Recorded2016–17Genre Alternative rock psychedelic rock Label Columbia Sony Songwriter(s)Sergio PizzornoProducer(s)Sergio PizzornoKasabian singles chronology Ill Ray (The King) (2017) Bless This Acid House (2017) Comeback Kid (2017) Bless This Acid House is a song by alternative rock band Kasabian. It was released as the third single from their sixth studio album, For Crying Out L…

Частина серії проФілософіяLeft to right: Plato, Kant, Nietzsche, Buddha, Confucius, AverroesПлатонКантНіцшеБуддаКонфуційАверроес Філософи Епістемологи Естетики Етики Логіки Метафізики Соціально-політичні філософи Традиції Аналітична Арістотелівська Африканська Близькосхідна іранська Буддійсь…

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Ross's Landing – news · newspapers · books · scholar · JSTOR (December 2013) (Learn how and when to remove this message) United States historic placeRoss's LandingU.S. National Register of Historic Places Water cascading down steps above Ross's Landing Riverfront …

Gideon EmeryEmery di tahun 2017PendidikanWinbury Prep School, Pridwin Preparatory School, Reading Blue Coat School, St John's CollegePekerjaan Aktor penyanyi pengisi suara Tahun aktif1994–sekarangSuami/istriAutumn Withers ​(m. 2014)​Anak1Situs webdemoreel.com/gideon-emery/ Gideon Emery adalah aktor dan penyanyi Inggris. Dia terkenal karena perannya sebagai Deucalion di Teen Wolf dan untuk mengisi suara dalam serial televisi, film dan video game yang terkenal d…

Car marque and former British car company Land Rover Ltd. redirects here. For the 1948–1985 Land Rover model, made by the Rover Company, see Land Rover Series.Not to be confused with Rover (marque). Land Rover (marque)Product typeAutomobiles, Luxury vehiclesOwnerJaguar Land Rover (since 2013)[1]Produced byJaguar Land RoverCountryUnited KingdomIntroduced1948; 76 years ago (1948)[2]Related brandsJaguarMarketsWorldwidePrevious owners Rover Company (1948–19…

County in New Jersey, United States County in New JerseySomerset CountyCountySomerset County courthouse in Somerville, the county seat FlagSealLocation within the U.S. state of New JerseyNew Jersey's location within the U.S.Coordinates: 40°34′N 74°37′W / 40.56°N 74.61°W / 40.56; -74.61Country United StatesState New JerseyFoundedMay 14, 1688[1]Named forEnglish county of Somerset[2]SeatSomerville[3]Largest municipalityFranklin Towns…

Defunct American motor vehicle manufacturer This article is about the truck manufacturer. For the country music band, see Diamond Rio. This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (February 2011) (Learn how and when to remove this message) Diamond Reo TrucksIndustryAutomotivePredecessorDiamond T Motor Truck Co.REO Motor Car Co.Founded1967; 57 year…

Divingat the Games of the XXX OlympiadVenueAquatics CentreDates29 July – 11 August 2012Competitors136 from 25 nations← 20082016 → Diving at the2012 Summer OlympicsIndividual3 m springboardmenwomen10 m platformmenwomenSynchronized3 m springboardmenwomen10 m platformmenwomenvte The diving competitions at the 2012 Olympic Games in London took place from 29 July to 11 August at the Aquatics Centre within the Olympic Park.[1] It was one of four aquatic sports…

Locality in Danbury, Connecticut, United States Place in Connecticut, United StatesMill Plain, ConnecticutRosy Tomorrow’s, Old Mill Plain RdMill PlainLocation in ConnecticutShow map of ConnecticutMill PlainLocation in the United StatesShow map of the United StatesCoordinates: 41°23′42.34″N 73°30′56.45″W / 41.3950944°N 73.5156806°W / 41.3950944; -73.5156806[1]Country United StatesU.S. state ConnecticutCountyFairfieldRegionWestern CTCityDanbu…

American baseball player and manager Baseball player Ron GardenhireGardenhire with the Minnesota Twins, 2013Shortstop / Manager / CoachBorn: (1957-10-24) October 24, 1957 (age 66)Butzbach, Hessen, West GermanyBatted: RightThrew: RightMLB debutSeptember 1, 1981, for the New York MetsLast MLB appearanceOctober 6, 1985, for the New York MetsMLB statisticsBatting average.232Home runs4Runs batted in49Managerial record1,200–1,280Winning %.484 TeamsAs player Ne…

1931 film I Take This WomanLobby cardDirected byMarion GeringScreenplay byVincent LawrenceBased onLost Ecstasyby Mary Roberts RinehartStarring Gary Cooper Carole Lombard Helen Ware CinematographyVictor MilnerProductioncompanyParamount PicturesDistributed byParamount PicturesRelease date June 27, 1931 (1931-06-27) (USA) Running time72 minutesCountryUnited StatesLanguageEnglish I Take This Woman is a 1931 American pre-Code romance film directed by Marion Gering and starring Gary…

Municipal unit in Durrës, AlbaniaBubqMunicipal unitBubqCoordinates: 41°28′N 19°39′E / 41.467°N 19.650°E / 41.467; 19.650Country AlbaniaCountyDurrësMunicipalityKrujëPopulation (2011) • Municipal unit5,951Time zoneUTC+1 (CET) • Summer (DST)UTC+2 (CEST) Bubq is a village and a former municipality in the Durrës County, western Albania. At the 2015 local government reform it became a subdivision of the municipality Krujë.[1 …

Tomba del Santo Shelah, nel complesso funerario del Rambam, a Tiberiade (Israele) Isaiah Horowitz (in ebraico ישעיה הלוי הורוויץ‎?), noto come Shelah ha-Kadosh (il santo Shelah) dal titolo della sua opera più importante (Praga, 1565 – Safed, 24 marzo 1630) è stato un rabbino e religioso boemo, rinomato levita e mistico della Cabala ebraica. Indice 1 Biografia 2 Opere 3 Tefillat HaShlah - La preghiera di Shelah 4 Note 5 Altri progetti 6 Collegamenti esterni Biografi…

2010 United States House of Representatives elections in Wisconsin ← 2008 November 2, 2010 2012 → All 8 Wisconsin seats to the United States House of Representatives   Majority party Minority party   Party Republican Democratic Last election 3 5 Seats won 5 3 Seat change 2 2 Popular vote 1,165,761 938,690 Percentage 54.46% 43.85% Swing 8.52% 6.00% Election results by district Election results by county Republican   50-59%   …

Classical surveying instrument from the 3rd century BCE This article is about a surveying instrument. For other uses, see dioptra (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Dioptra – news · newspapers · books · scholar · JSTOR (December 2021) (Learn how and when to remove this message) Gr…

1988 San Diego mayoral election ← 1986 (special) June 7, 1988 (1988-06-07) 1992 →   Nominee Maureen O'Connor Floyd Morrow Party Democratic Democratic Popular vote 126,366 71,293 Percentage 59.5% 33.6% Mayor before election Maureen O'Connor Democratic Elected Mayor Maureen O'Connor Democratic Elections in California Federal government U.S. President 1852 1856 1860 1864 1868 1872 1876 1880 1884 1888 1892 1896 1900 1904 1908 1912 1916 1920 1924 1928 19…

Ein Schlag en passant: Schwarz hat seinen Bauern von c7 nach c5 gezogen. Der nun neben ihm stehende weiße Bauer kann ihn trotzdem schlagen, durch einen unmittelbaren Zug auf das übersprungene Feld c6. Der französische Ausdruck en passant (Abkürzung: e. p.) bezeichnet im Schachspiel einen besonderen (Schlag-)Zug eines Bauern. Diese Bezeichnung hat sich international eingebürgert. Eine deutsche Übersetzung, die gelegentlich in der deutschsprachigen Schachliteratur genutzt wird, ist „i…