ТБ та Проектори 

MySQL – команди консолі Windows. Команди MySQL в Linux MySQL команди консолі windows

Для Win 32 вибираємо дистрибутив: Windows (x86, 32-bit), Zip-Archive.

Для Win 64: Windows (x86, 64-bit), Zip-Archive.

Після натискання на кнопку Download ви побачите форму для реєстрації, її можна пропустити, натиснувши посилання внизу. No thanks, just take me to the downloads.

2. Створюємо папку установки. Наприклад . І розпаковуємо в неї зміст архіву таким чином, щоб папки bin, data, docs та іншібули докорінно папки установки.

3. Переходимо до створення конфігураційного файлу (my.ini). За основу беремо один із типових файлів:

  • my-small.ini - підійде тим, хто використовує MySQL час від часу і не хоче, щоб сервер займав багато ресурсів.
  • my-medium.ini - теж не вимоглива до ресурсів конфігурація, але підійде тим, хто використовує MySQL на постійній основі. гарний вибірдля домашнього веб-сервера).
  • my-large.ini та my-huge.ini - для систем, що використовуються як виділений MySQL сервер. Втім, my-large.ini можна використовувати для домашнього сервера, якщо потрібна додаткова продуктивність MySQL (512 Мб) оперативної пам'ятіне так вже й багато за нинішніх часів).
  • my-innodb-heavy-4G — для виділених серверів, що мають від 4 Гб оперативної пам'яті та використовують лише таблиці типу InnoDB.

У цьому прикладі я вибрав за основу my-medium.ini. Перейменовуємо його в my.ini і розміщуємо в корені папки установки ( C:\Program Files\MySQL\MySQL Server 5.5).

Відкриваємо для редагування (у звичайному Блокноті) і відразу після рядка дописуємо два параметри:

Basedir = C : / Program Files / MySQL / MySQL Server 5.5 datadir = C : / Program Files / MySQL / MySQL Server 5.5 / data

Зверніть увагу, що у шляхах використовується прямий слеш (/), а не зворотний (\).

basedir – це шлях до папки установки.

datadir — шлях до папки даних (де зберігаються всі бази даних). Іноді є сенс розмістити дані на окремому диску, щоб підвищити продуктивність або забезпечити надійність.

Про всяк випадок наводжу фрагмент конфігураційного файлу, після внесення змін:

# MySQL Server basedir = C: / Program Files / MySQL / MySQL Server 5.5 datadir = C : / Program Files / MySQL / MySQL Server 5.5 / data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_bu

4. Наступний етап - додати шлях C:\Program Files\MySQL\MySQL Server 5.5\binу змінне середовище PATH, щоб спростити запуск MySQL з командного рядка. Для цього відкриваємо властивості системи -> Додаткові параметрисистеми -> на закладці Додатково в самому низу кнопка «Змінні середовища…». У вікні, що відкриється, перегортаємо системні змінні поки не знайдемо Path. Виділяємо цей рядок та натискаємо «Змінити…». Наприкінці рядка дописуємо свій шлях, зберігаючи наявні параметри:

Зверніть увагу, що шляхи поділяються крапкою з комою. Переконайтеся, що на початку та в кінці вашого шляху точка з комою поставлена.

5. Перед тим як здійснити пробний пуск, відкриваємо вхідний порт TCP 3306 у брандмауері Windows:

Якщо в системі встановлено додатковий брандмауер, то в ньому також необхідно відкрити порт TCP 3306 для підключення.

