Як створити базу даних у MySQL (Створити MySQL таблиці)

⚡ Розумний підсумок

Створення бази даних в MySQL йде двома перевіреними шляхами: виконанням оператора CREATE DATABASE або генерацією фізичних схем з ER-моделі через MySQL Розробка робочих місць уперед. Обидва підходи створюють ідентичні, готові до виробництва столи.

  • 🗄️ Створення бази даних: Виконайте CREATE DATABASE movies; або CREATE SCHEMA, яка MySQL трактує як синонім.
  • 🛡️ Безпечні повторні запуски: Додайте IF NOT EXISTS, щоб повторний скрипт пропускав створення, а не викликав помилку дубліката імені.
  • 🌐 Набір символів: Оберіть utf8mb4 з utf8mb4_0900_ai_ci для багатомовних даних; latin1 з latin1_swedish_ci підходить для застарілих схем, що містять лише англійську мову.
  • 🧱 Створення таблиці: CREATE TABLE визначає ім'я кожного поля, тип даних, PRIMARY KEY та механізм сховища, зазвичай InnoDB.
  • 🔢 Типи даних: Типи стовпців поділяються на числові, текстові та сімейства дати або часу, а також на варіанти ENUM, SET, BOOL та бінарні.
  • Передова інженерія: MySQL Workbench перетворює затверджену ER-модель на виконувані SQL-скрипти та передає їх на активний сервер.

Кроки для створення бази даних у MySQL

База даних у MySQL — це іменований контейнер для таблиць, представлень та пов’язаних об’єктів. Ви можете створити його двома способами:

1) Виконуючи простий SQL-запит

2) Використовуючи передову техніку в MySQL Верстак

As Початківець SQL, давайте спочатку розглянемо метод запиту.

Як створити базу даних у MySQL

Ось як створити базу даних у MySQL:

CREATE DATABASE — це команда SQL, яка використовується для створення бази даних у MySQL.

Уявіть, що вам потрібно створити базу даних з назвою «фільми». Ви можете створити базу даних у MySQL виконавши наступну SQL-команду.

CREATE DATABASE movies;

Примітка: Ви також можете використовувати команду CREATE SCHEMA замість CREATE DATABASE.

Цей оператор працює лише один раз. Його повторний запуск викличе помилку, тому давайте покращимо запит, додавши більше параметрів.

ЯКЩО ІСНУЄ

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

ЯКЩО ІСНУЄ доручає MySQL сервер перевіряє наявність бази даних з таким самим ім'ям перед її створенням. База даних створюється, лише якщо ім'я вільне; без цього пункту, MySQL видає помилку.

CREATE DATABASE IF NOT EXISTS movies;

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

Збірка та набір символів

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

Вибране вами зіставлення залежить від набору символів. Наприклад, набір символів latin1 використовує latin1_swedish_ci сортування, що є шведським порядком без урахування регістру.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Для місцевих мов, таких як арабська або китайська, виберіть Unicode utf8mb4 набір символів, який зберігає всі символи Unicode, включаючи емодзі. У MySQL 8.0, utf8mb4 це набір символів за замовчуванням, а utf8mb4_0900_ai_ci сортування за замовчуванням.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

Ви можете знайти список усіх сортувань і наборів символів тут.

Ви можете переглянути список існуючих баз даних, виконавши наступну команду SQL.

SHOW DATABASES;

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

Як створити таблицю в MySQL

Команда CREATE TABLE використовується для створення таблиць у базі даних.

Створити таблицю в MySQL

Як показано на діаграмі, кожна таблиця належить до однієї бази даних. Таблиці створюються за допомогою CREATE TABLE оператор, який має наступний синтаксис.

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

ТУТ

  • «СТВОРИТИ ТАБЛИЦЮ» відповідає за створення таблиці в базі даних.
  • «[ЯКЩО НЕ ІСНУЄ]» є необов’язковим і створює таблицю, лише якщо не знайдено відповідної назви таблиці.
  • «`fieldName`» – це назва поля, а «data Type» визначає характер даних, що зберігаються в ньому.
  • «[необов’язкові параметри]» – це додаткова інформація про поле, така як «AUTO_INCREMENT» або NOT NULL.
  • «Storage Engine» керує таблицею, зазвичай InnoDB, яка підтримує транзакції та зовнішні ключі.

MySQL Приклад створення таблиці

Нижче MySQL приклад створення таблиці в базі даних:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

Примітка: правильний MySQL ключове слово є AUTO_INCREMENT з підкресленням. AUTOINCREMENT належить до SQLite і викликає синтаксичну помилку в MySQL.

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

MySQL Типи даних

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

MySQL має 3 основні категорії типів даних, а саме:

  1. Числовий
  2. текст
  3. Дата, час

Числові типи даних

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

TINYINT( ) -128 до 127 в нормі
Від 0 до 255 БЕЗ ПІДПИСУ.
SMALLINT( ) -32768 до 32767 в нормі
Від 0 до 65535 БЕЗ ПІДПИСУ.
СЕРЕДНЯ ( ) -8388608 до 8388607 в нормі
Від 0 до 16777215 БЕЗ ПІДПИСУ.
INT( ) -2147483648 до 2147483647 в нормі
Від 0 до 4294967295 БЕЗ ПІДПИСУ.
BIGINT( ) -9223372036854775808 до 9223372036854775807 в нормі
Від 0 до 18446744073709551615 БЕЗ ПІДПИСУ.
ПЛОС Невелике приблизне число з плаваючою комою.
DOUBLE( , ) Велике число з плаваючою комою.
DECIMAL( , ) DOUBLE, що зберігається як рядок, що дозволяє використовувати фіксовану кому. Вибір для зберігання значень валют.

