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



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

264
 


Сатылған тауарлардың бірліктерінің саны кем дегенде бір тауарды 
сатудың орташа мәнінен асатын тауарларды сату фактілерінің 
барлығын кӛрсетеді.:
SELECT * FROM САТЫЛЫМДАР 
П1 WHERE П1.саны>SOME 
(SELECT AVG(П2.саны)
FROM САТЫЛЫМДАР П2 
GROUP BY П2.Тҧтынушылар)
Қҧпия сӛздер бар және тек қана сауалдар бірге пайдалану ҥшін 
арналған EXISTS ЕМЕС. Оларды ӛңдеудің нәтижесі TRUE немесе 
FALSE логикалық мәні болып табылады. 
Кілт сӛз нәтижесі шынайы болса және ҥстел нәтижесінде 
сҧранысты қайтару кем дегенде бір сызық бар. Нәтижесінде кесте 
сҧранысы бос болса, нәтижесі ӛңдеу операция FALSE мәні болады бар. 
NOT EXISTS кілт сӛзі EXISTS кілт сӛзіне кері қайтарылған ӛңдеу 
ережелерін қолданады. EXISTS және NOT EXISTS кілт сӛздері 
нәтижесінде алынған ішкі сҧрау кестесінде жолдардың болуы ҥшін 
ғана тексерілгендіктен, бҧл кестеде бағандардың ерікті саны болуы 
мҥмкін. кілт сӛзді EXISTS пайдалана отырып, сіз тауарларды сатып 
алу ҥшін кем дегенде бір уақыт бар, барлық клиенттер тізімін жасай 
аласыз:
SELECT *
FROM ТҦТЫНУШЫЛАР К 
WHERE EXISTS (SELECT П.*
FROM САТЫЛЫМДАР П
WHERE К. Тҧтынушы = П. Тҧтынушы)
Бір сҧранымда ешқандай сатып алулар жасаған клиенттердің 
тізімін алу ҥшін сӛзді енгізу қажет NOT:
SELECT *
FROM ТҦТЫНУШЫЛАР К 
WHERE NOT EXISTS (SELECT 
П.*
FROM САТЫЛЫМДАР П
WHERE К. Тҧтынушылар = П. Тҧтынушы)
Егер сіз іздестіру шартында сіз ішкі сценарий қайтарылатын 
кестеден тек жазбаларды таңдағыңыз келсе, анықтасаңыз
265
 


тек бір мән, SINGULAR сӛйлемі кӛрсетіледі. Алдыңғы сҧрауды сәл 
ӛзгертіп, мҥлде басқа нәтиже алайық:
SELECT *
FROM 
ТҦТЫНУШЫЛАР 
К WHERE 
SINGULAR
(SELECT П.САТЫЛЫМДАР FROM САТЫЛЫМДАР П WHERE К. 
Тҧтынушы =
П.Тҧтынушы)
Сҧраудың нәтижесі, яғни, тек бір рет ӛнімнің тек бір тҥрін сатып 
барлық клиенттерінің тізімі, және сату кестеде осы клиент ҥшін бір 
ғана жазба бар. 
Жоғарыда дерекқор кестесінің ішкі байланыстарын қарастырдық. 
Сіз қосылуға шартты қанағаттандыруы екі кестеден барлық жолдарды 
қамтиды келген кезде ішкі байланыс пайдаланылады. Бҧл жағдайда
бірінші және екінші кестелер декарттық ӛнім желілерін, сондай-ақ 
қосылуға жағдайын сәйкес жазбаларды таңдалған нәтижесінде 
деректер жиынынан. 
Қосылым кестелерінің тағы бір тҥрі бар - сыртқы байланыс. Бҧл 
ерекшелікке сәйкес FROM тармағында анықталған:
SELECT ...
FROM <кесте1><байланыс тҥрі>JOIN <кесте2>
ON <байланыс шарттары>
Сыртқы байланыс ішкі байланыстың айырмашылығы сол 
кестелердің біреуінде шебері. Деректер жиынының нәтижесі басқа 
кестеден жазбалардың бос жиынымен біріктіруге болатын негізгі 
қосылым кестесінің жазбаларын қамтиды. Кестелердің қайсысы 
қосылыс тҥрін анықтайды. 
Сол жақ сыртқы біріктіру (LEFT) - бҧл бірінші кесте мастер 
болып табылатын байланыс, FROM сӛйлеміндегі қосылым тҥрінің сол 
жағына. Тиісінше, екінші кестенің жалпы бағандарында бірдей мәндері 
жоқ жетекші (бірінші) кестенің жолдары деректердің нәтиже жиынына 
қосылады. 
Оң жақ сыртқы біріктіру (RIGHT) екінші кесте шебер болып 
табылатын кезде, FROM тармағындағы қосылым тҥрінің оң жағына 
байланыс болып табылады. Алынған қатынас дҧрыс кестенің барлық 
жолдарын қамтиды.


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




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

    Басты бет