6. Тепер здійснюємо тестовий запуск. У командному рядку, запущеної від імені адміністратора (це обов'язково, якщо на Сімерці або Вісті включено UAC), виконуємо:

Mysqld --console

На екрані буде виведено кілька рядків. Якщо запуск пройшов успішно, останній рядок буде виглядати приблизно так:

Version: "5.5.9-log" socket: "" port: 3306 MySQL Community Server (GPL)

Залишаємо це вікно відкритим і відкриваємо ще одне вікно командного рядка, в якому вводимо:

Mysql -u root

Якщо підключення пройшло без помилок, ви побачите запрошення командного рядка: mysql>

Подивимося, які бази у нас є:

Show databases;

Крапка з комою в кінці SQL-запиту ОБОВ'ЯЗКОВА!

Відповідь команди:

Тепер ми остаточно переконані, що сервер працює.

7. Переходимо до наступного етапу – необхідно встановити пароль адміністратора MySQL (користувач root). За промовчанням пароль не встановлено, і це потрібно виправити. У тому ж таки вікні MySQL вводимо наступні команди:

Use mysql UPDATE user SET password = PASSWORD("ваш_пароль") WHERE user = "root";

Перевіряємо результат:

SELECT user, host, password FROM user;

Як видно на скріншоті, колонка password заповнена, значить пароль встановлений.

Перед виходом виконуємо команду:

FLUSH PRIVILEGES;

Тепер під час підключення необхідно вводити пароль. Для цього використовуємо ключ -p:

Mysql -u root -p

Для завершення роботи MySQL виконуємо:

Mysqladmin -u root -p shutdown

8. Останній етап - запуск MySQL як системної служби Windows.

Переконайтеся, що у системі немає активних процесів MySQL.

У командному рядку, запущеному від імені адміністратора, виконуємо:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --install

Шлях до mysqld необхідно вказувати повністю (навіть якщо його прописано в PATH)!

Для запуску служби відкриваємо «Керування комп'ютером» і вручну запускаємо службу MySQL:

Або простіше через командний рядок:

Net start mysql

Для видалення служби попередньо її зупиняємо:

Net stop mysql

і виконуємо:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --remove

Розвиток інформаційних технологій - один із передових напрямів діяльності людства. Тому в цю область інвестується безліч коштів. З моменту початку та до сьогодні було вирішено багато різних завдань, які серйозно полегшили повсякденне життя багатьох людей. Проте з розвитком технологій виникла низка проблем, одна з яких - надмірний обсяг інформації, що підлягає зберіганню. Бази даних були покликані вирішити цю ситуацію.

Короткий огляд систем управління базами даних

Оскільки проблема зберігання великого обсягу інформації є актуальною на сьогоднішній день, існує кілька способів вирішення. Кожен із них орієнтований завдання певної спрямованості. Однак у сукупності вони утворюють повноцінний комплекс, що дозволяє спростити проблему зберігання даних.

Існує певна класифікація, яка визначає необхідність використання тієї чи іншої бази даних та СУБД (системи управління базами даних). Найбільш поширеними нині прийнято вважати клієнт-сервернітехнології зберігання даних До них належать такі види: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, Лінтер, MySQL. Нас цікавитиме останній варіант - MySQL, команди якої повністю відповідають стандартам SQL. Дана технологія є однією з популярних і часто застосовуваних для вирішення локальних прикладних, так і виробничих завдань малого масштабу.

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

Нові технології, що набирають популярності

Однак кілька років тому з'явилася передова технологія, яка набуває популярності та користується попитом при вирішенні невеликих локальних завдань. Йдеться про вбудованихсистемах управління базами даних Головна особливість СУБД, що розглядаються, - відсутність серверної частини. Сама система є бібліотекою, що дозволяє уніфікованим чином працювати з великими обсягами інформації, розміщеними на локальному комп'ютері. Цей спосіб виключає недоліки файл-сервернихкоштів, і навіть значно перевищує за швидкістю клієнт-сервернітехнології.

Як приклади можна розглядати OpenEdge, SQLite, BerkeleyDB, один з варіантів Firebird, Sav Zigzag, Compact, Лінтер, а також один з варіантів MySQL, команди якого нічим не відрізняються від клієнтів-серверних СУБД. Однак вбудованісистеми можуть легко втратити свою актуальність, якщо завдання перестане мати локальний характер.

Основні переваги СУБД MySQL

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

Головним плюсом російському ринку вважається її доступність, оскільки вона безкоштовна здебільшого. Другою особливістю є швидкодія. Однією з найпопулярніших систем є MySQL. Команди у ній виконуються швидко, з мінімальним часом відгуку. Не впливає на швидкість обробки команд підключення до сервера кількох клієнтів у багатопотоковому режимі за рахунок використання механізму InnoDB для швидкої підтримки транзакцій.

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

А для простого обивателя, який виявляє інтерес до сучасних технологій зберігання інформації, необхідно вивчати MySQL, та їх синтаксис тому, що фахівці в даному напрямку є широко затребуваними та високооплачуваними у будь-якій точці світу. Тому, якщо когось цікавить цей напрямок, не варто зволікати. Необхідно переходити до вивчення прямо зараз.

Що необхідно для вивчення

На перший погляд може здатися, що ця область складна у самостійному вивченні і потребує постійного зв'язку з фахівцем. Однак, це далеко не так. Вивчати архітектуру та особливості MySQL, основні команди мови запитів та все, що з цим пов'язано, можна самостійно, не вдаючись при цьому до допомоги консультанта. Для цього достатньо мати бажання та докладати зусиль для того, щоб рухатися далі. Тільки саморозвиток та вивчення цієї галузі дозволять набути нових знань, закріпити набуті навички і, можливо, почати будувати кар'єру та просуватися у цьому напрямі.

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

Потім необхідно вдатися до пошуку навчального мануалу, що містить основні відомості про середовище MySQL. для базового вивчення, як правило, у них також містяться. Інформації щодо цього досить багато. Однак до вибору потрібно підійти серйозно. Інформація має бути представлена ​​послідовно та чітко структурована.

Якщо у вас є початкові знання англійської мови, можна скористатися вбудованою у консоль підтримкою. Для цього існує спеціальна команда helpяка допомагає розібратися у використанні утиліти MySQL.

Основні консольні команди

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

При першому та наступних запусках консолі MySQL користувачу необхідно буде вводити пароль rootдля подальшої роботи із СУБД MySQL. Команди консолі будуть доступні лише після проходження автентифікації.

Після успішної перевірки зручності можна відобразити існуючі команди за допомогою команди help. Після цього на консолі будуть представлені всі існуючі команди та короткий описдо них.

та відображення

Тепер потрібно перейти до наступного кроку. Для цього необхідно вибрати існуючу або створити нову базу даних. Для вибору існуючої бази потрібно використовувати команду use. І через пропуск ввести ім'я бази даних. Спочатку в утиліті вона існує лише одна - з ім'ям test. Тому запит буде виглядати так: use test.

Для створення бази даних потрібно скористатися командою create, вказавши їй ключове слово databaseі поставивши відповідне ім'я. Структура набуде наступного вигляду: create database Name_of_database. Для роботи зі створеною базою до неї необхідно звернутись за допомогою команди use.

У середовищі передбачено функцію, призначену для відображення існуючих баз даних, таблиць, первинних ключів або зовнішніх зв'язків та виведення наявної про них інформації на MySQL консоль. Команди в цьому випадку повинні завжди починатися із пропозиції show. Наприклад, щоб відобразити список наявних баз даних для поточного користувача, достатньо ввести наступний запит: show databases. Для відображення таблиці достатньо після ключового слова змінити об'єкт відображення, вписавши tables.

Команди управління таблицями

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

Для роботи з таблицями існує низка певних команд, які, якщо перекласти їх з англійської, говорять самі за себе. Про команду createбуло згадано вище. Вона також може бути задіяна для додавання таблиць раніше створену базу даних. Для видалення об'єктів баз даних, зокрема таблиць, використовується команда drop, до якої додається ім'я об'єкта, що знищується. Приклад: drop name_ of_ your_ table.

Синтаксис звернень до сервера БД має загальну структуру. Тому запит, розроблений у Windows, успішно відпрацює у консолі MySQL Linux. Команди, оброблені сервером без помилок в одній операційній системі, не можуть призвести до помилок в інших.

Команда Select

Але найважливіша до роботи з таблицями команда, синтаксис якої досить простий, - команда select. Саме вона застосовується для вибору даних із бази. Початковий синтаксис має таку структуру: select * from table_ name. Відправивши такий запит серверу бази даних, клієнт повинен отримати всі записи, що зберігаються у таблиці.

Багато хто ніколи не замислюється, але при перегляді інтернет-ресурсів постійно використовуються MySQL команди. PHP-запити використовують синтаксис мови SQL, щоб відображати вміст каталогів інтернет-магазинів або новини соціальних мережах. Замість знака "*" після пропозиції selectзазвичай наводиться список основних полів таблиці або декількох таблиць, дані з яких необхідно обробити. У разі вибірки з кількох таблиць використовується спеціальна зв'язка joinяка служить для їх з'єднання за наявними зовнішніми зв'язками. Однак цю умову можна змінювати, самостійно вказуючи, за якими полями має проводитися зв'язок.

Завдання обмежень вибірки

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

Запуск та зупинення сервера MySQL з командного рядка

Запустити сервер MySQL вручну можна одним із двох способів:

Двічі клацніть на значку файлу mysqld-nt.exe, розташованого в підкаталозі bin каталогу, де інстальовано програму MySQL.

Відкрийте вікно командного рядка Windows. Для цього натисніть кнопку Пуск, в меню виберіть пункт Виконати, у вікні Запуск програми в полі Відкрити введіть команду cmd і натисніть кнопку OK. На екрані з'явиться вікно командного рядка (рис. 1.25).

Мал. 1.25.Вікно командного рядка


У командному рядку введіть команду

mysqld-nt

та натисніть клавішу Enter. Сервер MySQL буде запущено.

Якщо при налаштуванні сервера шлях до підкаталогу bin не був доданий до значення системної змінної Path, то для запуску сервера необхідно ввести не тільки ім'я файлу, але й повний шлях до нього, наприклад:

C: \Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt

Якщо ви хочете переглядати діагностичні повідомлення про роботу сервера у вікні командного рядка, замість mysqld-nt введіть

mysqld-nt -console

Увага!

Якщо при налаштуванні сервера MySQL ви не вказували пароль користувача root, необхідно встановити пароль при першому запуску сервера (інакше хто завгодно зможе керувати сервером під ім'ям root без пароля).

Щоб встановити пароль root, відкрийте нове вікно командного рядка та введіть наступне:

mysqladmin -u root password<пароль>

(або C: \Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root password<пароль>, якщо шлях до підкаталогу bin не було додано до значення системної змінної Path при налаштуванні сервера) і натисніть клавішу Enter.

Надалі, якщо потрібно змінити пароль користувача root, виконайте таку саму команду, тільки за допомогою опції – р:

mysqladmin -u root -p password<новый пароль>

Після появи запрошення Enter password (Введіть пароль) вкажіть колишній пароль та натисніть клавішу Enter.

Нарешті, якщо потрібно зупинити сервер MySQL, виконайте команду

mysqladmin -u root -p shutdown

та у відповідь на запрошення Enter password (Введіть пароль) введіть пароль користувача root. Натисніть клавішу Enter. Сервер MySQL буде зупинено.

Для запуску та зупинки сервера MySQL також можна використовувати графічну утиліту MySQL Administrator.

Запуск та зупинення сервера MySQL за допомогою MySQL Administrator

Щоб запустити сервер MySQL за допомогою графічної утиліти MySQL Administrator, виконайте такі дії.

1. Запустіть програму MySQL Administrator (Пуск → Усі програми → MySQL → MySQL Administrator). На екрані з'явиться вікно з'єднання із сервером (рис. 1.26).

Мал. 1.26.


2. Натисніть клавішу Ctrl і, утримуючи її, клацніть на кнопку Skip (Пропустити), що з'явиться в правому нижньому куті вікна замість кнопки Cancel (Скасувати). На екрані з'явиться головне вікно MySQL Administrator (рис. 1.27).

Мал. 1.27.Головне вікно MySQL Administrator


4. Якщо сервер MySQL не був налаштований як сервіс Windows, то кнопка Start Service (Запустити сервіс), розташована у правій області вікна, недоступна. Необхідно виконати такі попередні дії:

1) перейдіть на вкладку Configure Service (Налаштування сервісу). Знайдіть внизу вкладки кнопку Install new Service (Встановити новий сервіс) та натисніть її;

2) у діалоговій панелі, що з'явилася, вкажіть назву сервісу і натисніть кнопку OK;

3) у полі Config Filename (Ім'я конфігураційного файлу) введіть шлях до конфігураційного файлу my.ini (рис. 1.28), наприклад C: Program Files MySQL MySQL Server 5.0 my.ini. Червоний колір шрифту означає, що файл не знайдено; якщо колір змінився звичайний, шлях зазначений правильно;

4) у полі Path to binary (Шлях до виконуваного файлу) введіть шлях до файлу mysqld-nt.exe, наприклад C: \Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) поверніться на вкладку Start/Stop Service (Запуск/зупинка сервісу).

Мал. 1.28.Закладка Configure Service 5. Натисніть кнопку Start Service (Запустити сервіс). Сервер MySQL буде запущено.


Увага!

Якщо при налаштуванні сервера MySQL ви не вказували пароль користувача root, то необхідно встановити його при першому запуску сервера (інакше будь-хто може керувати сервером під ім'ям root без пароля). У поточної версії MySQL Administrator встановлення пароля root недоступне, і для виконання цієї операції потрібно використовувати утиліту командного рядка mysqladmin (див. підрозділ «Запуск та зупинення сервера MySQL з командного рядка»).

Щоб зупинити сервер MySQL за допомогою MySQL Administrator, виконайте наведені нижче дії.

1. Запустіть програму MySQL Administrator (Пуск → Усі програми → MySQL → MySQL Administrator). На екрані з'явиться вікно з'єднання із сервером (див. мал. 1.26).

Server Host (Ім'я хоста) – значення localhost (локальний комп'ютер);

Port (Порт) – номер порту, вибраний під час налаштування сервера (за замовчуванням – 3306);

Usename (Ім'я користувача) – значення root;

Password (Пароль) – пароль користувача root. Натисніть OK.

3. У головному вікні MySQL Administrator у лівій області клацніть пункт Service Control (Керування сервісом).

4. У правій області вікна натисніть кнопку Stop Service (Зупинити сервіс). Сервер MySQL буде зупинено.

У наступному підрозділі ви дізнаєтесь, як запустити сервер MySQL за допомогою засобів адміністрування Windows.

Запуск та зупинення сервера MySQL з панелі керування

Якщо сервер MySQL був налаштований як сервіс Windows за допомогою майстра налаштування (див. підрозділ "Налаштування сервера MySQL") або за допомогою утиліти MySQL Administrator (див. підрозділ "Запуск та зупинка сервера MySQL за допомогою MySQL Administrator"), то запускати та зупиняти його можна використовувати компонент Служби панелі керування.

Щоб викликати компонент Служби, натисніть кнопку Пуск, в меню виберіть пункт Панель керування, потім на панелі керування двічі клацніть значок Адміністрація і, нарешті, у вікні засобів адміністрування двічі клацніть значок Служби. На екрані з'явиться вікно Служби (мал. 1.29) зі списком усіх локальних служб.

Мал. 1.29.Сервіс MySQL на панелі управління


У вікні Служби клацніть назву сервісу MySQL (назва визначається при створенні сервісу в майстрі налаштування або в MySQL Administrator). Потім натисніть потрібне посилання під назвою сервісу: Запустити службу, Зупинити службу або Перезапустити службу.

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

Підключення до сервера з командного рядка

Щоб підключитися до сервера MySQL з командного рядка, виконайте наведені нижче дії.

1. Відкрийте вікно командного рядка Windows. Для цього натисніть кнопку Пуск, в меню виберіть пункт Виконати, у вікні Запуск програми введіть в поле Відкрити команду cmd і натисніть кнопку OK.

2. У командному рядку (див. мал. 1.25) введіть команду

mysql -h<Имя компьютера>-u<Имя пользователя>-p

(де<Имя компьютера>– це ім'я комп'ютера, на якому працює сервер) та натисніть клавішу Enter. Після появи запрошення Enter password (Введіть пароль) введіть пароль користувача.

Якщо потрібно підключитися до сервера MySQL, який працює на цьому ж комп'ютері, ім'я комп'ютера (localhost) можна не вказувати, наприклад

mysql -u root -p

Після підключення до сервера запрошення командного рядка зміниться на mysql> (рис. 1.30). Тепер можна приступати до роботи з базою даних: додавати таблиці, вводити та запитувати дані, реєструвати нових користувачів та ін.

Мал. 1.30.З'єднання з сервером MySQL з командного рядка


Щоб вимкнутись від сервера, просто наберіть у командному рядку команду

та натисніть клавішу Enter.

Альтернативний спосіб підключення до MySQL сервера надає графічна утиліта MySQL Query Browser.

Підключення до сервера за допомогою MySQL Query Browser

Утиліта MySQL Query Browser – інтерфейс для створення, редагування та виконання інструкцій SQL. Вона зручніша, ніж командний рядок. Якщо ви вирішили використовувати для роботи з базою даних MySQL Query Browser, для підключення до сервера виконайте такі дії.

1. Запустіть програму MySQL Query Browser (Пуск → Усі програми → MySQL → MySQL Query Browser). На екрані з'явиться вікно з'єднання із сервером (рис. 1.31).

Мал. 1.31.Вікно з'єднання з сервером MySQL


2. У вікні з'єднання з сервером введіть параметри з'єднання:

Server Host (Ім'я хоста) – ім'я комп'ютера, на якому працює сервер MySQL;

Port (Порт) – номер порту, вибраний при налаштуванні сервера (за замовчуванням – 330 6);

Username (Ім'я користувача) – ім'я користувача;

Password (Пароль) – пароль користувача;

Default Schema (Схема за замовчуванням) – ім'я бази даних, з якою ви будете працювати (це може бути як існуюча, так і нова база даних).

3. Натисніть кнопку OK. Якщо ви ввели ім'я нової бази даних, то в діалоговій панелі натисніть кнопку Yes (Так) для створення цієї бази даних.

Після підключення до сервера на екрані з'явиться головне вікно MySQL Query Browser (рис. 1.32). У ньому ви можете виконувати будь-які операції з базою даних: додавати таблиці, вводити та запитувати дані, реєструвати нових користувачів та ін.

Мал. 1.32.Головне вікно MySQL Query Browser


Увага!

Шрифт, який використовується в MySQL Query Browser для відображення SQL-запитів, не підтримує російські літери. Щоб вводити російські літери в тексти запитів, необхідно вибрати інший шрифт (наприклад, Arial або Book Antiqua). Для цього у головному вікні MySQL Query Browser відкрийте меню Tools (Сервіс) та виберіть Options (Параметри). У вікні Options (Параметри) у лівій області клацніть General Options (Загальні параметри) і у правій області в полі Code Font (Шрифт коду) виберіть зі списку потрібний шрифт. Натисніть кнопку Apply (Зберегти).

Щоб вимкнутись від сервера, просто закрийте вікно MySQL Query Browser.

На цьому ми закінчуємо знайомство з MySQL і переходимо до підбиття підсумків.

1.6. Резюме

У цьому розділі було розглянуто СУБД MySQL та графічні утиліти MySQL Administrator та MySQL Query Browser. Ви освоїли досить складну процедуру встановлення та налаштування сервера MySQL, навчилися керувати сервером та підключатися до нього. Ви також дізналися, як влаштовано реляційну базу даних і як спроектувати власну базу даних.

Отже, наступним етапом є побудова бази даних MySQL. Цьому присвячено другий розділ. У ній буде розказано, як створювати таблиці, вносити в них інформацію та знаходити потрібні відомості у базі даних.

Розділ 2
Управління базою даних за допомогою SQL

З цього розділу ви дізнаєтеся, як працювати з даними в СУБД MySQL, як визначати їх структуру, а також як додавати, змінювати та видаляти дані. Ці операції виконує SQL – універсальна мова структурованих запитів, що є стандартним засобом доступу до реляційних баз даних.

Для виконання SQL-команд ви можете використовувати будь-яку з численних клієнтських програм сервера MySQL. У цьому розділі не розглядатимуться додатки сторонніх розробників. Ви познайомитеся лише з програмами, створеними компанією MySQL AB: утилітою командного рядка mysql та графічною утилітою MySQL Query Browser.

В обох утилітах доступні всі операції з даними. У MySQL Query Browser зручно працювати з базою даних: її компоненти наочно представлені, можна безпосередньо редагувати дані (без використання SQL-оператора UPDATE), працювати із запитами, наприклад, будувати їх за допомогою спеціального інструменту (при цьому назви таблиць і стовпців вводити вручну не потрібно ), зберігати запити у файлі, експортувати результати запитів та багато іншого. Ви можете дізнатися про всі можливості MySQL Query Browser, звернувшись до документації російською мовою, знайти яку можна за посиланням http://dev.mysql.com/doc/query-browser/ru/index.html.

Спочатку ви дізнаєтеся, як виконувати SQL-команди в MySQL Query Browser та в командному рядку, а надалі буде розглянуто лише синтаксис SQL-команд.

2.1. Виконання SQL-команд

Перш ніж виконувати SQL-команди, необхідно підключитися до працюючого сервера MySQL (як це зробити, розповідалося в розділі 1). У цьому розділі ви дізнаєтесь, як створювати SQL-команди та передавати їх серверу для виконання.

Якщо ви використовуєте командний рядок, то для виконання SQL-команди введемо текст у вікні командного рядка і натиснемо клавішу Enter для відправки команди на сервер. Щоб уникнути проблем із кодуванням російськомовних даних, перед початком роботи з даними виконайте команду

SET NAMES CP866;

Результат виконання цієї команди ви бачите на рис. 2.1.

Мал. 2.1.Встановлення кодування у командному рядку


Команду SET NAMES необхідно повторювати за кожномупідключення до сервера за допомогою командного рядка. Ця команда вказує серверу, що ця клієнтська програма (утиліта mysql) використовує кодування CP-866 (це кодування командного рядка Windows), і сервер автоматично виконуватиме перетворення кодувань при обміні даними з клієнтським додатком.

Після зміни кодування ви можете вводити у командному рядку будь-які SQL-команди. Повідомлення про результати виконання команди, а також запитані дані виводяться безпосередньо у вікні командного рядка (рис. 2.2).

Мал. 2.2.Виконання SQL-запиту у командному рядку


Утиліта mysql дозволяє вводити і багаторядкові команди (на рис. 2.3, таким чином введена команда SHOW DATABASES). Якщо не введена точка з комою - ознака кінця команди, то при натисканні клавіші Enter утиліта не надсилає команду на сервер, а пропонує продовжити введення команди. Якщо ви бажаєте скасувати введення багаторядкової команди, наберіть \c (рис. 2.3).

Мал. 2.3.Багаторядкова команда


Якщо ви використовуєте MySQL Query Browser, то кодування встановлювати не потрібно – ця програма працює у кодуванні UTF-8 і сама повідомляє про це сервер. Однак у MySQL Query Browser існує проблема відображення російських літер у сфері запитів (області, куди вводиться текст SQL-команд, рис. 2.4). Для вирішення цієї проблеми необхідно змінити шрифт, який використовується в області запитів (як це зробити, розповідалося наприкінці попереднього розділу). Виконати зміну шрифту достатньо один раз.

Мал. 2.4.Виконання SQL-запиту у MySQL Query Browser


В області запитів можна ввести відразу кілька SQL-команд, як показано на рис. 2.4. Поточна команда (на одному з її рядків встановлено курсор) виділено білим кольором фону, решта команд відображена на світло-сірому фоні. Щоб виконати поточну команду, можна натиснути або кнопку Execute, розташовану праворуч від області запитів, або комбінацію клавіш Ctrl+Enter. Після виконання команди дані виводяться в області результатів, а повідомлення про результат виконання команди – в нижній частині цієї області.

Тепер, коли ви навчилися вводити SQL-команди, почнемо керувати даними за допомогою цих команд. Насамперед ми розглянемо команди, призначені до роботи з базою даних загалом.

2.2. Створення бази даних

У цьому розділі ви дізнаєтеся, як створити та видалити базу даних, змінити для неї кодування за умовчанням, вибрати поточну базу даних, а також переглянути список усіх баз на даному сервері MySQL.

Щоб створити базу даних, виконаємо команду

CREATE DATABASE<Имя базы данных>;

Наприклад, команда

CREATE DATABASE SalesDept;

створює базу даних із ім'ям SalesDept (Відділ продажів).

Якщо вам з будь-яких причин потрібно для нової бази даних встановити кодування за умовчанням, відмінне від кодування, вказаного при налаштуванні MySQL, то при створенні бази даних ви можете вказати потрібне кодування (character set) та/або правило порівняння (сортування) символьних значень :

CREATE DATABASE<Имя базы данных>

CHARACTER SET<Имя кодировки>

COLLATE<Имя правила сравнения>;

Наприклад, якщо ви будете в нову базу імпортувати дані, що знаходяться в кодуванні CP-1251, то вкажемо це кодування під час створення бази даних таким чином:

CREATE DATABASE SalesDept

CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Порада

Щоб переглянути список кодувань, що використовуються в MySQL, виконаємо команду SHOW CHARACTER SET; а щоб побачити список правил порівняння символьних значень – команду SHOW COLLATION; При цьому можна використовувати оператор LIKE: наприклад, щоб побачити всі правила порівняння для кодування CP-1251, виконаємо команду SHOW COLLATION LIKE %1251%; Закінчення «_ci» (case insensitive) у назві правил порівняння означає, що при порівнянні та сортуванні регістр символів не враховується, закінчення «_cs» (case sensitive) – регістр враховується, закінчення «_bin» (binary) – порівняння та сортування виконуються за числовими коди символів. Для більшості правил порівняння ви можете знайти опис (тобто порядок проходження символів, відповідно до якого будуть упорядковуватися текстові значення) на веб-сторінці http://www.collation-charts.org/mysql60/ .

Кодування, вказане при створенні бази даних, буде за замовчуванням використовуватися для таблиць цієї бази, однак ви можете встановити й інше кодування.

Змінити кодування та/або правило порівняння символьних значень для бази даних можна за допомогою команди

ALTER DATABASE<Имя базы данных>

CHARACTER SET<Имя кодировки>

COLLATE<Имя правила сравнения>;

При цьому кодування, що використовується в існуючих таблицях бази даних, залишається колишнім; змінюється лише кодування, яке призначається за замовчуванням для новостворених таблиць.

Щоб видалити непотрібну або помилково створену базу даних, виконайте команду

DROP DATABASE<Имя базы данных>;

Увага!

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

Одну з баз, створених на даному сервері MySQL, ви можете вибрати як поточну базу даних за допомогою команди

USE<Имя базы данных>;

Наприклад:

USE SalesDept;

Після цього можна виконувати операції з таблицями цієї бази даних, не додаючи ім'я бази у вигляді префікса до імені таблиці. Наприклад, для звернення до таблиці Customers (Клієнти) бази даних SalesDept (Відділ продажу) можна замість SalesDept.Customers писати просто Customers. Вказавши поточну базу, ви можете звертатися і до таблиць інших баз даних, проте використання імені бази даних у вигляді префікса обов'язково. Вибір поточної бази зберігається до від'єднання від сервера або до вибору іншої поточної бази даних.

Щоб побачити список усіх баз, що існують на даному сервері MySQL, виконайте команду

SHOW DATABASES;

Навіть якщо ви ще не створили жодної бази даних, в отриманому списку ви побачите три системні бази даних.

INFORMATION_SCHEMA – інформаційна база даних, з якої ви можете отримати відомості про всі інші бази, про структуру даних у них і про всілякі об'єкти: таблиці, стовпці, первинні та зовнішні ключі, права доступу, збережені процедури, кодування та ін. Ця база даних доступна тільки для читання і є віртуальною, тобто вона не зберігається у вигляді каталогу на диску: вся інформація, яку запитують з цієї БД, надається динамічно сервером MySQL.

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

Test – порожня база даних, яку можна використовувати для спроби пера або просто видалити.

Отже, ви освоїли основні операції, що виконуються з базою даних як єдиним цілим: команди CREATE DATABASE (створення), ALTER DATABASE (зміна), DROP DATABASE (видалення), USE (вибір поточної бази даних) та SHOW DATABASES (перегляд списку баз даних) . Далі ми розглянемо операції із таблицями. При цьому вважатимемо, що ви вибрали якусь базу даних як поточну і працюєте з її таблицями.

2.3. Робота з таблицями

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

Створення таблиці

Щоб створити таблицю, виконайте команду, подану у лістингу 2.1.

Лістинг 2.1.Команда створення таблиці

CREATE TABLE<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Як ви бачите, команда створення таблиці може включати безліч параметрів, проте багато з них задавати необов'язково (у лістингу 2.1 такі параметри укладені квадратні дужки). Насправді до створення таблиці достатньо вказати її ім'я, і ​​навіть імена і типи всіх стовпців; інші параметри використовуються у разі потреби.

Розглянемо спочатку кілька прикладів, які допоможуть вам освоїти команду CREATE TABLE і відразу, не вивчаючи її численних параметрів, почати створювати власні (прості структурою) таблиці.

Припустимо, що ми будуємо базу даних, яку спроектували у розділі 1. Використовуючи команди з попереднього розділу, ми створили порожню базу даних SalesDept (Відділ продажу) та вибрали її як поточну. Тепер створимо три таблиці: Customers (Клієнти), Products (Товари) та Orders (Замовлення). У лістингу 2.2 представлено команду створення таблиці Customers.

Лістинг 2.2.Команда створення таблиці Customers

CREATE TABLE Customers

(ID SERIAL,

name VARCHAR(100),

phone VARCHAR(20),

address VARCHAR(150),

rating INT,

PRIMARY KEY (id))


У цій команді використовувалися параметри: по-перше, назва таблиці і, по-друге, назви та типи стовпців, з яких складатиметься таблиця (див. також табл. 1.1 у розділі 1).

ID – ідентифікатор запису. Цьому стовпцю ви призначили тип SERIAL, що дозволяє автоматично нумерувати рядки таблиці. Ключове слово SERIAL розшифровується як BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Це означає, що в стовпець можна вводити великі цілі (BIGINT) позитивні (UNSIGNED) числа, при цьому автоматично контролюється відсутність невизначених значень (NOT NULL UNIQUE). Якщо при додаванні рядка в таблицю ви не вкажете значення цього стовпця, то програма MySQL внесе до цього стовпець черговий порядковий номер (AUTO_INCREMENT).

Примітка

NULL – це константа, що вказує на відсутність значення. Якщо в стовпці знаходиться значення NULL, то вважається, що жодного певного значення для цього стовпця не встановлено (тому ми також називаємо NULL невизначеним значенням). Не слід плутати NULL з порожнім рядком («») або числом 0. Значення NULL обробляються особливим чином: більшість функцій та операторів повертають NULL, якщо один із аргументів дорівнює NULL. Наприклад, результат порівняння 1 = 1 – справжнє значення (TRUE), а результат порівняння NULL = NULL – невизначене значення (NULL), тобто два невизначені значення не вважаються рівними.

Nam – ім'я клієнта, phone – номер телефону та address – адреса. Ви надали цим стовпцям тип VARCHAR, оскільки вони будуть містити символьні значення. У дужках вказується максимально допустима кількістьсимволів у значенні стовпця.

По-третє, ви зазначили, що стовпець id буде первинним ключем таблиці, включивши до команди створення таблиці визначення PRIMARY KEY (id).

По-четверте, ви поставили для цієї таблиці два опціональні параметри. Параметр ENGINE визначає тип таблиці. Таблиці Customers ви надали тип InnoDB, оскільки тільки цей тип забезпечує підтримку цілісності зв'язків між таблицями (детальніше про типи таблиць буде розказано в пункті «Опціональні властивості таблиці»). Параметр CHARACTER SET визначає кодування за промовчанням для даних у таблиці. Оскільки ви не задали кодування окремо для стовпців name, phone і address, дані в цих стовпцях будуть зберігатися в кодуванні UTF-8, яке призначене як стандартне кодування для таблиці Customers.

Наступний приклад, який ми розглянемо – команда створення таблиці Products (Товари), подана у лістингу 2.3.

Лістинг 2.3.Команда створення таблиці Products

CREATE TABLE Products

(ID SERIAL,

опис VARCHAR(100),

details TEXT,

price DECIMAL(8,2),

PRIMARY KEY (id))

ENGINE InnoDB CHARACTER SET utf8;


Ця команда дуже схожа на команду створення таблиці Customers і відрізняється від неї лише назвою таблиці та набором стовпців. Стовпці id (номер товару) та description (найменування товару) таблиці Products мають вже знайомі нам типи. Стовпець details (опис) має тип TEXT. Цей тип зручно використовувати замість типу VARCHAR, якщо стовпець міститиме довгі значення: сумарна довжина значень всіх стовпців з типом VARCHAR обмежена 65535 байтами для кожної таблиці, а на загальну довжину стовпців з типом TEXT обмежень немає. Недоліком типу TEXT є неможливість включати такі стовпці до зовнішнього ключа таблиці, тобто створювати зв'язок між таблицями на основі цих стовпців.

Стовпець price (ціна) має тип DECIMAL, призначений для зберігання грошових сум та інших значень, для яких важливо уникнути помилок округлення. У дужках ми вказали два числа: перший з них визначає максимальну кількість цифр у значенні стовпця, друге – максимальну кількість цифр після десяткового роздільника. Іншими словами, ціна товару може містити до шести цифр у цілій частині (6 = 8–2) та до двох цифр у дробовій частині.

І, нарешті, останній приклад – команда створення таблиці Orders (Замовлення), подана у лістингу 2.4.

Лістинг 2.4.Команда створення таблиці Orders

CREATE TABLE Orders

(ID SERIAL,

date DATE,

product_id BIGINT UNSIGNED NOT NULL,

qty INT UNSIGNED,

amount DECIMAL(10,2),

customer_id BIGINT UNSIGNED,

PRIMARY KEY (id),

FOREIGN KEY (product_id) REFERENCES Products (id)

ON DELETE RESTRICT ON UPDATE CASCADE,

FOREIGN KEY (customer_id) REFERENCES Customers (id)

ON DELETE RESTRICT ON UPDATE CASCADE)

ENGINE InnoDB CHARACTER SET utf8;


Особливістю таблиці Orders є наявність зовнішніх ключів: стовпець product_id (товар) містить номери товарів із таблиці Products, а стовпець customer_id (клієнт) – номери клієнтів із таблиці Customers (див. також табл. 1.2 у розділі 1). Оскільки номери товарів та клієнтів є великими цілими позитивними числами, стовпцям product_id та customer_id ми призначили тип BIGINT UNSIGNED.

Далі, щоб забезпечити автоматичну підтримку цілісності зв'язків (про цілісність ми розповідали у розділі 1), ми повідомили програму MySQL, якому первинному ключу відповідає кожен зовнішній ключ. Так, конструкція FOREIGN KEY (customer_id) REFERENCES Customers (id) означає, що у стовпці customer_id можуть міститися лише значення зі стовпця id таблиці Customers та невизначені значення (NULL), інші значення заборонені. Для стовпця product_id ми задали аналогічне обмеження і надали стовпцю властивість NOT NULL, щоб заборонити реєструвати замовлення з невизначеним товаром. Додатково ми вказали для кожної із зв'язків правила підтримки цілісності (їх ми також розглядали у розділі 1). Правило ON DELETE RESTRICT означає, що не можна видалити запис про клієнта, якщо цей клієнт має зареєстроване замовлення, і не можна видалити запис про товар, якщо цей товар був кимось замовлений. Правило ON UPDATE CASCADE означає, що за зміни номера клієнта у таблиці Customers чи номера товару у таблиці Products відповідні зміни вносяться у таблицю Orders.

Примітка

Зверніть увагу, що таблицю Orders ми створили в останню чергу, оскільки первинні ключі в таблицях Customers і Products повинні бути створені раніше, ніж зовнішні ключі, що посилаються на них, в таблиці Orders. Втім, можна було б створити таблиці без зовнішніх ключів у будь-якій послідовності, а потім додати зовнішні ключі за допомогою команди ALTER TABLE, яку ми розглянемо у підрозділі "Зміна структури таблиці".

У прикладах ми розглянули лише деякі параметри команди створення таблиці. Тепер ми перерахуємо всі основні параметри, які можуть знадобитися при створенні таблиць. У пункті «Типи даних у MySQL» йтиметься про типи стовпців, у пункті «Властивості стовпців» – про налаштування ключових стовпців і, нарешті, у пункті «Ключові стовпці та індекси» – про опціональні властивості таблиці.

Типи даних у MySQL

Як ви вже знаєте, під час створення таблиці потрібно вказати тип даних для кожного стовпця. У MySQL передбачено безліч типів даних для зберігання чисел, дати/часу та символьних рядків (текстів). Крім того, існують типи даних для зберігання просторових об'єктів, які в цій книзі розглядатися не будуть.

Розглянемо числові типи даних.

BIT[(<Количествобитов>)].

Бітове число, що містить задану кількість бітів. Якщо кількість бітів не вказано, число складається з одного біта.

Ціле число в діапазоні від -128 до 127, або (якщо зазначено властивість UNSIGNED) від 0 до 255.

BOOL або BOOLEAN.

Є синонімами до типу даних TINYINT(1) (число в дужках – це кількість цифр, що відображаються, див. примітку нижче). При цьому ненульове значення сприймається як справжнє (TRUE), нульове – як хибне (FALSE).

Ціле число в діапазоні від -32 768 до 32 767, або (якщо зазначено властивість UNSIGNED) від 0 до 65 535.

Ціле число в діапазоні або від -8388608 до 8388607, або (якщо зазначено властивість UNSIGNED) від 0 до 16777215.

INT чи INTEGER.

Ціле число в діапазоні або від -2147483648 до 2147483647, або (якщо зазначено властивість UNSIGNED) від 0 до 4294967295.

Ціле число в діапазоні або від -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, або (якщо зазначено властивість UNSIGNED) від 0 до 18 446 744 075 7.

Синонім виразу BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (велике ціле число без знака, що приймає унікальні значення, що автоматично збільшуються; значення NULL заборонені). Використовується для автоматичної генерації унікальних значень у стовпчику первинного ключа. Опис властивостей UNSIGNED та AUTO_INCREMENT ви знайдете в цьому підрозділі, а властивостей NOT NULL та UNIQUE – у пункті «Властивості стовпців».

Примітка

Для всіх цілих типів даних, крім BOOL (BOOLEAN) і SERIAL, можна в дужках вказати кількість відображуваних цифр, яка використовується спільно з параметром ZEROFILL: якщо число містить меншу кількість цифр, то при виведенні воно доповнюється зліва нулями. Наприклад, якщо стовпець таблиці визначено як INT(5) ZEROFILL, значення «1234567» і «12345» відображаються «як є», а значення «123» – як «00123». Для типу даних BIT у дужках вказується розмір числа, тобто максимальна кількість бітів, що зберігаються.

Розкажу трохи про те, як користуватися базою даних mysql через консоль, тобто без використання стандартного редактора phpmyadmin. Взагалі матеріалів на цю тему в інтернеті повно, але там або занадто багато не потрібного звичайного користувача, або дуже мізерні описи.

Початок роботи з mysql

Ну по-перше почнемо з того як зайти в mysql, для цього треба в консолі набрати:

Mysql -uusername -ppassword -hhost

Отже, ми в командному рядку mysql. Не забуваймо один важливий момент: роздільником команд mysql є «;» (Крапка з комою).
Тепер необхідно створити базу даних або вибрати вже створену:

Create database db_name; - Створюємо нову бд з назвою db_name show databases; - Перегляд наявних бд use db_name; - Вибрати бд з ім'ям db_name

Втім ми вибрали (або створили) необхідну нам бд а тепер переглянемо команди для роботи з таблицями:

Show tables; - Перегляд всіх таблиць show columns from table_name; - перегляд колонок та їх властивостей create table table_name (`id` int(11) AUTO_INCREMENT, `name` varchar(255)); - створення таблиці з колонками id та name alter table table_name add column1 int(11); - додати колонку до таблиці alter table table_name drop column1; - Видалити колонку з таблиці

Ну а перегляд, видалення, додавання даних робиться стандартними всім відомими командами ...
Розглянемо приклад із SELECT:

SELECT * FROM table_name;

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

SET NAMES utf8; - частіше для лінуксових консолей SET NAMES CP866; - для cmd windows

UPD:у windows потрібно вказувати повний шлях до файлу mysql.exe, наприклад C:/apache2/bin/mysql/mysql.exe

Проектування бази даних – Dia

Звичайно для великих проектів створення таблиць способом описаним вище займе дуже багато часу, і phpmyadmin теж не є рішенням. Якщо вам потрібно створити велику базу даних і розглянути взаємодію всіх таблиць один з одним, можу порадити вам відмінний редактор dia. Після створення таблиць у цій програмі, збережемо його у форматі.dia і переконвертуємо його у формат.sql:

Tedia2sql -i file.dia -o file.sql

Якщо вам знадобилося створити або залити дамп бази даних, то використовуємо:

Mysql -uusername -ppassword -hhost db_name< file_name.sql - залить бд mysqldump -uusername -ppassword -hhost db_name >file_name.sql - зробити дамп бд

можна заливати з файлів різних форматів, наприклад.