Текстові типи даних

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

CHAR( ) Фіксований розділ довжиною від 0 до 255 символів.
VARCHAR( ) Змінний розділ довжиною від 0 до 255 символів.
КРІХІЙНИЙ ТЕКСТ Рядок максимальною довжиною 255 символів.
TEXT Рядок максимальною довжиною 65535 символів.
ЛИСТОК Рядок максимальною довжиною 65535 символів.
МЕДІУМЕКСТ Рядок максимальною довжиною 16777215 символів.
СЕРЕДНЯ КЛЯБА Рядок максимальною довжиною 16777215 символів.
ДОВГИЙ ТЕКСТ Рядок максимальною довжиною 4294967295 символів.
LONGBLOB Рядок максимальною довжиною 4294967295 символів.

Типи даних дати та часу

Типи даних дати та часу зберігають значення календаря та годинника у фіксованому форматі, що забезпечує надійність сортування та порівняння.

ДАТА ПРОВЕДЕННЯ YYYY-MM-DD
ДАТА, ЧАС РРРР-ММ-ДД ЧЧ: ММ: СС
ГРАФІК YYYYMMDDHHMMSS
ЧАС HH: MM: SS

Інші типи даних

Окрім вищезазначених, існують деякі інші типи даних MySQL.

ЕНУМ Збереження текстового значення, вибраного зі списку попередньо визначених текстових значень
УСТАНОВКА Це також використовується для зберігання текстових значень, вибраних зі списку попередньо визначених текстових значень. Він може мати кілька значень.
BOOL Синонім TINYINT(1), який використовується для зберігання логічних значень
BINARY Подібно до CHAR; відмінність полягає в тому, що тексти зберігаються у двійковому форматі.
ВАРБІНАРИЙ Подібно до VARCHAR; відмінність полягає в тому, що тексти зберігаються у двійковому форматі.

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

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

Найкращі практики для створення MySQL Database

Кілька правил забезпечують читабельність ваших скриптів:

  • Використовуйте великі літери для ключових слів SQL, наприклад, «DROP SCHEMA IF EXISTS `MyFlixDB`;»
  • Закінчуйте всі команди SQL крапкою з комою.
  • Уникайте використання пробілів в іменах схем, таблиць та полів. Використовуйте натомість символи підкреслення для розділення імен схем, таблиць або полів.
  • Для нових таблиць надавайте перевагу InnoDB над MyISAM, оскільки InnoDB підтримує транзакції, блокування на рівні рядків та зовнішні ключі.

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

Як створити MySQL Схема робочого місця ER Forward Engineering

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

Ми створили ER діаграма в нашому ER моделювання урок. Тепер ми використаємо цю ER-модель для генерації SQL-скриптів, які створять нашу базу даних.

Створення бази даних MyFlix з моделі MyFlix ER

Крок 1) Відкрийте ER-модель бази даних MyFlix які ви створили раніше.

Крок 2) Виберіть передового інженера

Клацніть меню База даних і виберіть «Перехідний інженер».

Виберіть інженера передового рівня в MySQL Верстак

Крок 3) Варіанти підключення

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

Параметри підключення в майстрі прямого інженера

Крок 4) Виберіть параметри, показані нижче

Виберіть параметри, показані нижче, у вікні майстра, що з’явиться. Натисніть кнопку «Далі».

Варіанти прямого інженера для бази даних MyFlix

Крок 5) Залиште налаштування за замовчуванням і натисніть кнопку «Далі».

На наступному екрані показано зведення об’єктів на нашій діаграмі EER. Наша база даних MyFlix містить 5 таблиць. Залиште вибір за замовчуванням і натисніть кнопку «Далі».

Зведена інформація про об'єкти на діаграмі EER MyFlix

Крок 6) Revie сценарій SQL

У вікні нижче показано попередній перегляд SQL-скрипта, який створює нашу базу даних. Збережіть скрипт у файлі *.sql або скопіюйте його в буфер обміну, а потім натисніть кнопку «Далі».

Попередній перегляд згенерованого SQL-скрипта

Крок 7) Фіксація прогресу

Вікно нижче з'явиться після створення бази даних на вибраному MySQL екземпляр сервера. Таблиці з ER-моделі тепер фізично існують на сервері.

Вікно виконання фіксації виконання передового інженерного проекту

База даних разом із фіктивними даними додається. Ми використовуватимемо цю базу даних у наступних уроках. Просто імпортуйте її в MySQL Верстак для початку роботи.

Натисніть тут, щоб завантажити MyFlixDB

Поширені запитання

Немає різниці в MySQL. CREATE SCHEMA – це псевдонім для CREATE DATABASE, і обидва створюють один і той самий об'єкт. В інших системах, таких як Oracle, схема та база даних залишаються окремими поняттями.

Запустіть DROP DATABASE IF EXISTS фільми; з клієнта або з MySQL ВерстакЦя команда остаточно видаляє базу даних і всі таблиці в ній, тому спочатку створіть резервну копію.

Обліковному запису потрібен привілей CREATE на глобальному рівні. Адміністратори надають його за допомогою параметра GRANT CREATE ON *.* TO 'user'@'localhost';. Без цього привілею сервер повертає помилку «доступ заборонено».

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

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

Підсумуйте цей пост за допомогою: