Від автора: ви тут запис мою не бачили? Випала з бази, тепер не знаю, що й робити! Напевно, сьогодні візьмемося за пошук в MySQL. А я як раз згадаю, як більш ефективно просіяти дані СУБД та заодно свою рядок постараюся знайти.
Навіщо просіяти?
Просіювання в MySQL – одна з найбільш часто виконуваних завдань. Для цього в системах управління БД, що підтримують SQL, використовується команда SELECT. В попередніх матеріалах ми вже стикалися з нею, застосовуючи її для знаходження та виведення рядків, що відповідають «простеньким» критеріям сортування. Насправді дана команда є однією з головних, та її можливості в сфері пошуку записів майже безмежні.
При цьому написання правильних запитів на вибірку даних в MySQL дуже часто схоже на складання заклинань. Особливо таке враження складається у новачків, які тільки ступили на шлях вивчення СУБД. Але сьогодні ми постараємося розвіяти це «сюрреалістичне» мара, і навчимося складати правильні запити для пошуку по MySQL базі.
Як вже в нас заведено, почнемо з огляду можливостей phpMYAdmin. Подивимося, яким вбудованим функціоналом для сортування даних має ця програма.
Просіваємо рядка через phpMyAdmin
Зайдіть в програму, виберіть будь-яку БД і таблицю в ній. Я б радив вам використовувати таблиці поменше, у якої всього кілька термін. У них краще видно результати сортування.
Вибравши зліва в меню базу і таблицю, перейдіть зверху в розділ «Огляд». Після цього СУБД виведе всі рядки, які містяться в даній структурі. Для цього програма направила на виконання сервера БД запит на вибірку. Його код відображається вище результатів вибірки.
Нижче знаходиться весь вбудований функціонал програми для пошуку по MySQL базі. Щоб встановити спосіб «просіювання» по первинному ключу (за зменшенням або зростанням), використовується перемикач «Сортувати за індексом».
Крім цього можна «просіювати» всі рядки, змінивши порядок виводу даних за значенням кожного стовпця (спаданням і зростанням). Для цього треба натиснути на ім’я стовпця вгорі. При цьому для значень рядка порядок виводу буде змінюватися в алфавітному порядку.
Але весь цей функціонал стане вам у нагоді лише для здійснення пошуку в невеликих таблицях. Для більш значних обсягів даних доведеться використовувати SQL.
Потужні засоби SQL
Як вже згадувалося, для пошуку в MySQL використовується команда SELECT. Її синтаксис я наводити не буду, оскільки його розмір може налякати навіть самого досвідченого розробника. Тому тільки на скріншоті, щоб ви не впали в непритомність .
«Осягати» цю команду на прикладах її використання, які можуть стати в нагоді вам для побудови більш складних запитів. Стартуємо! Я все-таки знову «поиграюсь» зі своїми «тваринками», і всі запити буду адресувати таблиці animal:
Знаходимо рядок з номером id:
SELECT * FROM `animal` WHERE id=1;
В цьому запиті ми використовуємо оператор WHERE, після якого задаємо критерій пошуку. Виводимо певні стовпці шуканого рядка:
SELECT name FROM `animal` WHERE id=1;
У даному прикладі ми вивели не повністю шуканий рядок, а тільки значення стовпця name. Пошук по строковому значенням:
SELECT * FROM `animal` WHERE name=’gala’;
Тут ми використовували в якості параметра для пошуку по MySQL базі рядкове значення. Сортування результатів вибірки за зростанням або спаданням:
SELECT * FROM `animal` ORDER BY name;
Для сортування результатів вибірки ми використовували директиву ORDER BY. За замовчуванням встановлена сортування за зростанням (ключове слово ASC). Щоб визначити зворотний порядок (за спаданням) потрібно використовувати слово DESC.
SELECT * FROM `animal` ORDER BY name DESC;
Якщо потрібно знайти значення, що відповідають певним параметрам, і відсортувати результати вибірки за спаданням:
SELECT * FROM `animal` WHERE name=’dog’ ORDER BY ID DESC;
Заглиблюємося
Давайте покинемо наш «звірину» і перенесемося в базу даних world. На ній я покажу ще кілька прикладів вибірки даних, які відповідають заданим параметрам. Всі запити я буду демонструвати на основі таблиці country. Іноді (особливо у великих за розміром таблицях) потрібно задати не один критерій для пошуку, а кілька. Тоді запит на отримання списку країн з Європи і Африки буде виглядати наступним чином:
SELECT Name, Continent FROM `country` WHERE Continent=’Africa’ OR Continent=’Europe’;
Цей запит на пошук за MySQL базі можна скоротити, якщо використовувати ключове слово in. Наприклад:
SELECT Name, Continent FROM `country` WHERE Continent in (‘Africa’,’Europe’);
Для вказівки діапазону вибірки застосовується ключове слово Between. Давайте виведемо країни з чисельністю населення від 10 до 50 тис. За основу візьмемо попередній запит:
SELECT Name, Continent, Population FROM `country` WHERE Population BETWEEN 10000 and 50000;
Приклад PHP
Тепер наведемо приклад, як запустити пошук в PHP MySQL даних. Використовуємо попередній запит.
Ну, начебто я коротко розповів вам все про пошук в MySQL. Сподіваюся, з цієї статті ви почерпнули для себе щось новеньке. А свою рядок я так і не знайшов. Напевно, кіт поцупив, поки я відходив від компа. Ох, вже це звірі .