MySQL MariaDB

Использование уникальных ограничений MySQL

Использование уникальных ограничений MySQL
MySQL CONSTRAINT отбрасывается, чтобы описать правила, которые разрешают или ограничивают значения в полях, которые могут содержать или ограничивать данные, которые могут быть введены в строки. Целью введения ограничений является поддержание доверия к базе данных. Одно из них - УНИКАЛЬНОЕ ограничение.

Ограничение UNIQUE гарантирует, что почти все элементы в поле отличаются друг от друга. Для поля или группы полей пределы УНИКАЛЬНОГО и ПЕРВИЧНОГО КЛЮЧА взаимно гарантируют индивидуальность. Тем не менее, у нас может быть несколько УНИКАЛЬНЫХ ограничений в каждой таблице, хотя вместо этого для каждой таблицы может быть установлено одно ограничение ПЕРВИЧНОГО КЛЮЧА. Давайте узнаем это, попробовав несколько примеров.

Уникальное ограничение через Workbench:

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

В области запроса вы должны написать следующую команду, чтобы создать таблицу «Человек». В этой таблице 4 столбца с одним первичным ключом. Мы должны указать один уникальный столбец. Как видите, мы очистили столбец Id от столбца UNIQUE:

>> СОЗДАТЬ ТАБЛИЦУ Человек (ID int PRIMARY KEY NOT NULL, LastName varchar (255) NOT NULL, FirstName varchar (255), Age int, UNIQUE (ID));

Теперь таблица «Человек» создана со своим «УНИКАЛЬНЫМ» столбцом «ID». Таблицу можно найти в разделах «Навигатор» и «Схемы», а в списке «Таблицы».

При вставке записей, когда вы нажимаете на кнопку «Применить», он просматривает вставленные записи, как показано ниже. Вы можете видеть, что у нас есть одна дублированная запись в строках 3 и 4 с одинаковым «ID». Нажмите кнопку «Применить», чтобы применить изменения.

На изображении ниже генерируется ошибка, связанная с дублированием столбца «ID», который представляет собой значение «13».

После исправления записи, когда вы примените изменения, она будет работать правильно.

Уникальное ограничение через оболочку командной строки:

В оболочке командной строки MySQL мы будем добавлять УНИКАЛЬНЫЕ ключи в один или несколько столбцов. Сначала откройте командную строку, чтобы получить представление о каждом из приведенных ниже примеров. Введите свой пароль, чтобы использовать командную оболочку.

Пример 01: в одном столбце

В этом синтаксисе, как и в спецификации столбца, мы используем УНИКАЛЬНЫЙ термин, к которому вы хотите применить закон уникальности. После того, как мы вставим или изменим значение, которое создает дубликаты в конкретном столбце, MySQL отклонит изменение, и также будет выдано исключение. В этом конкретном пределе будет ограничение на столбцы. И вы можете использовать это для реализации уникального правила одного поля. Вот синтаксис ключа UNIQUE, состоящего из одного столбца:

>> СОЗДАТЬ ТАБЛИЦУ имя_таблицы (тип данных col UNIQUE, тип данных col);

Создадим в базе данных data таблицу «поставщик» с тремя столбцами в ней. Столбец «ID» определен как «УНИКАЛЬНЫЙ».

>> СОЗДАТЬ ТАБЛИЦУ данные.поставщик (идентификатор INT AUTO_INCREMENT NOT NULL UNIQUE, имя VARCHAR (50) NOT NULL, область VARCHAR (50));

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

>> ВЫБРАТЬ * ИЗ данных.поставщик;

Вставим записи в таблицу. Первая запись будет плавно вставлена ​​в таблицу, как показано ниже.

Вторая запись будет вставлена ​​снова плавно, поскольку в столбце «ID» нет повторяющихся значений. С другой стороны, он принимает то же значение, что и в первом запросе в столбце «Площадь».

При вставке третьей записи мы предоставили повторяющееся значение «1», как мы предоставили в первом операторе вставки. Это приведет к ошибке, что столбец «ID» получает повторяющееся значение, как показано на изображении ниже.

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

>> ВЫБРАТЬ * ИЗ данных.поставщик;

Пример 02: На нескольких столбцах

В этом формате после УНИКАЛЬНОГО термина мы применяем набор столбцов, разделенных запятыми, в скобках. Состав значений в поле col1 и col2 используется MySQL для определения уникальности.

>> СОЗДАТЬ ТАБЛИЦУ имя_таблицы (тип данных col1, тип данных col2, UNIQUE (col1, col2));

Мы создали таблицу «министр» в базе данных «данные» с пятью столбцами. Столбец «ID» определяется как «УНИКАЛЬНЫЙ» и «ОСНОВНОЙ». Ключевое слово «CONSTRAINT» используется для обозначения уникального ключевого ограничения как «uc_add_sal». Ключевое слово «UNIQUE» используется для определения ограничения UNIQUE для столбцов, указанных в скобках, e.грамм., Адрес и «Заработная плата». Теперь у нас есть всего три столбца с ограничением UNIQUE.

>> СОЗДАТЬ ТАБЛИЦУ данные.министр (Mid INT AUTO_INCREMENT PRIMARY KEY NOT NULL UNIQUE, имя VARCHAR (50) NOT NULL, адрес VARCHAR (50), Job VARCHAR (50), Salary VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (Address, Salary));

Проверив таблицу, вы увидите, что она сейчас пуста.

>> ВЫБРАТЬ * ИЗ данных.министр;

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

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

Это не влияет на то, когда мы вводим повторяющиеся значения для столбцов, для которых нет ограничения «UNIQUE». Взгляните на запрос ниже. Он имеет повторяющееся значение в столбцах «Имя» и «Работа». Он работает правильно, потому что для этих двух столбцов не определено ограничение «UNIQUE».

С другой стороны, когда мы вставляем повторяющееся значение, e.грамм., «13» и «Равалпинди», будет выдана ошибка, как показано ниже. Это потому, что «13» и «Равалпинди» были указаны ранее.

При проверке у нас в таблице всего три записи, вставленные первыми тремя запросами.

>> ВЫБРАТЬ * ИЗ данных.министр;

Заключение:

Мы аккуратно выполнили все примеры определения ограничений UNIQUE для одного и нескольких столбцов при использовании MySQL Workbench 8.0 и клиентская оболочка командной строки MySQL. Надеюсь, у вас не возникнет проблем при решении задач, связанных с УНИКАЛЬНЫМИ ключами.

Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...