Сатылған тауарлардың бірліктерінің саны кем дегенде бір тауарды
сатудың орташа мәнінен асатын тауарларды
сату фактілерінің
барлығын кӛрсетеді.:
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 тармағындағы қосылым тҥрінің оң жағына
байланыс болып табылады. Алынған қатынас дҧрыс кестенің барлық
жолдарын қамтиды.
Достарыңызбен бөлісу: