Перейти к содержимому

Mysql как работать с таблицей

  • автор:

SQL-Ex blog

Таблицы лежат в сердце любой базы данных MySQL, обеспечивая структуру организации данных и доступа к ним других приложений. Таблицы также помогают обеспечить целостность этих данных. Чем лучше вы поймете, как создавать и модифицировать таблицы, тем легче будет управлять другими объектами базы данных и тем эффективней вы сможете работать с MySQL в целом. Наличие твердого фундамента в виде таблиц поможет вам также строить более эффективные запросы, чтобы вы могли получать требуемые данные (и только их), не снижая производительности базы данных.

Это вторая статья в серии, посвященной MySQL. Я рекомендую вам предварительно познакомиться с первой статьей, если вы не сделали этого ранее. Здесь же я сосредоточусь, главный образом, на создании, изменении и удалении таблиц, демонстрируя для этого как использование операторов SQL, так и возможности GUI в MySQL Workbench. Как и в первой статье, я использую выпуск MySQL Community на компьютере с Windows для создания примеров для настоящей статьи. Все примеры выполнены в Workbench, которая ставится вместе с Community Edition.

Использование MySQL Workbench GUI для создания базы данных

Прежде чем создавать таблицы, необходимо иметь базу данных для этих таблиц, поэтому я сначала потрачу немного времени на создание базы данных. Создание базы данных в MySQL относительно простой процесс. Вы можете выполнить простой оператор CREATE DATABASE для экземпляра, в котором вы хотите добавить базу данных. Это особенно просто, если вы планируете использовать коллацию и набор символов по умолчанию. Например, для создания базы данных travel вам нужно всего лишь выполнить следующий оператор:

CREATE DATABASE travel;

Оператор CREATE DATABASE делает ровно то, что написано. Он создает базу данных в экземпляре MySQL, к которому вы подключены. Если вы хотите убедиться, что такой базы данных еще нет до выполнения оператора, вы можете добавить предложение IF NOT EXISTS:

CREATE DATABASE IF NOT EXISTS travel;

Оба оператора говорят MySQL создать базу данных, которая использует коллацию и набор символов по умолчанию. Вы можете выполнить оператор либо из командной строки MySQL, либо в MySQL Workbench. Чтобы выполнить оператор в Workbench, нужно лишь открыть вкладку запроса, напечатать или вставить туда оператор и щелкнуть одну из кнопок «выполнить» на панели инструментов. Остальное сделает MySQL.

Вместо использования оператора CREATE DATABASE для создания базы данных вы можете использовать оператор CREATE SCHEMA. Оба оператора поддерживают одинаковый синтаксис и оба приводят к одному и тому же результату. Это происходит потому, что MySQL рассматривает базы данных и схемы как одно и то же. Фактически, MySQL рассматривает CREATE SCHEMA как синоним CREATE DATABASE. Когда вы создаете базу данных, то создаете схему. Когда вы создаете схему, вы создаете базу данных. Workbench использует оба термина, свободно переходя от одного к другому.

Вы также можете использовать функции GUI, встроенные в Workbench для создания базы данных. Хотя это может показаться избыточным, имея в виду простоту выполнения оператора CREATE DATABASE, GUI имеет преимущество в перечислении всех символьных наборов и коллаций, доступных для определения базы данных, если вы решили не ограничиваться значениями по умолчанию.

Чтобы использовать GUI для создания базы данных, сначала щелкните на кнопке создания схемы на панели инструментов Workbench. (Кнопка выглядит как стандартная иконка базы данных и имеет всплывающую подсказку Create a new schema in the connected server.) Когда откроется вкладка Schema, вам нужно только ввести имя базы данных, как показано на рис.1.

Рис.1 Добавление базы данных к экземпляру MySQL

Если вы хотите использовать отличные от значений по умолчанию набор символов или коллацию, вы можете выбрать их из выпадающих списков. Например, вы можете выбрать utf8 в качестве набора символов и коллацию utf8_unicode_ci.

В MySQL вы можете установить набор символов и коллацию на нескольких уровнях: сервера, таблицы, столбца или литеральной строки. По умолчанию набор символов установлен в utf8mb4, а коллацией по умолчанию является utf8mb4_0900_ai_ci. Прежде чем отказаться от значений по умолчанию, я предлагаю вам ознакомиться с соответствующей документацией MySQL.

Вкладка Schema содержит также опцию Rename References. Однако она заблокирована и применяется только в том случае, когда вы обновляете модель базы данных. Workbench иногда содержит опции интерфейса, которые не применяются в текущей ситуации, но которые могут смутить вас, когда вы впервые начинаете работать с MySQL или Workbench. Однако обычно вы можете принимать значения по умолчанию, и не беспокоитесь об опциях, по крайней мере, до тех пор, пока не узнаете как они работают и где применимы.

Для этой статьи (предполагая, что вы хотите следовать примерам) вы можете принять набор символов и коллацию по умолчанию и щелкнуть Apply. Это запустит мастера Apply SQL Script to Database, показанного на рис.2. На первом экране мастера показан оператор SQL, который сгенерировал Workbench, но еще не применил к экземпляру MySQL.

Рис.2 Проверка оператора CREATE SCHEMA

Экран содержит также опции Algorithm и Lock Type. Обе опции относятся к онлайновой функции DDL MySQL, которая обеспечивает поддержку изменений таблицы на месте и одновременных DML. Вам не потребуется понимание этих опций прямо сейчас, и вы можете спокойно принять значения по умолчанию. (Это еще один пример опций, когда Workbench может сбить с толку.) Однако если вы хотите больше узнать об этих возможностях, информацию можно найти в документации MySQL, относящейся к InnoDB и online DDL.

Чтобы создать базу данных, щелкните кнопку Apply, которая приведет вас на следующий экран, показанный на рис.3. Этот экран просто подтверждает, что база данных была создана. Вы можете теперь щелкнуть Finish, чтобы закрыть окно диалога. Не забудьте закрыть также исходную вкладку Schema.

Рис.3 Завершение создания новой схемы (базы данных)

База данных теперь должна появиться в списке на панели Schemas в навигаторе. Если этого не произошло, щелкните на кнопке refresh (обновить) в верхнем правом углу панели. База данных (схема) travel должна теперь появиться наряду с другими базами данных в экземпляре MySQL. В моей системе есть еще только одна база данных по умолчанию sys, как показано на рис.4.

Рис.4 Появление новой базы данных в навигаторе

На этот момент MySQL создала только структуру базы данных. Вы можете теперь добавить таблицы в базу данных, а также представления, хранимые процедуры и функции.

Использование MySQL Workbench GUI для создания таблицы

