SELECT
Тауар, Құны FROM ТАУАРЛАР
WHERE
Құны BETWEEN 50 And 100
Алынған үлгі бұрынғы мысалдағы үлгіге ұқсас болады.
Егер сіз BETWEEN емес теріс пайдалансаңыз, көрсетілген ауқым
шегінен тыс мәндер алынады.
IN операторы белгілі бір мәнді көрсетілген мәндер тізімімен
салыстыру үшін пайдаланылады және өрнекті бағалау нәтижесі берілген
тізімдегі мәндердің біріне сәйкес келетінін тексереді. IN операторын
пайдалану арқылы сол нәтижені OR операторын пайдалану жағдайында
алуға болады, алайда IN сөзі жылдамырақ болады. NOT IN ұсынылған
тізімнен басқа кез келген мәндерді таңдау үшін пайдаланылады.
Мысалы, Мәскеуде немесе Санкт-Петербургте өмір сүрмейтін
клиенттерді тізімдеу үшін сұрауды орындау керек:
SELECT
Тұтынушы, Қала FROM ТҰТЫНУШЫЛАР
WHERE
Қала NOT IN («Мәскеу»,»Санкт-Петербург»)
LIKE операторымен өрнекті алмастырғыш таңбаларды пайдалануға
мүмкіндік беретін берілген үлгімен салыстыруға болады:
■
«%»
таңбасы - таңбаның орнына еркін таңбалардың кез-келген
саны ауыстырылуы мүмкін;
■
«_» таңбасы жолдағы бір таңбаны ауыстырады.
Мысалы, келесі сұрау нәтижесі бойынша телефон нөміріндегі екінші
санмен клиенттердің тізімі көрсетіледі — 4:
SELECT *
FROM
ТҰТЫНУШЫЛАР
WHERE
ТҰТЫНУШЫЛАР. Телефон LIKE '_4%'
Нәтижесінде, тұтынушы «Федорова Д.С» 4449602 телефон арқылы
табады.
Тегі мен аты бойынша сюжеттік «және» бар тұтынушыларды таңдау
үшін «%» екі таңбаны пайдаланып сұрауды жасау керек:
SELECT *
FROM
ТҰТЫНУШЫ
WHERE
ТҰТЫНУШЫЛАР. тұтынушы LIKE '%ва%',
251
Іздеудің бұл түрі пайдаланушы қалаған нысан туралы барлық
деректерді білмейді немесе есте сақтаған жағдайларда қолданылады.
IS NULL операторы ағымдық мәнді NULL мәнімен салыстыру үшін
пайдаланылады - кез келген мәннің жоқтығын көрсететін ерекше мән
(NULL -
бос орын немесе нөл емес екенін атап көрсету маңызды). IS
NOT NULL өрнегі өрістегі мәннің болуын тексеру үшін пайдаланылады.
Мысалы, телефон нөмірі жоқ тұтынушыларды табу қажет (Phone
өрісі ешқандай мәнді қамтымайды):
SELECT
Тұтынушы
FROM
ТҰТЫНУШЫЛАР
WHERE
Телефон IS NULL
Телефоны бар клиенттерді таңдау (Телефон өрісі кез келген мәнді
қамтиды):
SELECT
Тұтынушы FROM
ТҰТЫНУШЫЛАР
WHERE
Телефон IS NOT NULL
Тұтастай алғанда, SQL сұрау деректерінің нәтиже жинағындағы
жолдар ешқандай түрде реттелмейді. Дегенмен, оларды белгілі бір
тәртіпте сұрыптауға болады. Осыны орындау үшін ORDER BY сөйлемі
шығару кестесінің деректерін көрсетілген ретпен сұрыптайтын SELECT
операторына орналастырылады. Сұрыптауды бірнеше өрістерде
орындауға болады, бұл жағдайда олар үтірлермен бөлінген ORDER BY
кілт сөзінен кейін тізімделеді.
Сұрыптау әдісі (өсуі немесе кемуі бойынша) ORDER BY
параметрінде көрсетілетін кілт сөзді сұрыптау орындалатын өрістің
атауымен анықтайды. Әдепкіде, өсу тәртібінде сұрыптау орындалады.
Ол ASC кілт сөзімен айқын түрде беріледі.
Сұрыптауды кері тәртіпте орындау үшін, ол орындалатын өрістің
атауынан кейін DESC кілт сөзін көрсету керек. ORDER BY тармағы
таңдаулы жазбаларды кез келген бағанның немесе бағандардың
тіркесімінің мәндерінің өсу немесе кему тәртібімен, осы бағандардың
нәтижелер жиынында немесе жоқ екеніне қарамастан ұйымдастыруға
мүмкіндік береді. ORDER BY сөйлемі әрдайым SELECT
операторындағы соңғы элемент болуы керек. Мысалы, өнімді әліпбилік
ретпен тізімдеу керек:
252
SELECT *
FROM
ТАУАРЛАР
ORDER BY
ТАУАРЛАР.Тауар
ORDER BY тармағында бірнеше элемент көрсетілуі мүмкін. Содан
кейін сұрыптау критерийі - аталған барлық өрістерді «жабыстыру»
нәтижесі. Мысалы, сатылым кестесін Өнім жәнеКкүн өрістері бойынша
сұрыптауға болады:
SELECT *
FROM
САТЫЛЫМДАР
ORDER BY
САТЫЛЫМДАР.Тауар, САТЫЛЫМДАР.Күні
Келесі сұрауда сұрыптау біріншіден сатып алушының аты бойынша,
содан кейін өнімнің атауы бойынша жүзеге асырылады, сайып келгенде,
күні бойынша:
SELECT
Тұтынушы, Тауар, Күні, СаныFROM
Сатылымдар
ORDER BY
Тұтынушы, Тауар, Күні
Қосылыстар— Бұл екі немесе одан көп кестелер бір біріктірілген
процесс. Ақпаратты бірнеше кестелерден немесе сұраулардан бірыңғай
логикалық деректер жиынтығымен біріктіру мүмкіндігі кейінірек
талқыланатын SQL кеңейтілген мүмкіндіктерін анықтайды.
Бұрын біз WHERE сөйлемін сұрау нәтижесінің шектеулерін енгізу
құралы ретінде анықтадық. Бірақ, белгілі бір бағандардағы кестелер
арасындағы байланысты орнату үшін шектеу шарты ретінде, бұл екі
кестенің қосылуы болады. Федерацияда сол деректер түріне жататын
және бірдей деректер түріне жататын өрістер қатыса алады, бірақ оларда
бірдей атаудың болмауы керек. Екі кестеден алынған деректер
блоктарын сәйкес өрістер көрсетілген өрістерде табылған кезде
біріктіріледі.
Сатудың барлық кестелерін САТЫЛЫМ кестесінен және әрбір
өнімнің бағасын ТАУАРЛАРДЫҢ кестесінен көрсету үшін таңдаңыз,
мұндай сұрауды орындауға болады:
SELECT
САТЫЛЫМДАР.*, ТАУАРЛАР.ҚҰНЫ
FROM
САТЫЛЫМДАР, ТАУАРЛАР
WHERE
САТЫЛЫМДАР.ТАУАР = ТАУАРЛАР.ТАУАР
Осы мәлімдемені орындаған кезде, САТЫЛЫМДАР кестесіндегі
әрбір жазба үшін, ТАУАРЛАР кестесінде табуға болады, оның мәні Өріс
өрісіндегі САТЫЛЫМДАР кестесінің ағымдық жазбадағы Элемент
өрісіндегі мәнмен бірдей болады (12.3-сурет).
253
Достарыңызбен бөлісу: |