Mysql - запит в запиті

Вище представлений тривіальний приклад структури таблиці бази даних. Однак вона ще не до кінця відповідає основним вимогам нормалізації. У реальних системах створюється додаткова таблиця відділів. Тому наведена таблиця замість слів в колонці «Відділ» повинна містити номери відділів.







Яким чином відбувається вибірка даних

Для отримання даних з таблиць в СУБД використовується спеціальна команда MySQL - запит Select. Для того щоб сервер бази даних правильно відреагував на звернення, запит повинен бути коректно сформований. Структура запиту формується таким чином. Будь-яке звернення до сервера БД починається з ключового слова select. Саме з нього будуються всі в MySQL запити. Приклади можуть мати різну складність, але принцип побудови дуже схожий.

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

Для обмеження вибірки в MySQL-запити додаються спеціальні оператори, передбачені СУБД. Для вибірки неповторяющихся (унікальних) даних використовується пропозицію distinct. а для завдання умов - оператор where. Як приклад, що застосовується до вищевказаної таблиці, можна розглянути запит, що вимагає інформацію про П.І.Б. співробітників, що працюють у відділі «Продажі». Структура запиту набуде вигляду, як в таблиці нижче.

Mysql - запит в запиті

Поняття вкладеного запиту

Але головна особливість СУБД, як було зазначено вище, можливість обробляти вкладені запити MySQL. Як він повинен виглядати? З назви логічно зрозуміло, що це запит, сформований в певній ієрархії з двох або більше запитів. В теорії по вивченню особливостей СУБД сказано, що MySQL не накладаються обмежень на кількість MySQL-запитів, які можуть бути вкладені в головний запит. Однак можна поекспериментувати на практиці і переконатися, що вже після другого десятка вкладених запитів час відгуку серйозно збільшиться. У будь-якому випадку на практиці не зустрічаються завдання, що вимагають використовувати надзвичайно складний MySQL-запит. У запиті може знадобитися максимально до 3-5 вкладених ієрархій.







Mysql - запит в запиті

Побудова вкладених запитів

Якщо розглядати таблицю, наведену вище, то в якості складного завдання можна навести такий приклад. Припустимо, нам необхідно дізнатися основну інформацію про співробітників, які перебувають в підпорядкуванні Гришина Григорія Григоровича, який є начальником відділу продажів. При формуванні запиту нам невідомий його ідентифікаційний номер. Тому спочатку нам необхідно його впізнати. Для цього використовується простий запит, який дозволить знайти рішення головного умови і доповнить основний MySQL-запит. У запиті наочно представлено, що підзапит отримує ідентифікаційний номер співробітника, який в подальшому визначає обмеження головного запиту:

Mysql - запит в запиті

В даному випадку пропозиція any використовується для того, щоб виключити виникнення помилок, якщо співробітників з такими ініціалами виявиться кілька.

Підводячи підсумок, необхідно відзначити, що існує ще багато інших додаткових можливостей, які значно полегшують побудову запитів, так як СУБД MySQL - потужний засіб з багатим арсеналом інструментів для зберігання і обробки даних.

Mysql - запит в запиті

10 образ від Шекспіра, які працюють краще, ніж сучасні Зустрітися з оригінальними лайками Шекспіра - вам сподобається користуватися деякими з них.

Mysql - запит в запиті

Що відбувається з організмом людини, яка не займається сексом? Секс - майже така ж базова потреба, як і прийом їжі. По крайней мере, почавши їм займатися, ви вже не зупинитеся. Навіть якщо ви прідержіваетес.

Mysql - запит в запиті







Схожі статті