Вы также можете использовать MySQL Workbench GUI, чтобы добавить таблицу в базу данных. В этом случае начните с выбора узла базы данных travel в навигаторе. Вам может потребоваться выполнить двойной щелчок на узле, чтобы выбрать его. При выборе имя базы данных должно быть выделено жирным. Когда база данных выбрана, щелкните на кнопке создания таблицы на панели инструментов Workbench. (Кнопка выглядит как стандартная иконка таблицы и имеет всплывающую подсказку Create a new table in the active schema in connected server.) При щелчке на кнопку Workbench откроет вкладку Table, как показано на рис.5.

Рис.5 Добавление таблицы в Workbench GUI

Вкладка предоставляет подробную форму для добавления столбцов в таблицу, конфигурирования таблицы и опций столбцов. Она также включает несколько своих собственных вкладок (в нижней части интерфейса). Вкладка Columns выбирается по умолчанию, там вы выполняете большую часть работы.

Сначала задается имя таблицы. В этой статье я использовал manufacturers. Я опять застрял на наборе символов и коллации по умолчанию, а также механизма хранения по умолчанию, InnoDB. InnoDB считается хорошим движком хранилища общего назначения, который сочетает высокую надежность и высокую производительность.

MySQL также поддерживает другие движки хранилища, такие как MyISAM, MEMORY, CSV и ARCHIVE. Каждый из них имеет специфические характеристики и область использования. Сейчас я рекомендую вам принять по умолчанию InnoDB, пока вы лучше не поймете различие между ними. Я также рекомендую почитать документацию MySQL о различных типах движков.

Тут вы также можете добавить комментарий к таблице, если хочется. Хотя это не является необходимым для данной статьи, информация подобного сорта может оказаться полезной при построении производственной базы данных.

Узнав основы, вы можете добавить первый столбец, который будет называться manufacturer_id. Он будет также первичным ключом и включать опцию AUTO_INCREMENT, которая скажет MySQL автоматически генерировать уникальное число для значения этого столбца, аналогично свойству IDENTITY в SQL Server.

  • PK. Конфигурирует столбец как первичный ключ.
  • NN. Конфигурирует столбец как NOT NULL.
  • UN. Конфигурирует INT базы данных как UNSIGNED.
  • AI. Конфигурирует столбец с опцией AUTO_INCREMENT.

Знаковость целого влияет на диапазон поддерживаемых значений. Рассмотрим тип данных INT. Если столбец определен как знаковый тип данных INT, значения в столбце должны быть в диапазоне между -2147483648 и 2147483647. Однако, если тип данных является беззнаковым, значения должны находиться между 0 и 4294967295. Если вы знаете, что столбец никогда не будет хранить отрицательных значений, вы можете определить его как беззнаковый, чтобы обеспечить больший диапазон для положительных целых чисел.

По мере конфигурирования столбца Workbench обновляет установки опций в разделе ниже сетки. Этот раздел внизу отражает установки столбца, выбранные в сетке, и может быть полезным при определении нескольких столбцов. Этот раздел также предоставляет несколько дополнительных необязательных опций. Например, вы можете добавить комментарий, относящийся к выбранному столбцу. Можно также установить набор символов и коллацию на уровне столбца (для символьных типов данных).

На рис.6 показан столбец manufacturer_id как он пока определен. Обратите внимание, что нижний раздел отражает все установки, определенные в сетке столбца.

Рис.6 Добавление столбца в определение таблицы

  • Столбец manufacturer сконфигурирован имеющим тип VARCHAR(50) и NOT NULL.
  • Столбец create_date сконфигурирован имеющим тип TIMESTAMP и NOT NULL. Для него установлено значение по умолчанию CURRENT_TIMESTAMP — системная функция, которая возвращает текущую дату и время.
  • Столбец last_update сконфигурирован имеющим тип TIMESTAMP и NOT NULL. Для него установлено значение по умолчанию, которое включает функцию CURRENT_TIMESTAMP наряду с опцией ON UPDATE CURRENT_TIMESTAMP, которая генерирует значение, когда происходит обновление таблицы.

Рис.7 Добавление нескольких столбцов в определение новой таблицы

Осталось сделать еще один шаг, чтобы завершить определение таблицы. Для этого вам нужно перейти на вкладку Options и установить начальное значение AUTO_INCREMENT. Я использовал 1001, как показано на рис.8. В результате первой добавленной в таблицу записи будет присвоено значение manufacturer_id, равное 1001, а каждая последующая строка будет иметь приращение 1.

Рис.8 Установка начального значения опции AUTO_INCREMENT

Как можно видеть, имеется множество других табличных опций, которые вы можете сконфигурировать, и есть другие вкладки, на которых конфигурируются дополнительные параметры. Но сейчас мы на этом остановимся и добавим таблицу в базу данных. Для этого щелкните кнопку Apply, которая запустит мастера Apply SQL Script to Database (применить скрипт в базе данных), показанного на рис.9.

Рис.9 Проверка оператора CREATE TABLE

На этом экране вы можете проверить сгенерированный оператор SQL и, если желаете, выбрать алгоритм и тип блокировки. Вы можете непосредственно тут отредактировать оператор SQL. (Только не допустите ошибок.)

Обратите внимание, что столбец manufacturer_id имеет тип INT (беззнаковый) и определен как первичный ключ. Он также включает опцию AUTO_INCREMENT. Начальное значение AUTO_INCREMENT, 1001, определено как опция таблицы, наряду с движком хранилища InnoDB. Отметим также, что столбцы create_date и last_update включают определенные предложения DEFAULT (значения по умолчанию).

Для завершения процесса создания таблицы просто щелкните Apply, а затем Finish на следующем экране. Затем вы сможете проверть в навигаторе, что таблица была создана, что показано на рис.10.

Рис.10 Просмотр новой таблицы в навигаторе

Обратите внимание, что на столбце первичного ключа создан индекс. MySQL автоматически называет индексы на первичном ключе PRIMARY, что может отличаться от того, что вы наблюдаете в других системах баз данных. Поскольку таблица может включать только один первичный ключ, проблем с дубликатами названий индексов не возникает.

Использование SQL для создания таблицы в базе данных MySQL

Функционал Workbench GUI может быть удобен для создания объектов базы данных, особенно, если вы новичок в MySQL или разработке баз данных. Он также может быть полезен в понимании различных опций, доступных при создании объекта. Однако большинство разработчиков предпочитает самим писать код SQL и, если вы уже имеете опыт работы с SQL, вам, вероятно, не составит труда адаптироваться к MySQL.

Имея это в виду, на следующем шаге мы создадим вторую таблицу в базе данных travel. Для этого вы можете использовать следующий оператор CREATE TABLE:

