Танлов амали - SELECT a1, a2 FROM R WHERE a2 = 'C‘;
- Танлов амали – берилган шартлар бўйича горизонтал (кортежлар) қисм тўпламини ажратиб олиш.
Проекция амали - SELECT DISTINCT a2 FROM R;
- Проекция амалида вертикал қисм тўпламдан битта натижа олиниб қолган бир хил натижаларни чиқариб ташлаймиз.
Декарт кўпайтириш - SELECT R.a1, R.a2, S.b1, S.b2
- FROM R, S;
- Агар биринчи муносабат N ёзув ва K майдондан, иккинчиси M ёзув ва L майдондан иборат бўлса, ушбу муносабатларнинг декарт кўпайтмаси NxM ёзувдан ва K+L майдондан иборат булади.
Берилган икки жадвални боғлаш амаллари - Боғлаш – бу бир ёки бир нечта жадвалларинг битта жадвалга бирлаштириш.
- FROM имя_таблицы_1 {INNER | LEFT | RIGHT}
- JOIN имя_таблицы_2
- ON условие_соединения
- Тета-боғланиш
- Эквивалентлилиги бўйича боғланиш
- Табиий боғланиш
- Ташқи боғланиш
- Ярим боғланиш
Тета-боғланиш - Тета-боғланиш амали SQL тилида INNER JOIN (ички боғланиш) дейилади ва иккала жадвалдан хам боғланиш шартини қаноатлантирувчи барча майдонларни олишга айтилади.
- SELECT R.a1, R.a2, S.b1, S.b2
- FROM R, S WHERE R.a1 = S.b1
- SELECT R.a1, R.a2, S.b1, S.b2
- FROM R INNER JOIN S ON R.a1=S.b1
Табиий боғланиш - Табиий боғланишда иккала жадвалдан хам боғланиш шартини қаноатлантирувчи ва умумий майдонлардан биттаси ҳамда қолган такрорланмайдиган барча майдонларни олишга айтилади.
- SELECT R.a2, R.a1, S.b2
- FROM R INNER JOIN S ON R.a1=S.b1
- SELECT R.a2, S.b1, S.b2
- FROM R, S WHERE R.a1 = S.b1
Топшириқ № 6-1 - Бизга иккита жадвал берилган
- CREATE TABLE `goods` (
- `id` INT(11) NOT NULL AUTO_INCREMENT,
- `name` VARCHAR(50) NOT NULL,
- PRIMARY KEY (`id`)
- );
- CREATE TABLE `contracts` (
- `id` INT(11) NOT NULL AUTO_INCREMENT,
- `good_id` INT(11) NOT NULL,
- `name` VARCHAR(50) NOT NULL,
- PRIMARY KEY (`id`)
- );
- Ушбу жадвалларга асосан табиий хамда тета-боғланиш ясанг.
Чапдан ташқи боғланиш - Чапдан ташқи боғланиш деб биринчи (чапдаги) жадвалнинг кортежига мос келувчи иккини жадвалнинг кортежи йуқ бўлган холда хам боғлаш.
- SELECT R.a1, R.a2, S.b1, S.b2
- FROM R LEFT JOIN S ON R.a1=S.b1
- SELECT R.a1, R.a2, S.b1, S.b2
- FROM R LEFT JOIN S ON R.a1=S.b1
Ўнгдан ташқи боғланиш - Ўнгдан ташқи боғланиш деб иккинчи (ўнгдаги) жадвалнинг кортежига мос келувчи иккини жадвалнинг кортежи йуқ бўлган холда хам боғлаш.
- SELECT S.b1, S.b2, R.a1, R.a2
- FROM S RIGHT JOIN R ON R.a1=S.b1
- SELECT S.b1, S.b2, R.a1, R.a2
- FROM S LEFT JOIN R ON R.a1=S.b1
Ярим боғланиш - SELECT R.a1, R.a2
- FROM R INNER JOIN S ON R.a1=S.b1
- SELECT R.a1, R.a2
- FROM R, S WHERE R.a1 = S.b1
Бирлаштириш амали - SELECT R.a1, R.a2 FROM R
- UNION
- SELECT S.b1, S.b2 FROM S;
- (SELECT R.a1, R.a2 FROM R WHERE R.a1 <= 4 )
- UNION
- (SELECT S.b1, S.b2 FROM S WHERE S.b1 > 2 );
- SELECT R.a1, R.a2
- FROM R,S
- WHERE R.a1=S.b1 AND R.a2=S.b2
- SELECT R.a1, R.a2 FROM R
- WHERE R.a1 IN (SELECT S.b1 FROM S WHERE S.b1=R.a1) AND R.a2 IN (SELECT S.b2 FROM S WHERE S.b2=R.a2)
Йукларни саралаб олиш (Операция разность) - SELECT R.a1, R.a2 FROM R
- WHERE NOT EXISTS
- (SELECT S.b1, S.b2 FROM S
- WHERE S.b1=R.a1 AND S.b2=R.a2);
Do'stlaringiz bilan baham: |