powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Enum_Set отличия
9 сообщений из 9, страница 1 из 1
Enum_Set отличия
    #38477318
Hanna_Urievna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, в чем отличие ENUM от SET? И в чем вообще суть этих типов данных? Заранее спасибо!
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477323
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enum - тип перечислимых значений. В дополнение к описанным включает null и пустую строку.
set - битовая маска перечислимых значений. В дополнение к описанным включает только null.
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477334
Hanna_Urievna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
т.е если мы выполним запрос CREATE TABLE "t1" ("en1", ENUM ("orange", "apple", "grape") NOT NULL)
то создастся таблица t1 со столбцом en1, который содержит значения "orange", "apple", "grape"? правильно?

а если запрос будет такой: CREATE TABLE "t1" ("en1", SET("orange", "apple", "grape") NOT NULL)
то что произойдет в этом случае? в чем отличия?
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477363
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hanna_Urievna,

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

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

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

В целом сложилось впечатление что оба типа - недоделанные залипухи.
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477427
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hanna_UrievnaAkina
т.е если мы выполним запрос CREATE TABLE "t1" ("en1", ENUM ("orange", "apple", "grape") NOT NULL)
то создастся таблица t1 со столбцом en1, который содержит значения "orange", "apple", "grape"? правильно?

а если запрос будет такой: CREATE TABLE "t1" ("en1", SET("orange", "apple", "grape") NOT NULL)
то что произойдет в этом случае? в чем отличия?
Во втором случае возможно
Код: sql
1.
Insert into t1 (en1) Values ('orange', 'apple', 'grape');
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477438
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109сложилось впечатление что оба типа - недоделанные залипухи.В общем да.

enum - просто перенесение функционала подстановки с клиента на сервер. Впрочем, с учётом отдаваемого типа профит сомнительный. Хотя можно рассматривать как избавление от дополнительного джойна для небольшого статического словаря.

А вменяемого использования set мне вообще не попадалось. И даже с использованием Make_Set и Find_In_Set тоже ничего осмысленного не придумывается.
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477802
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hanna_UrievnaПодскажите, в чем отличие ENUM от SET? И в чем вообще суть этих типов данных? Заранее спасибо!


Да не используй ты эту хрень.

Простое поле с check constraint универсальнее.
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38477830
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПростое поле с check constraint универсальнее.В других СУБД - может быть. А вот в MySQL check constraint не работают.
...
Рейтинг: 0 / 0
Enum_Set отличия
    #38478727
Hanna_Urievna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем! теперь понятно =)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Enum_Set отличия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]