CREATE TABLE IF NOT EXISTS airplanes ( 
plane_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
plane VARCHAR(50) NOT NULL,
manufacturer_id INT UNSIGNED NOT NULL,
engine_type VARCHAR(50) NOT NULL,
engine_count TINYINT NOT NULL,
max_weight MEDIUMINT UNSIGNED NOT NULL,
icao_code CHAR(4) NOT NULL,
create_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_update TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (plane_id),
CONSTRAINT fk_manufacturer_id FOREIGN KEY (manufacturer_id)
REFERENCES manufacturers (manufacturer_id) )
ENGINE=InnoDB AUTO_INCREMENT=101;

По большей части CREATE TABLE придерживается стандарта SQL. Эта таблица подобна той, которую я создавал в первой статье этой серии. Она также использует некоторые элементы, аналогичные элементам таблицы manufacturers, созданной выше. Таблица содержит девять столбцов с разными типами данных и опциями, хотя все столбцы сконфигурированы как NOT NULL.

Стоит отметить один момент, связанный с столбцом max-weight, который имеет тип данных MEDIUMINT (беззнаковый). Вы помните, что этот тип данных лежит между типами данных SMALLINT и INT с точки зрения поддерживаемого диапазона чисел. Таким образом, вы имеете больше возможностей градации при работе с целыми значениями. Ни SQL Server, ни Oracle не поддерживают тип данных MEDIUMINT.

То, что вы еще не видели (по крайней мере, в этой и предыдущей статьях), это ограничение внешнего ключа (foreign key), которое определено для столбца manufacturer_id. Внешний ключ ссылается на столбец manufacturer_id в таблице manufacturers. Ограничение гарантирует, что любое значение, добавленное в таблицу airplanes, должно существовать в таблице manufacturers. Если вы попытаетесь добавить другое значение, то получите ошибку.

Определение таблицы также включает две табличных опции. Опция ENGINE задает InnoDB в качестве движка хранилища, а опция AUTO_INCREMENT устанавливает начальное значение в 101.

На данный момент оператор CREATE TABLE можно считать достаточно полным, поэтому вы можете двинуться дальше и выполнить его в Workbench. Затем вы можете увидеть таблицу в навигаторе, как показано на рис.11.

Рис.11 Просмотр таблицы airplanes в навигаторе

Как видно, под узлом Foreign Keys в навигаторе присутствует внешний ключ. Обратите внимание, что MySQL также добавил индекс для внешнего ключа, и дал ему такое же имя — foreign key. Мы обсудим индексы позже в этой серии статей.

Изменение определения таблицы в базе данных MySQL

Вы можете также использовать SQL для модификации определения таблицы в MySQL. Например, следующий оператор ALTER TABLE добавляет два столбца в таблицу airplanes:

ALTER TABLE airplanes 
ADD COLUMN wingspan DECIMAL(5,2) NOT NULL AFTER max_weight,
ADD COLUMN plane_length DECIMAL(5,2) NOT NULL AFTER wingspan;

Оба столбца имеют тип DECIMAL(5,2). Это означает, что каждый столбец может хранить до 5 цифр с двумя десятичными знаками.

Каждое определение столбца также включает предложение AFTER, которое определяет, куда добавить столбец в определении таблицы. Например, предложение AFTER в определении столбца wingspan указывает, что столбец должен быть добавлен после столбца weight, а предложение AFTER в определении столбца plane_length говорит, что этот столбец должен быть добавлен после столбца wingspan.

Когда вы выполняете этот оператор ALTER TABLE, MySQL обновит соответствующим образом таблицу airplanes. Вы можете затем увидеть эти новые столбцы в навигаторе.

Вы можете использовать также Workbench GUI для изменения определения таблицы. Для этого выполните щелчок правой кнопкой на таблице, а затем щелкните Alter Table — откроется вкладка Table. Здесь вы можете изменять определения столбов или опции таблицы. Вы можете также добавлять или удалять столбцы. На рис.12 показана вкладка Table с выбранными столбцами wingspan и plane_length, это те столбцы, которые вы только что добавили выше.

Рис.12 Простмотр новых столбцов в редакторе таблиц

Следующим шагом будет добавление сгенерированного столбца в таблицу. Сгенерированный столбец — это столбец, значение которого вычисляется с помощью выражения, подобно вычисляемым столбцам в базах данных SQL Server и Oracle.

Для добавления столбца выполните двойной щелчок на первой ячейке в первой пустой строке сетки таблицы (ниже определения столбца last_update), а затем напечатайте имя столбца — parking_area. В той же строке напечатайте тип данных INT, выберите опцию G (что означает GENERATED) и напечатайте wingspan*plane_length в столбце Default/Expression. Выражение умножает значение размаха крыльев на значение длины самолета для получения общей площади.

Когда вы создаете сгенерированный столбец в GUI, Workbench автоматически выбирает опцию Virtual в области подробностей столбца (внизу вкладки). Это означает, что значения столбца будут генерироваться по требованию, а не при сохранении в базе данных. Опция Stored делает обратное. Значение вычисляется, когда строка вставляется в таблицу, при этом значение сохраняется пока строка не будет обновлена или удалена. Для этой статьи я использовал опцию Stored.

После создания столбца вы можете перенести его в новое местоположение в списке столбцов, перетягивая его в желаемую позицию. В этом случае я переместил столбец parking_area после столбца plane_length, как показано на рис.13.

Рис.13 Добавление сгенерированного столбца в таблицу airplanes

Это все, что вам требуется сделать для добавления сгенерированного столбца в таблицу. Для завершения процесса щелкните Apply, что приведет к запуску мастера Apply SQL Script to Database. Здесь вы можете проверить скрипт SQL, как показано на рис.14.

Рис.14 Проверка нового столбца, добавленного в таблицу airplanes

Когда Workbench генерирует оператор ALTER TABLE, он добавляет предложение GENERATED ALWAYS AS, чтобы показать, что это сгенерированный столбец. (Ключевые слова GENERATED ALWAYS не являются обязательными, и вы можете опустить их при создании своего собственного оператора SQL.) Кроме того, предложение включает вычисляемое выражение в скобках.

Workbench добавляет также ключевое слово STORED к определению столбца, показывающее, что вычисляемые значения должны быть сохранены, а не вычисляться по требованию. Еще определение включает предложение AFTER, указывающее, что столбец должен быть добавлен после столбца plane_length.

Если все нормально, щелкните еще раз Apply, а затем Finish, чтобы завершить работу мастера. затем вы можете подтвердить обновление таблицы в навигаторе.

Удаление таблицы из базы данных MySQL

Как и при других DDL действиях в Workbench, вы можете использовать SQL или GUI для удаления таблицы из базы данных. Например, вы можете удалить таблицу airplanes, выполнив следующий оператор DROP TABLE, который включает дополнительное предложение IF EXISTS:

DROP TABLE IF EXISTS airplanes;

Вы можете также удалить таблицу в навигаторе. Для этого щелкните правой кнопкой на таблице, а затем щелкните Drop Table. Это приведет к появлению диалогового окна Drop Table, показанного на рис.15. Щелкните Drop Now для удаления таблицы.

