Команди mysql, mysql
Консоль MySQL дозволяє вводити як інструкції SQL, так і службові команди MySQL, призначені для адміністрування і використання таблиць в базах даних MySQL. До основних командам відносяться SHOW, USE і CREATE.
Розглянемо кожну з них окремо.
Якщо, наприклад, існують дві бази даних - mysql і test (ці дві бази як правило створюються автоматично при інсталяції сервера), то MySQL відповість приблизно так:
Ця команда видасть список таблиць в поточній базі даних:
Зауваження: ви можете працювати тільки з однією базою даних в один і той же час, тому в наведеному вище прикладі немає потреби вказувати назву бази даних, список таблиць якої варто вивести, оскільки проводиться пошук в активній на даний момент базі.
Ця команда дозволяє створювати нові бази даних. Як було сказано вище, за замовчуванням сервер створює дві бази даних - mysql і test. Для зручності варто створювати нову базу даних для кожної окремої задачі, тому що легше працювати з набором таблиць, які пов'язані між собою (навіть якщо цей зв'язок тільки смислова). Створимо нову базу даних за допомогою цієї команди:
Після цієї операції буде створена нова база даних не містить ніяких таблиць, а команда SHOW DATABASES видасть наступне:
Як вже було сказано вище, в один і той же момент тільки одна база даних може бути активна. Команда USE служить для вибору цієї активної бази. Для переходу до деякої базі даних необхідно виконати наступну операцію:
Варто відзначити, що при створенні нової бази даних (див. Вище), нова база не стає активною автоматично - для її використання необхідно зробити це самостійно.
Наведена ознайомить вас з методами вилучення і занесення даних в таблиці за допомогою мови SQL.
Найпростіших командою є наступна:
Ця команда має на увазі, що в активній базі даних існує таблиця mysql, з якої вона просто витягує всі дані і виводить їх на екран.
Зауваження: На SQL-команди поширюється одне обмеження, яке не має відношення до команд MySQL - інструкції SQL обов'язково повинні закінчуватися крапкою з комою. Це дозволяє вводить багаторядкові запити до бизе даних, що не потрібно для MySQL-команд, які як правило лаконічні і короткі.
У списку поля може бути як один елемент, так і кілька; крім того можливо вказівку символу "*" (), який говорить, що слід показати всі поля таблиці.
Частина WHERE. є необов'язковою і дозволяє вибрати з таблиці рядки, що задовольняють певному (им) умові (ям). Розділ ORDER BY. служить для сортування отриманих даних за певними полях.
Ось приклад більш складного запиту, який демонструє сказане вище. Припустимо таблиця staff містить інформацію про співробітників деякої організації. Цей запит знаходить записи про тих з них, хто працює більше двох років і кого не кличуть Іваном.
Розглянемо цей запит
Для показу даних одного поля може використовуватися такий запит:
Як бачите, цей запит просто вибирає значення з потрібного поля з кожного рядка і виводить їх, заодно сортуючи по (єдиному) полю project, тому в результатах зустрічаються повторення. Для усунення їх використовується інструкція DISTINCT:
SQL дозволяє виробляти деякі обчислення і отримувати деяку описову інформацію за допомогою агрегатних функцій. Серед цих функцій - COUNT, SUM, MAX, MIN і AVG:
COUNT - обчислює кількість знайдених рядків;
SUM - знаходить суму значень в знайдених рядках;
MAX - знаходить Найбільший серед знайдених значень;
MIN - знаходить найменше серед знайдених значень;
AVG - знаходить середнє значення від знайдених.
Використовуються ці функції як елементи списку таблиць в запиті з аргументом - назвою поля. Ось кілька прикладів.
Ці запити знаходять кількість виконуваних проектів, найбільша кількість проектів, що виконується однією людиною і середня кількість проектів, в яких беруть участь працівники відповідно.
SQL також має в своєму розпорядженні засобами роботи з регулярними виразами (роботі з якими в Perl ви можете ознайомитися, прочитавши відповідну статтю на нашому сайті).
Для порівняння значення формальному виразу використовується оператор LIKE, а для конструювання простешіх виразів - символи '_' (довільний символ) і '%' (довільну кількість довільних символів). Приклад. Цей запит знаходить все імена, які починаються з 'Jo':
MySQL також дозволяє виробляти більш розвинене порівняння з шаблоном за допомогою оператора REGEXP і засобів побудови шаблону тими ж методами, що використовуються в Perl (див. Регулярні вирази в Perl).
Цей запит виведе всі рядки, в яких назва проекту містить букву 'b' незалежно від регістру.
І останнє по порядку, але не за значенням - використання більш ніж однієї таблиці. Особливість полягає в тому, що використовувані таблиці можуть мати загальні поля, якими вони пов'язані.
Для того, щоб точно вказувати, про поле якої таблиці йде мова, використовується запис типу staff.project, де перед точкою міститься назва таблиці, а після неї - назва поля. Другий варіант - призначення псевдонімів (алиасов) таблиць для більшої зручності. Для цього в списку таблиць назву кожної таблиці вказується разом з псевдонімом - наприклад stuff x, projects y.
У цьому прикладі об'єднуються таблиці staff і projects, причому виводяться ім'я співробітника, проект над яким він працює і опис цього проекту.
Об'єднавши все це в один запит отримаємо наступне:
Цей запит показує назви проектів, описи їх і кількість співробітників, які зайняті в них для тих проектів, які не є секретними і опису яких починаються з 'Wo', слідом за якими йдуть ще два символи, після чого - 'd' і далі що завгодно, і сортує єдине значення по полю project_name.
редагування даних
Редагування даних - це додавання, видалення і зміна їх. Для виконання цих операцій використовуються команди INSERT, DELETE і UPDATE відповідно.
Команда INSERT служить для вставки рядків в таблиці. Ось як може виглядати такий запит:
Можлива також вставка окремих значень. В такому випадку необхідно вказати, в які поля варто вставляти дані, причому залишилися поля будуть незаповнені - при виконанні запитів SELECT вони будуть представлені як NULL - спеціальне начение, що означає, що дане відсутня.
Видалення даних проводиться командою DELETE. Для цього потрібно вказати таблицю і (необов'язково) умови, яким повинні задовольняти рядки, які слід видалити. Якщо умови опущені, ця команда, як і SELECT, виконає цю операцію треба всіма рядками - тобто очистить таблицю.
Зміна даних проводиться за допомогою команди UPDATE. Необхідно вказати, значення яких полів слід змінити, а також (знову ж необов'язково) умови, яким повинні задовольняти рядки, які слід оновити.
Цей запит встановлює дату прийняття на роботу, зарплату і назва проекту всім Джек, які знаходяться в базі даних.
Це невелика частина мови SQL, необхідна для роботи з MySQL, зокрема при програмуванні для Web. Для більш повної інформації зверніться до офіційних специфікаціям SQL або до документації MySQL.
Примітка для тих, хто знайомий зі стандартом ANSI SQL 92: на даний момент MySQL підтримує укорочену версію цього стандарту, в яку не входить виконання підзапитів а також деякі інші функції.