Синтаксис команди CREATE DATABASE має вигляд:
CREATE DATABASE [IF NOT EXISTS] імя_бази_данних
Команда CREATE DATABASE створює базу даних з вказаним ім'ям. Для використання команди необхідно мати привілей CREATE для бази даних. Якщо база даних з таким ім'ям існує, генерується помилка.
[DEFAULT] CHARACTER SET імя_набора_сімволов
[DEFAULT] COLLATE імя_порядка_сопоставленія
Опція спеціфікація_сrеаtе може вказуватися для визначення характеристик бази даних. Характеристики бази даних зберігаються в файлі db.opt, розташованому в каталозі даних. Конструкція CHARACTER SET визначає набір символів для бази даних за замовчуванням. Конструкція COLLATION задає порядок зіставлення за умовчанням.
Бази даних в MySQL реалізовані у вигляді каталогів, які містять файли, відповідні таблиць бази даних. Оскільки спочатку в базі немає ніяких таблиць, оператор CREATE DATABASE тільки створює підкаталог в каталозі даних MySQL.
Робота з таблицями
Тепер розглянемо команди MySQL для створення таблиць бази даних і вибору бази даних.
Бази даних зберігають дані в таблицях. Чим же є ці таблиці?
Найпростіше таблиці можна уявляти собі, як складаються з рядків і стовпців. Кожен стовпець визначає дані певного типу. Рядки містять окремі записи.
Розглянемо таблицю 3.1, в якій наведено персональні дані деяких людей:
Таблиця 3.1. Персональні дані
База даних може містити безліч таблиць, саме таблиці містять реальні дані.
Отже, можна виділити пов'язані (або незв'язані) дані в різні таблиці. Для бази даних employees визначена одна таблиця, яка містить дані компанії про співробітників, а інша таблиця буде містити персональні дані. Давайте створимо першу таблицю.
Команда SQL для створення такої таблиці виглядає наступним чином:
CREATE TABLE employee_data
emp_id int unsigned not null auto_increment primary key,
Примітка: в MySQL команди і імена стовпців розрізняють регістр символів, однак імена таблиць і баз даних можуть залежати від регістру в зв'язку з використовуваної платформою (як в Linux). Тому можна замість CREATE TABLE використовувати create table.
За ім'ям кожного стовпця слід тип стовпчика. Типи стовпців визначають тип даних, які буде містити стовпець. В даному прикладі стовпці f_name, l_name, title іemail міститимуть текстові рядки, тому тип стовпця заданий як varchar, що означає змінну кількість символів. Максимальне число символів для столбцовvarchar визначається числом, укладеним в дужки, яке слід відразу за ім'ям стовпця. Стовпці age, yos, salary і perks міститимуть числа (цілі), тому тип стовпця задається як int. Перший стовпець (emp_id) містить ідентифікаційний номер (id) співробітника. Його тип стовпця виглядає дещо перевантаженим, тому розглянемо його по частинах:
· Int: визначає тип стовпця як ціле число.
· Unsigned: визначає, що число буде без знака (натуральне).
· Not null: визначає, що значення не може бути null (порожнім); тобто кожен рядок в цьому стовпці повинна мати значення.
· Auto_increment: коли MySQL зустрічається зі стовпцем з атрибутом auto_increment, то генерується нове значення, яке на одиницю більше, ніж найбільше значення в стовпці. Тому ми не повинні ставити для цього стовпця значення, MySQL генерує їх самостійно. З цього також випливає, що кожне значення в цьому стовпці буде унікальним.
· Primary key: допомагає при індексуванні стовпчика, що прискорює пошук значень. Кожне значення має бути унікально. Ключовий стовпець необхідний для того, щоб виключити можливість збігу даних. Наприклад, два співробітника можуть мати одне і те ж ім'я, і тоді постане проблема - як розрізняти цих співробітників, якщо не поставити їм унікальні ідентифікаційні номери. Якщо є стовпець з унікальними значеннями, то можна легко розрізнити два записи. Найкраще доручити присвоювання унікальних значень самій системі MySQL.