Рис.15 Удаление таблицы в Workbench

Обратите внимание, что диалог включает также опцию Review SQL. Щелкните её, если вы захотите вместо этого просмотреть оператор DROP TABLE, который сгнерировал Workbench. Вы сможете затем выполнить отсюда этот оператор.

Работа с таблицами в базе данных MySQL

Таблицы MySQL поддерживают разнообразные опции как на уровне столбца, так и на уровне таблицы, больше, чем могут быть исчерпывающе рассмотрены в отдельной статье. Вы можете также создавать временные таблицы или секционированные таблицы. Вы не потратите зря время на просмотр документации MySQL по оператору CREATE TABLE. Вы сможете увидеть множество способов определения таблицы MySQL.

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Автор не разрешил комментировать эту запись

Как создавать таблицы в MySQL (Create Table)

Рассказываем о типах данных, атрибутах, ограничениях и об изменениях в уже созданной таблице.

Эта инструкция — часть курса «MySQL для новичков».

Смотреть весь курс

Введение

В данной статье мы рассмотрим, как правильно создавать таблицы в MySQL. Для этого разберем основные типы данных, атрибуты, ограничения, и что можно исправить в уже созданной таблице. Чтобы сократить последующие изменения, стоит заранее продумать структуру таблицы и ее содержимое. Наиболее важные пункты:

  • Названия таблиц и столбцов.
  • Типы данных столбцов.
  • Атрибуты и ограничения.

Ниже разберем подробнее, как реализовать этот короткий список для MySQL наиболее эффективно.

Синтаксис Create table в MySQL и создание таблиц

Поскольку наш путь в базы данных только начинается, стоит вспомнить основы. Реляционные базы данных хранят данные в таблицах, и каждая таблица содержит набор столбцов. У столбца есть название и тип данных. Команда создания таблицы должна содержать все вышеупомянутое:

CREATE TABLE table_name ( column_name_1 column_type_1, column_name_2 column_type_2, . column_name_N column_type_N, ); 

table_name — имя таблицы;

column_name — имя столбца;

column_type — тип данных столбца.

Теперь разберем процесс создания таблицы детально.

Названия таблиц и столбцов

Таблицы и столбцы стоит называть осмысленно и прозрачно, чтобы было понятно, как другому разработчику, так и вам самим спустя полгода. Даже если это учебная база только для вашего пользования, рекомендуем сразу привыкать делать правильно.

Имена могут содержать символы подчеркивания для большей наглядности. Классический пример непонятных названий — table1, table2 и т. п. Использование транслита, неясных сокращений и, разумеется, наличие орфографических ошибок тоже не приветствуется. Хороший пример коротких информативных названий: Customers, Users, Orders, так как по названию таблицы должно быть очевидно, какие данные таблица будет содержать. Эта же логика применима и к названию столбцов.

Максимальная длина названия и для таблицы, и для столбцов — 64 символа.

Типы данных столбцов

Для каждого столбца таблицы будет определен тип данных. Неправильное использование типов данных увеличивает как объем занимаемой памяти, так и время выполнения запросов к таблице. Это может быть незаметно на таблицах в несколько строк, но очень существенно, если количество строк будет измеряться десятками и сотнями тысяч, и это далеко не предел для рабочей базы данных. Проведем краткий обзор наиболее часто используемых типов.

Числовые типы
  • INT — целочисленные значения от −2147483648 до 2147483647, 4 байта.
  • DECIMAL — хранит числа с заданной точностью. Использует два параметра — максимальное количество цифр всего числа (precision) и количество цифр дробной части (scale). Рекомендуемый тип данных для работы с валютами и координатами. Можно использовать синонимы NUMERIC, DEC, FIXED.
  • TINYINT — целые числа от −127 до 128, занимает 1 байт хранимой памяти.
  • BOOL — 0 или 1. Однозначный ответ на однозначный вопрос — false или true. Название столбцов типа boolean часто начинается с is, has, can, allow. По факту это даже не отдельный тип данных, а псевдоним для типа TINYINT (1). Тип настолько востребован на практике, что для него в MySQL создали встроенные константы FALSE (0) или TRUE (1). Можно использовать синоним BOOLEAN.
  • FLOAT — дробные числа с плавающей запятой (точкой).
Символьные
  • VARCHAR(N) — N определяет максимально возможную длину строки. Создан для хранения текстовых данных переменной длины, поэтому память хранения зависит от длины строки. Наиболее часто используемый тип строковых данных.
  • CHAR(N) — как и с varchar, N указывает максимальную длину строки. Char создан хранить данные строго фиксированной длины, и каждая запись будет занимать ровно столько памяти, сколько требуется для хранения строки длиной N.
  • TEXT — подходит для хранения большого объема текста до 65 KB, например, целой статьи.
Дата и время
  • DATE — только дата. Диапазон от 1000-01-01 по 9999-12-31. Подходит для хранения дат рождения, исторических дат, начиная с 11 века. Память хранения — 3 байта.
  • TIME — только время — часы, минуты, секунды — «hh:mm:ss». Память хранения — 3 байта.
  • DATETIME — соединяет оба предыдущих типа — дату и время. Использует 8 байтов памяти.
  • TIMESTAMP — хранит дату и время начиная с 1970 года. Подходит для большинства бизнес-задач. Потребляет 4 байта памяти, что в два раза меньше, чем DATETIME, поскольку использует более скромный диапазон дат.
Бинарные

Используются для хранения файлов, фото, документов, аудио и видеоконтента. Все это хранится в бинарном виде.

Подробный разбор типов данных, включая более специализированные типы, например, ENUM, SET или BIGINT UNSIGNED, будет в отдельной тематической статье.

Практика с примерами

Для лучшего понимания приведем пример, создав простую таблицу для хранения данных сотрудников, где

  • id — уникальный номер,
  • name — ФИО,
  • position — должность
  • birthday — дата рождения

Синтаксис create table с основными параметрами:

CREATE TABLE Staff ( id INT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday Date ); 

Тут могут появиться вопросы. Откуда MySQL знает, что номер уникален? Если еще нет должности для этого сотрудника, что будет, если оставить поле пустым?
Все это (как и многое другое) придется указать с помощью дополнительных параметров — атрибутов.

Часто таблицы создаются и заполняются скриптами. Если мы вызовем команду CREATE TABLE Staff, а таблица Staff уже есть в базе, команда выдаст ошибку. Поэтому перед созданием разумно проверить, содержит ли уже база таблицу Staff. Достаточно добавить IF NOT EXISTS, чтобы выполнить эту проверку в MySQL, то есть вместо

CREATE TABLE Staff 
CREATE TABLE IF NOT EXISTS Staff 

Повторный запуск команды выведет предупреждение:

