Лекция · 5.6

SQL сұраныстар

Instagram-да «домбыра» деп іздегенде, қолданба МИЛЛИОНДАҒАН жазбаның ішінен дәл сен сұраған сөзді қалай табады? Жауап — SQL сұраныстары. Бұл сабақта деректер қорынан ақпаратты таңдап алу, өзгерту, жою және БІРНЕШЕ кестеден бірге деректі шығару тәсілдерін үйренеміз.

SELECT негіздері
Анықтама
Сұраныс (query) — деректер қорынан қажетті ақпаратты таңдау құралы, дерекқорға қатысты қалыптасқан «сұрақ».

SELECT сұранысы алтыға дейін блоктан тұрады, БІРАҚ тек екеуі ғана міндетті:

БлокҚызметіМіндетті ме
SELECTНәтижеге қосылатын бағандарды анықтайдыИә
FROMАқпарат алынатын кестені көрсетедіИә
WHEREНәтижеге енетін жазбаларды СҮЗЕДІЖоқ
ORDER BYНәтижелерді СҰРЫПТАЙДЫЖоқ
💡
Қызық факт: SELECT блогы сұраныста БІРІНШІ жазылғанымен, сервер оны ЕҢ СОҢЫНАН өңдейді — себебі таңдауды орындау үшін алдымен FROM блогындағы кестелерді білу керек.
Есеп (оңай): барлық жазбаны шығару

SELECT * FROM Instruments; — мұндағы * кестенің БАРЛЫҚ өрісін білдіреді.

Есеп (орта): сүзу мен сұрыптау

Берілді: «шертпелі» түрдегі аспаптардың атауы мен жасалу күнін, күні бойынша өсу ретімен шығару.

SELECT name, data FROM Instruments
WHERE type = "shertpeli"
ORDER BY data ASC;

Түсіндірме: ASC — өсу ретімен (әдепкі), DESC — кему ретімен сұрыптау.

DELETE және UPDATE
Команда
DELETE — кестеден жол жояды. UPDATE — кестедегі жазбаны өзгертеді.
⚠️
Аса қауіпті ереже: жойылған жолды қалпына келтіру МҮМКІН ЕМЕС. WHERE шарты берілмесе, кестедегі БАРЛЫҚ жол жойылады!
Есеп (орта): жазбаны жою

DELETE FROM instruments WHERE name = "sazsyrnai";

Есеп (орта): жазбаны өзгерту

Берілді: сыбызғының жасалу күнін 2018-10-07-ден 2018-10-25-ке ауыстыру.

UPDATE instruments SET data = "2018-10-25" WHERE id = 4;
LIKE операторы — жуықтап іздеу

Дәл сөзді ғана емес, «БАСТАЛҒАН» немесе «АЯҚТАЛҒАН» жолды іздеу керек болса, LIKE операторы қолданылады:

СимволСипаттамасы
%КЕЗ КЕЛГЕН ұзындықтағы жол
_КЕЗ КЕЛГЕН бір таңба
Есеп (орта): LIKE арқылы іздеу

Берілді: түрі «шерт»-тен басталатын аспаптарды табу.

SELECT * FROM Instruments WHERE type LIKE 'shert%';

Түсіндірме: % «шерт» сөзінен кейін кез келген (соның ішінде нөлдік) жалғасуға рұқсат береді.

Ішкі сұраныс және JOIN

Көпкестелік деректер қорларына ерекше есеп тән — деректер БІРНЕШЕ кестеде орналасқанда, оларды бір сұраныста БІРІКТІРУ керек болады.

Есеп (қиын): ішкі сұраныс (subquery)

Берілді: аспап атаулары name_instr кестесінде, бағалары instruments кестесінде. Домбыраның бағасын табу.

SELECT id_name_ins, price
FROM instruments
WHERE id_name_ins IN (
    SELECT id_name_ins FROM name_instr WHERE name_instr = "dombyra"
);

Жауабы: IN() ІШКІ сұраныс нәтижесіндегі мәндер тізіміне сай жолдарды таңдайды.

Анықтама
JOIN («біріктіру») — уақытша кесте құрмай, бір сұраныспен БІРНЕШЕ кестеден деректі алуға мүмкіндік береді.
ТүріНе қайтарады
INNER JOINТЕК екі кестеде де сәйкес келетін жазбалар
LEFT JOINСол жақ кестенің БАРЛЫҒЫ + оң жақтан сәйкестер
RIGHT JOINОң жақ кестенің БАРЛЫҒЫ + сол жақтан сәйкестер
Есеп (қиын): JOIN арқылы атауымен шығару

Берілді: алдыңғы есептің нәтижесін аспап АТАУЫМЕН (кодымен емес) шығару.

Неге RIGHT JOIN? price өрісі instruments кестесінде (оң жақ), сондықтан оның БАРЛЫҚ жазбасын сақтау үшін RIGHT JOIN қолданамыз.

SELECT name_instr.name_instr, instruments.price
FROM name_instr
RIGHT JOIN instruments ON instruments.id_name_ins = name_instr.id_name_ins
WHERE name_instr = "dombyra";

Жауабы: dombyra | 200000, dombyra | 150000.

🎯 ҰБТ байланысы
SQL негізгі командаларының синтаксисі мен JOIN түрлерін ажырата білу маңызды.
1
WHERE-сіз DELETE/UPDATE — БАРЛЫҚ жазбаны жояды/өзгертеді.
2
% — кез келген ұзындық, _ — бір ғана таңба (LIKE операторында).
3
LEFT/RIGHT JOIN-да «сол» немесе «оң» жақ кестенің БАРЛЫҚ жазбасы сақталады.
Сабақ қорытындысы
  • SELECT — деректі таңдау, DELETE — жою, UPDATE — өзгерту негізгі SQL командалары.
  • WHERE — жолды сүзу, ORDER BY — сұрыптау, LIKE — жуықтап іздеу.
  • Ішкі сұраныс (IN арқылы) көпкестелі есептерде қолданылады.
  • JOIN — бірнеше кестеден бір сұраныспен деректі біріктіру (INNER, LEFT, RIGHT).