Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Заполнение таблицы случайными данными в PostgreSQL: UUID, varchar

Быстрый ответ

Если вам потребуется быстро наполнить таблицу случайными данными, примените функции RAND() и NEWID(). Следующий SQL-запрос мгновенно сгенерирует случайные числа и уникальные идентификаторы:

SQL
Скопировать код
INSERT INTO YourTable (IntColumn, UUIDColumn)
SELECT
  ROUND((RAND() * (MaxValue – MinValue)) + MinValue) AS RandomInteger,
  NEWID() AS UniqueIdentifier
FROM
  YourLargeTable;

Замените YourTable, IntColumn, UUIDColumn, MinValue, MaxValue и YourLargeTable на реальные имена из вашей базы данных для получения желаемого результата.

Кинга Идем в IT: пошаговый план для смены профессии

Добавим сложности к случайности в SQL Server

Если желаете усложнить задачу и сделать данные еще более случайными, придется функции CHECKSUM и NEWID() по вкусу. Генерирование значений станет увлекательней, основываясь на каждой строке:

SQL
Скопировать код
INSERT INTO YourTable (StringColumn, DateColumn)
SELECT
  SUBSTRING(CONVERT(varchar(36), NEWID()), 1, 8) AS RandomString,
  DATEADD(day, (ABS(CHECKSUM(NEWID())) % 365), GETDATE())
FROM
  YourLargeTable;

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

Разговор об случайных данных в PostgreSQL: будет интересно

Попробуем изучить возможности PostgreSQL и применим функции md5 и random, превратив процесс генерации данных в настоящее праздничное мероприятие случайности:

SQL
Скопировать код
INSERT INTO YourTable (ID, Description)
SELECT
  s,
  md5(random()::text)
FROM
  generate_series(1, 1000000) s;

Этот запрос заполнит таблицу PostgreSQL миллионом записей, предоставляя уникальные идентификаторы и описания.

Придаём особенности с UUID

Нельзя забывать о первичных ключах. Используя тип данных UUID, вы гарантированно получите уникальность каждой записи:

SQL
Скопировать код
-- Пример для PostgreSQL с первичным ключом UUID
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
INSERT INTO YourTable (UUIDColumn, OtherData)
SELECT
  uuid_generate_v4(),
  md5(random()::text)
FROM
  generate_series(1, 10000);

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

Визуализация

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

Данные огорода (🌱🌿🎍) = Ваша таблица
Семена (🌼🌷🌹) = Данные для вставки

Нами прокладываются семена данных в случайные места, создавая разнообразный и естественный пейзаж данных:

SQL
Скопировать код
INSERT INTO GardenPlot VALUES (RAND(), RAND(), ...);

Наши данные, как цветы, расцвечивают сад, создавая уникальный вицвец информации:

Markdown
Скопировать код
До: [🌱🌿🎍]
После: [🌼🌷🌹🌻🌺]

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

Забавляемся со строками – экспериментируем в SQL

Вдыхаем жизнь в строки

Попробуйте поиграть со строковыми функциями, такими как LEFT, RIGHT и CONCAT. Они помогут сделать обычные строки необычными:

SQL
Скопировать код
INSERT INTO YourTable (Username, Password)
SELECT
  CONCAT('user', s.id),
  LEFT(md5(random()::text), 10)
FROM
  generate_series(1, 10000) AS s(id);

Вот оно, чудо! Теперь ваши данные выглядят как сгенерированные в реальности, создавая правдоподобный образ.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Создаем современное искусство данных

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

SQL
Скопировать код
INSERT INTO YourTable (ComplexDescription)
SELECT
  string_agg(md5(random()::text), ' ')
FROM
  generate_series(1, 10);

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

Читаем как поэт, кодим как профессионал

Не нужно быть гением литературы, чтобы придумывать случайные слова. Пусть словарь Unix вдохновит ваш PostgreSQL, обогатив его случайными, но реалистичными данными:

SQL
Скопировать код
CREATE OR REPLACE FUNCTION RandomWord()
RETURNS text AS $$
DECLARE
  lines text[];
BEGIN
  lines := string_to_array(pg_read_file('/usr/share/dict/words', 0, 4000000), E'\n');
  RETURN lines[(random() * array_length(lines, 1))::int];
END;
$$ LANGUAGE plpgsql VOLATILE;

INSERT INTO YourTable (WordColumn)
SELECT RandomWord()
FROM generate_series(1,10000);

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

Полезные материалы

  1. Mockaroo — инструмент для создания реалистичных случайных данных для вашей SQL-базы данных.
  2. db<>fiddle — оптимизируйте ваши навыки SQL, используя этот симулятор работы с данными.
  3. Обсуждение — обмен идеями по генерации случайных данных в SQL Server.
  4. SQL Data Generator — быстрое создание объемных тестовых наборов данных для MS SQL Server.
  5. Интересное обсуждение — полезные советы по способам вставки случайных строк в SQLite.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой SQL-запрос используется для генерации уникальных идентификаторов в PostgreSQL?
1 / 5