1050 Table 'Staff' already exists 

Если таблица уже создана и нужно создать таблицу с тем же именем с «чистого листа», старую таблицу можно удалить командой:

DROP TABLE table_name; 

Облачные базы данных

Готовые к работе кластеры баз данных в облаке с развертыванием в несколько кликов.

Атрибуты (ATTRIBUTES) и ограничения (CONSTRAINTS)

PRIMARY KEY

Предназначение индексов — обеспечить быстрый доступ к табличным данным. Основная идея — существенное ускорение поиска. Создание первичного ключа, внешних ключей, определение уникальных значений в столбце — во всех этих случаях будут созданы индексы. Существуют определенные ограничения на построения индексов в зависимости от типов данных, но разбор этих нюансов будет в других статьях.

Пользы индексов на примерах: для поиска уникального значения среди 10000 строк придется проверить, в худшем случае, все 10000 без индекса, с индексом — всего 14. Поиск по миллиону записей займет не больше в 20 проверок — это реализация идеи бинарного поиска.

Создадим таблицу Staff с номером сотрудника в качестве первичного ключа. Первичный ключ гарантирует нам, что номер точно будет уникальным, а поиск по нему — быстрым.

CREATE TABLE Staff ( id INT PRIMARY KEY, name VARCHAR(255), position VARCHAR(30), birthday Date, has_children BOOLEAN ); 

NOT NULL

При заполнении таблицы мы утверждаем, что значение этого столбца должно быть установлено. Если нет явного указания NOT NULL, и этот столбец не PRIMARY KEY, то столбец позволяет хранить NULL, то есть хранение NULL — поведение по умолчанию. Для первичного ключа это ограничение можно не указывать, так как первичный ключ всегда гарантирует NOT NULL.

Изменим команду CREATE TABLE, добавив NOT NULL ограничения: таким образом, мы обозначим обязательные для заполнения столбцы (т.е. столбцы, поля в которых не могут оставаться пустыми при наличии записи в таблице):

CREATE TABLE Staff ( id INT PRIMARY KEY, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_children BOOLEAN NOT NULL ); 

DEFAULT

Можно указать значение по умолчанию, т.е. текст или число, которые будут сохранены, если не указано другое значение. Применяется не ко всем типам: BLOB, TEXT, GEOMETRY и JSON не поддерживают это ограничение.
Эта величина должна быть константой, функция или выражение не допустимы.

Продолжим изменять команду, установив ограничение DEFAULT для поля BOOLEAN.

CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_children BOOLEAN DEFAULT(FALSE) NOT NULL ); 

Для типа данных BOOLEAN можно использовать встроенные константы FALSE и TRUE. Вместо DEFAULT(FALSE) можно указать DEFAULT(0) — эти записи эквивалентны.

AUTO_INCREMENT

Каждый раз, когда в таблицу будет добавлена запись, значение этого столбца автоматически увеличится. На всю таблицу этот атрибут применим только к одному столбцу, причем этот столбец должен быть ключом. Рекомендуется использовать для целочисленных значений. Нельзя сочетать с DEFAULT.

CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_children BOOLEAN DEFAULT(FALSE) NOT NULL ); 

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

Интересно, что при CREATE TABLE MySQL не позволяет установить стартовое значение для AUTO_INCREMENT. Можно назначить стартовое значение для счетчика AUTO_INCREMENT уже созданной таблицы.

ALTER TABLE Staff AUTO_INCREMENT=10001; 

Первая запись после такой модификации получит >

UNIQUE

Это ограничение устанавливает, что все значения данного столбца будут уникальны в пределах таблицы, и создает индекс. Можно применять к столбцам с поддержкой NULL, но так как NULL будет считаться уникальным значением, возможна только одна NULL-запись.

CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_child BOOLEAN DEFAULT(0) NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL ); 

CHECK

Позволяет установить дополнительную проверку данных для столбца или набора столбцов. Это тоже CONSTRAINT, так как накладывает ограничение.
На примере ограничим дату рождения сотрудника.

Синтаксис позволяет устанавливать CHECK как в описании столбца при CREATE TABLE:

birthday DATE NOT NULL CHECK (birthday > ‘1900-01-01’), 

так отдельно от описания столбцов:

CHECK (birthday > ‘1900-01-01’), 

В этих случаях название проверки будет определено автоматически. При вставке данных, не прошедших проверку, будет сообщение об ошибке Check constraint ‘staff_chk_1’ is violated. Ситуация усложняется, когда установлено несколько CHECK, поэтому рекомендуется давать понятное имя.

Воспользуемся полной командой для создания CHECK и определим не только ограничение даты рождения, но и допустимые форматы телефона через регулярное выражение.

CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_child BOOLEAN DEFAULT(0) NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL, CONSTRAINT staff_chk_birthday CHECK (birthday > '1900-01-01'), CONSTRAINT staff_chk_phone CHECK (phone REGEXP '[+]?[0-9] ?\\(?[0-9]\\)? ?[0-9][0-9 -]+[0-9]') ); 

Для добавления ограничений используем оператор CONSTRAINT, при этом, все названия уникальны, как и имена таблиц. Учитывая, что по умолчанию названия включают в себя и имя таблицы, рекомендуем придерживаться этого правила. Если используется CONSTRAINT, мы обязаны дать имя ограничению, которое вводим.

FOREIGN KEY или внешний ключ

Внешний ключ — это ссылка на столбец или группу столбцов другой таблицы. Это тоже ограничение (CONSTRAINT), так как мы сможем использовать только значения, для которых есть соответствие по внешнему ключу. Таблицу с внешним ключом называют зависимой.

FOREIGN KEY (column_name1, column_name2) REFERENCES external_table_name(external_column_name1, external_column_name2) 

Сначала указывается выражение FOREIGN KEY и набор столбцов таблицы, откуда строим FOREIGN KEY. Затем ключевое слово REFERENCES указывает на имя внешней таблицы и набор столбцов этой внешней таблицы. В конце можно добавить операторы ON DELETE и ON UPDATE, с помощью которых настраивается поведение при удалении или обновлении данных в главной таблице. Это делать не обязательно, так как предусмотрено поведение по умолчанию. Поведение по умолчанию запрещает удалять или изменять записи из внешней таблицы, если на эти записи есть ссылки по внешнему ключу.

Возможные опции для ON DELETE и ON UPDATE:

CASCADE: автоматическое удаление/изменение строк зависимой таблицы при удалении/изменении связанных строк главной таблицы.
SET NULL: при удалении/изменении связанных строк главной таблицы будет установлено значение NULL в строках зависимой таблицы. Столбец зависимой таблицы должен поддерживать установку NULL, т.е. параметр NOT NULL в этом случае устанавливать нельзя.
RESTRICT: не даёт удалить/изменить строку главной таблицы при наличии связанных строк в зависимой таблице. Если не указана иная опция, по умолчанию будет использовано NO ACTION, что, по сути, то же самое, что и RESTRICT.

Рассмотрим пример:
Для таблицы Staff было определено текстовое поле position для хранения должности.
Так как список сотрудников в компании обычно больше, чем список занимаемых должностей, есть смысл создать справочник должностей.

CREATE TABLE Positions ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); 

Поскольку из Staff мы будем ссылаться на Positions, таблица персонала Staff будет зависимой от Positions. Изменим синтаксис CREATE TABLE для таблицы Staff, чтобы должность была ссылкой на запись в таблице Positions.

CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position_id int, birthday DATE NOT NULL, has_child BOOLEAN DEFAULT(0) NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL, FOREIGN KEY (position_id) REFERENCES Positions (id) ); 

При CREATE TABLE, чтобы не усложнять описание столбца, рекомендуется указывать внешний ключ и все его атрибуты после перечисления создаваемых столбцов.
Можно ли добавить внешний ключ, если таблица уже создана и в ней есть данные? Можно! Для внесения изменений в таблицу используем ALTER TABLE.

ALTER TABLE Staff ADD FOREIGN KEY (position_id) REFERENCES Positions(id); 

Или в развернутой форме, определяя имя ключа fk_position_id явным образом:

ALTER TABLE Staff ADD CONSTRAINT fk_position_id FOREIGN KEY (position_id) REFERENCES Positions(id); 

Главное условие в этом случае — согласованность данных. Это значит, что для всех записей внешнего ключа position_id должно найтись соответствие в целевой таблице Positions по столбцу id.

Создание таблиц на основе уже существующих, временные таблицы

Мы рассмотрели создание таблицы с «чистого листа», но есть два других способа:

LIKE

Создание таблицы на основе уже существующей таблицы. Копирует структуру — количество, названия и типы столбцов, индексы, все ограничения, кроме внешних ключей. Как мы помним, внешний ключ создает индекс. При создании через LIKE индексы в новой таблице будут построены также, как и в старой, но внешние ключи не скопируются. Таблица будет создана без записей и без счетчиков AUTO_INCREMENT.

CREATE TABLE new_table LIKE source_table; 

SELECT

Можно создать таблицу на основе SELECT-запроса — результат этой выборки будет записан в новую таблицу. Такая таблица не будет иметь индексов, ограничений и ключей. Все столбцы, с учетом порядка, типов данных и названий, будут взяты из запроса — поля из SELECT станут столбцами новой таблицы. При этом можно переопределить изначальные названия полей, что особенно актуально, когда в выборку попадают столбцы с одинаковыми названиями (на уровне таблицы названия столбцов всегда уникальны).

CREATE TABLE new_table [AS] SELECT * FROM source_table; 

Разберем пример создания новой таблицы через SELECT, используя две таблицы в выборке — Staff и Positions. В запросе определим три поля: id, staff, position — это будут столбцы новой таблицы StaffData211015 (срез сотрудников на определённую дату). Без присвоения псевдонимов (name as staff, name as position) в выборке получилось бы два одинаковых поля name, что не позволило бы создать таблицу из-за duplicate column name ошибки.

CREATE TABLE StaffData211015 SELECT s.Id, s.name as staff, p.name as position FROM Staff s JOIN Positions p ON s.position_id = p.id 

TEMPORARY

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

Чтобы обозначить таблицу как временную, нужно добавить TEMPORARY в CREATE TABLE:

CREATE TEMPORARY TABLE table_name; 

Работа с уже созданной таблицей

Когда таблица создана, работа с ней только начинается. Операторы и команды для работы с данными рассмотрены в другой статье, а сейчас посмотрим, что же можно исправить, если потребовалось внести изменения.

Переименование

Ключевая команда — RENAME.

  • Изменить имя таблицы:
RENAME TABLE old_table_name TO new_table_name; 
  • Изменить название столбца:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name; 

Удаление данных

  • DELETE FROM Staff; — удалит все записи из таблицы. Условие в WHERE позволит удалить только определенные строки, в примере ниже удалим только одну строку с DELETE FROM Staff WHERE TABLE Staff; — используется для полной очистки всей таблицы. При TRUNCATE счетчики AUTO_INCREMENT сбросятся. Если бы мы удалили все в строки командой DELETE, то новые строки учитывали бы накопленный за время жизни таблицы AUTO_INCREMENT.
  • DROP TABLE Staff; — команда удаления таблицы.

Изменение структуры таблицы

Команда ALTER TABLE включает в себя множество опций, рассмотрим основные вместе с примерами на таблице Staff.

Добавление столбцов

Добавим три столбца: электронную почту, возраст и наличие автомобиля. Так как в таблице уже есть записи, мы не можем пока что отметить эти поля как NOT NULL, по умолчанию они будут позволять хранить NULL.

ALTER TABLE Staff ADD email VARCHAR(50), ADD age INT, ADD has_auto BOOLEAN; 
Удаление столбцов

Удалим столбец с возрастом, так как сейчас возраст сотрудников в базе всегда статичен, а должен быть вычисляемым полем в зависимости от текущей даты.

ALTER TABLE Staff DROP COLUMN age; 
Значение по умолчанию

Выставим значение по умолчанию для столбца has_auto:

ALTER TABLE Staff ALTER COLUMN has_auto SET DEFAULT(FALSE); 
Изменение типа данных столбца

Для столбца name изменим тип данных:

ALTER TABLE Staff MODIFY COLUMN name VARCHAR(500) NOT NULL; 

Максимальная длина поля была увеличена. Если не указать NOT NULL явно, то поле станет NULL по умолчанию.

Установка CHECK

Добавим ограничение формата для email через регулярное выражение:

ALTER TABLE Staff ADD CONSTRAINT staff_chk_email CHECK (email REGEXP '^[^@]+@[^@]+\\.[^@]$'); 

Заключение

Любой путь начинается с первых шагов. В работе с базами данных этими шагами является создание структуры таблиц. Продуманная композиция сущностей (таблиц) и связей между ними — основа проектирования любого вашего приложения от интернет-магазинов до мощных систем управления предприятиями.

Как создавать таблицы в MySQL

Существует два популярных типа баз данных: реляционные и нереляционные. Нереляционные предполагают отказ от табличной модели хранения. В них используется модель, которая оптимально подходит под конкретные требования типа хранимых данных. Так, в нереляционных БД данные могут храниться в виде пары «ключ — значение», JSON-файлов или графов.

Реляционные базы данных — это привычные нам таблицы с предопределёнными связями между данными. Информация хранится в строках и столбцах, и каждая строка содержит какие-то данные, относящиеся к одному объекту/сущности. Среди реляционных БД известны Oracle DB, PostgreSQL, MySQL и т. д. Давайте разберёмся, как создать MySQL таблицу, менять её и вносить данные.

