Оқулық «Білім беруді дамытудың федералды институты»



Pdf көрінісі
бет203/246
Дата27.09.2023
өлшемі4.61 Mb.
#478892
түріОқулық
1   ...   199   200   201   202   203   204   205   206   ...   246
Г. Н. Федорова, Деректер қорын әзірлеу және басқару. Оқулық. Мәскеу «Академия» баспа орталығы, 2015ж.

262
 


[NOT] IN;
{ALL | SOME | ANY};
[NOT] EXISTS;
IN операторы белгілі бір мәнді мәндер тізіміне салыстырып
салыстырылған тізімде мән бар ма немесе салыстырылатын мән 
тексерілген тізімнің элементі емес екенін тексеру ҥшін пайдаланылады. 
Тӛмендегі мысал ӛнімнің ең кӛп лотын сатып алған 
тҧтынушылардың сату тізімін кӛрсетеді:
SELECT П.*
FROM САТАЛЫМДАР П WHERE П. Тҧтынушы IN
(SELECT П1. Тҧтынушы FROM САТЫЛЫМДАР П1 
WHERE П1. Саны =
(SELECT MAX (П2. Саны ) FROM САТЫЛЫМДАР П2))
Бҧл сҧрақтың логикасын тҥсіндірейік. Біріншіден, Саны бағандағы 
ең ҥлкен мән анықталады:
SELECT MAX (П2. Саны ) FROM ПРОДАЖИ П2
Келесі сҧраудан кейін осы сатып алуды жасаған тҧтынушылар 
анықталады:
SELECT П1. Тҧтынушы FROM САТЫЛЫМДАР П1 
WHERE П1. Саны =
(SELECT MAX (П2. Саны) FROM САТЫЛЫМДАР П2)
Содан кейін негізгі сҧраныс SALES кестесінен табылған 
клиенттермен IN операторымен, яғни CUSTOMER ӛрісінің мәні 
кірістірілген сҧрауларда алынған жиынтыққа тиесілі SALES кестесінен 
алынған деректерді ғана алынған деректер жиынына тҥсетін барлық 
жазбаларды таңдайды (12.10-сур.).
Номер 
|Клиент
|
Товар
Количество Дата

45

Федорова Д.С.
конфеты "Коровка"
50 02.04.2013
162 Федорова Д.С.
Халва
10 15.02.2013
200 Лесовая В.Н.
Мармелад "Кроха"
20 07.02.2013
85 Лесовая В.Н.
Мука пшеничная
50 02.04.2013
254 Лесовая В.Н.
Сахар
50 01.02.2013
12.10 сурет. Тауарлардың барынша кӛп мӛлшерін сатып алатын тҧтынушылардың 
сатып алу тізімі
263
 


NOT IN пайдаланған кезде салыстыру мәні кірістірілген сҧрауларда 
алынған жиынтыққа кірмейтін жолдарды таңдауға болады. 
ANY және ALL деген кілт сӛздерді сандардың бір бағанын 
қайтаратын ішкі есептермен пайдалануға болады. 
Сәйкестендірілген 
мәннің 
және 
тӛменгі 
сҧрау 
арқылы 
қайтарылатын мәндердің арақатынасы ALL және SOME (ANY):
■ 
ALL дегеніміз, салыстырмалы мәннің тӛменгі сҧрау арқылы 
қайтарылған барлық мәндермен сәйкес келетін коэффициенттің 
мәні болған жағдайда, яғни, тӛменгі сҧраудың нәтижелендірілген 
бағанындағы барлық мәндер ҥшін дҧрыс екендігін кӛрсетеді;
■ 
SOME (немесе ANY) - іздеу шарты салыстырылған мәннің тӛменгі 
сҧрау арқылы қайтарылған кем дегенде бір мәнмен дҧрыс қатынасында 
болғанда, яғни ол тӛменгі сҧраудың нәтижелендірілген бағанында кем 
дегенде біреуіне қанағаттандырылады. Егер тӛменгі сҧрау нәтижесі 
бойынша бос мән алынды, онда ALL сӛзі ҥшін салыстыру шарты 
орындалды деп есептеледі және кілт сӛзді ANY - аяқталмаған. SOME 
кілт сӛзі ANY сӛзбен синоним болып табылады.
Жоғарыда келтірілген мысалдарды келтірейік. Тауар сатылатын 
бірліктердің саны орташа мәннен асатын тауарларды сату фактілерінің 
барлығын анықтаңыз:
SELECT * FROM САТЫЛЫМДАР 
П1 WHERE П1. Саны>ALL 
(SELECT AVG(П2. Саны)
FROM 
САТЫЛЫМДАРП2 
GROUP BY 
П2.Тҧтынушы )
Және HAVING сӛйлемін және ALL кілт сӛзін пайдаланудың тағы 
бір мысалы. Ең кӛп тауарларды сатып алған клиент туралы ақпаратты 
шығарып алу керек SELECT К.*
FROM 
ТҦТЫНУШЫЛАР К 
WHERE К. 
Тҧтынушы =
(SELECT П.Тҧтынушы FROM САТЫЛЫМДАР П 
GROUP BY П. Тҧтынушы HAVING SUM^. Саны) >= 
ALL (SELECT SUM (П1. Саны)FROM 
САТЫЛЫМДАРП1 GROUP BY П1. Тҧтынушы))


Достарыңызбен бөлісу:
1   ...   199   200   201   202   203   204   205   206   ...   246




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет