КампутарыБазы дадзеных

MySQL - запыт ў запыце. MySQL: прыклады запытаў. Укладзеныя запыты MySQL

У цяперашні час кожны чалавек можа назіраць імклівы рост аб'ёму лічбавай інфармацыі. А так як большая частка гэтай інфармацыі з'яўляецца важнай, узнікае неабходнасць яе захавання на лічбавых носьбітах для наступнага выкарыстання. У дадзенай сітуацыі могуць прымяняцца такія сучасныя тэхналогіі, як базы дадзеных. Яны забяспечваюць надзейнае захоўванне любой лічбавай інфармацыі, а доступ да дадзеных можа быць ажыццёўлены ў любым пункце зямнога шара. Адной з разгляданых тэхналогій з'яўляецца сістэма кіравання базамі дадзеных MySQL.

СКБД MySQL - што гэта?

Рэляцыйная сістэма кіравання базамі дадзеных MySQL з'яўляецца адной з самых запатрабаваных і часта выкарыстоўваюцца тэхналогій захоўвання інфармацыі. Яе функцыянальныя магчымасці пераўзыходзяць па многіх паказчыках існуючыя СКБД. У прыватнасці, адной з галоўных асаблівасцяў з'яўляецца магчымасць выкарыстоўваць укладзеныя запыты MySQL.

Таму многія праекты, дзе важна час хуткадзейнасці і неабходна забяспечыць захоўванне інфармацыі, а таксама ажыццяўляць складаныя выбаркі дадзеных, распрацоўваюцца на базе СКБД MySQL. Большую частку такіх распрацовак складаюць інтэрнэт-сайты. Пры гэтым MySQL актыўна ўкараняецца пры рэалізацыі як невялікіх (блогі, сайт-візітоўкі і т. П.), Так і досыць буйных задач (інтэрнэт-крамы, сховішча дадзеных і т. Д.). У абодвух выпадках для адлюстравання інфармацыі на старонцы сайта ўжываецца MySQL-запыт. У запыце распрацоўнікі імкнуцца максімальна выкарыстоўваць існуючыя магчымасці, якія дае сістэма кіравання базамі дадзеных.

Як павінна быць арганізавана захоўванне дадзеных

Для зручнага захоўвання і наступнай апрацоўкі дадзеныя абавязкова парадкуюцца. Структура дадзеных дазваляе вызначыць, якім чынам будуць выглядаць табліцы, якія выкарыстоўваюцца для захоўвання інфармацыі. Табліцы базы дадзеных ўяўляюць сабой набор палёў (слупкоў), якія адказваюць за кожнае пэўнае ўласцівасць аб'екта дадзеных.

Напрыклад, калі складаецца табліца супрацоўнікаў пэўнай кампаніі, то яе самая простая структура будзе мець наступны выгляд. За кожным супрацоўнікам замацаваны унікальны нумар, які, як правіла, выкарыстоўваецца ў якасці першаснага ключа да табліцы. Затым у табліцу заносяцца персанальныя дадзеныя супрацоўніка. Гэта можа быць што заўгодна: Ф. І. О., нумар аддзела, за якім ён замацаваны, тэлефон, адрас і іншае. Згодна з патрабаваннямі нармалізацыі (6 нармальных формаў баз дадзеных), а таксама для таго, каб MySQL-запыты выстройваліся структуравана, поля табліцы павінны быць атамарнага, гэта значыць не мець пералічэнняў або спісаў. Таму, як правіла, у табліцы існуюць асобныя палі для прозвішчы, імя і т. Д.

Employee_id

Surname

Name

Patronymic

Department_id

Position

Phone

Employer_id

1

Іваноў

Іван

Іванавіч

Адмініс.

дырэктар

495 ****

null

2

Пятроў

Пётр

Пятровіч

Адмініс.

Нам. дырэктара

495 ***

1

3

Грышын

Рыгор

Рыгоравіч

продажу

начальнік

1

...

...

...

...

...

...

...

...

59

Сяргееў

Сяргей

Сяргеевіч

продажу

Прадавец-консульт.

495 ***

32

Вышэй прадстаўлены трывіяльны прыклад структуры табліцы базы дадзеных. Аднак яна яшчэ не да канца адказвае асноўным патрабаванням нармалізацыі. У рэальных сістэмах ствараецца дадатковая табліца аддзелаў. Таму прыведзеная табліца замест слоў у калонцы «Аддзел» павінна ўтрымліваць нумары аддзелаў.

Якім чынам адбываецца выбарка дадзеных

Для атрымання дадзеных з табліц у СКБД выкарыстоўваецца спецыяльная каманда MySQL - запыт Select. Для таго каб сервер базы дадзеных правільна адрэагаваў на зварот, запыт павінен быць карэктна сфармаваны. Структура запыту фармуецца наступным чынам. Любы зварот да сервера БД пачынаецца з ключавога слова select. Менавіта з яго будуюцца ўсе ў MySQL запыты. Прыклады могуць мець розную складанасць, але прынцып пабудовы вельмі падобны.

Затым неабходна ўказаць, з якіх палёў патрабуецца абраць цікавую інфармацыю. Пералік палёў адбываецца праз коску пасля прапановы select. Пасля таго як усе неабходныя палі былі пералічаныя, у запыце паказваецца аб'ект табліцы, з якога будзе адбывацца выбарка, пры дапамозе прапановы from і ўказанні імя табліцы.

Для абмежавання выбаркі ў MySQL-запыты дадаюцца спецыяльныя аператары, прадугледжаныя СКБД. Для выбаркі якiя не паўтараюцца (унікальных) дадзеных выкарыстоўваецца прапанову distinct, а для задання умоў - аператар where. У якасці прыкладу, прымяняецца да вышэйпаказанай табліцы, можна разгледзець запыт, які патрабуе інфармацыю пра імя па бацьку супрацоўнікаў, якія працуюць у аддзеле «Продажы». Структура запыту прыме выгляд, як у табліцы ніжэй.

Паняцце ўкладзенага запыту

Але галоўная асаблівасць СКБД, як было паказана вышэй, магчымасць апрацоўваць укладзеныя запыты MySQL. Як ён павінен выглядаць? З назвы лагічна зразумела, што гэта запыт, сфармаваны ў пэўнай іерархіі з двух або больш запытаў. У тэорыі па вывучэнні асаблівасцяў СКБД сказана, што MySQL ня накладвае абмежаванняў на колькасць MySQL-запытаў, якія могуць быць укладзеныя ў галоўны запыт. Аднак можна паэксперыментаваць на практыцы і пераканацца, што ўжо пасля другога дзясятка ўкладзеных запытаў час водгуку сур'ёзна павялічыцца. У любым выпадку на практыцы не сустракаюцца задачы, якія патрабуюць выкарыстоўваць надзвычай складаны MySQL-запыт. У запыце можа спатрэбіцца максімальна да 3-5 ўкладзеных іерархій.

Пабудова ўкладзеных запытаў

Пры аналізе прачытанай інфармацыі ўзнікае шэраг пытанняў аб тым, дзе могуць быць выкарыстаны укладзеныя запыты і ці нельга вырашыць задачу разбіццём іх на простыя без ускладнення структуры. На практыцы укладзеныя запыты выкарыстоўваюцца для вырашэння складаных задач. Да такога тыпу задач ставяцца сітуацыі, калі загадзя невядома ўмова, па якім будзе адбывацца абмежаванне далейшай выбаркі значэнняў. Вырашыць такія задачы немагчыма, калі проста выкарыстоўваць звычайны MySQL-запыт. У запыце, які складаецца з іерархій, будзе адбывацца пошук абмежаванняў, якія могуць мяняцца з цягам часу або загадзя не могуць быць вядомыя.

Калі разглядаць табліцу, прыведзеную вышэй, то ў якасці складанай задачы можна прывесці наступны прыклад. Дапусцім, нам неабходна даведацца асноўную інфармацыю пра супрацоўнікаў, якія знаходзяцца ў падпарадкаванні Грышына Рыгора Рыгоравіча, які з'яўляецца начальнікам аддзела продажаў. Пры фарміраванні запыту нам невядомы яго ідэнтыфікацыйны нумар. Таму першапачаткова нам неабходна яго пазнаць. Для гэтага выкарыстоўваецца просты запыт, які дазволіць знайсці рашэнне галоўнай умовы і дапоўніць асноўны MySQL-запыт. У запыце наглядна прадстаўлена, што подзапросов атрымлівае ідэнтыфікацыйны нумар супрацоўніка, які ў далейшым вызначае абмежаванне галоўнага запыту:

У дадзеным выпадку прапанова any выкарыстоўваецца для таго, каб выключыць ўзнікненне памылак, калі супрацоўнікаў з такімі ініцыяламі апынецца некалькі.

вынікі

Падводзячы вынік, неабходна адзначыць, што існуе яшчэ шмат іншых дадатковых магчымасцяў, якія значна палягчаюць пабудова запытаў, так як СКБД MySQL - магутны сродак з багатым арсеналам інструментаў для захоўвання і апрацоўкі дадзеных.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.atomiyme.com. Theme powered by WordPress.