Синтаксис CREATE TABLE

Перед созданием таблицы укажите базу данных, в которую она будет записана. Это делается командой USE:

Для создания таблиц в MySQL используются особые запросы с указанием атрибутов таблицы. В этих запросах также описываются типы данных в атрибутах, их описание и ограничения. Самый распространённый способ создания таблиц MySQL с нуля — это с помощью инструкции CREATE TABLE. Вот пример, как создать таблицу MySQL:

CREATE TABLE Table_Name
(
column_name_one column_type_one,
column_name_two column_type_two,
.
column_name_X column_type_X,
);

Синтаксис простой. Table_Name — имя создаваемой таблицы (рекомендуем присваивать осмысленное имя), column_name — имя столбца, а column_type — тип данных, которые будут храниться в столбце.

Можно создать MySQL таблицу, скопировав уже существующую. Для этого используется сочетание CREATE TABLE и SELECT. Например, так: CREATE TABLE New_Table_Name [AS] SELECT * FROM Original_Table_Name;

Для переименования уже созданной таблицы используйте команду RENAME TABLE:

RENAME TABLE old_name TO new_name;

Дополнительные параметры таблиц

В описание иногда необходимо добавлять следующие параметры:

  • PRIMARY KEY — определяем колонку или множество колонок как первичный ключ.
  • AUTO_INCREMENT— определяем, что значение колонки при появлении в таблице новых записей автоматически увеличивается. В таблице можно задавать только одну AUTO_INCREMENT колонку.
  • UNIQUE — определяем, что все значения в колонке для всех записей должны быть уникальными.
  • NOT NULL — определяем, что значения в колонке не должны быть нулевыми (Null).
  • DEFAULT — задаём значения по умолчанию. Параметр не применим к типам BLOB, TEXT, GEOMETRY и JSON.

Названия таблиц и столбцов

Старайтесь присваивать осмысленные названия для таблиц и столбцов, тогда и вам, и другому разработчику даже через год будет понятно, где что находится. Использование транслита или стандартных имён вроде table1/table2 не приветствуется. А вот названия Users, Sales, Calls информативны и логичны — по ним легко определить, что за данные содержатся в таблице. Аналогичный подход рекомендуется и при переименовании столбцов. Максимальная длина названия — 64 символа.

Типы данных в MySQL

MySQL поддерживает работу с разными типами данных. Их можно разделить на числовые, символьные, бинарные и временные типы. Расскажем детальнее о каждом.

Числовые типы данных в MySQL

К этому типу относятся диапазон целочисленных значений от −2147483648 до 2147483647. Занимает в памяти 4 байта.

Используется для хранения точных дробных чисел (число занимаемых в памяти байт зависит от выбранной точности). Может принимать два параметра DECIMAL(precision, scale). Этот тип рекомендуется для работы с валютами и координатами.

Используется для хранения целых чисел от −127 до 128. Занимает 1 байт памяти. Атрибут UNSIGNED позволяет запретить отрицательные значения.

Используется для однозначного ответа 0 или 1 на вопрос «false» или «true». Имеет синоним BOOLEAN.

Используется для хранения дробных чисел с плавающей запятой (точкой) хранит до 24 знаков после запятой. Занимает 4 байта в памяти.

Станьте нашим партнёром и получайте доход
до 40% от каждого клиентаСтать партнёром

Символьные типы данных в MySQL

Используется для хранения текстовых данных переменной длины. Занимаемая память зависит от длины строки. Параметр N определяет максимальную длину строки.

Используется для хранения данных фиксированной длины. Каждая запись занимает ровно столько памяти, сколько необходимо для хранения строки длиной N. Параметр N определяет максимальную длину строки.

Используется для хранения текстовых данных объёмом до 65 KB

Временные типы данных в MySQL

Хранится только дата в диапазоне от 1000-01-01 по 9999-12-31 и формате ‘YYYY-MM-DD’. Используется для хранения дат рождения, исторических дат, начиная с 11 века. Занимает 3 байта памяти.

Хранится только время в диапазоне от ‘-838:59:59.00’ до ‘838:59:59.00’ и формате ‘hh:mm:ss’. Занимает 3 байта памяти.

Объединяет дату и время в диапазоне от 1001 по 9999 год в формате: ‘YYYY-MM-DD hh:mm:ss’. Не зависит от часового пояса. Точность — до 1 секунды. Занимает 8 байт памяти.

Хранит дату и время в диапазоне от ‘1970-01-01 00:00:01’ до ‘2038-01-19 03:14:07’ в виде количества секунд (и микросекунд). Занимает 4 байта памяти. Зависит от часового пояса.

Бинарные типы данных в MySQL

Используется для хранения в бинарном виде файлов, фото, документов, аудио и видеоконтента объёмом до 65 КБ.

Используется для хранения в бинарном виде файлов, фото, документов, аудио и видеоконтента объёмом до 4 ГБ.

Изменение структуры таблицы

Команда ALTER TABLE позволяет быстро добавить столбцы. Можно добавить одновременно несколько столбцов с разными данными. Вот пример, как добавить в MySQL столбцы с почтой возрастом, семейным статусом сотрудников:

ALTER TABLE Table_name
ADD email VARCHAR(50),
ADD age INT,
ADD has_family BOOLEAN;

Удаление таблицы

Для удаления таблицы используется оператор DROP TABLE. Эта процедура навсегда удаляет все хранящиеся в таблице данные, индексы, триггеры, ограничения и разрешения. Пример команды на удаление таблицы MySQL:

DROP TABLE Table_name;

Будьте осторожны с командой удаления таблицы — вернуть данные обратно без наличия бэкапов будет почти невозможно.

Как работать с таблицами в MySQL

MySQL – одна из наиболее часто используемых систем управления реляционными базами данных (СУБД). Это позволяет очень эффективно работать с большими объемами данных. Самым важным объектом любой базы данных является таблица, и с ней связано несколько различных операций, с помощью которых вы можете управлять своими данными. Поэтому сегодня мы научимся работать с таблицами в MySQL и MariaDB в Ubuntu 20.04.

Работа с таблицами (выбор, обновление, удаление, создание таблицы, изменение таблицы и удаление таблицы) в MySQL в Ubuntu 20.04:

Для работы с таблицами в MySQL в Ubuntu 20.04 вы можете пройти все шаги, описанные ниже:

Шаг № 1. Убедитесь, что в вашей системе Ubuntu 20.04 установлена ​​база данных, совместимая с MySQL.

Если вы собираетесь работать с таблицами в MySQL, у вас должен быть установлен MySQL или MariaDB. Чтобы проверить, установлен ли MySQL в нашей системе или нет, мы выполним следующую команду в нашем терминале:

mysql --version

