Номер
Клиент
Товар
Количество Дата
Цена
►
140 ИП Газимова К.К.
конфеты "Коровка"
15 09.01.2013
90
45 Федорова Д.С.
Конфеты "Коровка"
50 02.04.2013
90
156 ИП Газимова К.К.
Конфеты "Мишка"
30 02.04.2013
150
200 Лесовая В.Н.
Мармелад "Кроха"
20 07.02.2013
85
85 Лесовая В.Н.
Мука пшеничная
50 02.04.2013
50
254 Лесовая В.Н.
Сахар
50 01.02.2013
60
144 Таран О.С.
Сосиски молочные
30 01.04.2013
260
25 Таран О.С.
Халва
5 04.01.2013
45
162 Федорова Д.С.
Халва
10 15.02.2013
45
112 ООО "Ромашка"
Халва
40 15.02.2013
45
12.3
сурет. Кестенің ішкі қосылыстарының нәтижелері
Кестелерді іздеу күйінде қандай тәртіпте тізімдеу керек, яғни
кестелердің қайсысында сол жақта, ал қайсысында оң жағында
көрсетілетіні маңызды емес. Кестелерді қосу әдісі ішкі байланыс деп
аталады.
Міне, кестелердің ішкі бірігуінің тағы бір мысалы бар.
САТЫЛЫМДАР кестесінен тауарларды тұтыну туралы барлық
жазбаларды және әр клиент үшін оның қаласын үстелден көрсетіңіз
ТҰТЫНУШЫЛАР:
SELECT
САТЫЛЫМДАР.*, ТҰТЫНУШЫЛАР
.
Қала FROM САТЫЛЫМДАР, ТҰТЫНУШЫЛАР
WHERE
ТҰТЫНУШЫЛАР.тұтынушы = ТҰТЫНУШЫЛАР.Тұтынушы
Мысалдан көріп тұрғанымыздай (12.4-сурет) деректердің жиынтығы
САТЫЛЫМДАР кестесінде ешқандай жазбалар жоқ ТҰТЫНУШЫЛАР
кестесінің жазбаларын қамтымайды.
Екі кестенің ішкі қосылымы кезінде, нәтиже жиынтығын
қалыптастыру реті келесідей ұсынылуы мүмкін. САТЫЛЫМДАР
сөзінен кейін көрсетілген бағандардан аралық деректер жиынтығы әрбір
жазбаны бірінші кестеден әр жазбамен біріктіру арқылы
құрастырылады.
|
Номер
|Клиент
Товар
Количество Дата
|Город
140 ИП Газимова К.К.
конфеты "Коровка"
15 09.01.2013
Москва
156 ИП Газимова К.К.
Конфеты "Мишка"
30 02.04.2013
Москва
254 Лесовая В.Н.
Сахар
50 01.02.2013
Москва
200 Лесовая В.Н.
Мармелад "Кроха"
20 07.02.2013
Москва
85 Лесовая В.Н.
Мука пшеничная
50 02.04.2013
Москва
112 ООО "Ромашка"
Халва
40 15.02.2013
Москва
25 Таран О.С.
Халва1
5 04.01.2013
Москва
144 Таран О.С.
Сосиски молочные
30 01.04.2013
Москва
162 Федорова Д.С.
Халва
10 15.02.2013
Санкт-
П
б
45 Федорова Д.С.
Конфеты "Коровка"
50 02.04.2013
Санкт-
б
12.4
сурет. ТҰТЫНУШЫЛАР және САТЫЛЫМДАР кестесінің
254
WHERE тармағында іздестіру шартын қанағаттандырмайтын
барлық жазбалар.
Кестелерді SELECT сөзінен кейін және WHERE кейін іздеу күйінен
кейін қайтарылған бағандар тізіміндегі кестелермен байланыстырудың
жоғарыдағы мысалдарында, кесте аты бағанның атауына дейін
жазылған, мысалы:
WHERE
КЛИЕНТЫ. Тұтынушы= САТЫЛЫМДАР. Тұтынушы
Баған атауынан бұрын, әр түрлі кестелер бірдей бағандар болған
жағдайда кестенің атауын көрсетуіңіз керек (бұл мысалдағы сияқты).
Бағандарды анықтау үшін кесте атауын пайдалану ыңғайсыз, себебі бұл
қиын және қиын оқиды. Әрбір үстелге қысқа атау - бүркеншік атты
тағайындау әлдеқайда жақсы. Бүркеншік аттар нақты кесте атауынан
FROM кілт сөзінен кейін бастапқы кестелер тізіміндегі бос орын арқылы
бөлінеді. Мысалы, сұрау
SELECT
САТЫЛЫМДАР.*, ТҰТЫНУШЫЛАР. Қала FROM
САТЫЛЫМДАР, ТҰТЫНУШЫЛАР
WHERE
ТҰТЫНУШЫЛАР.Тұтынушы= САТЫЛЫМДАР.Тұтынушы
Бүркеншік кестелерді енгізгеннен кейін ол әлдеқайда ықшам көрінеді:
SELECT
П.*, К. Қала FROM САТЫЛЫМДАР П, ТҰТЫНУШЫЛАР К
WHERE
К. Тұтынушы = П. Тұтынушы
Арифметикалық өрнектер нәтижелер жиынының есептелетін
бағандарының мәндерін есептеу үшін пайдаланылады. Бұл жағдайда
SELECT операторынан кейін есептелетін бағанның атауының орнына
баған тізімінде өрнек көрсетіледі. Мәселен, келесі сұраныс
САТЫЛЫМДАР кестесінен тауарларды сатуға арналған барлық
жазбаларды қайтарады және әрбір тауар сатуға жіберілген тауарлардың
жалпы құнын есептейді:
SELECT
П .*, Т.Құны, П.Саны * Т.Құны FROM САТЫЛЫМДАР П,
ТАУАРЛАР Т WHERE П. Тауар = Т. Тауар
Бұл сұрақтың нәтижесін12.5 суреттен көруге болады.
Есептелетін өрісті құру үшін, қосу, алу, көбейту және бөлудің
арифметикалық амалдары, сондай-ақ SQL тілінің бекітілген
функциялары қолданылады. Кез келген атауды көрсетуге болады
255
Достарыңызбен бөлісу: |