Значить, потрібно створити кілька таблиць. Щоб це зробити, використовуємо команду CREATE TABLE. Однак, ця команда досить сильно відрізняється від простої команди CREATE DATABASE. Їй передається список аргументів такого вигляду:
Важливо: Якщо ви зіткнетеся з дивацтвами, переконайтеся, що поля розділені табуляторами. Якщо ви вставляєте інформацію в файл з іншого джерела, табулятори можуть перетворитися в прогалини.
Спрацювало. Але ця команда просто додає записи і не дає проконтролювати роботу MySQL. Безліч веб-додатків використовують сценарії sql для швидкої і легкої настройки бази даних MySQL. Якщо ви хочете використовувати сценарій sql, вам знадобиться запустити mysql в пакетному режимі (як введення використовується файл зі сценарієм). Ось приклад запуску mysql в пакетному режимі:
Лістинг 3.11: MySQL в пакетному режимі
Як і у випадку з LOAD DATA, переконайтеся, що знаєте, що саме виконує файл sqlfile. Не роблячи цього, ви можете піддати вашу базу даних серйозному ризику витоку! Інший шлях полягає у використанні команди source. Ця команда запускає команди mysql з файлу, коли mysql знаходиться в інтерактивному режимі. Ось як взяти команди sql з файлу:
Лістинг 3.12: Виконання команд sql з файлу
Якщо ви зіткнетеся з веб-додатком, якому потрібно, щоб ви запустили файл з командами sql, можна використовувати одну з двох команд, показаних вище. Отже, наша таблиця сформована, але як же працювати з полями? Це робиться пошуком в таблиці за допомогою запитів.
Одна з головних функцій будь-якої бази даних SQL - запити. Вони допомагають звернути дані з таблиць в щось корисне. Більшість запитів виконується командою SELECT. Ця команда досить складна, тому в цьому документі ми розглянемо лише три основних її форми.
Лістинг 3.13: Форми SELECT
Примітка: Команда GRANT вважається способом створення користувача. Пізні версії MySQL, однак, також містять функцію CREATE_USER, хоча GRANT досі предпочительнее.
Тепер потрібні привілеї, які можна привласнювати. Використовуючи все вищесказане, можна встановлювати такі привілеї:
- ALL - дається повний доступ до всієї бази даних
- CREATE - користувачам дозволяється створювати таблиці
- SELECT - користувачам дозволяється робити запити до таблиць
- INSERT - користувачам дозволяється вставляти дані в таблицю
- SHOW DATABASES - дозволяється виводити список баз даних
- USAGE - у користувача немає привілеїв
- GRANT OPTION - користувачам дозволяється давати привілеї
Примітка: Якщо ви використовуєте MySQL для обміну даними з веб-додатком, то роз'ясняються тут привілеї CREATE, SELECT, INSERT, а також привілеї DELETE і UPDATE (описані в керівництві по MySQL, розділ GRANT and REVOKE Syntax (англ.)) - єдині, які, ймовірно, будуть потрібні. Багато роблять помилку, роздаючи все привілеї, коли це, насправді, не потрібно. Порівняйте з розробниками додатків, чи дійсно такі дозволи створять проблеми в роботі.
Для нашого користувача admin підійде ALL. А для користувача guest привілеї SELECT буде досить для доступу на читання. За базу даних вкажемо gentoo, на неї будуть встановлені дозволу. * Означає «все таблиці». Якщо буде потрібно, можна встановити права доступу до окремих таблиць. Далі йде ім'я користувача і ім'я вузла, з якого буде працювати користувач. У більшості випадків це буде вузол localhost. Нарешті, задається пароль користувача. Виходячи з цього, давайте створимо користувачів.
Лістинг 4.2: Створення користувачів admin і guest