Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share code      Blog   Popular   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear
-- Создаем расширение для UUID CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- Таблица адресов CREATE TABLE addresses ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), country VARCHAR(100), region VARCHAR(100), district VARCHAR(100), city VARCHAR(100), street VARCHAR(100), house VARCHAR(20), building VARCHAR(20), appartment VARCHAR(20) ); -- Таблица мест работы CREATE TABLE works ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), work_place UUID REFERENCES addresses(id), unp VARCHAR(20), name VARCHAR(200), ueo VARCHAR(100), position VARCHAR(100), position_status VARCHAR(100), social_status VARCHAR(100), phone_number VARCHAR(20) ); -- Таблица персональных данных CREATE TABLE criminal_personal_data ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), is_citizen BOOLEAN, citizenship VARCHAR(100), sex VARCHAR(1), birth_date DATE, last_name VARCHAR(100), first_name VARCHAR(100), surname VARCHAR(100), education VARCHAR(100), phone_number VARCHAR(20) ); -- Таблица документов CREATE TABLE criminal_documents ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), doc_type VARCHAR(100), doc_num VARCHAR(50), doc_id VARCHAR(50), issuing_date DATE, issued_by VARCHAR(200), validity_data VARCHAR(100) ); -- Таблица лиц, связанных с преступлениями CREATE TABLE criminal_persons ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), document UUID REFERENCES criminal_documents(id), personal_data UUID REFERENCES criminal_personal_data(id), birth_place UUID REFERENCES addresses(id), residence_place UUID REFERENCES addresses(id), work UUID REFERENCES works(id) ); -- Таблица уголовных дел CREATE TABLE criminal_cases ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), authority VARCHAR(200), department VARCHAR(200), delo_reg_num VARCHAR(50), delo_reg_date DATE, offender_characteristics TEXT, criminal_applicant UUID REFERENCES criminal_persons(id), criminal_suspect UUID REFERENCES criminal_persons(id), result_date DATE ); -- Заполняем таблицу адресов (20+ записей) INSERT INTO addresses (id, country, region, district, city, street, house, building, appartment) VALUES (uuid_generate_v4(), 'Беларусь', 'Минская область', 'Минский район', 'Минск', 'ул. Ленина', '10', NULL, '15'), (uuid_generate_v4(), 'Беларусь', 'Минская область', 'Минский район', 'Минск', 'пр. Независимости', '25', '2', '34'), (uuid_generate_v4(), 'Беларусь', 'Гомельская область', 'Гомельский район', 'Гомель', 'ул. Советская', '45', NULL, '12'), (uuid_generate_v4(), 'Беларусь', 'Брестская область', 'Брестский район', 'Брест', 'ул. Гоголя', '8', NULL, '5'), (uuid_generate_v4(), 'Беларусь', 'Витебская область', 'Витебский район', 'Витебск', 'ул. Пушкина', '17', '1', '23'), (uuid_generate_v4(), 'Беларусь', 'Гродненская область', 'Гродненский район', 'Гродно', 'ул. Ожешко', '3', NULL, '7'), (uuid_generate_v4(), 'Беларусь', 'Могилёвская область', 'Могилёвский район', 'Могилёв', 'ул. Первомайская', '33', NULL, '41'), (uuid_generate_v4(), 'Россия', 'Московская область', NULL, 'Москва', 'ул. Тверская', '15', '3', '10'), (uuid_generate_v4(), 'Россия', 'Ленинградская область', NULL, 'Санкт-Петербург', 'Невский пр.', '22', NULL, '18'), (uuid_generate_v4(), 'Украина', 'Киевская область', NULL, 'Киев', 'ул. Крещатик', '25', NULL, '3'), (uuid_generate_v4(), 'Беларусь', 'Минская область', 'Минский район', 'Минск', 'ул. Козлова', '7', NULL, '32'), (uuid_generate_v4(), 'Беларусь', 'Минская область', 'Минский район', 'Минск', 'ул. Притыцкого', '62', '4', '56'), (uuid_generate_v4(), 'Беларусь', 'Гомельская область', 'Гомельский район', 'Гомель', 'ул. Ильича', '13', NULL, '9'), (uuid_generate_v4(), 'Беларусь', 'Брестская область', 'Брестский район', 'Брест', 'ул. Мицкевича', '5', '2', '14'), (uuid_generate_v4(), 'Беларусь', 'Витебская область', 'Витебский район', 'Витебск', 'ул. Ленинградская', '28', NULL, '17'), (uuid_generate_v4(), 'Беларусь', 'Гродненская область', 'Гродненский район', 'Гродно', 'ул. Дзержинского', '11', NULL, '6'), (uuid_generate_v4(), 'Беларусь', 'Могилёвская область', 'Могилёвский район', 'Могилёв', 'ул. Пионерская', '9', '1', '22'), (uuid_generate_v4(), 'Россия', 'Московская область', NULL, 'Москва', 'ул. Арбат', '12', NULL, '8'), (uuid_generate_v4(), 'Россия', 'Ленинградская область', NULL, 'Санкт-Петербург', 'ул. Марата', '34', '3', '25'), (uuid_generate_v4(), 'Украина', 'Киевская область', NULL, 'Киев', 'ул. Богдана Хмельницкого', '17', NULL, '11'); -- Заполняем таблицу мест работы (20+ записей) INSERT INTO works (id, work_place, unp, name, ueo, position, position_status, social_status, phone_number) SELECT uuid_generate_v4(), (SELECT id FROM addresses ORDER BY random() LIMIT 1), CONCAT('100', FLOOR(random() * 900000 + 100000), '000'), CASE WHEN i%5 = 0 THEN 'ООО "Технопром"' WHEN i%5 = 1 THEN 'ИП "СервисПлюс"' WHEN i%5 = 2 THEN 'ЗАО "СтройГарант"' WHEN i%5 = 3 THEN 'ОАО "БелАгро"' ELSE 'ЧУП "ТоргСервис"' END, CASE WHEN i%3 = 0 THEN 'Частное предприятие' WHEN i%3 = 1 THEN 'Государственное предприятие' ELSE 'Иностранное предприятие' END, CASE WHEN i%6 = 0 THEN 'Директор' WHEN i%6 = 1 THEN 'Менеджер' WHEN i%6 = 2 THEN 'Бухгалтер' WHEN i%6 = 3 THEN 'Инженер' WHEN i%6 = 4 THEN 'Водитель' ELSE 'Рабочий' END, CASE WHEN i%2 = 0 THEN 'Основное место работы' ELSE 'Совместительство' END, CASE WHEN i%4 = 0 THEN 'Работник' WHEN i%4 = 1 THEN 'Служащий' WHEN i%4 = 2 THEN 'Руководитель' ELSE 'Специалист' END, CONCAT('+37529', FLOOR(random() * 9000000 + 1000000)) FROM generate_series(1, 20) AS i; -- Заполняем таблицу персональных данных (20+ записей) INSERT INTO criminal_personal_data (id, is_citizen, citizenship, sex, birth_date, last_name, first_name, surname, education, phone_number) SELECT uuid_generate_v4(), (random() > 0.1), CASE WHEN i%4 = 0 THEN 'Беларусь' WHEN i%4 = 1 THEN 'Россия' WHEN i%4 = 2 THEN 'Украина' ELSE 'Казахстан' END, CASE WHEN random() > 0.5 THEN 'M' ELSE 'F' END, (DATE '1950-01-01' + (random() * (DATE '2000-12-31' - DATE '1950-01-01'))::date, CASE WHEN i%10 = 0 THEN 'Иванов' WHEN i%10 = 1 THEN 'Петров' WHEN i%10 = 2 THEN 'Сидоров' WHEN i%10 = 3 THEN 'Козлов' WHEN i%10 = 4 THEN 'Смирнов' WHEN i%10 = 5 THEN 'Кузнецов' WHEN i%10 = 6 THEN 'Попов' WHEN i%10 = 7 THEN 'Лебедев' WHEN i%10 = 8 THEN 'Новиков' ELSE 'Морозов' END, CASE WHEN i%10 = 0 THEN 'Алексей' WHEN i%10 = 1 THEN 'Дмитрий' WHEN i%10 = 2 THEN 'Сергей' WHEN i%10 = 3 THEN 'Андрей' WHEN i%10 = 4 THEN 'Иван' WHEN i%10 = 5 THEN 'Александр' WHEN i%10 = 6 THEN 'Михаил' WHEN i%10 = 7 THEN 'Николай' WHEN i%10 = 8 THEN 'Владимир' ELSE 'Артем' END, CASE WHEN i%10 = 0 THEN 'Алексеевич' WHEN i%10 = 1 THEN 'Дмитриевич' WHEN i%10 = 2 THEN 'Сергеевич' WHEN i%10 = 3 THEN 'Андреевич' WHEN i%10 = 4 THEN 'Иванович' WHEN i%10 = 5 THEN 'Александрович' WHEN i%10 = 6 THEN 'Михайлович' WHEN i%10 = 7 THEN 'Николаевич' WHEN i%10 = 8 THEN 'Владимирович' ELSE 'Артемович' END, CASE WHEN i%5 = 0 THEN 'Высшее' WHEN i%5 = 1 THEN 'Среднее специальное' WHEN i%5 = 2 THEN 'Среднее' WHEN i%5 = 3 THEN 'Неоконченное высшее' ELSE 'Начальное' END, CONCAT('+37529', FLOOR(random() * 9000000 + 1000000)) FROM generate_series(1, 20) AS i; -- Заполняем таблицу документов (20+ записей) INSERT INTO criminal_documents (id, doc_type, doc_num, doc_id, issuing_date, issued_by, validity_data) SELECT uuid_generate_v4(), CASE WHEN i%3 = 0 THEN 'Паспорт' WHEN i%3 = 1 THEN 'Водительское удостоверение' ELSE 'ID-карта' END, CASE WHEN i%3 = 0 THEN CONCAT('AB', FLOOR(random() * 900000 + 100000)) WHEN i%3 = 1 THEN CONCAT(FLOOR(random() * 90 + 10), 'AA', FLOOR(random() * 900000 + 100000)) ELSE CONCAT('ID', FLOOR(random() * 9000000 + 1000000)) END, CASE WHEN i%3 = 0 THEN CONCAT('ID', FLOOR(random() * 9000000 + 1000000)) WHEN i%3 = 1 THEN CONCAT('DL', FLOOR(random() * 9000000 + 1000000)) ELSE CONCAT('PC', FLOOR(random() * 9000000 + 1000000)) END, (DATE '2000-01-01' + (random() * (DATE '2022-12-31' - DATE '2000-01-01'))::date), CASE WHEN i%5 = 0 THEN 'ОВД Минского района' WHEN i%5 = 1 THEN 'ГУВД Мингорисполкома' WHEN i%5 = 2 THEN 'ОВД Гомельского района' WHEN i%5 = 3 THEN 'ГАИ Минской области' ELSE 'МВД Республики Беларусь' END, CASE WHEN i%2 = 0 THEN 'Действителен' ELSE 'Просрочен' END FROM generate_series(1, 20) AS i; -- Заполняем таблицу criminal_persons (20+ записей) INSERT INTO criminal_persons (id, document, personal_data, birth_place, residence_place, work) SELECT uuid_generate_v4(), (SELECT id FROM criminal_documents ORDER BY random() LIMIT 1), (SELECT id FROM criminal_personal_data ORDER BY random() LIMIT 1), (SELECT id FROM addresses ORDER BY random() LIMIT 1), (SELECT id FROM addresses ORDER BY random() LIMIT 1), (SELECT id FROM works ORDER BY random() LIMIT 1) FROM generate_series(1, 20); -- Заполняем таблицу уголовных дел (20+ записей) INSERT INTO criminal_cases (id, authority, department, delo_reg_num, delo_reg_date, offender_characteristics, criminal_applicant, criminal_suspect, result_date) SELECT uuid_generate_v4(), CASE WHEN i%4 = 0 THEN 'Следственный комитет Республики Беларусь' WHEN i%4 = 1 THEN 'МВД Республики Беларусь' WHEN i%4 = 2 THEN 'Генеральная прокуратура' ELSE 'КГБ Республики Беларусь' END, CASE WHEN i%5 = 0 THEN 'Управление по расследованию экономических преступлений' WHEN i%5 = 1 THEN 'Управление по борьбе с организованной преступностью' WHEN i%5 = 2 THEN 'Управление по наркоконтролю' WHEN i%5 = 3 THEN 'Управление по борьбе с коррупцией' ELSE 'Следственное управление' END, CONCAT( CASE WHEN i%4 = 0 THEN 'А40-' WHEN i%4 = 1 THEN 'Б50-' WHEN i%4 = 2 THEN 'В60-' ELSE 'Г70-' END, FLOOR(random() * 90000 + 10000), '/202', FLOOR(random() * 3 + 3) ), (DATE '2020-01-01' + (random() * (DATE '2023-12-31' - DATE '2020-01-01'))::date), CASE WHEN i%6 = 0 THEN 'Ранее не судим, положительно характеризуется' WHEN i%6 = 1 THEN 'Ранее судим по ст. 205 УК РБ' WHEN i%6 = 2 THEN 'Состоит на учете в ИДН' WHEN i%6 = 3 THEN 'Неоднократно привлекался к административной ответственности' WHEN i%6 = 4 THEN 'Характеризуется отрицательно, злоупотребляет алкоголем' ELSE 'Ранее не привлекался, характеризуется положительно' END, (SELECT id FROM criminal_persons ORDER BY random() LIMIT 1), (SELECT id FROM criminal_persons ORDER BY random() LIMIT 1), (DATE '2021-01-01' + (random() * (DATE '2024-12-31' - DATE '2021-01-01'))::date) FROM generate_series(1, 20) AS i; SELECT cc.delo_reg_num AS "Номер дела", cc.delo_reg_date AS "Дата регистрации", cc.department AS "Отдел", -- Информация о заявителе cpd_app.last_name || ' ' || cpd_app.first_name || ' ' || cpd_app.surname AS "Заявитель", cd_app.doc_type || ' ' || cd_app.doc_num AS "Документ заявителя", -- Информация о подозреваемом cpd_sus.last_name || ' ' || cpd_sus.first_name || ' ' || cpd_sus.surname AS "Подозреваемый", cd_sus.doc_type || ' ' || cd_sus.doc_num AS "Документ подозреваемого", cc.offender_characteristics AS "Характеристика", cc.result_date AS "Дата решения" FROM criminal_cases cc JOIN criminal_persons cp_app ON cc.criminal_applicant = cp_app.id JOIN criminal_personal_data cpd_app ON cp_app.personal_data = cpd_app.id JOIN criminal_documents cd_app ON cp_app.document = cd_app.id JOIN criminal_persons cp_sus ON cc.criminal_suspect = cp_sus.id JOIN criminal_personal_data cpd_sus ON cp_sus.personal_data = cpd_sus.id JOIN criminal_documents cd_sus ON cp_sus.document = cd_sus.id ORDER BY cc.delo_reg_date DESC;

Stuck with a problem? Got Error? Ask ChatGPT!