mysql create table tutorial with examples
У цьому підручнику ми дослідимо використання команди MySQL CREATE TABLE із синтаксисом та прикладами програмування:
Оператор CREATE TABLE є частиною DDL (мови визначення даних) SQL.
Ми обговоримо способи, за допомогою яких ви можете СТВОРИТИ таблицю в певній базі даних, згадувати імена стовпців та механізм БД під час створення таблиці, а також правила навколо правил іменування таблиць SQL.
Що ви дізнаєтесь:
- Попередні реквізити
- Команда MySQL CREATE TABLE
- Висновок
Попередні реквізити
Обов’язковою умовою запуску будь-якої з команд SQL буде завантаження сервера MySQL. Безкоштовне видання спільноти можна завантажити тут.
Ми також використовуватимемо MySQL Workbench SQL Client для всіх прикладів та обговорень у цьому посібнику. Можна завантажити безкоштовну версію спільноти MySQL Workbench тут (Ви можете вибрати версію залежно від ОС, над якою працюєте).
Якщо ви не хочете використовувати MySQL Workbench - ви також можете скористатися клієнтом командного рядка MySQL, який постачається із встановленою за замовчуванням сервером MySQL.
Команда MySQL CREATE TABLE
Команда CREATE TABLE є частиною набору команд DDL (Мова визначення даних) у MySQL і дозволяє користувачеві створити нову таблицю для даної бази даних.
Примітка: Команда CREATE TABLE існує для майже всіх реляційних баз даних - таких як MySQL, Postgres, SQL Server тощо.
Синтаксис створення таблиці MySQL
У найпростішій формі ви можете використовувати команду CREATE TABLE лише з основними параметрами, тобто назвою таблиці та визначеннями стовпців.
CREATE TABLE (IF NOT EXISTS) tableName ( column1 datatype, column2 datatype, .... );
Давайте розберемося в аргументах синтаксису детально:
- tableName: Це має бути ім'я таблиці, яку ви намагаєтеся створити. Це має бути повноцінне ім’я (якщо у вас немає набору баз даних за замовчуванням). Наприклад, databaseName.tableName
Ім'я таблиці можна вказати без лапок або із символом зворотного позначення, наприклад `tableName` і` databaseName`.`tableName` - Визначення стовпця: Таблиця в SQL повинна складатися щонайменше з одного стовпця. Усі визначення стовпців повинні складатися з назви стовпця, а також типу даних стовпця. Ви також можете за бажанням включити інші властивості стовпців, такі як первинний ключ, null, not null тощо.
Давайте подивимось приклад використання вищезазначеного синтаксису для створення таблиці.
Створимо таблицю з назвою EMPLOYEE_DETAILS (у базі даних - SAMPLE_DB) зі стовпцями
- ім'я: варчар (100)
- вік: інт
- адреса: варчар (100)
CREATE TABLE SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) );
Наведене нижче буде результатом створення таблиці:
Примітка:
# 1) Зверніть увагу на використання додаткової команди (IF NOT EXISTS) у наведеному вище синтаксисі.
Зазвичай рекомендується використовувати цю команду, оскільки це дозволить уникнути помилок, якщо таблиця, яку ми намагаємось створити, вже присутня в базі даних.
Ось приклад використання з і без АКО НЕ ІСНУЄ.
- Без IF NOT EXISTS генерує помилку, якщо таблиця вже існує.
- Якщо IF NOT EXISTS не призведе до помилки. Однак він покаже попередження про те, що таблиця вже існує.
# 2) 'tableName' під час використання команди CREATE TABLE має бути повністю кваліфікованим з назвою бази даних, тобто способом, яким ми його використовували SAMPLE_DB.employee_details
Інші способи зазначення імені таблиці - це налаштування поточної бази даних за допомогою команди ‘USE’. Наприклад ВИКОРИСТОВУВАТИ SAMPLE_DB; а потім запустити / використовувати лише ім’я таблиці замість повністю кваліфікованого імені таблиці.
СТВОРИТИ ТАБЛИЦЮ за допомогою параметрів таблиці
Параметри таблиці використовуються для того, щоб оптимізувати поведінку таблиць MySQL. Вони можуть бути застосовані під час створення таблиці за допомогою команди MySQL CREATE TABLE (або пізніше за допомогою команди ALTER TABLE).
Синтаксис залишається незмінним з додатковими параметрами таблиці, які можна вказати.
CREATE TABLE (IF NOT EXISTS) tableName ( column1 datatype, column2 datatype, .... ) (table “” not found /)
;
Нижче ми обговоримо найбільш широко використовувані варіанти (Повний список варіантів таблиці можна знайти тут ).
# 1) ДВИГУН
Він використовується для визначення механізму зберігання для таблиці, тобто значенням за замовчуванням є InnoDB. Це не потрібно змінювати, якщо немає потреби в якомусь конкретному механізмі зберігання. Іншими допустимими значеннями для механізмів зберігання є MEMORY, CSV, HEAP тощо.
Синтаксис для зазначення ENGINE як частини MySQL CREATE TABLE наведено нижче.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )ENGINE='MEMORY';
# 2) AUTO_INCREMENT
Цей параметр використовується для встановлення початкового значення AUTO_INCREMENT таблиці, тобто значення за замовчуванням - 1, але ви можете замінити будь-яке інше додатне ціле значення.
Примітка: AUTO_INCREMENT можна вказати лише для одного стовпця таблиці, і він повинен бути первинним ключем. Давайте подивимось приклад зазначення автоматичного збільшення як 10 та вставки запису для перевірки, якщо автоматичне збільшення встановлено правильно.
Ми використовуємо ту саму таблицю worker_details (переконайтеся, що випустили існуючу таблицю перед запуском цієї команди) з додатковим полем ідентифікатора, позначеним як первинний ключ.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details( id int not null AUTO_INCREMENT primary key, name varchar(100), age int, address varchar(100) )AUTO_INCREMENT=10;
Давайте вставимо рядок без будь-якого значення для ідентифікатора та переконаємось, що значення вставляються із значення, починаючи з 10.
INSERT INTO SAMPLE_DB.employee_details(name,age,address) values ('aman kumar',20,'mumbai'); select * from SAMPLE_DB.employee_details;
# 3) КОНТРОЛЬНА СУММА
Для цього потрібно встановити значення 1, якщо ви хочете мати контрольну суму для всієї збереженої таблиці. Зазвичай він використовується для того, щоб не було пошкоджених таблиць.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100) )CHECKSUM=1;
CHECKSUM зберігає поточну контрольну суму всієї таблиці під час будь-яких вставок або оновлень
СТВОРИТИ ТАБЛИЦЮ з деталізацією розділів
Ми також можемо згадати визначене користувачем розділення, якщо потрібно, використовуючи параметри розділення.
Розділення як концепція широко використовується для розподілу вмісту таблиць по файловій системі, щоб забезпечити швидший час доступу та оптимізовані запити. Розбиття розділяє велику таблицю на менші таблиці залежно від зазначених стратегій або ключів розділення.
Давайте подивимося, як ми можемо вказати деталі розділів за допомогою команди MySQL CREATE TABLE.
Ми використаємо зразкову таблицю worker_details і додамо новий цілий стовпець з іменем department_id, який буде використовуватися як хеш-ключ розділу для рівномірного розподілу даних.
Також вказівка кількості розділів вказувала б, скільки фактичних розділів буде створено (у цьому випадку 4). Якщо це не вказано, то за замовчуванням буде просто 1 розділ.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100), department_id int )PARTITION BY HASH (department_id) PARTITIONS 4;
Примітка: Як правило, ключ, який буде використовуватися для створення розділів, залежатиме від передбачуваних шаблонів доступу, які будуть використовуватися для таблиці. У цьому випадку, припустимо, ми велику частину часу ми будемо запитувати таблицю на основі ідентифікатора відділу, тоді має сенс мати department_id як частину хеш-ключа.
Клонування та копіювання таблиці MySQL
Іноді вам може знадобитися створити клон існуючої таблиці або скопіювати вміст з однієї таблиці в іншу. MySQL підтримує 2 способи досягнення цього, як показано нижче.
- За допомогою команди LIKE
- За допомогою команди SELECT
Клонування таблиці за допомогою LIKE COMMAND
За допомогою команди LIKE ви можете створити нову таблицю з точно такими ж іменами та властивостями стовпців, що і існуючі таблиці.
Ось синтаксис за допомогою команди LIKE.
як розробити додаток Java в eclipse - -
CREATE TABLE tableName1 LIKE tableName2
За допомогою вищезазначеної команди буде створена нова таблиця, тобто tableName1 з тією ж структурою та властивостями tableName2.
Зверніть увагу, що при такому підході клонуються лише імена та властивості стовпців, а не фактичні дані таблиці.
Спробуємо створити таблицю з назвою worker_details і скористайтеся цією таблицею для створення нової таблиці з назвою student_details за допомогою опції LIKE.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), age int, address varchar(100), department_id int ); CREATE TABLE SAMPLE_DB.student_details LIKE SAMPLE_DB.employee_details;
Нижче наведено результати вищезазначеної команди.
Клонування таблиці за допомогою SELECT COMMAND
Цей підхід використовує команду SELECT для створення копії існуючої таблиці в новій таблиці.
При такому підході дані з таблиці також копіюються в нову таблицю.
CREATE TABLE tableName1 AS SELECT * FROM tableName2;
Давайте спробуємо створити таблицю з назвою worker_details і за допомогою цієї таблиці створимо нову таблицю з назвою student_details за допомогою опції SELECT.
CREATE TABLE SAMPLE_DB.student_details AS SELECT * FROM SAMPLE_DB.employee_details;
Конвенції щодо іменування таблиць MySQL
У попередніх розділах ми дізналися про створення таблиць MySQL. Тепер давайте розглянемо деякі правила, про які слід пам’ятати під час іменування таблиць, а також обмежень, що стосуються MySQL.
Ці правила / правила застосовуються як до таблиць SQL, так і до баз даних.
# 1) Юридичні символи в іменах
до) Імена без котирувань можуть складатися з будь-яких символів у наборі символів за замовчуванням SQL Server, за винятком того, що не всі символи можуть бути цифрами. Наприклад, «23test» - це допустима назва таблиці, але не «2345».
Нижче наведено перелік символів, які можна використовувати для імен без котирувань:
ASCII: (0-9, a-z, A-Z $ _) (основні латинські літери, цифри 0-9, долар, підкреслення)
Розширений: U + 0080 .. U + FFFF
Дізнайтеся більше про коди ASCII тут
б) Назви таблиць та баз даних можуть бути вказані в лапках із символом зворотного позначення (`) і можуть містити будь-яку букву / символ, крім самого символу зворотного позначення. З наведеними іменами ви навіть можете мати імена таблиць / баз даних, що мають усі цифри.
Зверніть увагу, що для таких таблиць вам потрібно буде використовувати зворотні позначки навколо таблиці та / або назви бази даних для доступу до даних усередині таких таблиць.
відкриття XML-файлу в Excel
в) Імена таблиць та баз даних не можуть містити крапку '.', Оскільки це використовується як база даних та роздільник таблиці.
г) Назви бази даних та таблиці можуть містити - спеціальні символи '$' та '_'.
# 2) Довжина імені
Максимально дозволена довжина імені бази даних або таблиці в MySQL становить 64 символів.
# 3) Кваліфікатори імен
Як обговорювалося в попередніх розділах, у MySQL таблиця завжди знаходиться в контексті бази даних, частиною якої вона є. Отже, для доступу до таблиці ви можете використовувати повністю кваліфіковане ім'я таблиці - це не що інше, як поєднання імені бази даних, розділене крапкою, а потім іменем стовпця.
Наприклад, щоб вибрати всі елементи з таблиці ‘EMPLOYEE_DETAILS’ із бази даних SAMPLE_DB, ви можете використовувати повне ім’я, як показано нижче.
SELECT * from SAMPLE_DB.EMPLOYEE_DETAILS;
Назви БД та таблиць також можна вказати у вигляді лапок окремо, як показано нижче.
SELECT * from `SAMPLE_DB`.`EMPLOYEE_DETAILS`;
Рекомендації галузі та найкращі практики щодо таблиць іменування та баз даних наведені нижче.
- Назвіть таблиці та бази даних малими літерами - Це, як правило, прискорює введення та запити БД, особливо для тих, хто бере участь у щоденних запитах БД.
- Використовуйте символи підкреслення («_») замість пробілів в іменах таблиць та db - Це робить імена більш читабельними.
- Використовуйте зрозумілі назви таблиць та баз даних - Наприклад, таблицю, що містить деталі працівника, можна називати різними способами, як-от інформація_працівника, дані_працівника, працівник, дані_працівника, ім'я_працівника_адреса. Мало б сенс вибрати ім’я, яке найбільш зрозуміло. Наприклад, ми можемо вибрати ім'я таблиці, щоб бути співробітником_деталей або співробітником_інфо. Незважаючи на те, що це суб'єктивна дискусія, вона повинна бути узгоджена кількома членами команди, які збираються використовувати та створювати ці сутності.
- Уникайте використання чисел у назвах баз даних та таблиць - Як sample_db_2, test_table_1 тощо.
Часті запитання та відповіді
Q # 1) Як створити таблицю в MySQL за допомогою Index?
Відповідь: Ви можете додати ІНДЕКС проти будь-якого стовпця (або комбінації стовпців) під час самого створення таблиці.
Давайте подивимось приклад додавання індексу до стовпця_відділу для таблиці staff_details.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), id int, age int, address varchar(100), department_id int, index(department_id) );
Q # 2) Як створити таблицю з датою в MySQL?
Відповідь: Дата - це тип даних, який слід асоціювати з будь-яким стовпцем під час створення таблиці.
Зверніться до наведеної нижче зразки команди CREATE TABLE із стовпцем joining_date, що має DATETIME як тип даних для зразкової таблиці worker_details.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), id int primary key, age int, address varchar(100), joining_date datetime, department_id int );
Q # 3) Як я можу побачити структуру таблиці в MySQL?
Відповідь: Після створення таблиці, якщо ви хочете звернутися до структури таблиці, як-от стовпці, індекси тощо, ви можете скористатися командою DESCRIBE для отримання деталей.
Синтаксис:
DESCRIBE tableName;
Давайте створимо таблицю і побачимо результати команди DESCRIBE.
CREATE TABLE IF NOT EXISTS SAMPLE_DB.employee_details ( name varchar(100), id int primary key, age int, address varchar(100), department_id int ); DESCRIBE sample_db.employee_details;
Нижче наведено результати команди DESCRIBE.
Q # 4) Як додати ІНОЗЕМНИЙ КЛЮЧ до таблиці в MySQL?
Відповідь: Зовнішній ключ використовується для зв’язування 2 таблиць разом у MySQL. Для того, щоб використовувати обмеження зовнішнього ключа, ви вже мали створити таблицю, на яку ви посилаєтесь.
>> Дізнайтеся більше про Обмеження зовнішнього ключа MySQL
Спробуємо зрозуміти це на прикладі. Скажімо, у нас є 2 таблиці, тобто кафедра (де містяться подробиці про різні відділи коледжу) та деталі студента (усі деталі, що стосуються студентів).
Відділ має колони - ідентифікатор (первинний ключ) та ім'я.
Деталі студента - ідентифікатор (первинний ключ), вік, адреса та ідентифікатор відділу (зовнішній ключ, на який посилається таблиця департаменту).
Нижче наведено синтаксис команди CREATE TABLE для обох цих таблиць.
CREATE TABLE department ( name varchar(100), id INT NOT NULL, PRIMARY KEY (id) ); CREATE TABLE student_details ( name varchar(100), id int not null, age int, address varchar(100), department_id int, PRIMARY KEY (id), FOREIGN KEY (department_id) references department(id) ON DELETE CASCADE );
Зверніться до синтаксису посилання ЗОВНІШНІЙ КЛЮЧ у таблиці student_details, де ми згадали про зв’язок між стовпцями та ідентифікатором department_id, на який слід посилатись за допомогою ідентифікатора стовпця з таблиці відділів.
Висновок
Команда CREATE TABLE в MySQL, яка належить до команд у категорії Мова визначення даних, була детально пояснена тут.
Ми дізналися про різні параметри таблиці, такі як ENGINE, CHECKSUM тощо, які можна згадати разом із командою CREATE TABLE, щоб мати додаткові властивості, що встановлюються для таблиці.
Ми пройшли способи створення клону існуючої таблиці в MySQL. Нарешті, ми поговорили про правила іменування імен таблиць разом із рекомендованими галузевими практиками.
Щасливого читання !!
Рекомендована література
- Підручник із створення перегляду MySQL із прикладами коду
- Типи даних MySQL | Що таке різні типи даних у MySQL
- MySQL Insert Into Table - Вставте синтаксис заяви та приклади
- Підручник з MySQL JOIN: Внутрішній, Зовнішній, Хрестовий, Лівий, Правий та Я
- Різниця між SQL Vs MySQL Vs SQL Server (з прикладами)
- Як використовувати PL SQL Вставлення, оновлення, видалення та вибір виписки
- MongoDB Створення підручника з бази даних
- MongoDB Створення користувача та призначення прикладів ролей