Если MySQL будет установлена в вашей системе, вы сможете увидеть ее версию после выполнения этой команды:

В случае если MySQL отсутствует, вы можете легко установить ее, следуя этому руководству.

Шаг № 2: Войдите в MySQL Shell из терминала Ubuntu 20.04:

Убедившись, что MySQL присутствует в вашей системе, вы можете получить доступ к оболочке MySQL. Выполните следующую команду:

sudo mysql

Вы войдете в оболочку MySQL, как показано на изображении ниже:

Шаг № 3: Создайте базу данных в MySQL в Ubuntu 20.04:

Теперь, когда мы находимся внутри оболочки MySQL, первое, что нам нужно сделать, это создать базу данных, чтобы мы могли создавать внутри нее таблицы для выполнения различных операций. База данных в MySQL может быть создана с помощью следующей команды:

mysql> create database DBName;

Здесь вам нужно заменить DBName любым именем, которое вы хотите для своей базы данных. Назовем ее DBTest.

Как только ваша база данных будет создана, вы получите сообщение в оболочке MySQL, подобное тому, которое показано на изображении ниже:

Шаг №4: Переключитесь на созданную базу данных в MySQL:

Когда база данных с желаемым именем была создана, вам необходимо переключиться на эту базу данных, чтобы при создании таблиц они были созданы внутри этой базы данных. Без выбора конкретной базы данных вам не разрешено создавать таблицы в MySQL. Чтобы переключиться на нашу вновь созданную базу данных, мы запустим следующую команду:

mysql> use DBTest;

Когда эта база данных будет выбрана успешно, вы получите сообщение, показанное на изображении ниже, в оболочке MySQL.

Шаг № 5: Создайте таблицу в MySQL в Ubuntu 20.04:

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

mysql> CREATE TABLE TableName(Col1 Datatype, Col2 Datatype, ….);

Здесь вы должны заменить TableName любым именем, которое вы хотите для своей таблицы. Мы назвали ее Student. Col1, Col2 и т.д. представляют имена столбцов вашей базы данных, тогда как Datatype относится к типам данных каждого из этих столбцов соответственно. Вы можете создать столько столбцов или атрибутов для своей таблицы, сколько захотите. Мы создали три столбца с именами StudentID, StudetName и StudentAge с типами данных int, varchar (255) и int соответственно.

Шаг № 6: Вставьте записи в недавно созданную таблицу в MySQL:

После того, как таблица была создана в базе данных MySQL, мы можем вставлять записи в эту таблицу, выполнив следующую команду:

mysql> INSERT INTO Student VALUES (1, 'Sergey', 24);

Вы можете изменить эти значения по своему усмотрению. Когда наша новая запись будет успешно добавлена ​​в нашу таблицу, мы получим сообщение, показанное на изображении ниже, в оболочке MySQL.

Таким же образом мы вставили еще одну запись, как показано на следующей картинке:

t

Шаг № 7: Отобразите записи вашей таблицы в MySQL:

Когда мы добавили несколько записей в нашу таблицу, самое время просмотреть эти записи. Для этого используется оператор SELECT. Если вы хотите отобразить все записи или записи вашей таблицы в MySQL сразу, вы можете выполнить следующую команду:

mysql> SELECT * From Student;

Выполнение этой команды отобразит все записи вашей таблицы в красивой табличной форме, как показано на изображении ниже:

Шаг № 8: Обновите запись в таблице в MySQL:

Команда UPDATE в MySQL используется для изменения значений любой конкретной записи. Например, если вы хотите изменить значения какой-либо записи вашей таблицы, вам необходимо выполнить следующую команду:

mysql> UPDATE Student SET StudentName='Elena', StudentAge=21 WHERE StudentID=2; 

Здесь вы можете заменить значение StudentID на идентификатор записи, которую вы хотите изменить.

Мы можем проверить, произошли ли указанные изменения или нет, снова используя тот же оператор SELECT для просмотра записей нашей таблицы. На следующем изображении вы можете видеть, что наша указанная запись была успешно обновлена.

Шаг № 9: Измените таблицу в MySQL в Ubuntu 20.04:

Команда ALTER в MySQL используется для добавления или удаления указанного столбца из таблицы. Например, если мы хотим удалить какой-либо конкретный столбец из нашей таблицы, мы выполним следующую команду:

mysql> ALTER TABLE Student Drop COLUMN StudentAge;

Здесь вы можете заменить StudentAge любым столбцом по вашему выбору, который хотите удалить.

Чтобы проверить, был ли удален указанный столбец, мы снова запустим команду SELECT, и ее результаты показаны на следующем изображении, которое подтверждает, что указанный столбец был успешно удален.

Таким же образом вы даже можете добавить новый столбец в свою таблицу, заменив ключевое слово DROP на ADD и StudentAge на имя вашего нового столбца, который нужно добавить.

Шаг № 10: Удаление определенной записи из таблицы в MySQL в Ubuntu 20.04:

Оператор ALTER в MySQL используется для добавления или удаления столбцов. Однако, если вы хотите удалить определенную запись из таблицы в MySQL, вам необходимо выполнить следующую команду:

mysql> DELETE FROM Student WHERE StudentID=1;

Если указанная запись успешно удалена, вы получите сообщение, показанное на изображении ниже, в оболочке MySQL.

Мы можем проверить это, запустив команду SELECT еще раз, и ее результаты показаны на следующем изображении, которое подтверждает, что наша желаемая запись была удалена из таблицы.

Шаг № 11: Удалите все записи из таблицы в MySQL в Ubuntu 20.04:

Теперь, если вы хотите избавиться от всех записей своей таблицы в MySQL сразу, вы можете выполнить следующую команду:

mysql> DELETE FROM Student;

Когда эта команда будет выполнена успешно, вы получите сообщение, показанное на изображении ниже, в оболочке MySQL.

В идеале эта команда должна очистить все записи в вашей таблице, которые можно проверить, снова запустив команду SELECT, как показано на следующем изображении. Получение сообщения Empty Set указывает на то, что все записи из нашей указанной таблицы были успешно удалены.

Шаг № 12: Удалим таблицу в MySQL в Ubuntu 20.04:

Наконец, мы можем удалить таблицу, выполнив следующую команду:

mysql> DROP Table Student;

При успешном выполнении этой команды выбранная таблица будет удалена, а сообщение, показанное на изображении ниже, подтверждает это удаление.

Шаг № 13: Удаление базы данных

В заключении удалим саму базу:

mysql> DROP DATABASE DBTest;

Список баз MySQL можно посмотреть командой:

mysql> SHOW DATABASES;

Как видите, мы удалили базу DBTest

Сегодняшняя статья была в основном учебным пособием для начинающих по работе с таблицами в MySQL в Ubuntu 20.04. Мы рассмотрели основные операции в MySQL на очень простых примерах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *