Korzystanie z operatora Union MySQL

Korzystanie z operatora Union MySQL
Wielu operatorów istnieje w MySQL w celu pobrania danych z wielu tabel na podstawie wymagań. Jednym z przydatnych operatorów MySQL jest Union. Służy do łączenia rekordów z dwóch lub więcej tabel, pisząc jedno zapytanie. Każda instrukcja wybrana używana z operatorem Unii musi zawierać te same liczby pól, a typ danych każdego pola będzie również taki sam. Pobiera wszystkie wspólne i nietypowe wartości pola wszystkich tabel wymienionych w zapytaniu, usuwając zduplikowane wpisy.

Składnia:

Wybierz pole 1, pole2,… pola
Z tabeli 1
[Gdzie klauzula]
Związek [odrębny]
Wybierz pole 1, pole2,… pola
Z tabeli 2
[Gdzie cluase];

Tutaj klauzula i wyraźny modyfikator są opcjonalne. Jeśli chcesz uruchomić zapytanie do wyboru na podstawie dowolnego warunku, uruchom klauzulę Where. Wcześniej wspomniano, że zduplikowane rekordy są usuwane automatycznie podczas uruchamiania zapytania z operatorem związkowym. Więc użycie wyraźnego modyfikatora jest bezużyteczne.

Warunek wstępny:

Musisz utworzyć niezbędną bazę danych i tabele z niektórymi rekordami, aby poznać korzystanie z operatora Union. Początkowo połącz się z serwerem bazy danych za pomocą Mysql Klient i uruchom następującą instrukcję SQL, aby utworzyć bazę danych o nazwie ”firma'.

Utwórz firmę bazy danych;

Wybierz bieżącą bazę danych, wykonując następującą instrukcję.

Korzystaj z firmy;

Uruchom następującą instrukcję SQL, aby utworzyć tabelę o nazwie 'produkty ' z pięciu pól (ID, nazwa, model_no, marka i cena). Tutaj, 'ID'jest kluczowym kluczem.

Utwórz produkty stołowe (
Id int (5) Unsigned Auto_increment Key,
Nazwa varchar (50) nie null,
Model_no Varchar (50) nie null,
marka varchar (50) nie null,
cena int (5)) silnik = innodb;

Uruchom następującą instrukcję SQL, aby utworzyć tabelę o nazwie 'dostawcy z czterech pól (id, nazwa, adres, pro_id). Tutaj, 'ID' to klucz podstawowy i pro_id jest kluczem obcego.

Utwórz dostawców tabeli (
Id int (6) Unsigned Auto_increment Key,
Nazwa varchar (50) nie null,
Adres varchar (50) nie null,
pro_id int (5) niepodpisany, a nie null,
Klucz zagraniczny (pro_id) odwołuje się do produktów (id) na delete Cascade)
Silnik = innodb;

Uruchom następującą instrukcję SQL, aby wstawić cztery rekordy do produkty tabela.

Wstaw do wartości produktów
(NULL, „Samsung 42” TV ”,„ TV-78453 ”,„ Samsung ”, 500),
(NULL, „LG FLIDGE”, „FR-9023”, „LG”, 600)
(Null, „Sony 32” TV ”,„ TV-4523W ”,„ Sony ”, 300),
(NULL, „Walton Walkacha”, „WM-78KL”, „Walton”, 255);

Uruchom następującą instrukcję SQL, aby wstawić sześć rekordów do dostawcy tabela.

Wstaw wartości dostawców
(Null, „Rahman Enterprise”, „Dhanmondi”, 1),
(Null, „ABC Electronics”, „Mirpur”, 2),
(Null, „Nabila Enterprise”, „Mogbazar”, 2),
(NULL, „Naher Plaza”, „Eskaton”, 3),
(Null, „Walton Plaza”, „Eskaton”, 4)
(Null, „Walton Plaza”, „Dhanmondi”, 4);

*** Uwaga: Zakłada się, że czytelnik jest zaznajomiony z instrukcjami SQL do tworzenia bazy danych i tabeli lub wkładania danych do tabel. Więc zrzuty ekranu powyższych stwierdzeń są pomijane.

Uruchom następującą instrukcję SQL, aby zobaczyć bieżące rekordy produkty tabela.

Wybierz * z produktów;

Uruchom następującą instrukcję SQL, aby zobaczyć bieżące rekordy dostawcy tabela.

Wybierz * od dostawców;

Tutaj nazwa dostawcy 'Walton Plaza„Istnieje w dwóch rekordach. Gdy te dwie tabele zostaną połączone z operatorem Unii, zostanie wygenerowana duplikat wartości, ale zostanie ona domyślnie usunięta automatycznie i nie będziesz musiał używać wyraźnego modyfikatora.

Użycie prostego operatora związkowego

Poniższe zapytanie odzyska dane pro_id I nazwa pola z Dostawcy stół i ID I nazwa pola z produkty tabela.

Wybierz pro_id jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Od dostawców
UNIA
Wybierz identyfikator jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Z produktów;

Tutaj, produkty Tabela zawiera 4 rekordy i Dostawcy Tabela zawiera 6 rekordów z jednym zduplikowanym rekordem ('Walton Plaza'). Powyższe zapytanie zwraca 9 rekordów po usunięciu duplikatu wpisu. Poniższy obraz pokazuje wyjście zapytania, w którym pojawia się „Walton Plaza”.

Korzystanie z jednej klauzuli z pojedynczą

Poniższy przykład pokazuje użycie operatora Unii między dwoma wybranymi zapytaniami, w których drugie zapytanie zawiera warunek wyszukiwania tych rekordów z Dostawcy Tabela, która zawiera słowo ”Walton' W imię pole.

Wybierz identyfikator jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Z produktów
UNIA
Wybierz pro_id jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Od dostawców
Gdzie dostawcy.nazwa jak „%Walton%”;

Tutaj pierwsze wybrane zapytanie zwróci 4 rekordy z produkty Tabela i druga instrukcja wyboru zwróci 2 rekordy z Dostawcy tabela, ponieważ słowo ”Walton„pojawia się dwa razy w”nazwa' pole. Łącznie 5 rekordów zostanie zwrócone po usunięciu duplikatu z zestawu wyników.

Korzystanie z Union z wielokrotną klauzulą

Poniższy przykład pokazuje użycie operatora Unii między dwoma wybranymi zapytaniami, w których oba zapytania zawierają warunki. Pierwsze zapytanie, które zawiera warunek, który będzie wyszukiwać te rekordy z produkty Które wartości cen są mniejsze niż 600. Drugie zapytanie wyboru zawiera takie same warunki, jak poprzedni przykład.

Wybierz identyfikator jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Z produktów
Gdzie cena < 600
UNIA
Wybierz pro_id jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Od dostawców
Gdzie dostawcy.nazwa jak „%Walton%”;

Tutaj 4 rekordy zostaną zwrócone jako wyjście po usunięciu duplikatów.

Korzystanie z Unii z wieloma klauzulami

W poprzednich przykładach pokazano, że wszystkie zduplikowane zapisy są domyślnie usuwane przez operatorów związkowych. Ale jeśli chcesz pobrać wszystkie rekordy bez usunięcia duplikatów, musisz użyć Union All Operator. Korzystanie z Union All Operator pokazano w poniższym oświadczeniu SQL.

Wybierz identyfikator jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Z produktów
Gdzie cena < 600
Związek All
Wybierz pro_id jako „identyfikator produktu”, nazwa „nazwa produktu lub nazwa dostawcy”
Od dostawców
Gdzie dostawcy.nazwa jak „%Walton%”;

Poniższy obraz pokazuje, że zwrócony zestaw wyników zawiera duplikat rekordów po uruchomieniu powyższego instrukcji. Tutaj, 'Walton Plaza pojawia się dwa razy.

Wniosek:

Zastosowania operatorów Unii w oświadczeniu SQL są wyjaśnione w tym samouczku za pomocą prostych przykładów. Mam nadzieję, że czytelnicy będą mogli poprawnie korzystać z tego operatora po przeczytaniu tego artykułu.