Иргөө жана чектөө: ORDER BY жана LIMIT
Саптарды туура тартипке кой, анан керектүүлөрүн гана калтыр
Негизги ой: Таблица саптарды сактайт, бирок эч кандай тартипти убада кылбайт.
ORDER BY саптарды каалагандай иргөөгө мүмкүндүк берет, ал эми LIMIT биринчи бир нечесин гана калтырат. Чогуу алар «Эң мыкты 3 оюнчу ким?» деген суроолорго жооп берет.
Сабактын аягында сиз төмөнкүлөрдү жасай аласыз:
ORDER BYменен саптарды иргөө — кичинеден чоңго (ASC) же чоңдон кичинеге (DESC),- бир нече мамыча боюнча иргеп, «теңдикти» чечүү,
LIMITменен бир нече сапты гана калтыруу,OFFSETменен саптарды өткөрүп жиберип, барактарды түзүү,- эң мыкты же эң начар саптарды табуу үчүн «топ-N» сурамын жазуу.
1. Биздин мисал: оюндун рекорддор таблицасы
Бул сабактагы ар бир мисал players деп аталган бир кичинекей таблицаны колдонот. Бул видео оюндун рекорддор тактасы. Баарыбыз бирдей маалыматты элестетишибиз үчүн аны бир жолу түзөлү.
CREATE TABLE players (
id INT,
name VARCHAR(20),
score INT,
level INT,
country VARCHAR(15)
);
INSERT INTO players (id, name, score, level, country) VALUES
(1, 'Aisha', 950, 7, 'Kenya'),
(2, 'Bilal', 720, 5, 'Egypt'),
(3, 'Chen', 950, 8, 'China'),
(4, 'Diego', 610, 4, 'Peru'),
(5, 'Elena', 880, 6, 'Spain'),
(6, 'Farah', 720, 5, 'Iran'),
(7, 'Grace', 1040, 9, 'Kenya'),
(8, 'Hiro', 610, 4, 'Japan');
Эгерде биз жөн эле баарын сурасак, база маалыматтарды каалаган тартипте кайтарууга акылуу (көбүнчө сакталган тартипте):
SELECT name, score, level, country FROM players;
| name | score | level | country |
|---|---|---|---|
| Aisha | 950 | 7 | Kenya |
| Bilal | 720 | 5 | Egypt |
| Chen | 950 | 8 | China |
| Diego | 610 | 4 | Peru |
| Elena | 880 | 6 | Spain |
| Farah | 720 | 5 | Iran |
| Grace | 1040 | 9 | Kenya |
| Hiro | 610 | 4 | Japan |
Бул баш аламан рекорддор тактасы! Тартипсиз рейтингди эч ким каалабайт. Муну оңдойлу.