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

Подсуроолор: скалярдык, IN, EXISTS жана байланышкан

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

Подсуроолор: скалярдык, IN, EXISTS жана байланышкан

Суроонун ичиндеги суроо - чоңураак суроого жооп бериш үчүн бир суроого жооп бериңиз

Негизги идея: Подсуроо - бул башка оператордун ичине жазылган толук SELECT. Сырткы суроо ички суроо кайтарган нерсени колдонот: бир маани, маанилердин тизмеси же жөн гана "дал келген сап барбы?" деген суроого "ооба/жок" деген жооп. Төрт форманы (скалярдык, IN, EXISTS жана байланышкан) өздөштүрүү менен бир жалпак суроо чече албаган суроолорду туюнта аласыз.
Аягында сиз:
  • WHERE жана SELECT ичинде скалярдык подсуроолорду жаза аласыз,
  • FROM ичинде подсуроону туунду таблица катары колдоно аласыз,
  • IN аркылуу чыпкалап, маанилүү NOT IN + NULL тузагын билесиз,
  • EXISTS / NOT EXISTS аркылуу бар экенин текшересиз,
  • байланышкан подсуроону таанып, анын баасы жөнүндө ой жүгүртөсүз,
  • көп подсуроолорду бириктирүү (join) катары кайра жазып, качан керек экенин билесиз.

1. Биздин үлгү дүкөн базасы

Төмөнкү бардык суроолор бир кичинекей онлайн-дүкөн схемасында аткарылат. Үч таблицаны азыр бир жолу окуп чыгыңыз; биз аларды бүт тема боюнча колдонобуз.

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

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    name       VARCHAR(50),
    price      DECIMAL(8,2)
);

CREATE TABLE orders (
    order_id    INT PRIMARY KEY,
    customer_id INT,
    product_id  INT,
    quantity    INT,
    order_date  DATE,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id),
    FOREIGN KEY (product_id)  REFERENCES products(product_id)
);

INSERT INTO customers VALUES
    (1,'Alice','London'), (2,'Bob','Paris'),
    (3,'Carol','London'), (4,'Dan','Berlin');

INSERT INTO products VALUES
    (1,'Keyboard',45.00), (2,'Mouse',25.00),
    (3,'Monitor',220.00), (4,'Webcam',60.00);

INSERT INTO orders VALUES
    (1,1,3,1,'2026-01-05'), (2,1,2,2,'2026-01-06'),
    (3,2,1,1,'2026-02-10'), (4,3,3,1,'2026-02-11'),
    (5,3,4,1,'2026-03-01');

Мисалдарды кызыктуу кылган эки фактка көңүл буруңуз: Dan (кардар 4) бир да заказ берген эмес, ал эми Monitor (товар 3) - эң кымбат товар. Мына orders таблицасы:

order_idcustomer_idproduct_idquantityorder_date
11312026-01-05
21222026-01-06
32112026-02-10
43312026-02-11
53412026-03-01

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

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

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

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