Подсказки на компьютерную тематику

Можно подсмотреть, если забыли…

Что такое первичный и уникальный ключи MySQL

ограничение primary key отличается от ограничения unique лишь тем, что не может принимать значения null.

Первичный ключ в базе данных

    Первичный ключ Primary key обычно это:

  • одно поле/столбец в таблице БД, в котором все существующие значения в строках отличаются друг от друга
  • столбец, в чьих строках никогда не будут меняться значения
  • уникальное числовое значение, часто создаваемое с помощью средства БД автоматическое увеличение на 1 или AI

Особенности первичного ключа

    Первичный ключ

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

Пример SQL кода для создания таблицы с первичным ключом

При вводе этого кода будет создана таблица trytocreate с полями id, first field и second field, в котором поле id будет первичным ключом
CREATE TABLE `trytocreate` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`first field` VARCHAR(255) NOT NULL,
`second field` TEXT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

При этом, если вставить только значения для полей first field и second field значение id будет создано автоматически и станет равно 1, в дальнейшем оно будет увеличиваться по умолчанию на 1. Значения строк в поле id будут уникальными и в нем не получится указать два одинаковых значения.

Уникальный индекс

    Некоторая информация, которая описывает Уникальный индекс –

  • это одно поле/столбец в таблице, в строках которых находятся отличные друг от друга данные
  • в одной таблице может находиться столько полей с уникальным индексом, сколько требуется
  • его следует устанавливать, если по этому полю будет проводиться поиск данных
  • рекомендуются типы данных INT или VARCHAR, так как создание уникальных индексов в полях с типом данных TEXT вызовет ошибку из-за неуказания длины ключа

Образец кода на SQL для создания таблицы с уникальным индексом

Пример создания таблицы с полями с уникальными индексами unique text, unique text number two. В этих полях в MySQL появятся серебряные ключи.
CREATE TABLE `secondtablefortryuniqueindex` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`unique text` VARCHAR(24) NOT NULL,
`unique text number two` VARCHAR(24) NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `key_secondtable` (`unique text`,`unique text number two`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

После ввода пустых полей через вкладку Вставить или аналогичный SQL код
INSERT INTO `secondtablefortryuniqueindex` (`id`, `unique text`, `unique text number two`) VALUES (NULL, '', NULL);
в полях появятся значения

id unique text unique text number two
1 NULL

Что такое первичный и уникальный ключи MySQL

ограничение primary key отличается от ограничения unique лишь тем, что не может принимать значения null.

Первичный ключ в базе данных

    Первичный ключ Primary key обычно это:

  • одно поле/столбец в таблице БД, в котором все существующие значения в строках отличаются друг от друга
  • столбец, в чьих строках никогда не будут меняться значения
  • уникальное числовое значение, часто создаваемое с помощью средства БД автоматическое увеличение на 1 или AI

Особенности первичного ключа

    Первичный ключ

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

Пример SQL кода для создания таблицы с первичным ключом

При вводе этого кода будет создана таблица trytocreate с полями id, first field и second field, в котором поле id будет первичным ключом
CREATE TABLE `trytocreate` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`first field` VARCHAR(255) NOT NULL,
`second field` TEXT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

При этом, если вставить только значения для полей first field и second field значение id будет создано автоматически и станет равно 1, в дальнейшем оно будет увеличиваться по умолчанию на 1. Значения строк в поле id будут уникальными и в нем не получится указать два одинаковых значения.

Уникальный индекс

    Некоторая информация, которая описывает Уникальный индекс –

  • это одно поле/столбец в таблице, в строках которых находятся отличные друг от друга данные
  • в одной таблице может находиться столько полей с уникальным индексом, сколько требуется
  • его следует устанавливать, если по этому полю будет проводиться поиск данных
  • рекомендуются типы данных INT или VARCHAR, так как создание уникальных индексов в полях с типом данных TEXT вызовет ошибку из-за неуказания длины ключа

Образец кода на SQL для создания таблицы с уникальным индексом

Пример создания таблицы с полями с уникальными индексами unique text, unique text number two. В этих полях в MySQL появятся серебряные ключи.
CREATE TABLE `secondtablefortryuniqueindex` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`unique text` VARCHAR(24) NOT NULL,
`unique text number two` VARCHAR(24) NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `key_secondtable` (`unique text`,`unique text number two`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

После ввода пустых полей через вкладку Вставить или аналогичный SQL код
INSERT INTO `secondtablefortryuniqueindex` (`id`, `unique text`, `unique text number two`) VALUES (NULL, '', NULL);
в полях появятся значения

id unique text unique text number two
1 NULL