Мазмунга өтүү

Көптүктөр боюнча операциялар: UNION, INTERSECT жана EXCEPT

Сабактын башталышы

Көптүктөр боюнча операциялар: UNION, INTERSECT жана EXCEPT

Бүтүн натыйжа топтомдорун бириктириңиз, кесиштириңиз жана кемитиңиз - тилкелерди эмес, саптарды толугу менен

Негизги идея: Көптүк операциясы эки SELECT сурамы чыгарган саптарды алып, аларды вертикалдуу бириктирет. JOIN таблицаларды капталынан жабыштырып, саптарды кеңири кылат; көптүк операциясы натыйжа топтомдорун бири-биринин үстүнө коюп, бир узунураак тизме жасайт. UNION аларды бириктирет, INTERSECT экөөндө тең бар саптарды гана калтырат, ал эми EXCEPT биринчи топтомдогу, экинчисинде жок саптарды калтырат.
Сабактын аягында сиз:
  • эки натыйжа топтомун UNION менен бириктире аласыз жана анын ордуна качан UNION ALL керек экенин билесиз,
  • эки сурамга ортоктош саптарды INTERSECT менен таба аласыз,
  • бир натыйжа топтомун экинчисинен EXCEPT менен кемите аласыз,
  • ар бир көптүк операциясы талап кылган тилкелердин шайкештик эрежелерин сактай аласыз,
  • INTERSECT жана EXCEPT жок эски MySQL версияларында (8.0.31ден мурун) аларды кайра түзө аласыз.

1. Биздин үлгү маалымат базасы

Төмөндөгү ар бир сурам эки кичине таблица менен иштейт. Компания өз кызматкерлеринин (employees) тизмесин жана өзүнчө кардарларынын (customers) тизмесин жүргүзөт. Эки жазууда тең адамдын аты жана шаары сакталат.

CREATE TABLE employees (
    emp_id  INT PRIMARY KEY,
    name    VARCHAR(50),
    city    VARCHAR(50)
);

CREATE TABLE customers (
    cust_id INT PRIMARY KEY,
    name    VARCHAR(50),
    city    VARCHAR(50)
);

INSERT INTO employees (emp_id, name, city) VALUES
    (1, 'Alice', 'London'),
    (2, 'Bob',   'Paris'),
    (3, 'Carol', 'London'),
    (4, 'David', 'Berlin');

INSERT INTO customers (cust_id, name, city) VALUES
    (101, 'Emma',  'Paris'),
    (102, 'Frank', 'London'),
    (103, 'Grace', 'Paris'),
    (104, 'Alice', 'Madrid');

Бул сегиз сапты эсиңизде сактаңыз. Шаарларга көңүл буруңуз: кызматкерлер Лондон, Париж жана Берлинде жашашат; кардарлар Париж, Лондон жана Мадридде. Дал ушул дал келүүлөр менен айырмачылыктар көптүк операциялары сүрөттөгөн нерсе.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө