noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик

Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

Изучаю MySQL на курсах и немного не понимаю некоторые строчки. Например PRIMARY KEY:
63eb5d59252ba025043311.png(Да, я хохол)
Не понимаю, что означает первичный ключ в смысле слова. Дальше:
63eb5dda59e71138227069.png(Для того чтобы указать, что поля таблицы ссылаются на другие.
таблицы нужно указать так называемое ограничение таблицы.

Указывается ограничение по следующей формуле:
CONSTRAINT имя_ограничение FOREIGN KEY (имя_поля-ключа)
REFERENCES название_таблицы(название_поля_на_которое_ссылается_ключ))

Как это "ограничение"? Кто может объяснить?
Дальше:
63eb5f64bd854558888888.png
(Для заполнения таблицы используется следующий синтаксис:
INSERT INTO название_таблицы(название_поля, название_поля, название_поля)
VALUES(значение, значение, значение);)
В каком смысле заполнение таблицы? Добавление новых пользователей?
  • Вопрос задан
  • 500 просмотров
Решения вопроса 2
@Akina
Сетевой и системный админ, SQL-программист.
PRIMARY KEY - первичный ключ. Поле, комбинация полей либо выражение (последнее MySQL не поддерживает), которое не может быть NULL и не допускает дубликатов (уникально для каждой отдельной записи в пределах таблицы). Поддерживается путём создания соответствующего уникального индекса и наложением ограничения NOT NULL на все используемые в выражении поля. По факту - однозначно идентифицирует запись. Кроме того, в MySQL выражение первичного ключа является кластерным индексом. См. Индекс -> Уникальный индекс -> Первичный индекс.

CONSTRAINT - ограничение. Правило, которое не допускает создания записи, для которой значение выражения ограничения имеет значения FALSE (можно TRUE или NULL).

FOREIGN KEY - внешний ключ. Ограничение, которое требует, чтобы указанное выражение для текущей записи присутствовало среди значений указанного выражения референсной таблицы (допускается и внешний ключ на ту же таблицу). Точнее, чтобы такая проверка присутствия не возвращала FALSE (можно TRUE или NULL).

REFERENCES - определяет референсную таблицу и референсное выражение.

INSERT INTO - запрос, вставляющий новые записи в таблицу.
Ответ написан
Комментировать
@artem-dainov
Php, java, js. Boot spring, jquery, git
1. Смотри, primary key нужен для того, чтобы таблица понимала, какой тут столбец самый главный.
То есть, этот primary key может отсутствовать, но тогда у тебя не будет работать auto_increment. Auto_increment нужен для того, чтобы у тебя главный столбец мог автоматически увеличиваться. Это нужно для порядковой записи строк.
2. Ключ, который ссылается на другую таблицу - это простое объединение. Нужно это для того, чтобы ты случайно не удалил связанные таблицы. Или настроить такой вариант. Если удаляешь главную таблицу или главную запись, то что должно произойти в момент удаления главной записи с записями, которые зависят от нее.
INSERT INTO это простое добавление строки в базу. Пользователь добавляется через другую команду.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы