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



жүктеу 2,79 Kb.
Pdf просмотр
бет86/101
Дата20.05.2018
өлшемі2,79 Kb.
#15312
түріОқулық
1   ...   82   83   84   85   86   87   88   89   ...   101

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


 
 
Сыртқы байланыс (FULL) - жетекші кестелер барлық кестелер болғанда. 
Деректер  жиынтығы  екі  кестенің  барлық  жазбаларын  қамтиды.  Егер 
бірінші  кестені  жазудың  қосылым  шартын  қанағаттандыратын  екінші 
кестенің  жазбалары  болса,  екі  кестенің  осындай  жазбаларын  қосудың 
барлық комбинациясы алынған деректер жинағына қосылады. Әйтпесе, 
бос  жазбаға  қосылған  бірінші  кестенің  жазбасы  деректердің  нәтиже 
жинағына қосылады. 
Екінші жағынан, қосылым жағдайын қанағаттандыратын екінші 
кестенің  жазбалары  үшін  бірінші  кестенің  жазбалары  бар  болса,  екі 
кестенің осындай жазбаларын қосудың қосындысы сұрануға қосылады. 
Әйтпесе,  бос  жазбаға  қосылған  екінші  кестенің  жазбасы  алынған 
деректер жинағына қосылады. 
Мұны  мысалмен  келтірейік.  ТҰТЫНУШЫЛАР  және 
САТЫЛЫМДАР  кестелерінің  сыртқы  сол  жаққа  қосылуын  жүзеге 
асыратын  операторды  орындау  осындай  деректер  жиынтығын  құруға 
әкеледі (12.11-сурет):
 
SELECT 
САТЫЛЫМДАР.*, ТҰТЫНУШЫЛАР.*
 
FROM 
ТҰТЫНУШЫЛАР LEFT JOIN 
САТЫЛЫМДАР ON 
САТЫЛЫМДАР.Тұтынушы = 
ТҰТЫНУШЫЛАР.Тұтынушы
 
Нәтижеден көріп отырғандай, ТҰТЫНУШЫЛАР кестесінің кейбір 
жолдарында  қосылым  күйін  қанағаттандыратын  САТЫЛЫМДАР 
кестесінде жұпталған жазбалар жоқ. Сондықтан осы ТҰТЫНУШЫЛАР 
кесте деректері бос жазбалармен бірге көрсетіледі.
 

Номер Kj 
Город 
клиент 

Товар 

Количество 

Дата 

Клиент 1 

Телефон I 
Е
 
 
 
<П1_Н>
 

 
 

 
ООО T оризонт"
 
0255001231521 Москва
 
4890605
 
 
 

 

 

 

 
ИП Привалов 
 
02550102566
 
Санкт-
б
 
2560245
 
 
112
 
ООО "Ромашка"
 
Халва
 
40
 
15.02.201
 
ООО "Ромашка"
 
02550124455
 
Москва
 
3658315
 
 
 

 

 

 

 
ООО "Перевал"
 
14588989362
 
Тверь
 
221588
 
 
 

 

 

 

 
ИП Иванов Ф.И.
 
02555800055
 
Москва
 
1155488
 
 
25
 
Таран О.С.
 
Халва
 
5
 
04.01.201
 
Таран О.С.
 
36022400545
 
Москва
 
1215648
 
 
144
 
Таран О,С,
 
Сосиски молочные
 
30
 
01.04.201
 
Таран О.С.
 
36022400545
 
Москва
 
1215648
 
 
45
 
Федорова Д.С.
 
Конфеты 
 
50
 
02.04.201
 
Федорова Д.С.
 
50025551005
 
Санкт-
 
4449702
 
 
162
 
Федорова Д.С.
 
Халва
 
10
 
15.02.201
 
Федорова Д.С.
 
50025551005
 
Санкт-
 
4449702
 
 
200
 
Лесовая В.Н.
 
Мармелад "Кроха"
 
20
 
07.02.201
 
Лесовая В.Н.
 
21258583218
 
Москва
 
3021402
 
 
85
 
Лесовая В.Н.
 
Мука пшеничная
 
50
 
02.04.201
 
Лесовая В.Н.
 
21258583218
 
Москва
 
3021402
 
 
254
 
Лесовая В.Н.
 
Сахар
 
50
 
01.02.201
 
Лесовая В.Н.
 
21258583218
 
Москва
 
3021402
 
 
 

 

 

 

 
БМСТ
 
55587897002
 
Санкт-
 
4353822
 
 
 

 

 

 

 
Дремина Е.Е.
 
02557872105
 
Москва
 
6582209
 
 
156
 
ИП Газимова 
 
Конфеты "Мишка"
 
30
 
02.04.201
 
ИП Газимова 
 
02558797876
 
Москва
 
6521588
 
 
140
 
ИП Газимова 
 
Конфеты 
 
15
 
09.01.201
 
ИП Г азимова 
 
 
02558797876
 
Москва
 
6521588
 
12.11 
сурет.  Кестелердің  сыртқы  сол  жаққа  қосылу  нәтижесі  ТҰТЫНУШЫЛАР 
және САТЫЛЫМДАР
 
267
 


жүктеу 2,79 Kb.

Достарыңызбен бөлісу:
1   ...   82   83   84   85   86   87   88   89   ...   101




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

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау