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

DISTINCT, лакап аттар жана туюнтмалар

Программалоо SQL Татаалдыгы 1/5

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

DISTINCT, лакап аттар жана туюнтмалар

Натыйжаны тартипке келтир, мамычаларды кайра ата жана SELECT ичинде эсепте

Негизги ой: SELECT суроосу мамычаларды сакталгандай эле көрсөтүүгө милдеттүү эмес. Кайталанган маанилерди DISTINCT менен жашырса болот, мамычаларга ыңгайлуу ат лакап аттар аркылуу берсе болот, ал тургай price * quantity же CONCAT(...) сыяктуу туюнтмалар менен таптакыр жаңы маанилерди эсептесе болот.
Сабактын аягында сиз төмөнкүлөрдү жасай аласыз:
  • натыйжадан кайталанган саптарды SELECT DISTINCT менен алып салуу,
  • мамычаны же таблицаны AS сөзү менен лакап ат аркылуу кайра атоо,
  • SELECT ичинде арифметика (+ - * /) жасоо,
  • CONCAT() менен текстти бириктирүү,
  • эмне сакталат жана эмне жөн гана көрсөтүлөт дегендин айырмасын билүү.

0. Биздин мисал таблица

Бул беттеги ар бир суроо products деген бир кичинекей дүкөн таблицасын колдонот. Ал мындай түзүлүп, толтурулган:

CREATE TABLE products (
    id INT,
    name VARCHAR(50),
    category VARCHAR(50),
    price INT,
    quantity INT
);

INSERT INTO products (id, name, category, price, quantity) VALUES
(1, 'Notebook',  'Stationery', 3,  10),
(2, 'Pen',       'Stationery', 1,  50),
(3, 'Backpack',  'Bags',       20, 5),
(4, 'Pencil',    'Stationery', 1,  30),
(5, 'Lunchbox',  'Bags',       8,  12);

Демек, бүт таблица мындай көрүнөт:

id name category price quantity
1NotebookStationery310
2PenStationery150
3BackpackBags205
4PencilStationery130
5LunchboxBags812

Байкасаңыз, category мамычасы кайталанат: "Stationery" үч жолу, "Bags" эки жолу кездешет. Муну кийинки бөлүм үчүн эсиңизде тутуңуз.

1. DISTINCT: айырмаланган маанилер гана

Кээде мамычада бир эле маани кайра-кайра кездешет, ал эми сизге ар бир айырмаланган маанини бир гана жолу көрүү керек. DISTINCT сөзү дал ушуну жасайт: ал кайталанган саптарды таштап, уникалдууларын гана калтырат.

Түрдүү түстөгү момпосуйлар салынган баштыкты элестетиңиз. Аларды төксөңүз кызыл, кызыл, көк, кызыл, көктү көрөсүз. Бирок досуңуз "баштыкта кайсы түстөр бар?" деп сураса, сиз жөн гана "кызыл жана көк" деп жооп бересиз — ар бир түстү бир жолу айтасыз. DISTINCT ушуну жасайт.

DISTINCTсиз бардык категорияларды сурасаңыз, ар бир сапка кайталоо чыгат:

SELECT category
FROM products;
category
Stationery
Stationery
Bags
Stationery
Bags

Эми SELECT дан кийин дароо DISTINCT кошуңуз — кайталоолор жоголот:

SELECT DISTINCT category
FROM products;
category
Stationery
Bags

Беш сап экиге айланды, анткени айырмаланган категория экөө гана.

Бир нече мамыча менен DISTINCT: бир нече мамыча тизсеңиз, DISTINCT ар бир өзүнчө маанини эмес, ошол мамычалардын ар бир уникалдуу айкалышын калтырат. Мисалы, SELECT DISTINCT category, price FROM products; ар бир айырмаланган (category, price) жубу үчүн сапты калтырат.

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

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

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

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