Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 506 79 235
Универсальный баз данных тред v1.4 /sql/ Аноним 02/12/21 Чтв 22:29:52 2227895 1
.png 140Кб, 706x470
706x470
.png 3104Кб, 1951x2560
1951x2560
Прошлый >>2128337 (OP)

Туториалы на русском для тех, кто не умеет гуглить, не может в английский и вообще готов жрать что угодно:
SQL:
- MySQL, Postgres, SQL Server: https://metanit.com/sql/
- Синтаксис SQL кратко: https://learnxinyminutes.com/docs/ru-ru/sql-ru/
- Плейлисты по разным СУБД: https://www.youtube.com/c/SQLDeveloperBI/playlists
- Тоже плейлист, сортировка хуёвая: https://www.youtube.com/watch?v=EHvzvwAv7RU&list=PLY7PmJJFH5nT-lbFKxfbp3rw5BBuq5Azo[РАСКРЫТЬ][РАСКРЫТЬ][РАСКРЫТЬ]
- https://www.youtube.com/c/SQLDeveloperBI
NoSQL:
- MongoDB: https://metanit.com/nosql/mongodb/
- Cassandra: https://proselyte.net/tutorials/cassandra/

На инглише:
SQL:
- https://www.w3schools.com/sql/

Литература:
- Прибыл Фейерштейн. Oracle PL/SQL. Для профессионалов - если уметь исказть, можно найти бесплатно без СМС и на русском.
- Алан Бьюли. Изучаем SQL. - про MySQL, тоже легко находится. Довольно старая, но базовые вещи не сильно меняются.
- К. Дж. Дейт. Введение в системы баз данных - талмуд на овер 1000 страниц.
- Томас Кайт. Oracle для профессионалов - тоже талмуд.

Задачки для оттачивания sql-скилов:
- https://www.sql-ex.ru
- http://sql-tutorial.ru/
- https://www.codewars.com/?language=sql

ETL, OLAP, DWH и другие умные слова:
- https://www.youtube.com/watch?v=WPZuzDJXs-Q&list=PLhhjwMYxzolhP29LSPPwORVQxJX5OjYix[РАСКРЫТЬ][РАСКРЫТЬ][РАСКРЫТЬ]
- OLAP DAX Power BI: https://www.youtube.com/playlist?list=PLhhjwMYxzolhXuySjLR2_n-xb6VvWnjju

Прочее:
- https://dbdb.io/
- https://db.cs.cmu.edu/
- https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists
- Сравнение диалектов SQL: http://troels.arvin.dk/db/rdbms/
- Как БД работают изнутри: https://habr.com/ru/company/mailru/blog/266811/


FAQ:
Q: Нужно ли знать английский?
A: Да.

Q: Что лучше, SQL или NoSQL?
A: Как обычно, зависит от задач. Нужна любой ценой скорость - бери NoSQL, нужна согласованность данных - SQL. У всего свои плюсы и минусы, и в обозримом будущем ни один подход не заменит другой полностью.

Q: Вопросы с лабами и задачками
A: Смело спрашивай, с вероятностью больше 50% ответят, но могут и обоссать.

Здесь мы:
- Негодуем, почему шапка - говно, и предлагаем коллективному ОПу идеи, как её улучшить.
- Разбираемся, почему PostgreSQL - не Oracle
- Пытаемся понять, зачем нужен Тырпрайс, если есть бесплатный опенсурс
- Обсуждаем, какие новые тенденции хранения данных появляются в современном цифровом обеществе
- Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
- Анализируем, как работает поиск вконтакте
- И просто хорошо проводим время, обсирая чужой код, не раскрывая, как писать правильно
Аноним 03/12/21 Птн 00:47:27 2227951 2
Когда уже нормальная пикча треда с Sql Server будет? Заебали хуйню постить
Аноним 03/12/21 Птн 01:52:52 2227978 3
1.jpg 63Кб, 600x449
600x449
Аноним # OP 03/12/21 Птн 01:56:05 2227979 4
Аноним 03/12/21 Птн 02:03:34 2227981 5
photo2021-10-13[...].jpg 14Кб, 610x396
610x396
Аноним 03/12/21 Птн 02:33:43 2227985 6
>>2227635 →
Спасибо конечно, но эту книгу я уже приметил . Расскажи лучше как сам вкатывался, что проблемы вызывало, как начинал.
Аноним 03/12/21 Птн 02:34:47 2227986 7
image.png 120Кб, 676x384
676x384
Аноним 03/12/21 Птн 03:30:47 2227992 8
>>2227978
хуево у тебя с пеинтом, попробуй еще раз
Аноним 03/12/21 Птн 19:08:00 2228465 9
Аноны, шо на пиндоском можно почитать, а то
>SQL:
- https://www.w3schools.com/sql/
хуже гайдов с метанита, но чет я теряюсь в метаните, там просто все прочесть?
Аноним 03/12/21 Птн 19:56:54 2228507 10
>>2228465
На O'Relly можно крабить бесплатный триал, выбирай на свой вкус.
Аноним 04/12/21 Суб 00:45:32 2228764 11
У нас один программер начитался книжек по sql и решил, что нам точно нужно секционирование таблиц, чтобы ускориться.
Как мне его мягко убедить, что у нас не те объемы и тормозит все из-за говнокода и кривой модели данных?
Таблицы еще маленькие, по логике не имеет смысла, и врядли в ближайшие годы этот смысл понадобится но он потестил и с партицированием быстрее((
Или не париться и пусть делает, раз так хочет?
Аноним 04/12/21 Суб 04:29:31 2228820 12
>>2228764
Сколько строк в таблице? Индексы есть? Сколько за раз выбираете?
Аноним 04/12/21 Суб 12:07:32 2228934 13
>>2228764
1. Бизнес готов давать деньги на "ковыряние в табличках"? Обычно средства на это выделяются, когда все нахуй падает или приходит запрос от клиента, что у вас все хуево. Тем более партиционирование повлечет еще немалые изменение в коде апликухи, что тоже бьет по карману бизнеса;
2. Сравни время выполнения через СУБД и через апликуху. Если все так, как ты написал, то есть смысл тогда ковыряться в коде.
Аноним 04/12/21 Суб 12:18:20 2228942 14
Аноним 04/12/21 Суб 19:45:14 2229293 15
>>2228764
Умный человек может любые цифры представить как ему выгодно (и обмануть самого себя).
Придется тебе быть умнее.
Почитай книги.

Нет, оперировать и переставлять местами термины из гугла не достаточно. Выдвигай гипотезы. Измеряй. Делай выводы.

Совсем измельчал программист нынче
Аноним 05/12/21 Вск 04:44:06 2229564 16
изображение.png 143Кб, 254x199
254x199
Забавно наблюдать за подходов анонов к решению задачи

>>2228820
джун

>>2228934
синьёр-помидор

>>2229293
далбёб которые вобще не имеет представления о разработке и только пиздеть горазд
Аноним 05/12/21 Вск 16:13:24 2229933 17
>>2229564
Ой, бери на себя поменьше.

Ты не прав. Мнения в треде не разделились. Они вообще не представляют собой какую-то выборку. Суть обсуждения в треде не позволяет делать выводы о количествах мнений. Это же не опрос каждого имеющего дело с базами данных. Люди публикуют мнение, когда видят, что ранее их мнение в треде еще не было представлено.

Вот в данном обсуждении взвешенный научный подход плохо представлен, поэтому я это и написал.
И да, в тот момент когда программистишки совсем запутываются, они приходят ко мне.
Аноним 05/12/21 Вск 22:49:16 2230318 18
>>2228764
Какой хороший программер. Если БД хоть немного склонна к росту, то заложить секционирование в модель данных - это ОЧЕНЬ хорошая практика.
Ну и по-человечески, людей надо подбадривать. Если хочет человек что-то хорошее сделать и у него по остальным пунктам не полный безотлагательный пиздец, то пусть делает.
Аноним 06/12/21 Пнд 02:20:52 2230524 19
>>2230318
СПРАВОЧНИК
@
50 ЗАПИСЕЙ
@
СЕКЦИОНИРУЕШЬ
Аноним 06/12/21 Пнд 14:58:12 2230865 20
Есть таблица "события", в ней есть, помимо прочих, столбцы "район", "улица", "номер дома". Извлечь эти столбцы в таблицу "адреса событий", ссылающуюся на таблицу "события" - бест практис?
Аноним 06/12/21 Пнд 15:13:13 2230886 21
>>2230865
>ссылающуюся на таблицу "события"
По один-к-одному.
фикс
Аноним 06/12/21 Пнд 15:33:26 2230901 22
>>2230865
в чем дилемма ? не понято.
Что в твоей задаче нужно делать - то и делай.
Нет никакой "бест практис". Мозг включать - вот бест практис.
Аноним 06/12/21 Пнд 15:37:40 2230907 23
>>2230901
Как там смена на заводе?
Аноним 06/12/21 Пнд 16:09:56 2230961 24
>>2230865
Ну улицу и район точно нужно извлекать, номер дома хз, т.к как справочная информация не особо имеет смысл, но с другой стороны оставлять в фактах так как есть, тоже не дело. Извлекайте, шура.
Аноним 06/12/21 Пнд 18:42:32 2231109 25
>>2230901
да знаешь, как-то получше чем зумерков без иннициативы.

Между прочим, я Дейта цитирую.
Аноним 06/12/21 Пнд 20:16:54 2231157 26
>>2230886
Ну и какую проблему ты решишь таким извлечением? Смысл был бы, если бы адрес был не у всех событий, а так при любых действиям с событиями придётся делать лишний джойн, писать один лишний инсерт/аплейт, ебаться с объединением данных на уровне приложения. Можно хоть для каждого столбца завести по таблице, чтобы они все форенкеились с таблицей событий, где единственный столбец - ID, но что это тебе даст?
Аноним 06/12/21 Пнд 22:08:18 2231261 27
А как быстро пробегать по базе типа
Номер транзакции Отправитель Получатель Сумма
1 Кабан Сычев Сотыга
2 Сычев Пориджная 0.5сотыги
3 Кабан Сычев 0.5сотыги
4 Сычев Пориджная 0.3сотыги
5 Пориджная Кабан 0.8сотыг

чтобы узнать сколько денег у Кабана, Сычева и Пориджной?
Аноним 06/12/21 Пнд 23:08:41 2231303 28
>>2231261
читай мануал по group by
Аноним 06/12/21 Пнд 23:56:54 2231331 29
>>2231261
transactions (debit_acc, credt_acc, amount)

select debit.debit_acc, credit.credit_amount - debit_amount balance
from (
select debit_acc, sum(amount) debit_amount
from trans debit
group by debit_acc
) debit
join (
select credit_acc, sum(amount) credit_amount
from trans credit
group by credit_acc
) credit on debit.debit_acc = credit.credit_acc;
Аноним 07/12/21 Втр 00:00:23 2231333 30
>>2231261
>>2231331
Разумеется, это при условии, что все счета у тебя активные, для пассивных ставь "минус" перед суммами в зависимости от синтетики.
Аноним 07/12/21 Втр 01:20:24 2231378 31
Биткоины.webm 662Кб, 420x710, 00:00:10
420x710
Пятница.webm 491Кб, 470x720, 00:00:05
470x720
>>2227895 (OP)

Вот тебе свежие тиктоки для шапки
Аноним 07/12/21 Втр 02:09:22 2231383 32
>>2231157
Даст быструю аналитику по район/улица.

>Можно хоть для каждого столбца завести по таблице, чтобы они все форенкеились с таблицей событий
Ну так обычно в реляционных бд и делают, все кроме самих фактов выносят в отдельный справочник. Адрес это явно справочная информация.
Аноним 08/12/21 Срд 14:27:57 2232449 33
В Postgresql есть таблица, в которой у каждой записи есть колонка created_ts - как могли догадаться это timestamp создания записи. На данный момент я создаю этот таймстемп внутри моего приложения и передаю с sql запросом INSTERT, есть ли способо добавлять таймстепм средствами постгрес?

И второй момент: у меня есть задача которая раз в час проходится по этой таблице и удаляет из нее все записи старше 90 минут (чтоб таблица не захламлялась старыми записями). Для этого сейчас на поле created_ts навешен обычный betree индекс, можно ли заюзать что-то более подходящее?
Аноним 08/12/21 Срд 15:01:17 2232473 34
>>2232449
>insert into tab values (1,now());
так не можешь чтоль?


>можно ли заюзать что-то более подходящее?

Заюзывай, разрешаю.
Узнать что же на самом деле подходит в твоем случае, тебе придется самому.
Но ты можешь по своему зумерскому методу решения проблем копировать всякую хуйню с Двача и Stackoverflow.
Давай. Мы ждем.
Аноним 08/12/21 Срд 15:39:19 2232503 35
>>2232449
1) Проставь default now() для строки нужной.
2) Я бы такие говна вобще в кеше хранил, в каком-нибудь redis
Аноним 09/12/21 Чтв 07:41:46 2232883 36
123.jpg 114Кб, 1440x767
1440x767
Что из этого качать?
Аноним 09/12/21 Чтв 15:08:47 2233176 37
>>2232503
Суть вот в чем: есть таблица где хранятся: user_id, idem_key, created_ts
Это (очевидно) айдишник юзера, ключ идемпотентности и таймстемп. Когда юзер проводит транзакцию на перевод внутренней валюты другому юзеру, мы сохраняем в таблице строчку с соответствующими данными, на пару (user_id, idem_key) установлен индекс уникальности, так что если сохранится вторая такая пара, БД выдаст ошибку которую обработает приложение - это сделано для избежания дублей запросов с клиента. Эту идею я подсмотрел спиздил из статейки https://habr.com/ru/company/yandex/blog/442762/
По факту туда можно прикрутить Редис, но как его использовать в таком случае? Как очищать устаревшие данные в кеше?
Аноним 09/12/21 Чтв 15:53:50 2233214 38
>>2233176
Редис умеет в time to life
Аноним 09/12/21 Чтв 17:03:34 2233260 39
Аноним 13/12/21 Пнд 02:36:02 2236274 40
Сап, кто может пояснить за TRANSACTION ISOLATION LEVEL? Зачем нужны, где используются? И что по Rollback / commit? Нахуй это говно нужно? Никто же IMPLICIT_TRANSACTIONS ON не будет включать, чтобы играть с ролбэками. Или я чего-то не знаю?
Аноним 13/12/21 Пнд 06:32:11 2236314 41
images.jpg 11Кб, 250x201
250x201
>>2236274
Когда ты пердолишся таблицой как правило происходит её блокировка, чтоб пока ты читаешь/пишешь туда данных не напиахли
для этого и нужен TRANSACTION ISOLATION LEVEL .


Их 4(или 6, в зависимости от реализпации):
1) READ UNCOMMITTED - читаем как есть ничё не лочим. Если кто-то вставляет/удаляет, можем прочитать хуйпойми что.
2) READ COMMITTED - лочим только строки которые читаем, чтоб их не изменили.
3) REPETABLE READ - это когда в рамках одной транзакции нам надо сделать несколько чтений, если уровень изоляции ниже этого условно каждый селект будет накладывать свою блокировку. При этом режиме блокировка действует в рамках всей транзакции.
4) SERIALIZABLE - накладывает блокировку на строки ПЛЮС запрещает делать инсерты в таблицу. Т.е. в п3 мы залочили строки, но если нам напихали инсертов, появились новый строки.
Аноним 13/12/21 Пнд 12:34:37 2236446 42
>>2236274
Разумеется, ручной откат транзакций людям нужен. На каждую ситуацию есть свой потребитель.

Кроме того, serializable - самый тупейший, но рабочий способ избежать некоторых логических ошибок в приложениях.
Но ты так не делай. Изучай.
Аноним 13/12/21 Пнд 19:56:54 2236922 43
>>2236314
>>2236446
спасибо, но это я и так знал, я не понимаю реального применения. У меня есть несколько потребителей Sql базы (см. приложения), каждый из них делает по 200-300 CRUD реквестов в секунду, на каком они уровне это делают, READ COMMITTED?
И хотел бы узнать хоть один реальный пример отказа транзакций. Единственное, что приходит на ум - это снятие дедлока/транзации с каскадным откатом (типо удаление зависимых данных).
Аноним 14/12/21 Втр 03:54:21 2237155 44
>>2236922
> READ COMMITTED
По дефолту обычно да, в ОРМ можно указать уровень изоляции.

>И хотел бы узнать хоть один реальный пример отказа транзакций
1) Запись большого блока данных, чем делать 100 инсертов, лучше сделать одну транзакцию и в рамках неё исполнить все инстерты, и если у нас один инсерт фейлится, отменяем всю транзакцию.
2) Надо записать связанные данные, с одного счета списать на другой положить.

Аноним 14/12/21 Втр 12:14:15 2237321 45
>>2236922
ты блядь совсем тупой? прочитал 5 раз и ничего не понял?
Представь ситуацию, когда ты два раза нажал в интернет-магазине кнопку Оплатить, а магазин писал такой тупень как ты и он исправно отправил два запроса в банк, но на карте у тебя только N денег, но товары стоят 2*N.
Аноним 14/12/21 Втр 12:16:57 2237322 46
>>2237321
Ключ идемпотентности
Аноним 14/12/21 Втр 14:28:33 2237401 47
В базе есть колонка с UNIQUE - как делать так чтобы в случае если данные вставляются повторно, то БД просто шла бы дальше, не выбрасывая никаких ошибок?
Аноним 14/12/21 Втр 14:34:52 2237408 48
Аноним 14/12/21 Втр 16:11:15 2237492 49
У меня есть множество записей (Post) у каждого из которых есть набор тегов, как это все хранить в базе для быстрого доступа по тегам? РСУБД и искать через LIKE в строке? Mongo и делать то же самое? Или тут полнотекстный поиск с Эластиком нужен?
Аноним 14/12/21 Втр 16:29:55 2237512 50
>>2237492
Дополнительная табличка post_id - tag_id.
Аноним 14/12/21 Втр 23:05:11 2237828 51
>>2237321
это тебя в шараге такому учат, что 2 клика по кнопке создают 2 транзации? Пиздец тут советчики
Аноним 15/12/21 Срд 06:11:01 2237960 52
2d7464b8d950e5a[...].jpg 13Кб, 300x256
300x256
>>2237828
Раз такой умный, почему на мейлачах спрашиваешь?
Аноним 15/12/21 Срд 23:40:11 2238667 53
>>2237960
потому, что тут есть адекватный анон, а не долбоеб, который не знает про дебаунсер
Аноним 20/12/21 Пнд 16:06:38 2242903 54
DsMrnDLWoAAYA2V.png 123Кб, 309x407
309x407
Анончики есть, ли в mssql bulk upsert?
Даже не так, как можно сделать bulk upsert средствами именно sql?

Я имею ввиду что в некоторых бд(например в марии), есть встроенные механизмы чтоб это сделать, а в некоторых нет, если универсальный способ?
Аноним 21/12/21 Втр 15:23:13 2243952 55
Сап, появилась псевдонеобходимость в postgres хранить набор ключ-значений с динамической структурой этих значений, читал про eav, хуйня хуйнёй. Благо в pg есть jsonb решил его и использовать.

Вопрос в том, как происходит обновление данных в этом jsonb. Если нужно обновить 1 значение, как поведёт себя субд - будет переписывать весь столбец или есть какой то механизм, позволяющий апдейтить только часть? Судя по описанию jsonb_set() нужно обновлять весь столбец, но всё же я надеюсь на второй вариант.
Аноним 21/12/21 Втр 18:42:32 2244204 56
>>2243952
с чего это ты решил, что функции связанные с json каким-то образом поменяют внутреннее устройство postgress ?

Просто поле. Просто меняется все целиком. Но есть кое-какие дополнительные функции.

Я, кстати, документацию даже не открывал. И так все понятно. Революция так просто не делается.
Аноним 22/12/21 Срд 13:31:09 2245023 57
Аноны, пожалуйста, помогите! Ситуация проста я 0 айкью+экономист, препод положил на всю группу хуй. При любом вопросе отвечает загадкой, а запросы делать надо, а то будет незачет. Так что если пишу не правильно какие-то вещи, то прошу простить
SQL Server, запросы звучат как:
1) Вывести средний срок доставки заказа для каждого месяца 2020 года. Заказ относим к месяцу по дате отправки.
Соответственно названия строк date_order_dispatch(дата отправки заказа), date_order_accepted(дата принятия заказа), Таблица с заказами orders
2) Для каждого склада вывести количество ожидающих выдачи заказов
Тут даже без понятия, что указывать, потому что есть просто таблица Склад, где только Название и Адрес
Аноним 22/12/21 Срд 13:37:09 2245034 58
>>2245023
У тебя есть картинка со схемой базы?
Аноним 22/12/21 Срд 13:47:44 2245053 59
изображение2021[...].png 37Кб, 1575x905
1575x905
>>2245034
Да понимаю, полная хуйня, но надеюсь связи понятны
Аноним 22/12/21 Срд 14:05:39 2245068 60
>>2245053
Твоя картинка нихуя не соответствует тому что ты написал тут >>2245023 у тебя есть возможность делать запросы к базе?
Аноним 22/12/21 Срд 14:12:28 2245075 61
>>2245068
Через management studio да, могу
А чем не соответствует? Просто логические на русском, а физические имена на английском
Аноним 22/12/21 Срд 14:14:33 2245077 62
>>2245068
Понял, путаница с таблицей Orders. Дата отправки и приемки вообще в других таблицах
Аноним 22/12/21 Срд 14:21:59 2245083 63
>>2245075
select trunc(дата отправления заказа,'mm'),avg(дата доставки на склад назначения-дата отправления заказа) from история перемещений where дата отправления заказа>to_date('01.01.2020','dd.mm.yyyy') and дата отправления заказа<to_date('01.01.2020','dd.mm.yyyy') group by trunc(дата отправления заказа,'mm')

попробуй вот эту хуйню переписать с нормальными названиями таблиц и полей.
Аноним 22/12/21 Срд 14:29:03 2245087 64
>>2245083
>>2245077
вот второе какой же хуйнёй я занят в отпуске

select
склад.номер склада,count(*)
from склад join история перемещений on история перемещений.номер склада назначения=склад.номер склада left join выдача on склад.код адреса=выдача.код адреса выдачи and история перемещений.ID заказа=выдача.ID заказа where дата доставки на склад назначения<=sysdate and nvl(дата выдачи,sysdate+1)>sysdate group by склад.номер склада
Аноним 22/12/21 Срд 14:41:52 2245096 65
>>2245083
>select trunc(дата отправления заказа,'mm'),avg(дата доставки на склад назначения-дата отправления заказа) from история перемещений where дата отправления заказа>to_date('01.01.2020','dd.mm.yyyy') and дата отправления заказа<to_date('01.01.2020','dd.mm.yyyy') group by trunc(дата отправления заказа,'mm')
Не распознал trunc:(
Аноним 22/12/21 Срд 14:48:35 2245099 66
>>2245087
>select
>склад.номер склада,count(*)
>from склад join история перемещений on история перемещений.номер склада назначения=склад.номер склада left join выдача on склад.код адреса=выдача.код адреса выдачи and история перемещений.ID заказа=выдача.ID заказа where дата доставки на склад назначения<=sysdate and nvl(дата выдачи,sysdate+1)>sysdate group by склад.номер склада
nvl не распознает теперь
Аноним 22/12/21 Срд 14:48:32 2245100 67
>>2245083
>>2245087
Ну ты мастер в такую пикчу врубиться, за что там код адреса отвечает в разных таблицах, моё увожение. Чувствуются годы энтерпраза и прокачанный libastral.so.

>>2245096
Попробуй заменить trunc на month(дата)
Аноним 22/12/21 Срд 14:52:25 2245103 68
>>2245083
>>2245087
Так-то, анонче, спасибо большое, насчет ошибок буду до препода доебываться, вдруг поможет
А тебе желаю счастья, здоровья и хорошо отдохнуть в отпуске!
Аноним 22/12/21 Срд 14:53:05 2245104 69
>>2245099
Попробуй заменить nvl на ifnull с такими же аргументами. Если и ifnull не найдёт, замени на isnull.
Аноним 22/12/21 Срд 14:53:28 2245105 70
>>2245100
month помогло, только начали другие ошибки вылезать
В любом случае спасибо за частицу помощи
Аноним 22/12/21 Срд 14:56:36 2245107 71
>>2245096
>>2245099
>Не распознал trunc
>nvl не распознает теперь
Ну я в основном с ораклом работал поэтому и написал на оракле, гугли аналоги функций в твоей СУБД.
>>2245100
> годы энтерпраза и прокачанный libastral.so.
Полтора годика в банке всего.
>>2245104
Скорее всего не проканает, функции выглядят как будто вернут буль а не значение, разые что через кейс переписывать.
>>2245103
>насчет ошибок буду до препода доебываться
Препод выкупит что запрос под другую среду написан и написал его не ты, шанс быть обоссанным огромен.
Аноним 22/12/21 Срд 14:59:46 2245108 72
>>2245107
Погуглю, чтобы не обоссали, спасибо
Аноним 22/12/21 Срд 15:01:31 2245109 73
>>2227895 (OP)
Всю голову уже сломал, потому как с SQL особо дела не имел никогда.
Суть: есть таблица с полем Time (временная метка). От условного клиента приходит запрос на выборку записей с Time >= From и Time <= To. Первую и последнюю запись в этой выборке будем называть граничными, если Time == From или Time == To, иначе - внутренними (Time > From, Time < To). Также клиент передает флаг IncludeBounds, действующий следующим образом: если IncludeBounds == True и крайняя запись (первая или последняя) - внутренняя, то необходимо включить в выборку запись с временной меткой прямо перед ней/прямо после нее (для первой и последней записи соответственно). Диалект - PostgreSQL. Очень хочется выполнить всё это средствами запроса в SQL и не прекладывать фильтрацию крайних записей на клиента.
С меня сотни нефти, если подскажете, в какую сторону смотреть. Видел оконные функции в мануале по pgsql типа lag и lead, но никак не могу ввернуть их в свою развесистую логику.
БЛЭЭЭЭЭЭТ Аноним 22/12/21 Срд 18:54:15 2245341 74
Делал кто нибудь винтаж-анализ с помощью SQL?
Аноним 22/12/21 Срд 21:36:34 2245464 75
Нужна книга или плейлист индуса PostgreSQL для профессионалов, плиз посоветуйте что-нибудь без духоты типа "что такое update и select".
Аноним 23/12/21 Чтв 01:28:42 2245569 76
>>2245109
Сделать view в котором уже будет lag и lead, и выбирать из него.
Аноним 23/12/21 Чтв 20:53:20 2246337 77
Можно ли в postgre использовать WITH в хранимой процедуре?
Аноним 24/12/21 Птн 01:32:37 2246516 78
Аноним 24/12/21 Птн 02:20:01 2246531 79
Какие подводные у sqlite?
Аноним 24/12/21 Птн 04:19:55 2246549 80
Аноним 24/12/21 Птн 07:37:31 2246566 81
>>2246531
1. С параллелизмом всё плохо, транзакции выполняются последовательно.
2. Нет хранимых процедур

Но если использовать sqlite по назначению, никаких подводных.
Аноним 24/12/21 Птн 14:50:58 2246834 82
>>2246566
Что такое хранимые процедуры?
Аноним 24/12/21 Птн 15:15:57 2246860 83
>>2246834
Это процедуры, и они хранимы.
Аноним 24/12/21 Птн 15:20:17 2246866 84
>>2246834
На них можно программировать прямо в БД, это как функции/методы в обычных языках. Впрочем, некоторыми это считается плохим тоном.
Аноним 24/12/21 Птн 16:07:07 2246897 85
>>2246866
То есть написать десктоп софтину с sqlite для своего офиса из 10 человек с небольшим количеством запросов это норм и проблем не будет?
Аноним 24/12/21 Птн 16:54:38 2246944 86
>>2246897
Смотря что за софтина, но скорее всего норм.
Аноним 24/12/21 Птн 18:25:15 2247028 87
Аноним 24/12/21 Птн 19:05:38 2247057 88
Аноним 24/12/21 Птн 19:16:00 2247063 89
>>2247028
Вроде такие ебалы на sql не пишут, а обычно делают sql-запрос с вытягиванием данных в нужном формате для BI-тулзы типа Power BI Desktop. Есть ещё любители подушить своего питона с Pandas.
Если нужен sql, то советую писать не сразу весь огромный запрос, а итеративно через кучу промежуточных представлений на with ... as... Например, сначала рассуй свою основную сущность, от которой всё производится (инфа о кредитах одного человека, видимо) по месяцам, потом на основе этого представления делай ещё представление с уже конкретно интересующей сущностью (взятый в этом месяце краткосрочный кредит по месяцам), потом ещё представление с нужными параметрами для рассчёта интересующего параметра (например, количество краткосрочных кредитов в месяц, если нужно посчитать их процент), потом на основе всего уже финалочку: месяц есть, размер когорты есть, количество краткосрочных кредитов за месяц есть, осталось посчитать процент. Ну ты понел идею, и постгресовская рекурсия не понадобится.
Аноним 24/12/21 Птн 19:26:21 2247066 90
>>2247057
У меня чуть кишка не выпала писать простенькую рекурсию с пересечением периодов просрочки по одному контрагенту на разных сделках, тут логика сложнее, вообще ёбнуться можно.
Аноним 24/12/21 Птн 19:46:53 2247078 91
>>2247063
Да, я так и думаю по кусочкам данные вытащить. После загнать их в Excel или Power BI.
Power BI хорош, но у меня железо не может его переварить если там много данных.
Аноним 25/12/21 Суб 20:54:58 2247909 92
Как записать в БД набор чисел типа 1 3 10 100 и тд
На каждую создавать колонку?
Аноним 25/12/21 Суб 22:29:02 2247974 93
>>2247909
В общем случае для каждого значения создаётся по новой записи в таблице:
id | value
1 | 1
2 | 3
3 | 10
4 | 100
Ещё некоторые СУБД поддерживают коллекции в колонках (массивы, json и т.д.), но там есть свои проблемы.
Аноним 26/12/21 Вск 03:43:02 2248128 94
>>2246897
Живой пример файрфокс, с ублюдским зависанием при обращении к истории или закладкам
Аноним 26/12/21 Вск 22:50:41 2248889 95
Реквестирую гид для даунов, в котором будет описано, как на винде сделать синхронизацию между двумя базами данных.
Я так понял, что это называется репликацией, но не нашел нормального пошагового гайда.
Аноним 27/12/21 Пнд 01:29:30 2248999 96
Хочу научиться создавать и приложения всякие, погромировать (только пайтон). Из того что умею, писать какие-то сложные SQL запросы с достаточно сложной логикой, с большим количеством данных, и с хуевым качеством модели данных, знаю о моделировании хранилищ данных для крупных предприятий, и разбираюсь немного в оптимизации, короче SQL аналитик. Какие подводные?
Аноним 27/12/21 Пнд 08:13:09 2249046 97
Кто-нибудь может пояснить за динамический sql?
Аноним 27/12/21 Пнд 12:02:40 2249155 98
>>2248889
Для тебя - никак. Просто купи самый дорогой и большой сервер который можешь себе позволить. Не надо масштабировать СУБД (по крайней мере тебе)
Аноним 27/12/21 Пнд 12:05:10 2249159 99
>>2248999
Узнаешь что такое Настоящее АЙТИ, с легаси-фреймворками и выгоришь. Ты легко отделался, т-щ sql-аналитик.

Кстати, ты apache superset уже поставил? Зачем тебе вообще приложения писать, если есть apache superset ?
Аноним 27/12/21 Пнд 12:07:37 2249161 100
>>2249046
это просто формирование текста запроса на ходу, вплоть до формирование текста sql средствами sql.

Нихуя интересного. Кто-то сдался без боя не смогши написать обычный SQL иди написать приложение.
Аноним 27/12/21 Пнд 12:48:59 2249213 101
Как понять подзапросы?
Аноним 27/12/21 Пнд 13:38:38 2249281 102
Аноним 27/12/21 Пнд 17:43:10 2249571 103
>>2249155
>Для тебя - никак.
Что ж ты так категорично, лол.
Мне для запуска двух WoW серверов надо было. Разобрался, кстати.
Аноним 27/12/21 Пнд 18:18:47 2249625 104
python data sci[...].jpeg 58Кб, 694x587
694x587
python devs.png 659Кб, 960x638
960x638
>>2248999
Да в частности никаких подводных, за 2–3 месяца наглаживания питона сможешь свободно свои данные вертеть в каком-нибудь пандасе. Питон вообще нужен только для датасатанизма и говноскриптов. А вот для погромирования в целом тебе такая прорва знаний понадобится, что охуеть не встать, лучше сначала выбери один стул из трёх: десктоп, мобилки или веб. Ну и долби эту область до посинения, там везде фрактал технологий, на всю жизнь хватит. Если ты ради денег всё это затеял, выбирай жабаскрипт и веб, бонусом потом получишь говнокод на мобилках. И как языки javascript и python это два брата-акробата. Питон, конечно, лучше задизайнен, но склонность к говнокоду они развивают одинаковую. Если же погромировать хочется из любви к искусству, то я бы брал десктоп и дотнет, туда Хайльсберг натаскал столько фич из разных языков и парадигм, что потом сможешь перекатиться куда душе угодно и всё тебе будет казаться знакомым.
Аноним 27/12/21 Пнд 19:40:35 2249724 105
Аноним 28/12/21 Втр 12:59:55 2250278 106
С фронта приходит список строк по типу
["maryland", "prowler", "twitterpluck"]

Мы выбираем из таблицы entity только те строки где name равняет одному из тех что оказались в списке. Как это правильно сделать? Ебануть switch-case? Какой-то индекс к колонке стоит добавлять?
Аноним 28/12/21 Втр 13:23:04 2250309 107
>>2250278
select * from entity where name in ('maryland', 'prowler', 'twitterpluck')
Для генерации списков такого вида и передачи их в запрос в твоём языке наверняка есть что-то готовое.
Индекс по name, конечно, нужен.
Аноним 29/12/21 Срд 17:57:03 2251662 108
доброго, аноны. решаю тут задачку одну и немного запутался.

цель - построить модель БД, отобразить связи между сущностям.
задание такое - каждому студенту выдают базовый набор при поступлении на первый курс:
один учебник по истории;
один учебник по экономике;
один учебник по высшей алгбере;
один учебник по матанализу.

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

Вопрос такой, какие связи тут использовать? изначально построил многие ко многим, но засомневался. сомневаюсь, потому что по сути один студент и одна книга по каждому предмету. не должно быть тут один ко одному?
есть у кого какие мысли?
Аноним 29/12/21 Срд 18:12:17 2251674 109
>>2251662
students (id, name)
books (id, name, year)
book_copies (id, lib_number, book_id -> books.id, student_id -> students.id)
Аноним 29/12/21 Срд 19:11:09 2251743 110
>>2251674
спасибо! разобрался теперь. но один вопрос, для чего lib_number? не вдупляю
Аноним 29/12/21 Срд 19:25:41 2251752 111
>>2251743
У тебя ведь есть в задаче индивидуальный номер учебника в библиотеке, это он и есть. Его можно было бы использовать как первичный ключ вместо book_copies.id, но если он не считается простым инкрементом счётчика и должен быть в определённом формате наподобие "2017/А/453-нд", лучше его хранить отдельно.
Аноним 29/12/21 Срд 21:45:21 2251828 112
>>2249159
>Кстати, ты apache superset уже поставил? Зачем тебе вообще приложения писать, если есть apache superset ?
А в чем связь?

>>2249625
>датасатанизма и говноскриптов
Учитывая что я собственно и не умею писать говноскрипты и не работаю в пандасе, то думаю начать с этого, чтобы освоиться немного.
Веб звучит интереснее
Аноним 29/12/21 Срд 21:47:23 2251830 113
>>2251752
>"2017/А/453-нд"
А в чем смысол таких названий? чтобы получать максимум информации просто взглянув на название, и знать к какому модулю программы это относится, или что?
мимо
Аноним 29/12/21 Срд 22:00:20 2251833 114
.png 869Кб, 800x507
800x507
>>2251830
Подобные номера появились задолго до программирования, в каких-нибудь бумажных картотеках и документах часто такая нумерация, потому что нет удобной централизованной базы данных, которая бы нумеровала по счётчику, и приходится придумывать, как обеспечить уникальность номеров так, чтобы было более-менее удобно упорядочивать и искать. Такое юзается везде - учётные карточки в библиотеке, серия/номер паспорта, банковский счёт, номер телефона и т.д.
Аноним 29/12/21 Срд 22:07:11 2251839 115
>>2251833
То есть даже в каких-то современных системах, это сделано для удобной системы карточек (если вдруг понадобится)?
Аноним 29/12/21 Срд 22:17:57 2251845 116
>>2251839
По-разному делают, не только для удобства. Часто там, где внедряют ПО, уже есть классический учёт на бумажках, и приходится для сохранения "обратной совместимости" добавлять его поддержку. Где бизнес-процесс организуется с нуля, иногда могут обойтись без этого.
Аноним 30/12/21 Чтв 02:26:31 2251940 117
>>2251839
>>2251845
В современых системах на TB+ данных такое внедряется специально, напирмер partitions в Hadoop (ага, зумеры переизобрели то что деды веками использовали...), что бы про селектах тянуть только нужные данные.
Аноним 30/12/21 Чтв 09:32:37 2251994 118
>>2251662
1. Таблица где все студенты
2. Таблица "виды учебников"
3. Таблица, где все учебники с номерами и ссылка на вид учебника
4. Таблица, где связано когда, кому и что выдано / возвращено. Ссылка на студента и ссылка на учебник.

С такой системой ты сможешь посчитать остатки учебников в библиотеке, узнать какие учебники на руках у конкретного студента в любой момент времени, узнать каких учебников студент недополучил/переполучил и т.д.
Аноним 03/01/22 Пнд 19:36:30 2255288 119
>>2227895 (OP)
Нужно изучить postgres, так как формат степика ближе всего, нашел там https://stepik.org/course/97207/promo?next=
Нормально ли изучить по нему будет? Не попаду ли на косарик?
Аноним 03/01/22 Пнд 19:41:42 2255293 120
>>2255288
Зачем? Если так невмоготу читать книги, есть куча бесплатных курсов.
Аноним 03/01/22 Пнд 21:54:39 2255349 121
Добрый вечер, аноны. Встала задача оптимизировать долгие запросы с таймаутами, но опыта почти нет, кроме как собрать старую статистику, либо ебануть индекс. Подкиньте плиз разных книг по оптимизации запросов в бд oracle или индексов, желательно не совсем старье. В гугле много чего нашел, но может у анона завалялись хидден джемы о которых мало кто знает?
Аноним 04/01/22 Втр 01:36:36 2255496 122
123.png 18Кб, 770x466
770x466
Что не так сделал?
Аноним 04/01/22 Втр 01:41:34 2255497 123
>>2255496
category.amount либо product.amount, укажи явно откуда выбираешь
Аноним 04/01/22 Втр 01:45:23 2255501 124
1234.png 19Кб, 794x489
794x489
Аноним 04/01/22 Втр 01:47:22 2255503 125
12345.png 13Кб, 440x425
440x425
>>2255497
для полной картины
Аноним 04/01/22 Втр 01:53:55 2255507 126
123456.png 13Кб, 755x371
755x371
надо было id поставить
Аноним 04/01/22 Втр 11:10:23 2255586 127
>>2255507
Нет, указание имени должно было работать, и хардкод айдишника с точки зрения читабельности - говнокод. Хуй знает что там за проблема, эта хреновина же нормальные сообщения об ошибках не выдает.
Аноним 04/01/22 Втр 13:38:05 2255698 128
Аноним 04/01/22 Втр 14:20:09 2255734 129
Аноним 04/01/22 Втр 14:41:46 2255752 130
>>2255507

>2255734
этот прав, тебе надо привести сначала было в один регистр
where upper(category.name)='GOVNO'
Аноним 04/01/22 Втр 16:27:00 2255839 131
>>2255349
ты старьем называешь "Кэри Миллсап, Джефф Хольт. Oracle: Оптимизация производительности"?
там вроде не поменялось нихуя. Как 20 лет назад он зумеров обоссывал и сейчас все актуально.
Аноним 04/01/22 Втр 17:26:55 2255899 132
bandicam 2022-0[...].mp4 2166Кб, 1864x720, 00:00:30
1864x720
Смотрите, как можно.
Написал генератор простых чисел на чистом sql. За 11 секунд строится последовательность до 1 миллиона.
Аноним 04/01/22 Втр 17:44:44 2255913 133
.png 5Кб, 319x208
319x208
Аноним 04/01/22 Втр 17:59:54 2255930 134
dog-bubble-puppy.gif 5928Кб, 640x640
640x640
Что нынче на собеседованиях спрашивают?
На ум приходят только транзакции какие-нибудь
Аноним 04/01/22 Втр 18:55:25 2255967 135
>>2255913
>Значение 1000000, указанное для параметра MAXRECURSION, превышает допустимый максимум 32767.
MSSQL. Стек вызовов не бесконечный.
Вроде в каких-то можно числовую последовательность функцией просто сгенерить. В postgres generate_series есть например.

Но я упор на быстроту делал.

А так переделал Having в краткий вариант c минимумом, вроде на секунду быстрее, показывает всегда 10 секунд так милионную последовательность. Но всё остальное оставил, как было. Так как так быстрее работать будет.

Надо рассматривать только цифры, которые оканчиваются на 1, 3, 7 или 9 и в условие соединения поставить делимость на 2 3 5 7. По этой причине лучше через UNION граничные условия отработать, так как числа 2 3 5 7 не попадут туда. А разница в производительности большая, если убрать это условие.

Еще числа надо проиндексировать, поместив во временную таблицу, так как оно потом само с собой соединяется.
Я проверял, что при установке индекса на колонку с числом во временной таблице, где все числа лежат, быстрее в 1,5 раза работает.
Без индекса 16 секунд, а с ним под 10.



Аноним 04/01/22 Втр 23:16:41 2256203 136
>>2255839
>ты старьем называешь "Кэри Миллсап, Джефф Хольт. Oracle: Оптимизация производительности"?
Да.
>там вроде не поменялось нихуя
Хз, конечно, книга 2006 года, уже экзадаты хуедаты появились у которых свои фишки в оптимизации. Но если основы особо не поменялась, то спасибо, почитаю её.
Аноним 05/01/22 Срд 05:22:12 2256356 137
>>2255913
ловко
бля пчел, тебе делать нехуй?
Аноним 05/01/22 Срд 17:23:33 2256647 138
>>2256356
Я со стака взял, самому лень.
Аноним 06/01/22 Чтв 00:27:43 2256922 139
Аноны, выручайте
С помощью анонов выше, я написал работающий вроде запрос. Препод сказал, что логика хуйня, но не суть. Мне нужно поставить правильное условие where.
Суть условия в том, что, если в таблице История_перемещений в строке Дата_доставки_на_склад_назначения есть заказ, а в таблице Выдача вообще нет этого заказа, то нужно его вывести.
То есть нужно вывести заказ, который приехал на склад (о нем есть запись в таблице История_перемещений) и у которого нет записи в таблице Выдача. Как это сделать?
Я всё ещё тупой, если что-то неправильно пишу сердечно прошу простить
Аноним 06/01/22 Чтв 07:46:33 2257074 140
Хранить json в базе норм практика?
Аноним 06/01/22 Чтв 11:25:39 2257156 141
>>2257074
в зависимости от задачи, просто хранить да, искать в нем, нет.
Аноним 06/01/22 Чтв 11:41:01 2257170 142
>>2256922
Соединить таблицы левым соединением (где слева будет таблица выдача) и в where прописать "Выдача.<какое-то поле> is null"?
Аноним 06/01/22 Чтв 13:11:57 2257204 143
>>2257156
А что норм хранить,однообразные записи,типа набор чисел?
Аноним 06/01/22 Чтв 13:17:01 2257209 144
>>2257204
Норм хранить одно атомарное значение.
Аноним 06/01/22 Чтв 15:26:47 2257333 145
Аноним 06/01/22 Чтв 16:02:30 2257376 146
>>2257204
Ну смотри, вот получил ты джейсон с внешней системы, тебе его надо распарсить и разложить по столбцам, это будет правильный реляционный подход. Хранить же в отдельном столбце весь джсон имеет смысл, только если там какая-то дополнительная информация, например исходный не распаршеный джсон, или там комментарии и тех параметры, или например схема, т.е. данные которые возможно пригодятся пользователю, но поиск в которых ты не планируешь. Есть механизмы позволяющие работать джсонами внутри бд, но я более чем уверен работает этот медленно как говно, да если ты дотсанешь сначала 100 строк, потом заглянешь в джсон и как-то их отфильтруешь\выведешь только части джсона, да это валидный сценарий, а если ты достнёшь сто тысяч строк, и полезешь что-то искать в жсоне, то ты сам себе в жопу только выебешь.
Аноним 06/01/22 Чтв 16:26:16 2257418 147
Аноним 06/01/22 Чтв 17:06:31 2257454 148
>>2257376
Все так. Но можно сделать индекс по вычисляемому полю и заебись залетает.
Стандартный программист конечно охуеет от такого...
Аноним 07/01/22 Птн 21:48:14 2258749 149
>>2257170
Спасибо, только почему-то корректно сработало is not null
Аноним 07/01/22 Птн 23:38:09 2258828 150
Сколько получают аноны шарящие хорошо в SQL (включая db modeling, dwh, сложные бизнес логики, оптимизация запросов) и по минимуму процедурных расширений. Короче способные осилить почти любую поставленную задачу в банке/телекоме/it каком-нибудь связанную с sql, но именно с такими скиллами.
Аноним 07/01/22 Птн 23:41:08 2258831 151
>2258828
Ну это в компетенции data-инженера. Таких персонажей я не встречал тут
Аноним 07/01/22 Птн 23:41:51 2258833 152
Аноним 07/01/22 Птн 23:44:21 2258834 153
>>2258831
Не знаю как это называется. Но я почему-то считаю это миксом бизнес аналитика и SQL девелопера, потому что нужно нихуево так разбираться в бизнес логиках, в том как устроены все данные, в качестве данных, в том, чтобы скрипт работал охуительно быстро и чтобы к бизнес логике даже самый прошаренный управленец не смог бы придраться. Ну пусть будет дата инженер, похуй.
Надоело горбатиться за копейки.

Аноним 08/01/22 Суб 01:15:44 2258886 154
>>2258831
Это я, 150к получаю. И это не дата инженер, это ДВХ разработчик
Аноним 10/01/22 Пнд 23:14:28 2261553 155
Приветик. Пишет вам макакен.
Смотрите. Вот у меня есть таблица Clients. В ней есть всякая информация. Но есть поле(колонка) Port. Думаю можно догадаться, но я поясню. Port - это TCP-порт(1-65535) по которому с подключенным клиентом можно коммуницировать через мое приложение. Но не суть. А суть вот в чем. Я хочу, чтобы при добавлении в БД нового клиента этот порт присваивался. Порт должен быть уникальным, но с условиями: есть табличка ForbiddenPorts в которой, как нетрудно догадаться из названия - перечислены порты. Есть табличка: ServerSettings где есть всегда запись: StartPort - это минимальное значение порта который можно использовать и ServerPort - порт который использует сервер для подключения клиентов(может быть больше стартового, потому его тоже нельзя использовать).
Как на текущий момент делаю я. Я на уровне своего приложения все разруливаю. Но меня это смущает. Во-первых, пришлось жуткий велосипед с очередями реализовывать. Во-вторых, мне кажется, что с этим БД должна справляться быстрее.
Я знаю, что в большинстве СУБД - есть такая штука как триггеры. Вот я и хочу намутить триггер на вставку нового клиента. Вот только я чет не совсем понимаю как это делается.
Аноним 11/01/22 Втр 00:11:13 2261592 156
>>2261553
если ты какую-то ебалу сетевую с длинным сроком жизни пишешь, то лучше сразу проектировать "порто-независимый" протокол, иначе клиенты все равно потом хлебнут горя с nat-ом и корпоративными админами.

Все это весело выглядит, но несерьезно.
Аноним 11/01/22 Втр 00:44:35 2261607 157
>>2261553
Если это постгря, то собираешь все свои занятые порты через union и выбираешь из серии что-то не из них.
http://sqlfiddle.com/#!15/9eecb7db59d16c80417c72d1e1f4fbf1/42458

Всю это ебалу можно завернуть в скобки как значение при вставке.
Аноним 11/01/22 Втр 08:27:59 2261718 158
>>2261553
чот это говно затея, архитектурное решения уровня б, так никто не делает.
Аноним 11/01/22 Втр 20:23:05 2262321 159
>>2261718
Что конкретно-то? Выделять порты клиентам - это фича, которая в любом случае нужна. Выносить это на сторону базы, ну, да, я как-бы не хочу, но суть в том, что иначе - пришлось делать очень уродливый велосипед, с очередями и прочим и этот велосипед меня бесит своим наличием. Хочу чтоб в коде приложения просто было:
if(isNewClient){db.Add("ClientsTable", clientFactory.CreateNewClient(registrationRequest));}
А вместо этого там огромный уродливый монстр, который все равно лезет в базу, проверяет кто уже зарегался, ищет дырки, лезет смотреть кто заблокированные порты. Единственный плюс на стороне приложения, что я могу еще проверить что там система юзает в данный момент и если юзает - пропустить данный порт и пойти к следующему.
Аноним 11/01/22 Втр 20:41:24 2262332 160
Ананасы, вопрос такой по структуре таблиц.
Значит затеял небольшой проект для себя - анализ аукциона в вов. Уже сейчас понимаю предметы отслеживаемые надо как-то группировать их по нужным мне критериям: количество, цена, если предмет можно переделать в другой которой можно продать дороже, если у предмета падает цена в течении какого-то периода, его давно было на ауке и тп.
Пока у меня только одна таблица с айдишником предмета и указанием по какому полю его фильтровать наличие\цена\количество и тд.
Как вот такое можно сделать нормальным способом? Запилить таблицу "Группы" где одно из полей отвечает за условие и потом айдишник записи присваивать отслеживаемым предметам?
Аноним 11/01/22 Втр 21:55:59 2262384 161
>>2262321
*охуевает по-девопски

давай сначала.
Зачем ты выделяешь порты клиентам?
Что есть клиентское приложение?

Ты знаешь значение таких терминов как : http, json, websocket ?
Аноним 12/01/22 Срд 06:37:58 2262536 162
>>2262384
> Зачем ты выделяешь порты клиентам?
Чтобы, сокет открыть. Что тут может быть непонятного?
> Что есть клиентское приложение?
Приложение, в котором реализована логика взаимодействия с сервером. Ну хули тут объяснять? Есть протокол. Есть PDU всякие. Есть логика приложения, построенная поверх этого протокола. Сидит-пердит, по таймеру просыпается, пытается зарегистрироваться, если да - погнали дальше делать штуки прикладного уровня, если нет - спим дальше.

> Ты знаешь значение таких терминов как :
Знаю. Но эти технологии к тому что я делаю - не относятся.
Аноним 12/01/22 Срд 09:03:03 2262562 163
>>2262536
если ты какой-то железячник и впервые пишешь БД - просто не лезь в триггеры.
Никакого ускорения (которое ты считаешь важным) не будет.

у тебя уникальность порта подтверждается в момент его открытия для прослушивания. ну вот ориентируйся на это
Аноним 12/01/22 Срд 09:24:19 2262572 164
>>2227895 (OP)
Как эффективнее всего выучить уровни изоляции транзакций, когда я работаю с базой через Hibernate или Spring Data? Может быть есть какое-то мнемоническое правило?
Аноним 12/01/22 Срд 09:34:54 2262578 165
>>2262572
Мнемоническое правило такое: READ COMMITED.
Аноним 12/01/22 Срд 10:31:59 2262620 166
>>2262578
SERIALIZABLE
REPEATABLE READ
READ COMMITTED
READ UNCOMMITTED

Их как минимум 4 вида. На собеседовании всегда спрашивают какую и когда использовать и начинают ворошить кишочки всяких спринг дат и прочих хибернейтов, плавно переходя к работе PostgreSQL
Аноним 12/01/22 Срд 10:54:30 2262644 167
Аноним 12/01/22 Срд 11:00:37 2262648 168
>>2262644
Спасибо. Нужно как-то заучить эти правила. Карточки в Anki создать что ли...
Аноним 12/01/22 Срд 12:46:27 2262732 169
>>2262648
у меня есть видео по теме, на днях залью куда-нибудь
Аноним 12/01/22 Срд 21:32:01 2263458 170
>>2262648

их не надо учить.

их надо понять

основное везде READ COMMITTED

c остальными хер ты встретишься.
Аноним 13/01/22 Чтв 01:43:46 2263581 171
>>2263458
Серриалайз при апдейтах юзают
Аноним 13/01/22 Чтв 17:16:37 2264173 172
>>2263458
На собеседованиях попускают и смеются в лицо, когда я не могу объяснить где какую использовать.
Аноним 13/01/22 Чтв 22:34:29 2264492 173
накидайте фактов, почему аналитика в 1с - говно
14/01/22 Птн 01:51:05 2264585 174
>>2264492
Почему говно, идеальная система: дружелюбный интерфейс, высокая надёжность, лёгкость настройки отчетов. Рекомендую записаться на курсы от Нетологии!
Аноним 14/01/22 Птн 02:38:59 2264602 175
>>2264492
Очевидно потому-что само 1с негибкое говно, работающая с БД через залупу, да и вобще это не аналитическая система. Ты же не задаёшься вопросом почему в валенках не бегают кросс?
Аноним 14/01/22 Птн 04:22:13 2264613 176
Аноним 14/01/22 Птн 11:43:47 2264735 177
>>2264492
ты хоть базу 1с открывал? там нет аналитики. Ни о каких кросс-запросах и речи нет. Работать быстро это в принципе не может.
Там с большим трудом можно разобрать все файлы словаря чтобы добраться до самих значений. А таблицы они называют "регистры" (Не спрашивай откуда я это знаю.)

Короче, это днина.
Аноним 14/01/22 Птн 13:31:40 2264810 178
>>2264735
Однажды Эрнест Хемингуэй поспорил, что напишет самый короткий рассказ, способный растрогать любого. Он выиграл спор, написав всего 3 слова: «Аналаитика в 1С»
Аноним 14/01/22 Птн 16:32:54 2264894 179
>>2264735
>Ни о каких кросс-запросах и речи нет
Да ладно ?! Можно подкллючать внешние источники через ODBC.

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

>А таблицы они называют "регистры"
Регистр - это один из видов объектов. Чё ты несешь.

> Работать быстро это в принципе не может.
Я базу и 4ТБ видел на 1Се (в связке с MSSQL). Дело не только в 1С, а в кривых руках.
Аноним 14/01/22 Птн 16:38:50 2264898 180
>>2264735
П.С.
И называют они их регистрами, потому что прикладной разработчик оперируют объектными терминами, а не реальными таблицами СУБД. Не так часто на урокень СУБД приходиться опускаться. Обычно это задачи производительности, когда план запроса надо анализировать, который в реальности выполняется.
Внезапно, также как и в любых других технологиях.
Это по сути тот же ORM в нормальных ЯП, но не совсем.

Аноним 14/01/22 Птн 16:55:45 2264906 181
>>2264735
П.С.П.С.П.С.
А аналитикой там как таковой не занимаются.
Это в первую очередь система для получения первичных данных, сводных отчетов и регламентированных.
А производить какую-то АНАЛИТИКУ ДАННЫХ с поиском закономерностей, крутить кубы и вот это вот всё - это не задача баз на системе 1С в принципе.
Есть дочерний продукт 1С:Аналитика (это не относится к платформе 1С - это стороння BI система от фирмы 1С) - вот там пытаются какое-то подобие сделать.
А аналитиками в 1С других людей называют.
Проблема терминов и не понимания, что для чего используется.
Аноним 14/01/22 Птн 19:17:59 2265037 182
Сап двач, представь следующую ситуацию. Есть какие-то сущности, которые соотносятся как предок-потомок. Запрос может включать различные параметры фильтрации и пагинации для обоих. Вопрос, как достать результат, отфильтрованный по потомкам, но пагинированный по предкам, не запрашивая всех потомков?
Аноним 14/01/22 Птн 19:19:49 2265038 183
>>2265037
Сущности одного типа и лежат в одной таблице. Фильтры применяются ко всем сущностям, пагинация только по предкам.
Аноним 14/01/22 Птн 21:42:38 2265154 184
>>2264898
>И называют они их регистрами, потому что прикладной разработчик оперируют объектными терминами, а не реальными таблицами СУБД. Не так часто на урокень СУБД приходиться опускаться. Обычно это задачи производительности,

Причем, если бы они это делали как средние разработчики изначально, сейчас бы любая дура с PowerBI наклепала бы отчетики - закачаешься.
Аноним 15/01/22 Суб 07:06:36 2265356 185
>>2227895 (OP)
Можно ли извлечь значение из таблицы, и сразу же сравнить его с имеющимся значением, чтобы получить true или false и выполнить, либо не выполнить следующий запрос?
Если да, то как?

Аноним 15/01/22 Суб 07:58:29 2265364 186
Аноним 15/01/22 Суб 09:56:54 2265396 187
>>2265364
Ну и как это в sqlite применить?
Аноним 15/01/22 Суб 10:04:39 2265405 188
Аноним 16/01/22 Вск 14:55:54 2266738 189
Как правильно: keyset pagination или seek pagination?
Аноним 16/01/22 Вск 23:45:52 2267276 190
Аноним 16/01/22 Вск 23:56:13 2267283 191
>>2267276
Куда выкатываться?
Аноним 16/01/22 Вск 23:56:46 2267285 192
Аноним 17/01/22 Пнд 06:20:07 2267381 193
1642389600031.mp4 8192Кб, 854x480, 00:00:05
854x480
>>2267276
>Дата сеанс все
> Статья начинается со слов trigger warning
Аноним 17/01/22 Пнд 19:34:44 2268116 194
Азарёнок.mp4 6737Кб, 1280x720, 00:01:15
1280x720
Анон, в чем необходимость запускать базы SQL от имени другого пользователя? И тем более использование MSA
Аноним 17/01/22 Пнд 22:37:58 2268336 195
>>2268116
так уж повелось в айтишечке. Операционная система разграничивает процессы на основе идентификатора юзера.

Например ты мог бы сделать CREATE TABLE EXTERNAL FILE '/etc/passwd' и потом сделать select * from .
И это реально работавший случай в базах данных великого прошлого
Аноним 17/01/22 Пнд 22:58:53 2268351 196
Аноним 18/01/22 Втр 08:59:05 2268559 197
>>2268336
>Например ты мог бы сделать CREATE TABLE EXTERNAL FILE '/etc/passwd' и потом сделать select * from .
Что произойдет? Какие-то пароли извлечет?
Аноним 18/01/22 Втр 12:35:43 2268772 198
>>2268559
Ты как-то неправильно понимаешь информационную безопасность. Любая извлеченная информация повышает вероятность взлома.
Например, ну там будет юзер anna с очевидным паролем anna123.


А вообще в былые времена дельфятники (эта конструкция из Firebird) легко могли под root запускать бд на линупсе.
Люди простые и незнакомой среде не разбирались.
Аноним 18/01/22 Втр 12:37:18 2268774 199
>>2268351
гранты обрабатывает БД оперируя своими объектами.
Вот только эти объекты из реальной жизни, а не теоретические. Они позволяют и файлы читать и внешние программы запускать.
Аноним 18/01/22 Втр 14:56:44 2268948 200
>>2268772
Да я к бд отношения особо не имею. Я админиню домен как могу и хочу понимать смысл всего этого
Аноним 19/01/22 Срд 01:58:09 2269791 201
>>2268116
Потому-что по дефолтным пользвотелем несекьюрно, и если тебе нужен доступ к информации на другой машине, отгребешь проблем.
Аноним 19/01/22 Срд 01:59:30 2269793 202
>>2268559
Через мсскуль можно получить доступ к командной строке
Аноним 19/01/22 Срд 02:27:25 2269825 203
Привет, анон.

Есть несколько сотен тысяч географических точек (широта/долгота). И они хранятся в БД.

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

Есть ли что-то такое же на мускуле/постгрессе?
Если нет, то сильно ли сложно накрутить и будет ли это влиять на перформанс?

Не спрашиваю, "как" - я примерно представляю, как это может быть реализовано, просто у меня стоит выбор: либо реляционная БД, чтобы связывать мочу с говном, либо конкретно для геопоиска сделать чё-то вроде микросервиса с отдельной бд.
Аноним 19/01/22 Срд 02:32:56 2269827 204
>>2269825
В мускле точно нет, в постгресе вроде что-то было.
Аноним 19/01/22 Срд 08:16:38 2269934 205
Аноним 19/01/22 Срд 08:18:03 2269936 206
>>2269934
а бля в глаза долблюсь mysql, а mssql
Аноним 19/01/22 Срд 18:39:25 2270585 207
Есть запрос, выводящий запись, которая чаще всех встречается в столбце.
Но как сделать так, чтобы запрос в случае, если несколько разных записей больше всех встречаются одинаковое кол-во раз, выводил бы их все?

Аноним 19/01/22 Срд 19:46:03 2270716 208
>>2269825
>постгрессе
Постгис
Аноним 20/01/22 Чтв 01:31:50 2271111 209
>>2270585
А что у вас вместо квери сейчас, разрешите полюбопытствовать?
Аноним 20/01/22 Чтв 03:58:01 2271129 210
image.png 7Кб, 570x84
570x84
Нужно продублировать строки, в mssql это можно сделать джоином на статичные значения(пикрелейтед). Как такой же трюк провернуть в оракле?
Аноним 20/01/22 Чтв 10:38:55 2271244 211
>>2269825
В постгресе есть огромный модуль работы с геоданными
Аноним 20/01/22 Чтв 13:23:30 2271392 212
Аноним 20/01/22 Чтв 13:24:59 2271393 213
Аноним 20/01/22 Чтв 15:59:25 2271522 214
Поясните за применение sqlite3 в вебе.
Насколько она пригодна для использования в бекенде при написании небольших проектов или это вообще не ее область?
Аноним 20/01/22 Чтв 16:36:33 2271551 215
Аноним 20/01/22 Чтв 16:56:59 2271566 216
>>2271522
Не пригодна. Работать будет но зачем удивлять коллег? У нас тут на бал-маскарад, а серьезный бизнес.

но допустим, zabbix ее использует для хранения промежуточных данных на proxy и всем норм. Оффициальная (tm) конфигурация
Аноним 20/01/22 Чтв 16:58:27 2271570 217
>>2271566
Тут кого не пни, каждый первый - йоба хайлоадер, пилит проекты мирового уровня, ага.
Аноним 20/01/22 Чтв 22:01:52 2271912 218
>>2271570
дело не в этом. повторюсь еще раз: НЕ НАДО УДИВЛЯТЬ КОЛЛЕГ
Аноним 21/01/22 Птн 14:10:45 2272283 219
>>2227895 (OP)
Как согласовывать обновы кода с изменениями базы данных?

Вот есть у меня джанго-приложуха, я в ней меняю схемы БД на удаленном тест-серваке через миграции, затем через какое-то время на этот сервер я заливаю другой код, из более ранее ветки, и там же сцуко схемы БД будут другие из-за чего могут вылезать занятные ошибки на NOT-NULL CONSTRAINT и прочее. Как с таким справляться?
Аноним 21/01/22 Птн 20:42:45 2272695 220
>>2272283
Обычно держат несколько тестовых серверов, каждый со своей схемой, и если накатили миграции, приложение на более старое обычно уже не обновляют, если надо что-то потестить со старым приложением, юзают другой сервер, который ещё не обновляли. Или восстанавливают дамп тестовой схемы, но это влечёт за собой последующую еблю с восстановлением тестовых данных.
Аноним 22/01/22 Суб 04:02:26 2273011 221
>>2272695
this
Плюс контейнерезация
Аноним 22/01/22 Суб 17:24:45 2273448 222
Подскажите, как поменять хост постгреса с винды? И чтобы к нему могли подключаться с других айпишников?
Аноним 22/01/22 Суб 20:09:03 2273652 223
Парни и не парни(со штучкой), тут такое дело.
Я наконец-то начал изучать веб-погроммирование, скачал купил книжку, дошло дело до темы баз данных. И на разделе с ознакомлением с SQLite я решил пройти метанит. Не потому, что считаю его крутым или потому что русек, а просто для чуть более детального ознакомления,в книге там совсем мало(оно и понятно). Не питаю иллюзий по поводу качества материала, просто, чтобы иметь представление на базовом уровне, что это вообще такое. Так вот, мне что-то это так понравилось, намного больше, чем дрочить код, что я решил у вас узнать, а есть ли вообще отдельная профессия для тех, кто любит дрочить бд? Я вроде слышал что-то такое, но к базам никогда не прикасался особо, поэтому не знаю. Какой вообще нужен стек знаний, нужно ли программировать на каком-то языке и если да, то на каком уровне, существуют ли джуны у вас, какой минимум знаний, есть ли сайты с рейтингом за решение задачек и т.д. Понятное дело, что скорее всего у меня потечёт жижа из анала, когда я столкнусь не с игрушечными примерами базового синтаксиса, но меня это не особо пугает.
Аноним 22/01/22 Суб 20:55:25 2273737 224
>>2273652
Системных аналитиков вакансии посмотри, можно с голым SQL ебланить сидеть.
Аноним 22/01/22 Суб 20:57:51 2273739 225
>>2273652
> а есть ли вообще отдельная профессия для тех, кто любит дрочить бд?
Есть администраторы баз данных (настройка, мониторинг, обслуживание и т.д.) и ещё разрабы на PL/SQL, T-SQL, PL/pgSQL. Админство лично мне представляется скучным и рутинным занятием, хотя кому как. PL/SQL и прочее - это в основном легаси из нулевых, когда бизнес-логику приложения писали целиком на хранимых процедурах, потихоньку уходит в прошлое, хотя вряд ли умрёт полностью.
Ну и тестировщики с аналитиками, но для них это прикладной инструмент, а не основное занятие.
Аноним 22/01/22 Суб 21:01:09 2273746 226
Аноним 22/01/22 Суб 21:33:10 2273794 227
Аноним 24/01/22 Пнд 15:08:47 2275565 228
>>2273011
Для контейнеров дефолта ситуация когда БД хранится в томах
Аноним 25/01/22 Втр 15:02:43 2276429 229
>>2227895 (OP)
Посоветуйте пожалуйста хорошую книги по БД/SQL и тренажер по SQL задачкам, чтобы на собеседованиях не обсираться.
Аноним 25/01/22 Втр 20:04:41 2276804 230
Аноним 25/01/22 Втр 20:06:19 2276806 231
>>2276804
Посоветуй книги, а не место, где их спиздить.
Аноним 25/01/22 Втр 20:22:21 2276824 232
Аноним 25/01/22 Втр 20:30:56 2276832 233
Аноним 25/01/22 Втр 20:37:50 2276838 234
>>2276832
Ебать, рагу рама кришна.
Таких чисто теоретических книг дохуя, кстати. Я все не соберусь такую попробовать читнуть.
Аноним 25/01/22 Втр 22:46:39 2277018 235
>>2227895 (OP)
Можете объяснить разницу, чем EXISTS отличается от обычного подзапроса IN например вот такой запрос:

SELECT company_name, contact_name, customer_id
FROM customers
WHERE EXISTS (SELECT customer_id FROM orders
WHERE customer_id = customers.customer_id
AND freight BETWEEN 50 AND 100)

Подзапрос тут делает выборку или просто ищет один совпадающий условию? Но как потом работает внешний WHERE если WHERE EXISTS вернул true?
Аноним 25/01/22 Втр 23:46:27 2277101 236
>>2277018
да вроде ничем с точки зрения результата.
Очевидно, что может отличаться планами выполнения и скоростью.

Это важно для тебя? Вы там устроили сутулое побоище из-за SQL?

Аноним 26/01/22 Срд 00:43:17 2277169 237
>>2277101
Ну как бы да, мне уже объяснили на стаке, надо стараться вникнуть в то что изучаешь и с чем работаешь разве нет?
Аноним 26/01/22 Срд 09:26:24 2277281 238
>>2276838
Не советую. В них дохуя воды и/или слишком очевидные вещи описаны хотя может только для меня
Аноним 26/01/22 Срд 10:34:32 2277305 239
>>2277169
а в случае с SQL - не надо.
планы выполнения постоянно меняются от версии к версии.
Аноним 26/01/22 Срд 14:08:20 2277514 240
>>2277169
>мне уже объяснили на стаке
ну так ты и нам объясни
Аноним 27/01/22 Чтв 02:52:08 2278286 241
Есть что почитать по моделированиею данных?
Аноним 27/01/22 Чтв 05:03:58 2278312 242
>>2278286
Хуярь сериализуемые айдишники к каждой таблице, вот тебе и всё моделирование данных.
Аноним 27/01/22 Чтв 14:42:37 2278630 243
image.png 157Кб, 800x383
800x383
>>2227895 (OP)
Правильно ли я понимаю, что в некотороых случаях (например десктопное приложение на ограниченное кол-во компьютеров) "сервером" в схеме может выступать СУБД?
Скажем, просто задать в постгрес количество подключений в 1000 пользователей и пусть данные из их клинтских программ обмениваются с БД.
Аноним 27/01/22 Чтв 15:04:37 2278682 244
>>2278630
Да, это называется двухзвенная архитектура. Так делали в девяностых и нулевых, сейчас редко так делают.
Аноним 27/01/22 Чтв 21:04:24 2279182 245
Есть какие-то материалы по разработки структуры БД с примерами, желательно не интернет магазина?
Аноним 27/01/22 Чтв 21:34:07 2279212 246
>>2279182
ну так если ты магазин уже освоил, то остальное по образу и подобию, ты же не бездумно скопировал, а понял, почему так? ну а более редкие случаи тут уже сам думай на основе полученных знаний, ну и просто по архитектуре общие сведения читай, книжек полно
Аноним 28/01/22 Птн 11:24:50 2279655 247
Аноним 30/01/22 Вск 23:49:30 2282031 248
А это нормально, что постгрес тратит по 30сек на поиск по текстовому полю в 20гб базе?
Подозреваю, что должна быть какая-нибудь команда "ЗДЕЛОЙ ЗОЕБИСЬ", которая многократно ускорит поиск, но я о просто не знаю.
Аноним 30/01/22 Вск 23:55:51 2282034 249
Аноним 31/01/22 Пнд 01:12:42 2282084 250
>>2227895 (OP)
Пытаясь в проектирование баз данных,
чет взбрела в голову следующая мысль...
А что если взять, да и сгенерить все возможные модули различных моделей данных, и на принципах модульного программирования - автоматизировать конструирование совершенно любой модели данных?
Можно так?
Если да, то что мешает заебенить на этих принципах - внезапно, МОДЕЛЬ ВСЕЛЕННОЙ?
Аноним 31/01/22 Пнд 01:32:41 2282095 251
>>2282084
> А что если взять, да и сгенерить все возможные модули различных моделей данных, и на принципах модульного программирования - автоматизировать конструирование совершенно любой модели данных?
> Можно так?
Нельзя. В базе данных хранятся данные, но не логика, которая тоже часть модели данных. Можно сгенерировать код хранимых процедур, но такой генератор написать ещё сложнее, чем сами процедуры.
> Если да, то что мешает заебенить на этих принципах - внезапно, МОДЕЛЬ ВСЕЛЕННОЙ?
Почему в этом треде такое засилье философов? Это не ты здесь регулярно спрашиваешь про наноборду и написание своей СУБД?
Аноним 31/01/22 Пнд 02:00:56 2282110 252
>>2282095
>Нельзя. В базе данных хранятся данные, но не логика, которая тоже часть модели данных.
Ну вот, глядя на пикчи со схемами данных, https://www.google.com/search?q=базы+данных+схемы+данны&tbm=isch
я подмечаю, что они состоят, из одинаковых элементов, как-бы из модулей, расположенных в разном порядке.
Собственно, идея в том, чтобы сгенерить всевозможные эти вот модули, добавить триггеры всякие, и сделать как-бы полный и универсальный набор модулей, соединяя которые, можно было бы быстро сконструировать и породить любую модель данных.

>Можно сгенерировать код хранимых процедур, но такой генератор написать ещё сложнее, чем сами процедуры.
Ты имеешь в виду, под видом данных, хранить SQL-запросы, или чо? И написать генератор, генерирующий все возможные sql-запросы, так-сказать полный набор их, выбирая из которого отдельные - можно реализовать любую логику?
Может даже так было бы проще, написать генератор, вместо того, чтобы ебаццо с написанием КАЖДОГО запроса. Но это не точно.

>> Если да, то что мешает заебенить на этих принципах - внезапно, МОДЕЛЬ ВСЕЛЕННОЙ?
>Почему в этом треде такое засилье философов?
Дык реальная, вроде, тема, не?

>Это не ты здесь регулярно спрашиваешь про наноборду и написание своей СУБД?
Ой бляяяяеееееееть. Я пытался сделать базу, получилось вот что:
https://github.com/username1565/nanoboard/tree/nanodb-sqlite/nanodb.exe-source/Database - файл nanodb.sqlite3.sql
Дело за малым. Переписать целый файл PostDB.cs вписав туда опциональное использование sqlite3, через System.Data.SQLite.dll, компилируемую из открытого кода:
https://github.com/username1565/System.Data.SQLite
Но это слишком много ебалы, особого интереса пердолиться - нет, но наработки некие есть, но они разбросаны по куче папок так, шо яебал. Да и вообще интереса, как такового там нет, поэтому я предпочитаю сутками пипсовать криптоговно на наебиржах, вместо пердолинга с этой бородой. Хотите делайте сами. Может я и сам сделал бы, если бы у меня бабло не спиздили тупые дешёвые крысы. А так, приходится отвлекаться от подобного хобби, на всякую, более насущную поебнятину сраную.
Аноним 31/01/22 Пнд 03:00:24 2282130 253
Снимок экрана о[...].png 71Кб, 971x454
971x454
Снимок экрана о[...].png 41Кб, 1128x338
1128x338
Снимок экрана о[...].png 43Кб, 1118x357
1118x357
Снимок экрана о[...].png 25Кб, 791x145
791x145
Аноним 31/01/22 Пнд 03:15:35 2282131 254
>>2282130
'start' это строка, тебе нужны бэктики `
Аноним 31/01/22 Пнд 12:07:44 2282296 255
>>2282084
>Если да, то что мешает заебенить на этих принципах - внезапно, МОДЕЛЬ ВСЕЛЕННОЙ?
>>2282084
>А что если взять, да и сгенерить все возможные модули различных моделей данных, и на принципах модульного программирования - автоматизировать конструирование совершенно любой модели данных?

Количество объектов во Вселенной бесконечно.
Количество типов объектов - менее бесконечно.
количество ОТНОШЕНИЙ между объектами более бесконечно чем менее бесконечно количество типов.

Таким образом, это глупая идея. Не принесет тебе счастья, дорогая криптоманечька, воображающая себя программистом.
Аноним 31/01/22 Пнд 12:08:50 2282297 256
>>2282110

>Но это слишком много ебалы, особого интереса пердолиться - нет, но наработки некие есть, но они разбросаны по куче папок так, шо яебал

Чтобы приблизиться к гордому званию программиста, тебе нужно изучить что такое ORM.
Обрати внимание, что это не чудо и проблем они только добавляют, но вот количество кода уменьшают, да.

Так же в обязательно порядке обрати внимание на эту статью:
https://en.wikipedia.org/wiki/Object%E2%80%93relational_impedance_mismatch
Аноним 31/01/22 Пнд 13:17:06 2282354 257
2ср.png 2239Кб, 2048x1940
2048x1940
>>2282110
Почему все залётные ебланы пытаются троить СВОЮ МЕГ ЁБА МОДЕЛЬ ВСЕЛЕННОЙ на sqlLite?
Верный признак шизофрении
Аноним 31/01/22 Пнд 14:11:11 2282397 258
image.png 42Кб, 727x758
727x758
Анонче, привет. Не подскажите как сделать так, что бы DISTINCT вытягивал всю строку целиком?

Аноним 31/01/22 Пнд 14:16:16 2282404 259
Аноним 31/01/22 Пнд 14:19:36 2282409 260
>>2282404
Тогда уникальность столбца "salary" пропадает. Нужно что бы одновременно вытягивались уникальные значения и вся строка целиком.
Аноним 31/01/22 Пнд 14:22:54 2282413 261
>>2282409
Какие значения брать? Первые попавшиеся? Вот вернёт запрос Петю с зарплатой 500, но Васю он не покажет, хотя у него тоже 500, тебя это устраивает?
Аноним 31/01/22 Пнд 14:27:21 2282422 262
Аноним 31/01/22 Пнд 14:27:43 2282423 263
>>2282413
Да устроит.
В этом и смысл. Что бы он отобрал все записи у которых зарплата уникальная.
И вернул все столбцы целиком, а не только зарплату.
Как на скрине я красным дорисовал.
Аноним 01/02/22 Втр 01:12:24 2282987 264
>>2227895 (OP)
Есть идея - сделать биржу для бартерного обмена.
Суть в следующем. Есть сайт. На сайте регаются много юзеров.
Эти юзеры попадают в таблицу Users, в базе данных.
Каждый юзер имеет уникальные вещи, с их описаниями, попадающие в таблицу Properties.
Для каждой вещи, каждый юзер, имеет свой уникальный акк.
Для каждого акка, есть разные балансы, ну там доступный баланс, залоченный баланс, баланс ожидания.
Баланс - символизирует долю права собственности владения вещью.
Разные юзеры, по разным вещам, имеют разные доли права собственности, как-бы являясь акционерами вещи, а каждая вещь - это как-бы акционерное общество.
Дальше, юзеры могут передавать права владения вещью - другим юзерам, или менять их на права собственности владения другими вещами, либо по договорным ценам (через объявления), либо размещая ордера, сортируемые по цене, и выводящиеся как на бирже, с перекрытием ордеров.
Совокупность пар вещей, равна числу уникальных сочетаний по паре. Торговля всех вещей за все вещи, и любую вещь можно обменять на любую вещь, как целиком, так и наполовину, скажем.

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

Собственно, как спроектировать ебучую БД, и все эти триггеры-хуиггеры?
Аноним 01/02/22 Втр 01:26:10 2282992 265
>>2282987
Продолжу идею.
Когда юзер открывает ордер на продажу части доли владения одной вещью, за какую-либо часть доли владения другой вещью (по указанной цене),
выставляемая на продажу часть доли владения первой вещи,
переводится с его доступного баланса, на его залоченный баланс, и висит, пока активен ордер.
Ордер - можно отменить. Тогда, с залоченного баланса, доля владения первой вещью, возвращается на доступный баланс.
Если юзер2 покупает долю влладения вещью1, за его долю владения вещью2, по указанной в ордере цене, и покупает, выставляя встречный ордер, то встречные ордера перекрываются, и происходит обмен долями владения вещью 1 и вещью2, между юзером1 и юзером2.
При этом, с залоченного баланса одного юзера, доля владения переводятся на доступный баланс другого юзера, и наоборот.
Всё это должно бы быть в виде одной обменной транзакции.
Юзер также может зарегистрировать право владения вещью (декларируя вещь, или подтверждая владение документами всякими, или тупо заводя бабло), и вывести - оформив заявку на вывод. При этом, с доступного баланса, право владения переводится на баланс ожидания, и висит там до окончания обнала права владения, и его материализации - то есть до обработки поданной заявки на вывод.

Аноним 01/02/22 Втр 08:37:40 2283091 266
Пчел, по таким тз только за деньги.
Аноним 01/02/22 Втр 14:26:52 2283427 267
>Невозможно выполнить команду DROP DATABASE пока существует хоть одно подключение к заданной базе. Однако можно подключиться к любой другой, в том числе и template1. template1 может быть единственной возможностью при удалении последней пользовательской базы данных кластера.
Блять, как нахуй отключиться от бд? Там сука отсутствует такая кнопка, а подключается к бд автоматически при входе в pgAdmin4
При этом при подключении через терминал, pgsl требует ввести пароль для пользователя с именем пользователя компа!!! Что за бред нахуй? К нему не подходит мастер пароль, который я сделал при установке postgres, и не подходит пароль пользователя компьютера. Что за бред нахуй?
Аноним 01/02/22 Втр 14:32:22 2283431 268
Как в постгресе создать таблицу в конкретной бд?
Я создаю бд, потом создаю таблицу, но она создается в бд postgres.
Аноним 01/02/22 Втр 14:35:57 2283433 269
>>2283431
Ты к созданной БД хоть подключился?
\c DB_NAME
Аноним 01/02/22 Втр 14:37:29 2283434 270
>>2283427
блять, подключился, на линуксе у нас значит будет параметр -u, а на винде -U блять, как удобно.
И все равно ни работает ни DROP DATABASE имя;
ни dropdb dbname
Как блять отключится и удалить её?
Аноним 01/02/22 Втр 14:37:58 2283435 271
>>2283431
Вопрос снят, сукаЮ весть день проебался

>>2283433
Я .sql скрипт запускал, не знал, что в нем можно так подключаться, думал, как-то в имени таблице нужно прописывать имя бд.
Аноним 01/02/22 Втр 21:28:47 2283862 272
16330071844760.png 176Кб, 512x439
512x439
Сейчас в процессе перехода в другой отдел, а там новый стек. БД на Greenplum. Концептуально понимаю, что это наследие Postgre с которым я работал, но у чем отличия? Пока что понял что есть новое понятие ключей дистрибуции которые связаны с MPP. Но в целом в чем разница? Призываю всех гринпламовцев в этом itt треде.
Аноним 01/02/22 Втр 23:21:48 2284015 273
>>2282987
>Собственно, как спроектировать ебучую БД, и все эти триггеры-хуиггеры?
Не пихать всю логику приложения в БД.
Аноним 01/02/22 Втр 23:40:41 2284042 274
how-to-monitor-[...].png 49Кб, 505x368
505x368
Сап.
Есть MSSQL база доставшаяся в наследство.
Планировщик по таймеру периодически запускает хранимую процедуру.
Хранимая процедура выполняется 4 минуты, и при запуске грузит процессор на 100% на 30 сек, дальше спад до 40%.
Соответственно в этот промежуток времени база данных "неохотно" выполняет другие запросы, и для некоторых время отклика возрастает выше 30 сек (что вызывает эксепшен у вызвавшего эту процедуру веб-приложения).
Посему вопрос:
1. можно ли как-то "замедлить" выполнение хранимой процедуры?
2. можно ли как-то выставить высокий приоритет некоторым запросам, чтобы БД выполняла их сразу при вызове?
Аноним 02/02/22 Срд 00:31:42 2284102 275
>>2283091
хуеньги. Такая шняга просто обязана быть опенсорцной, и легкоподнимаемой, и шариться в открытом доступе через торренты в дарквебах.
Аноним 02/02/22 Срд 01:17:48 2284130 276
>>2284042
Никак, так как процiдурки, жрущие 100% процессора - фича майкрософтоподелий.
>>2284102
>обязана быть опенсорцной
Опенсорц это не значит, что тебе пердолики будут нахаляву воплощать твою очередную биткоиномечту.
>легкоподнимаемой
Даз нот компют в контексте опенсурца.
>в открытом доступе
>в дарквебах
Прими таблетки, наркоман.
Аноним 02/02/22 Срд 07:02:43 2284216 277
>>2284102
Ну да щас мы побежим рисовать тебе схему хранения и на торренты выкладывать.
Аноним 02/02/22 Срд 07:23:33 2284219 278
Аноны, что-нибудь можете про глоубайт? Захантили на джуна аналитика, за меньше моей текущей, зато обещали перспективы, насколько это правда?
Аноним 02/02/22 Срд 07:45:09 2284222 279
>>2284219
был собес по скайпу, отказали на след день. ВОООТ
Аноним 02/02/22 Срд 08:54:43 2284233 280
>>2284042
Можно попробовать разделить на процессорные группы и снизить фактор многопоточности
Аноним 02/02/22 Срд 09:19:21 2284243 281
>>2284222
Бля, охуенно. Расскажи про собес, что спрашивали, к чему готовиться?
Аноним 02/02/22 Срд 09:21:36 2284244 282
>>2284243
про БД общие вопросы
задачка на join
2 задачи на логику
ну и обычные эйчарские вопросы

Аноним 02/02/22 Срд 09:22:33 2284245 283
>>2284243
ЗАХОДИШЬ НА СОБЕСЕДОВАНИЕ
@
СИДИТ СЕНЬОР И ЭЙЧАРКА
@
СЕНЬОР НАЧИНАЕТ ДИКО ПРЫГАТЬ ВОКРУГ И ПРИГОВАРИВАТЬ ТИЛИ ТИЛИ ТЕСТО ЖЕНИХ И НЕВЕСТА
Аноним 02/02/22 Срд 09:33:50 2284252 284
Аноним 02/02/22 Срд 09:35:19 2284255 285
Аноним 02/02/22 Срд 09:50:12 2284261 286
>>2284255
ну с 80к есть куда расти. Мне кажется до 150 вполне.
Аноним 02/02/22 Срд 09:55:26 2284265 287
>>2284222
Повезло, чел. Не знаю что там с ними делают, но у нас на собесах были двое после гловбайта (одного даже взяли на свою голову), и оба были отбитые.

Какое-то вечное суечение, все время требуют внимания к себе, какие-то блять инфантильные хотелки вечно: дай мне ментора ой а где у вас печеньки. Все время пытаются как-то тупо наебать: челик сливался на простейших вопросах про отличия hash от merge join под соусом ну это неинтересно просто))).

Как будто взяли аутистов-омежкиных и имплантировали им социоблядское шило в жопу, худшее из двух миров.
Аноним 02/02/22 Срд 09:59:44 2284269 288
>>2284265
> отличия hash от merge join
О, я как раз нихуя не понял нахуя мерж нужен, хеш понятно, 2 большие таблицы соединять, а мерж я сколько не пытался приткнуть везде только хуже делает.
Аноним 02/02/22 Срд 10:11:32 2284280 289
>>2284269
Если тебе нужен весь целиком результат джойна больших таблиц, особенно когда готовых индексов нет, то там мерж лучше за счет последовательного io.
Аноним 02/02/22 Срд 10:36:11 2284303 290
>>2284280
Да ёбаный в рот, я думал для этого хеш пизже, нахуя тогда он нужен?
Аноним 02/02/22 Срд 10:49:17 2284310 291
>>2284303
Мердж проводит сравнение по столбам по которым есть индекс, т.е. таблица должна быть упорядочена, и он по порядку сравнивает значения. При таком подходе, можно сравнивать только пары которые ещё не попадались.
Хеш джоин вычисляет хеш функцию, которая делит на группы таблицу и проводит сравнения в рамках эти
Аноним 02/02/22 Срд 10:51:20 2284311 292
>>2284303
Погодь, у тебя же хэш по достаточно большой таблице тупо в память не влезет.
Аноним 02/02/22 Срд 11:01:59 2284318 293
>>2284310
Спасибо, анон, буду знать, а то документация от моего гладкого мозга отскакивала как горох от бетона.
>>2284311
Ну 2 исторических таблицы с 2002 года я хуй соединю в любом случае. А вот если предварительно фильтрануть по дате то там где нестед залупа задыхается хеш справляется.
Аноним 02/02/22 Срд 11:32:46 2284331 294
>>2284318
>Ну 2 исторических таблицы с 2002 года я хуй соединю в любом случае.

Ну да, я про кейсы когда нужно именно все поджойнить. Мерж тем и хорош что работает на любых размерах и любом количестве памяти за O(log n) сканирований.

Алсо, оказалось в википедии https://en.wikipedia.org/wiki/Hash_join приводятся решения для кейса когда хэш не влезает в память. Простое работает за O(n) сканирований что очевидно хуже на больших таблицах.

И там же есть Grace hash join, на первый взгляд там вообще ровно два скана, то есть О(1), кажется что вин и я пока не могу найти где подвох кроме ехидных перекосов. Интересно.
Аноним 04/02/22 Птн 15:47:27 2286728 295
Анончи, пытаюсь установить Postgress на свою Шиндовс 10 (перепробовал дохуя версий от 10 до 14, в том числе 32-битный установщик пробовал скачивать), но какого-то хуя у меня в Пуске она не появляется, а попытки открыть shell зайдя в папку заканчиваются только моментальным закрытием консоли.
С чем эта хуйня может быть связана? Заебался уже
Аноним 04/02/22 Птн 15:51:21 2286732 296
>>2286728
Зайти туда не через проводник, а из командной строки, а лучше добавь эту папку PATH.
И пишешь команду: psql -U postgres
Аноним 04/02/22 Птн 16:55:46 2286835 297
>>2286732
Сэнк ю анонче, оно работает. Но всё равно интересно, какого хуя на других компах всё прекрасно и без консоли устанавливается и запускается, а вот именно мне приходится ебаться
Аноним 04/02/22 Птн 16:57:37 2286837 298
>>2286835
Ты небось какую-нибудь галку при установке пропустил.
Аноним 04/02/22 Птн 22:14:46 2287193 299
анончики, подскажите можно ли заполнить табличку case'ом? и как собстна это сделать в оракле? спасибо доброанон что подсказал решение, я знал ты лучший!
Аноним 04/02/22 Птн 22:27:13 2287205 300
>>2287193
Если правильно понял, тебе нужен INSERT INTO YOURTABLE (<COLUMNS>) SELECT ...;
А в селекте любой запрос с case и CTE, генерирующий строки таблицы.
Аноним 05/02/22 Суб 02:05:30 2287289 301
image.png 38Кб, 1377x471
1377x471
image.png 19Кб, 585x342
585x342
гайс, не подскажете как из первого запроса получить второй? из мыслей только заюнионить эту же табличку с запросами с null значениями по дню месяцу и году, и так же заебенить оконку с соответсвующим partition by по месяцу, году, продукту.
Аноним 05/02/22 Суб 02:47:49 2287301 302
>>2284331
Нихерасе вы тут развели.

Merge хорош когда, данные уже в отсортированном виде поступают после предыдущего шага. Как раз после скана по идексу btree можно такую ситуацию получить. Но!

1.Нужно учитывать, что сама сортировка также требует памяти, и если выборка не помещается в память, то начинается запись на диск промежуточных результатов с последующей подкачкой.
2. Для merge два входных потока данных должны быть отсортированы.

При прочих равных hash должен выигрывать в большинстве случаев, если одна из таблиц помещается в память.
Grace Hash Join - алгоритм в котром зная - что ни одна таблица в память не поместится - мы разбиваем их на куски по ключу хэша на часть которая помещается в память - и остальные - которые улетают на диск. Происходит это для обеих таблиц, далее куски с одинаковыми хэшами загружаются и сравниваются. Этот алгоритм оптимизировали до Hybryd Grace Hash Join, который при первом проходе по внешней таблице - сразу джойнит строки найденные в сформированном батче hash таблицы - те что не нашел - скидывает на диск. Один проход таким образом экономится. Точнее часть, которая сджойнилась.
Аноним 05/02/22 Суб 10:30:27 2287426 303
>>2287289
Загугли ROLLUP, CUBE, GROUPING
Аноним 05/02/22 Суб 17:23:14 2287796 304
Аноним 05/02/22 Суб 17:23:59 2287798 305
Аноним 06/02/22 Вск 11:57:58 2288360 306
Молю поясните тупому, как в постгресс работают рекурсивные запросы и глвное как и зачем в них использовать Join, который не Left/Right/Inner, просто Joinна сайте доки про этот Join две непонятнын строчки.
Аноним 06/02/22 Вск 13:46:15 2288535 307
8690dc718ca8d99[...].jpg 61Кб, 700x700
700x700
Здароф, анон.
Есть MSSQL база, в хранимой процедуре которой выполняется простой селект на таблицы, находящиеся на связанном сервере, который тоже MSSQL.
Таблицы на связанном сервере периодически пополняются новыми данными.
Хранимая процедура выполняется с некоторой интовой переменной для поиска, и зачастую первые вызовы ничего не возвращают, так как данных еще нет, а после добавления данных на связанном сервере хранимая процедура возвращает результат.
Но иногда случается какой-то затык, и процедура продолжает ничего не возвращать в то время как данные у таблицах связанного сервера уже есть.
Такое чувство что процедура закешировала результат выдачи запроса, и не хочет сбрасывать кеш так как не видит изменения таблицы(потому что те лежат на связанном сервере а не в своей бд).
Подскажи, MS SQL вообще умеет в кеширование результатов выдачи запросов?
Можно ли отключить кеширование для одного запроса / хранимой процедуры?
Может можно как-то не явно отключить кеширование, например сносить план выполнения или еще чего?
Аноним 07/02/22 Пнд 22:33:04 2290256 308
>>2227895 (OP)
Как правильно взаимосвязывать данные?
Аноним 07/02/22 Пнд 22:36:19 2290261 309
>>2290256
Через внешний ключ.
Аноним 08/02/22 Втр 05:00:16 2290375 310
Как с помощью бд следить за часовым лимитом? Т.е. с 13:00 можно заинсертить 100 сущностей успешно, а 101ый и последующие инсертить с ошибкой. С 14:00 счетчик сбрасывается и снова можно успешно инсертить.
К бд обращаются несколько инстансов.
Seq? Таблица, которая инкрементирует счетчик? Что еще можно придумать?
Аноним 08/02/22 Втр 09:51:24 2290442 311
>>2284280
1. А сортировать за тебя Вася будет?
2. Нахуя тебе индексы для хеша (в оракле точно
http://www.dba-oracle.com/t_how_to_index_hash_join_operation.htm )

Если память позволяет и сортировать не надо, проще всегда хешем ебашить. Кейс, когда всё на всё надо, и при этом обе таблицы здоровые - ебать редко бывает.
Аноним 08/02/22 Втр 09:54:16 2290446 312
>>2287301
Тлдр: если хеш в память не помещается, то поместится по частям.
Если у тебя есть время на сортировки, значит и на хеш время будет.
Аноним 08/02/22 Втр 15:27:09 2290766 313
>>2290375
А если создать таблицу (id bigserial, time datetime, uid uuid) и дерево индекс по time.
А потом select count from xxx where date = текущий час, если результат подходит, то инсертить еще одну сущность, иначе ошибка. Это дорого получится?
Аноним 08/02/22 Втр 23:36:35 2291240 314
>>2290442
>Кейс, когда всё на всё надо, и при этом обе таблицы здоровые - ебать редко бывает.
Утенок, спок.
Аноним 09/02/22 Срд 02:59:31 2291309 315
>>2291240
Может попробовать перестать бессмысленную хуйню делать?

Такими темпами можно бизнесу 1 таблицу со всеми полями выводить и не ебаться.
Аноним 09/02/22 Срд 15:01:52 2291656 316
>>2282297
>Чтобы приблизиться к гордому званию программиста
Да пошёл ты нахуй, со своей гордостью - нельзя гордиться блядь.
И уж тем более, нахуй иди со своими званиями - ебал я козлосучую пирамиду, где заради звёздочек на пагону готовы убивать всякие гондоны козлосучие.

Тащемта, я уже давненько занимаюсь быдлоговнокодингом года, эдак с две-тыщи-хуйнадцатого.
>тебе нужно изучить что такое ORM.
Да, я вижу схемы данных, в sqlite expert professional, но когда ебическое число таблица там, то хуй отследишь связи, они не помещаются уже, блядь, в экран.
Тем не менее, я вижу одинаковые паттерны, как-бы, и одинаковые куски из взаимосвязанных таблиц, в сложной схеме, поэтому и взбрела в башку, как-бы, вышеизложенная мысль. Проектирование баз данных, из таких модулей, чем-то напоминает мне соединение сложных схем из логических элементов. Чем-то похоже, но я пока не могу понять, именно, чем.
Аноним 09/02/22 Срд 15:03:15 2291660 317
>>2290261
А где его взять, и куда засунуть?
Аноним 10/02/22 Чтв 08:16:01 2292287 318
>>2291660
>А где его взять
Из другой таблицы.
>куда засунуть
В таблицу.
Аноним 10/02/22 Чтв 13:37:20 2292552 319
Как правильно называется механизм расширения sql, когда в запросе указываются функции типа SELECT myFunc(x) FROM x? UDF? Шаблоны?
Аноним 10/02/22 Чтв 14:19:36 2292616 320
>>2292552
В селекте можно вычислять выражения, а в выражении может быть что угодно, хоть вызов процедур и функций, умного названия у этого нет.
Реализация самих функций/процедур общего названия тоже не имеет, потому что не стандартизована и делается в разных СУБД по-разному, будь то "процедурные расширения SQL", UDF или что-то ещё.
Аноним 10/02/22 Чтв 17:12:36 2292837 321
>>2292616
Добро, я тебя услышал.
Аноним 10/02/22 Чтв 17:23:03 2292844 322
>>2292552
Тут ребятишки просто недавно в айти.
Когда это начало работать в Oracle, они назвали это pipelining functions.
Аноним 10/02/22 Чтв 19:24:58 2292991 323
image.png 9Кб, 565x283
565x283
Аноним 10/02/22 Чтв 20:38:09 2293078 324
>>2290375
Таблица со счётчиком нормально, можно по дням партишнинг и дропать старые.
Аноним 12/02/22 Суб 01:29:33 2294588 325
таблицы-articles.jpg 33Кб, 967x172
967x172
Подскажите как это делается SQL командой а дальше я уже сам
Аноним 12/02/22 Суб 02:00:22 2294597 326
>>2294588
Почти наверняка там где-то есть кнопка "Сгенерировать DDL", которая выдаст тебе готовую команду.
Аноним 12/02/22 Суб 21:25:35 2295378 327
>>2294588
Похоже на phpmyadmin. Найди там Экспорт и выбери sql. Открой как текст, и там где CREATE TABLE IF NOT EXISTS там эта таблица ебучая.
Аноним 13/02/22 Вск 15:25:59 2295919 328
124.jpg 109Кб, 1440x767
1440x767
Почему у меня нет поля дополнительно и по умолчанию?
Аноним 13/02/22 Вск 17:03:28 2296039 329
1644760937.jpg 40Кб, 604x322
604x322
Аноним 13/02/22 Вск 18:40:15 2296172 330
>>2296039
У него тёмная тема. Вот и не видит нихуя.
Аноним 14/02/22 Пнд 10:29:51 2296620 331
Поясните за транзакционную модель и прочие вопросы на интервью для бэкендеров. Пиздец, работаю уже почти 10 лет, на пыхе клепаю говно всякое, а тут вдруг меня спросили, почему КОНКРЕТНО сбалансированное дерево, лежащее в основе индексов БД быстрее несбалансированного. Ну я и в лужу сел, конечно. Был посрамлён. Собираюсь изучать БАЗУ теперь.
Аноним 14/02/22 Пнд 10:51:08 2296634 332
>>2296620
Чтобы O(log(N)) соблюдать. Например, если у тебя строится индекс по ID, который считается простым инкрементом, обычное дерево будет расти всё время вправо и будет по сути связным списком, поиск в котором за O(N). А так у тебя дерево каждый раз балансируется, и поиск будет намного быстрее.
Аноним 14/02/22 Пнд 12:02:55 2296682 333
>>2296634
А если это GUID, например, то как оно балансируется? Ну или индекс из двух колонок с рандомными строками / числами.
Аноним 14/02/22 Пнд 12:24:55 2296702 334
>>2296682
Через операцию сравнения.
> GUID
К примеру, лексикографически.
> индекс из двух колонок
Сначала сравнение по первой, а если равны, то по второй.
Аноним 14/02/22 Пнд 13:57:07 2296762 335
Проблема.png 65Кб, 1254x418
1254x418
mikisayakamahou[...].jpg 93Кб, 720x863
720x863
mikisayakamahou[...].jpg 167Кб, 850x1405
850x1405
takebesaorigirl[...].jpg 143Кб, 850x1189
850x1189
Олды
Я не понимаю, в чем проблема, данные в таблицы заносятся, но PHPAdmin не показывает их, не показывает структуру таблиц и ответ на mysql запросы.

Я посмотрел доступ у меня есть ко всему, пожалуйста, поясните.

Работаю на Wampserver
Аноним 14/02/22 Пнд 14:06:01 2296772 336
akemihomuramaho[...].jpg 131Кб, 850x896
850x896
akemihomuramaho[...].jpg 122Кб, 850x1203
850x1203
akemihomuramaho[...].png 661Кб, 840x1500
840x1500
akemihomuramaho[...].jpg 203Кб, 850x1109
850x1109
>>2296762
Зашел с гугла в яндекс браузер все заработало, хуй поймешь.
Аноним 14/02/22 Пнд 14:06:35 2296774 337
Чё, пацаны, аниме?
Аноним 17/02/22 Чтв 12:27:47 2299740 338
kLBhhp73.gif 63Кб, 262x199
262x199
У меня платиновый вопрос, прошлый раз мне так и не ответили.
Какой индекс нужен если я планирую выбирать по data_start+data_end
Аноним 17/02/22 Чтв 13:27:04 2299811 339
>>2299740
>Какой индекс нужен если я планирую выбирать по data_start+data_end
Если они в дате, а не в датетайм, то нужна партиция
Аноним 17/02/22 Чтв 13:50:28 2299846 340
Аноним 17/02/22 Чтв 14:31:34 2299890 341
памагити, я попал в какой-то щизоидный загон!
одни спрашивают какие им индексы на все случаи жизни создать.
другие им отвечают невпопад.

Что тут происходит вообще?
Это такой уровень понимания баз данных у программистов?
Аноним 17/02/22 Чтв 14:36:21 2299902 342
>>2299890
Тут фрондендеры которые лезут на бек
Создай стравполь strawpoll.com. Выяснишь что 90% программистов не знают теорию БД. Простенькие селекты максимум.
Аноним 17/02/22 Чтв 15:36:37 2299990 343
>>2299890
Ты лучше спроси про уровни изоляции транзакций. Вангую, что 90% оподливятся в рейтузы, т.к. не понимают какой уровень изоляции выбрать, чтобы не положить прод при создании аккаунта, например.
Аноним 17/02/22 Чтв 15:43:09 2299997 344
>>2299990
Read commited и блокировки.
Аноним 17/02/22 Чтв 15:50:42 2300004 345
о, теперь шизы узнали очередной единственно верный ответ - read commited.

ахуеть просто...прочь, прочь отсюда
Аноним 17/02/22 Чтв 15:52:57 2300006 346
Это и есть единственный верный ответ, иди нахуй.
Аноним 17/02/22 Чтв 15:57:17 2300008 347
Лол, удачи вам с рид комитед акуанты создавать.
Аноним 17/02/22 Чтв 16:35:12 2300036 348
>>2300008
А что не таз? Представь пользовалель яросно дрочил кнопку sign-up. Создались две конкурирующие транзакции c одинаковым мейлом. В конце транзакции выполяют insert into users. При read commited транзакция закончившаяся первой вставит email в БД, другая при инсерте вставленое увидит и обламается, потому что на поле email установлено unique. Блокировки непричем.

мимо
Аноним 17/02/22 Чтв 21:38:09 2300350 349
>>2299990
Read committed, естественно.
Аноним 18/02/22 Птн 12:10:39 2300644 350
изображение.png 80Кб, 2103x1390
2103x1390
Надо получить трансформацию пикрелейтед:


Есть таблица с товарами каждому товару может соответствовать несколько локаций, мне надо не размножить товар по локациям, а все локации соответствующие одному товару поместить в строчку с товаром(можно либо в разные столбцы, либо в один, непринципиально), как это сделать?
Аноним 18/02/22 Птн 16:47:49 2300888 351
>>2299890
>Это такой уровень понимания баз данных у программистов?
Не проблема программистов, что в БД ходить в 2022-м можно только через строчные литералы или говно-ОРМ.
Аноним 18/02/22 Птн 16:53:38 2300899 352
у
Аноним 18/02/22 Птн 22:15:53 2301222 353
в программирование хочу вкатиться думаю выучить сначало C++ а потом SQL, норм идея для зароботка 300кк наносек?
Аноним 18/02/22 Птн 23:14:58 2301284 354
>>2301222
На плюсах много проектов, где вообще не используются реляционные СУБД. Изучать SQL нужно с чётким пониманием, что он тебе пригодится, иначе, если ты попасть на проект, где SQL не нужен, время будет потрачено впустую.
Аноним 19/02/22 Суб 13:26:25 2301497 355
>>2301284
>sql
>время, потраченное впустую
Звучит как "выбери одно", честно говоря. Но тут зависит от того, насколько глубоко спускаться в кроличью нору, если на уровне select * from movies, то это никогда не бывает бесполезно, если ты в принципе работаешь программистом, а если на уровне уровней изоляции и проброса предикатов, тогда да.
Аноним 20/02/22 Вск 04:57:13 2302017 356
>>2301222
чел ты совсем без мохгов в 22м20 вкатыватся через плюсы? Иди учи реакт и рисуй формочки. Тебе надо рынок труда для начала изучить, а не погромирование, валенок.
Аноним 21/02/22 Пнд 00:36:48 2303040 357
>>2227895 (OP)
Есть где почитать про практики по переводу спредшитов в базы данных? Хочу какие-то направления посмотреть, обсуждения, не я же первый об этом подумал.
Аноним 21/02/22 Пнд 08:42:39 2303118 358
1645422158332.jpg 85Кб, 903x928
903x928
Бля, аноны, я получил оффер на Джуниор администратора бд, хотя у меня за спиной только книжка Грабера и 40 задач на скл ех.
Насколько реальные рабочие задачи отличаются от теории и головоломок? Чего ожидать? К чему гото6?
Аноним 21/02/22 Пнд 13:01:50 2303278 359
>>2303040
нигде.

скажи кабанчику, что к использованию БигДаты и ИИ нужно 10 лет планомерно готовиться, как это произошло в X5, где в эксель прайс-лист просто не влезал, а не заебывать тебя экселем.

Нет никакой универсальной программы или методики
Аноним 21/02/22 Пнд 17:16:27 2303560 360
>>2303278
>универсальной программы или методики
>направления посмотреть, обсуждения
Че
Аноним 21/02/22 Пнд 17:45:20 2303593 361
>>2303560
понятно, даун.
вот тебе код который ты искал:

import pandas as pd
df=pd.read_excel('123.xlsx')
df.to_sql()
Аноним 21/02/22 Пнд 19:10:33 2303688 362
>>2303040
Ты в программировании вообще ни гу-гу? Это же элементарная задача.
Если это просто один файл, то читаем его построчно и помещаем данные в соответствующие колонки в БД, сохраняем.
Или у тебя куча файлов с перекрестными ссылками друг на друга? Тогда заебёшься просто парсить/записывать, нужно что-то типа CRM писать, либо готовую брать.
Аноним 21/02/22 Пнд 22:42:11 2303844 363
>>2303688
>Или у тебя куча файлов с перекрестными ссылками друг на друга? Тогда заебёшься просто парсить/записывать, нужно что-то типа CRM писать, либо готовую брать.
О чём и разговор. Где про это почитать?
Но с пандасом мне ответ понравился. Чувствуется настоящий двачерский настрой.
Аноним 22/02/22 Втр 04:27:51 2303963 364
>>2303844
Если у тебя там реально вагон файлов, то тебе тот пчел правильно сказал: твой дон кабаньо – хитрожопый пидор, а ты – наивный долбоёб.
Что такое CRM можешь узнать у поисковика.
Аноним 24/02/22 Чтв 18:02:42 2305742 365
Аноним 25/02/22 Птн 00:20:31 2305941 366
>>2305742
В смысле как? Берёшь и переписываешь логику скулайтовых таблиц на условный постгрес. Если тебе ещё и данные перенести, то тут надо отдельный модуль на твоём любимом языке для миграции с одной бд в другую написать заодно. А если хочешь сделать форк с блэкджеком и шлюхами заместо бд, то и версирование этих миграций.
Аноним 25/02/22 Птн 07:10:18 2306035 367
>>2305941
А нафиг постгресс? Сиквелайт норм, но мне кажется я срукожопил с таблицами, оптимизировать бы структуру бд, штоле.
Аноним 25/02/22 Птн 10:55:53 2306099 368
>>2306035
>А нафиг постгресс?
Что ты там собрался оптимизировывать на скулайте? Он в конечном счёте синхронный, так что "оптимизировать" его можно только на уровне приложения.
Аноним 25/02/22 Птн 23:15:12 2306617 369
>>2306099
Я имею в виду саму бд, ну там таблички-хуички, я же как видишь в проектировании БД дуб дубом, блядь. Наплодил хуйни из кучи таблиц и запутался в ней, лол.
Аноним 26/02/22 Суб 15:20:39 2306891 370
Снимок.JPG 42Кб, 916x272
916x272
Как мне из одной таблице получить такую матрицу
Аноним 26/02/22 Суб 20:12:50 2307121 371
>>2306891
все решил, ответ не нужон
Аноним 26/02/22 Суб 20:18:42 2307125 372
Аноним 28/02/22 Пнд 11:06:02 2308019 373
Аноним 28/02/22 Пнд 23:42:49 2308535 374
Ну что, господа базисты, релокейтится кто-нибудь куда-нибудь собирается?
Аноним 02/03/22 Срд 19:02:56 2309605 375
>>2308019
Кейсом создаешь агрегационное поле, потом по нему делаешь Group By, дальше всё тривиально.

select count(*), Date,
CASE
WHEN value = 0 THEN 0
WHEN value > 1 AND value < 10 THEN 1
ELSE 2
END AS Group_Count
Group by Group_Count, Date
Аноним 03/03/22 Чтв 20:50:01 2310355 376
16023989563701.jpg 2617Кб, 3088x2048
3088x2048
>>2227895 (OP)
Слушайте, я вот в методе бегу в базу за целой таблицей, а возвращаю из метода уже только 2 трети полей допустим. А можно брать из базы не целую таблицу, а сразу только нужные поля. Так вот, какой вариант лучше и почему?
Аноним 03/03/22 Чтв 20:53:53 2310359 377
>>2310355
Конечно же, из базы не следует тащить лишнее, но если ты точно знаешь, что данных будет немного, можешь забить и тащить всё.
Аноним 03/03/22 Чтв 20:57:49 2310362 378
>>2310359
Более высокая сложность запроса разве не повлияет на производительности? Или проще вытащить половину полей, чем все поля?
Аноним 03/03/22 Чтв 21:04:11 2310366 379
>>2310362
Сложный запрос оптимизирует СУБД, а в коде ты будешь проделывать то же самое вручную + оверхед на перегонку данных из БД в твоё приложение.
Аноним 04/03/22 Птн 09:07:07 2310517 380
>>2310362
>Или проще вытащить половину полей, чем все поля?
В общем случае не сложнее. Хотя конечно никто не видел конкретно твой кейс, может у тебя данные отбираются не просто так, а с хитровыебанными неиндексированными условиями.
Аноним 04/03/22 Птн 21:54:14 2310954 381
>>2309605
Ты в какой субд запросы пишешь?
Аноним 05/03/22 Суб 12:42:56 2311217 382
image.png 52Кб, 628x482
628x482
Как можно адекватно заполнить бдшку с пикрл на 10 000 строк?
К тому же не совсем понимаю как можно сгенерировать имена и фамилии... только если брать их из отдельного списка. Но если опустить этот момент и просто сделать заполнение рандомными символами
Аноним 05/03/22 Суб 19:35:01 2311488 383
>>2311217
На твоём любимом языке наверняка есть пакет для генерации имён и прочих значений.
Аноним 07/03/22 Пнд 03:56:50 2312158 384
Что такого есть в Oracle, что корпорации готовы платить за него?
Аноним 07/03/22 Пнд 08:41:17 2312166 385
Аноним 08/03/22 Втр 13:30:27 2312883 386
1646735426763.jpg 51Кб, 1280x435
1280x435
Аноны, помогите с этой хуйней, умоляю...
Аноним 08/03/22 Втр 13:55:48 2312891 387
>>2312883
По-моему тут через оконные функции sql делать надо
Аноним 08/03/22 Втр 13:59:22 2312892 388
>>2312891
Здесь 4 значения только вывести нужно, по условию задачи, оконные не подходят, ну или у меня не хватает ума для этого
Аноним 08/03/22 Втр 16:41:38 2312988 389
>>2312883
СУБД какая? Надо получить номер строки в подзапросе, если я это сделаю средствами оракла, а у тебя постгря например - тебя обоссут.
Аноним 08/03/22 Втр 19:40:14 2313073 390
Аноним 08/03/22 Втр 20:23:58 2313087 391
>>2313073
Я придумал как можно без оконок изъебнуться.

with p_numbered as
(select p1.PeriodID,count(p2.period_id) num,avg(Value) Value from from period_table p1 join period_table p2 on p2.period_id<=p1.period_id group by p1.Period_id)
select pn2.Period_id from p_numbered pn1 join p_numbered p2 on pn2.num=pn1.num-1 where not pn2.Value=pn1.Value
Аноним 08/03/22 Втр 20:24:54 2313089 392
Ну шо аноны, никому ЕТЛ инженер ненужен, за релокей из рашки и еду?
Аноним 09/03/22 Срд 00:58:06 2313283 393
>>2312883
>>2313087
А вот так эту х-ню нельзя написать?
select value_1
(select Period_id, value as value_1, lag(value) over(order by Period_id) as value_2
from table) as a
where value_1<> value
Аноним 09/03/22 Срд 01:14:50 2313290 394
>>2313283
Точнее вот так
with table1 as
(
select 1 Period_id, 10 value union all
select 3, 10 union all
select 5, 20 union all
select 6, 20 union all
select 7, 10 union all
select 9, 40 union all
select 10, 40
)
select Period_id
from
(
select Period_id, value as value_1, coalesce(lag(value) over (order by Period_id), 123456) as value_2
from table1
) as a
where value_1 <> value_2
Аноним 09/03/22 Срд 09:37:40 2313338 395
yoba.png 10Кб, 225x225
225x225
Ораклисты, а чем вы сейчас занимаетесь? Собираете бутылки? Работаете охранниками в "Пятерочке"? Учите 1С?
Аноним 09/03/22 Срд 09:45:59 2313341 396
>>2313338
Ничего не изменилось, как ебались с ораклом, так и ебёмся.
Аноним 09/03/22 Срд 11:46:41 2313377 397
>>2313087
>>2313290
>>2313290
Мускул не умеет в with, ну точнее до 8.0 не умел. Короче, я хуй знает как решить эту ебанину на скл, ничего лучше, чем сделать это в две строчке на питоне я не придумал.
Может и к лучшему, что я провалил этот собес, задача абсолютно не склевская.


Аноним 09/03/22 Срд 12:04:47 2313382 398
>>2313377
Так а что тебе мешало вместо with скопипастить эту залупу 2 раза?
Аноним 09/03/22 Срд 14:31:49 2313477 399
>>2311217
Есть такая хуйня
Filldb.info, видел аналоги, но гуглить лень. Там интуитивно понятно.
Аноним 09/03/22 Срд 17:12:05 2313577 400
Бля, как заебали на собесах с вопросом "чем отличается датамаппер от эктив рекорд"...
Аноним 09/03/22 Срд 17:41:21 2313599 401
Аноним 09/03/22 Срд 17:46:40 2313604 402
>>2313599
Активе рекорд - это когда в один класс свалили дата маппер, саму сущность и связанную с ней бизнес-логику в лучших традициях ООП, где собака сама умеет лаять.
Аноним 09/03/22 Срд 18:52:12 2313653 403
Господа, помогите!
Есть задача вывести из базы имя пользователя и его последний комментарий. Работающее решение получилось
https://sqltest.net/#1649233
но мне не нравится что блок кода повторяется.
Как это можно сократить? Если пытаюсь в SELECT MAX(id) FROM ... вставить вместо кода алиас comm он пишет что "Table 'sqltest_tmp_db.comm' doesn't exist"
Аноним 09/03/22 Срд 20:07:17 2313699 404
пацаны, в универе закончился семестр DB, было весело и интересно. Мне зашло. Какие есть варианты дальше в этом направлении катиться?
Реально ли найти потом работу по этому направлению или базы данных - это лишь вишенка к какому-нибудь торту из разработки и сисадминства?
Аноним 09/03/22 Срд 20:13:43 2313706 405
>>2313699
Скорее всего когда выкатишься из универа, то из вакансий будут только полусисадминские РАБотки за мелкий прайс в рублях.
Аноним 09/03/22 Срд 20:16:53 2313708 406
>>2313706
understandable have a nice day, как говорится
А если по делу?
Аноним 10/03/22 Чтв 07:24:43 2313886 407
>>2313699
Скинь какие-нибудь методички/список обзорной литературы, чтобы на собеседованиях на бэенд не обсираться.
Аноним 10/03/22 Чтв 09:40:26 2313927 408
>>2313699
Чел либо учи иностранный язык украинский либо переквалифицируйся в каменьщика
(Автор этого поста был забанен. Помянем.)
Аноним 10/03/22 Чтв 11:10:24 2313964 409
>>2313927
What happened to English though?
Спикаю, спикаю, на 8 баллов IELTS пару лет назад было
Дальше-то что?
10/03/22 Чтв 11:29:17 2313974 410
>>2313927
Чел, либо съеби, либо перестань срать не по делу. Зарепортил.
Аноним 10/03/22 Чтв 12:20:31 2313988 411
>>2313964
Дальше либо аналитик либо разработчик sql, как правильно вакансии в банках.
Аноним 10/03/22 Чтв 12:25:18 2313992 412
>>2313988
Аналитик звучит круто!
Big Data, Data mining - это туда же? Что читать, чему учиться?
Аноним 10/03/22 Чтв 12:28:14 2313996 413
>>2313653

Господа специалисты, вы тут?
Аноним 10/03/22 Чтв 17:14:40 2314187 414
Аноним 10/03/22 Чтв 18:05:18 2314229 415
>>2313964
чо ж ты учиться не уехал взагран, раз такой весь умненький и аелтс есть?
эх, ты...
Аноним 10/03/22 Чтв 18:11:31 2314233 416
>>2314229
хотел ехать в магу. Теперь не могу :)
эх жизнь...
Аноним 15/03/22 Втр 11:57:54 2317041 417
6117307828.jpg 595Кб, 841x1200
841x1200
А че там случилось с sql.ru и nosql.ru ?

Больше негде спросить
Аноним 15/03/22 Втр 13:00:22 2317064 418
>>2317041
Геополитические причины случилось.
Аноним 15/03/22 Втр 13:08:37 2317074 419
>>2317064
это понятно, но что конкретно?
их дудосят украинцы?
Немецкий пидорашка Деда хотя бы съебался?
Аноним 17/03/22 Чтв 22:40:45 2318628 420
>>2313341
Пиратскими версиями пользуетесь что ли?
Аноним 17/03/22 Чтв 22:42:40 2318630 421
>>2317074
>их дудосят украинцы?
Вероятно. Форум rsdn.org периодически лежит. Хотя на sql.ru вроде закрыли политический раздел, что не нравится хохлам?
Аноним 17/03/22 Чтв 22:54:14 2318642 422
>>2318630
> >sql.ru
> закрыли политический раздел
Весь сайт что ли политический раздел?
Аноним 18/03/22 Птн 13:44:38 2318867 423
1.png 36Кб, 921x224
921x224
2.png 25Кб, 577x283
577x283
Прошу помощи с запросом, вот к примеру запрос который выводит записи мне нужно дописать, чтобы те записи у которых один flight_id и flight_date соединялись, к примеру скринах видно flight_id = 39 и flight_date = '2017-06-01 12:05:00' таких записи 3, должна получиться 1 где будет qty(quantity) = 7, соедениться коды уникальные через запятую, то есть iata_code = CHM01,CHM11R1 и result_price = 6 119,23
Аноним 19/03/22 Суб 17:29:12 2319447 424
image.png 99Кб, 556x340
556x340
>>2227895 (OP)
Аноны, есть задача по пику:

Вывести имена сотрудников и количество их подчиненных, у которых в подчинении более 10 человек.

И решение:

select e1.name, count(1) from employee e1 join employee e2 on e1.ID=e2.chief_id group by e1.id, e1.name having count(e1.id) > 3

Объясните, пожалуйста, что за e1? Почему тут просиходит объединение одной и той же таблицы from employee e1 join employee e2? Или что это вообще значит?
Аноним 20/03/22 Вск 15:05:53 2319879 425
Как MySQL хранит дату? Под нее отведено 4 байта. В последних двух хранится правильно день и месяц, а в первых двух не то, например, 2002-08-31 хранится как 210, 15, 8, 31.
2003-12-22 хранится как 211, 15, 12, 22.
Что за кодировка для года?
Мне нужно распарсить дату из сырых байтов в проге, не хочу писать "UNIX_TIMESTAMP(имя поля)".
Аноним 21/03/22 Пнд 20:11:50 2320803 426

Периодически отвечал анонам и решал задачи, и перекатывал тхреад, скажите спасибо этому пидору-вахтёру, лучше посижу в програмаче.
>>2313974
Аноним 21/03/22 Пнд 20:24:32 2320811 427
>>2320803
Вахтёр няша и всё правильно сделал, следи за языком, периодический ты наш.
21/03/22 Пнд 20:45:31 2320826 428
еос - есть один скрипт. Суть такова - в двух таблицах встречаются 3 юнита, он считает сколько раз они там встречаются и выводит те, которые встречаются больше заданного числа раз. И вот я решил добавить четвертый и мне надо корректировать скрипт. Как переписать его чтобы не хардкодить названия юнитов?


select * from (
select sum(count), 'one' as unit from (
select count(unit), 'one' as unit from test1 where unit = 'ONE'
union all
select count(unit), 'one' as unit from test2 where unit = 'ONE'
) as i
union
select sum(count), 'two' as unit from (
select count(unit), 'two' as unit from test1 where unit = 'TWO'
union all
select count(unit), 'two' as unit from test2 where unit = 'TWO'
) as j
union
select sum(count), 'three' as unit from (
select count(unit), 'three' as unit from test1 where unit = 'THREE'
union all
select count(unit), 'three' as unit from test2 where unit = 'THREE'
) as k
) as u where u.sum > 6
21/03/22 Пнд 20:45:49 2320827 429
еос - есть один скрипт. Суть такова - в двух таблицах встречаются 3 юнита, он считает сколько раз они там встречаются и выводит те, которые встречаются больше заданного числа раз. И вот я решил добавить четвертый и мне надо корректировать скрипт. Как переписать его чтобы не хардкодить названия юнитов?


select * from (
select sum(count), 'one' as unit from (
select count(unit), 'one' as unit from test1 where unit = 'ONE'
union all
select count(unit), 'one' as unit from test2 where unit = 'ONE'
) as i
union
select sum(count), 'two' as unit from (
select count(unit), 'two' as unit from test1 where unit = 'TWO'
union all
select count(unit), 'two' as unit from test2 where unit = 'TWO'
) as j
union
select sum(count), 'three' as unit from (
select count(unit), 'three' as unit from test1 where unit = 'THREE'
union all
select count(unit), 'three' as unit from test2 where unit = 'THREE'
) as k
) as u where u.sum > 6
21/03/22 Пнд 20:46:27 2320828 430
Аноним 21/03/22 Пнд 20:47:40 2320829 431
16067306032200.jpg 92Кб, 604x503
604x503
>>2320811
Так вахтёр то анону так и не ответил, а я начал, но не успел прилетал фаршмарк от абу. Тхред и так почти сдох, и ещё вахтёры, ну раз вам ок, аривидерчи.
Аноним 22/03/22 Втр 14:53:10 2321250 432
Есть тут умельцы в оракловскую хуйню?
В общем дело такое, есть процедура которая добавляет запись, у нее поле с созданным айдишником IN/OUT, значит она по идее должна я его возвращать.
Если принтить его через DBMS, то всё ок. Вопрос в другом, мне нужно чтобы после выполнения процедуры вернулась запись с этим айдишником.
SELECT между Begin и End использовать не дает, returning к процедурам не применим, я хуй знает что блять делать
Аноним 22/03/22 Втр 20:54:25 2321506 433
>>2319879
лечиться тебе надо.
если только ты не пишешь тулзу по восстановлению данных.
Аноним 23/03/22 Срд 00:19:53 2321586 434
Аноним 24/03/22 Чтв 20:47:06 2322510 435
>>2321506
Зачем мне лечиться? Я пишу на плюсах, поэтому у меня был выбор либо писать селект для каждой таблицы и захардкодить названия полей, либо написать селект для всех таблиц и предусмотреть функцию, которая распарсит дату потом.
>>2321586
Я уже решил проблему виновата библиотека плюсовая, а не mysql, в самой бд дата это три инта, но спасибо
Аноним 24/03/22 Чтв 21:17:48 2322530 436
>>2322510
Названия столбцов*
кому не похуй
Аноним 26/03/22 Суб 17:48:45 2323678 437
Аноним 27/03/22 Вск 09:06:41 2323849 438
psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, commands ignored until end of transaction block

как лечить?
Аноним 27/03/22 Вск 12:47:09 2323937 439
>>2323849
Отлаливать ошибку и обрабатывать её.
Аноним 27/03/22 Вск 15:20:54 2324021 440
image.png 34Кб, 1264x304
1264x304
Аноним 27/03/22 Вск 15:21:49 2324022 441
iRetnhHOl4.jpg 582Кб, 1440x1800
1440x1800
Ребят, такой вопрос. Есть бд на монго, крутится локально. Написал приложение не ноде, хочу все упаковать в контейнер, вопрос - как из контейнерной бд подрубиться к локальной? Я понял что надо делать том, но как в этот том запихнуть существующие данные?
Аноним 27/03/22 Вск 15:28:11 2324026 442
>>2324021
Ты случайно не из тех, кто учит питон для того, чтобы написать на нём бота для телеги?

Параметры в execute передаются не так. Вместо параметров ты должен писать %s, а вторым аргументом передать массив со значениями, и они поставляются в запрос сами.
> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", [100, "abcdef"])
Аноним 27/03/22 Вск 16:02:45 2324049 443
>>2324026
>Ты случайно не из тех, кто учит питон для того, чтобы написать на нём бота для телеги?
да
> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", [100, "abcdef"])
спасибо!
Аноним 27/03/22 Вск 19:59:37 2324175 444
>>2324049
Что за бот? Что делать будет?
Аноним 27/03/22 Вск 20:40:01 2324215 445
>>2324175
Рассылать правду о войне в Украине.
Аноним 27/03/22 Вск 21:40:00 2324249 446
>>2324215
это сродни разговора со стеной, да и я слишком ссу подобным заниматься. Бот уже рабочий для нужд университета, просто надо было базу прикрутить
Аноним 28/03/22 Пнд 16:43:53 2324671 447
На какую субд лучше всего начинать придрачиваться допом, если до этого дело имел только с MS SQL и СОВСЕМ чучуть с мускулом в студенческие годы?
Аноним 28/03/22 Пнд 17:32:51 2324701 448
>>2324671
Очевидный постгрес.
Аноним 28/03/22 Пнд 18:52:39 2324749 449
>>2324249
Ты не понял. Рассылать от имени заказанных акков, а потом сразу донос в гебню.
Сажаю русню на 15 лет за смешные деньги.
Аноним 29/03/22 Втр 00:26:40 2324880 450
как удалить все ячейки в базе, подходящие под условие, а не только одну? У меня две одинаковых ячейки и удалилась только одна
>cur.execute("DELETE from users where chat_id=(%s) AND (button=(%s) OR floor=(%s) OR room=(%s) OR typeofproblem=(%s))", [message.chat.id, 'text', 1, 'text', 'text'])
Аноним 29/03/22 Втр 06:38:07 2324918 451
>>2324880
Как это у тебя две одинаковых ячейки?
Аноним 29/03/22 Втр 07:09:27 2324921 452
image.png 6Кб, 482x49
482x49
>>2324918
где? Разные, только данные в них могут быть одинаковые в виде сообщения "text"
Аноним 29/03/22 Втр 07:11:25 2324922 453
image.png 54Кб, 768x522
768x522
>>2324918
а, ты про это, вот они
Аноним 29/03/22 Втр 07:12:32 2324923 454
Аноним 29/03/22 Втр 10:47:41 2324989 455
>>2324701
Чому очевидный? Там охуеть какое сходство с МСом?
Аноним 29/03/22 Втр 11:09:33 2325000 456
Аноним 30/03/22 Срд 19:00:18 2325955 457
Cап двач, вкатываюсь в oracle sql и пришел к вам с просьбой
о помощи в решении задачки. Понимаю что нужно использовать конструкцию execute immediate и возможно задать loop через неявный курсор, но пока опыта мало в PL/SQL и осилить задачу не могу, буду благодарен если поможете разобраться.

Необходимо Во всех таблицах и вьюшках текущей схемы найти первые по алфавиту столбцы среди столбцов, имеющих типы данных не BLOB и не CLOB.
Найти минимальное значение, хранящееся в таком первом по алфавиту столбце каждой таблицы или вьюшки, привести его к строковому типу данных (в формате по умолчанию).
С помощью анонимного блока вывести в dbms_output отчёт о таблицах о вьюшках, их первых по алфавиту столбцах и минимальных значениях в этих столбцах.
Не использовать вспомогательных таблиц (не делать create table).
Минимальные значения столбцов следует определять непосредственно запросом к каждой таблице.
Аноним 30/03/22 Срд 19:32:01 2325973 458
>>2325955
>вкатываюсь в oracle sql
зойчем?
Аноним 30/03/22 Срд 20:21:45 2326005 459
>>2325955
> вкатываюсь в oracle sql
Ахахахах, ты че, ебанутый, они же тютю из РФ, все на попенсорсы переходят и отказываются от оракла.
Посвятил этой хуйне лучшие годы жизни, кстати, так что слушай.
>Во всех таблицах и вьюшках текущей схемы
Достаточно представления user_tab_columns, там сразу и с вьюх и с таблиц столбцы.
>первые по алфавиту столбцы среди столбцов, имеющих типы данных не BLOB и не CLOB.
min(case when data_type not in ('CLOB', 'BLOB') then column_name end)
group by table_name
Собственно, по полученной инфе ты слепишь селект вида «таблица — первый по алфавиту столбец».
Далее начинается pl sql часть

declare
v_str varchar2(32767);
begin
for z in (тут селект из прошлого пункта) loop
execute immediate 'select to_char(min('||z.column_name||')) from '||z.table_name into v_str;
dbms_output.put_line(v_str);
end loop;
end;


Был рад помочь, но на уточняющие вопросы не отвечу.
Все писано по памяти и не проверено в жизни, может быть придется немного погуглить.
Пока.
Аноним 31/03/22 Чтв 11:45:25 2326302 460
image.png 304Кб, 2854x825
2854x825
Аноним 31/03/22 Чтв 11:54:48 2326320 461
>>2326302
а бля там кавычки <> не нужны
Аноним 31/03/22 Чтв 13:12:47 2326387 462
image.png 59Кб, 1439x615
1439x615
image.png 19Кб, 776x160
776x160
image.png 5Кб, 255x58
255x58
image.png 47Кб, 769x267
769x267
Блять, создал бд на хероку, экспортровал туда по этой >>2326302
инструкции локальную базу (пикрил 2), с локальной базой код спокойно работал, а сейчас когда я вставил туда новый хост, пароль и имя бд (пикрил 2) на хероку бот не работает. Также если попытаться к бд на хероку подключиться с pgAdmin4, то там высвечиваются какие-то тысячи баз (пикрил 3) и все при попытке открытия выдают какую-то ошибку подключения (пикрил 4).
Как можно наиболее быстро решить проблему?
Аноним 31/03/22 Чтв 13:40:02 2326398 463
image.png 155Кб, 1092x446
1092x446
image.png 126Кб, 1092x446
1092x446
Есть таблицы Channel, User, Video, UserVideo.
UserVideo содержит записи о том, что конкретный юзер уже посмотрел конкретное видео.
Пик1 запрос выводит все видео на канале 666, "отмечая" среди них те, которые юзер 5 уже посомтрел.

Но как написать запрос, если нет айди юзера, а есть его юзернейм? Пытаюсь что-то типа пик2, но выводит только те видео, которые посмотрел юзер, не выводя все видео канала целиком.

SELECT FROM "Channel" c
LEFT JOIN "Video" v ON v.channel_id = c.channel_id
LEFT JOIN "UserVideo" uv ON uv.video_id = v.video_id
AND uv.user_id = 5
WHERE c.channel_id = 666
Аноним 31/03/22 Чтв 14:03:54 2326410 464
>>2326387
смог подключиться через pgadmin благодаря этим ответам
https://stackoverflow.com/questions/11769860/connect-to-a-heroku-database-with-pgadmin
https://stackoverflow.com/questions/12663639/how-to-hide-databases-that-i-am-not-allowed-to-access/13298802#13298802
Понял, что на хероку моя локальная база экспортировалась нормально, тогда я совсем не понимаю почему у меня на компе к базе всё нормально подключается, а на хероку нет
Аноним 31/03/22 Чтв 14:16:50 2326424 465
image.png 143Кб, 1092x490
1092x490
>>2326398
Это норм чи ни?

SELECT * FROM "Channel" c
LEFT JOIN "User" u ON u.user_id = 5
LEFT JOIN "Video" v ON v.channel_id = c.channel_id
LEFT JOIN "UserVideo" uv ON uv.video_id = v.video_id
AND u.username = 'alex'
WHERE c.channel_id = 666
Аноним 31/03/22 Чтв 15:06:44 2326471 466
>>2326410
короче с ноута к базе хероку подключиться получается, а если запускать бота на самом хероку то бот не работает почему-то, без базы работает и на ноуте и на хероку
Аноним 31/03/22 Чтв 15:39:36 2326496 467
>>2326471
>>2326410
>>2326387
сука я просто забыл добавить в зависимости библиотеку psycopg2 для баз
Аноним 31/03/22 Чтв 15:51:01 2326524 468
Всем привет! Очень нужна помощь, нужно сделать скрипт который генерит много строк и есть одно поле в котором помимо букв есть важный айдишник (например 'Сделка NO-1488') и нужно чтобы он инкрементировался каждую итерацию на +1 от максимального числа в таблице. Вопрос как это можно реализовать?
insert into
table_name (work_id)
values (select max(work_id)+1 from table_name)
Не работает из-за того что строка(
Аноним 31/03/22 Чтв 19:10:37 2326719 469
>>2326524
строку в число переведи просто
Аноним 31/03/22 Чтв 21:30:39 2326793 470
>>2326719
Как это поможет? Тут сам столбец с типом varchar, или расскажи поподробнее.
Аноним 01/04/22 Птн 18:30:40 2327249 471
изображение.png 49Кб, 1726x175
1726x175
Помогите пожалуйста, поставил pgadmin4 на свою виртуалку, ( виртуалка на Hyper-v , debian).
мне он пишет - веб морда доступна по http://127.0.0.1/pgadmin4, но она недоступна! Из моего компа, на котором виртуалка крутится.
Как можно сделать так чтобы была доступна?
И как можно адрес поменять веб морды?
И как сделать чтобы эта веб морда была доступна из интернета?

Помогите пожалуйста.
Аноним 01/04/22 Птн 20:16:31 2327296 472
>>2327249
ну и залупа. Слишком много вариантов сломаться, чтобы угадать какой у тебя.
у меня, конечно, все работает в этой конфигурации, но я то Tier V Senior Devops. А у тебя не заработает.


может ты лучше docker desktop поставишь? там хотя бы все вопрос с маппингом портов не стоит, тк 127.0.0.1 по сути общий.

Кстати, чтобы подключиться ИЗ докера к сервису на компе, надо не "localhost:5432 указывать, а "host.docker.internal:5432"
Аноним 01/04/22 Птн 20:18:56 2327297 473
>>2327249
Найди в конфиге это
DEFAULT_SERVER = '127.0.0.1'
замени на
DEFAULT_SERVER = '0.0.0.0'
Аноним 01/04/22 Птн 20:56:32 2327312 474
>>2327296
>>2327297
Вы хотя-бы примерно почувствовать можете название конфига в котором этот дефаулт сервер может быть?
Аноним 04/04/22 Пнд 19:35:17 2328976 475
>>2227895 (OP)
Аноны, помогите, ебусь с этими базами целый день, как удалить все партиционирование с таблицы ? Так же, нужно еще б в INFORMATION_SCHEMA.PARTITIONS актуализировать данные, так как они почему-то не показывают правильно значение в TABLE_ROWS
Аноним 04/04/22 Пнд 21:30:55 2329057 476
>>2328976
Смержи все партиции в одну.
Аноним 06/04/22 Срд 12:29:50 2330170 477
Сап, аноны. Есть 5 mysql бэкапов, но при загрузке каждого руется на разную строку с ошибкой ERROR 1824 (HY000) at line 2: Failed to open the referenced table ИМЯ ТАБЛИЦЫ
Что ему нужно? Я не разбираюсь в БД
Аноним 06/04/22 Срд 13:51:26 2330221 478
Объясните, почему когда я ставил postgreSQL на винде, то всё удалось сделать с помощью мастера установки и затем pgAdmin. Сейчас попробовал то же сделать в линукс и у меня жопа сгорела: pgAdmin калечная, в которой вырезано половина функционала, а в качестве замены надо в консоли вводить всё. У создателей postgreSQL какое-то негативное отношение к линуксам?
Аноним 06/04/22 Срд 15:10:53 2330281 479
>>2330170
Открыл базу в воркбенче, удалил ключи по другим таблицам. Там всего одна таблица грузилась на каждый бэкап. Все заработало.

Аноним 06/04/22 Срд 16:12:20 2330326 480
>>2330221
так подключайся через админ с винды, в чем проблема?
Аноним 07/04/22 Чтв 09:22:35 2330762 481
>>2330221
Ты, похоже pgadmin разных версий попутал.
Был pgadmin3 , а сейчас парашный pgadmin4.

Впрочем, я ими обоими не пользуюсь.
Аноним 08/04/22 Птн 13:41:46 2331811 482
Аноны, приветствую.
Где можно найти бд или эксельку с улицами и районами Москвы?
Аноним 09/04/22 Суб 12:47:24 2332407 483
>>2331811
туточки https://fias.nalog.ru/Updates

А потом просто нужно...
Выберите любую ячейку в диапазоне данных. Выберите Фильтр> данных. Выберите Текстовые фильтры или Числовое фильтры, а затем выберите сравнение, например Между. Введите условия фильтрации и нажмите кнопку ОК.

Выбери жизнь. Выбери работу. Выбери карьеру. Выбери семью. Выбери телевизор с большим экраном. Выбери стиральную машину,
Аноним 09/04/22 Суб 18:36:07 2332614 484
что читать современное для в ката в sql? талмуд - что это за слово типо воды много?
Аноним 09/04/22 Суб 18:38:54 2332615 485
>>2332614
Талмуд - это когда тысяча страниц.
Аноним 09/04/22 Суб 18:41:30 2332617 486
е4645656776568.jpg 8Кб, 214x235
214x235
>>2332614
>талмуд - что это за слово типо воды много?
Аноним 09/04/22 Суб 18:59:59 2332623 487
>>2332614
делай задачки на sql-ex, там же есть подсказки
Аноним 11/04/22 Пнд 20:37:17 2333967 488
b7a05c01e2ab5ba[...].jpg 35Кб, 472x764
472x764
В запросе кучу-кучу раз использую конструкцию типа

where колонка in ('aa', 'bb', 'cc')

При этом содержание скобок везде одинаковое. Из-за этого запрос выглядит громоздко и его неудобно править.

Как мне в начале запроса один раз привести этот список, а далее просто на него ссылаться?

Сейчас попробовал в начале запроса создавать временную таблицу, записывать в неё необходимые данные, а далее использовать конструкцию with (см. ниже), но время выполнения запроса увеличилось примерно в пять раз, что неприемлемо.

CREATE TEMPORARY TABLE code_table_temp(code_temp VARCHAR(80));
INSERT INTO code_table_temp VALUES
('aa'),
('bb'),
('cc)
...
...
...
with code as (select code_temp as code from code_table_temp)
select sum(case when колонка not in (select code from code) then...


Аноним 11/04/22 Пнд 22:49:37 2334039 489
>>2333967
with code as (select 'aa' as cd from dual
union
select 'bb' as cd from dual
union
select 'cc' as cd from dual
)
попробуй так
Аноним 12/04/22 Втр 08:19:31 2334147 490
>>2333967
Интерполяцией строк должно заниматься приложение, а не БД.
Аноним 12/04/22 Втр 11:45:03 2334285 491
>>2334039
Можешь в двух словах пояснить, что это и чем отличается от описанного выше способа, пожалуйста?
>>2334147
>Интерполяцией строк должно заниматься приложение, а не БД.
Да какое там приложение, я просто запросы для статистики делаю.
Если бы я это внутри какого-нибудь скрипта делал (что не умею), то там бы было понятно, как подстановку переменных сделать вместо тупого копирования.
Аноним 12/04/22 Втр 13:31:24 2334366 492
>>2334285
>Можешь в двух словах пояснить, что это и чем отличается от описанного выше способа, пожалуйста?
Что вызывает вопрос, union? Просто загугли чел, это база, источников миллиард. Идея была в том чтобы не создавать таблицу, я даже не ебу даст ли это какой-то эффект.
Аноним 14/04/22 Чтв 11:43:51 2335496 493
У меня вопрос к метрам Синьёры-помидоры на месте?
При использование SELECT ... INTO, строки вставляются в строгом порядке, или согласно именам, т.е. если мы хотим поменять порядок вставки, нужно менять алиас или порядок колонок в селекте?
Аноним 14/04/22 Чтв 20:36:43 2335894 494
Query result:
+----+---------+----------+
| Id | name_id | position |
+----+---------+----------+
| 1 | 1 | Master |
| 2 | 2 | Slave |
| 3 | 3 | Dude |
| 4 | 4 | Killer |
| 5 | 5 | Master |
| 6 | 5 | Dude |
| 7 | 6 | Slave |
| 8 | 3 | Master |
+----+---------+----------+
Affected rows: 8

Query result:
+----+---------+-----+
| Id | Name | Old |
+----+---------+-----+
| 1 | Tom | 12 |
| 2 | Lucy | 99 |
| 3 | Frank | 20 |
| 4 | Jane | 99 |
| 5 | Robert | 1 |
| 6 | Session | 20 |
+----+---------+-----+
Affected rows: 6

Query result:
+---------+-----+--------------------------+
| Name | Old | GROUP_CONCAT(s.position) |
+---------+-----+--------------------------+
| Jane | 99 | Killer |
| Lucy | 99 | Slave |
| Frank | 20 | Master,Dude |
| Session | 20 | Slave |
| Robert | 1 | Dude,Master |
+---------+-----+--------------------------+
Affected rows: 5

Есть две таблички, я их джойню, необходимо выбрать имя, возраст и роль всех одногодок.

SELECT n.Name, n.Old, GROUP_CONCAT(s.position)
FROM NAMES n
LEFT JOIN STATS s
ON n.Id = s.name_id

GROUP BY n.Name, n.Old
HAVING n.Old IN (

SELECT names.Old
FROM NAMES names
LEFT JOIN STATS stats
ON names.Id = stats.name_id
GROUP BY names.Old
HAVING COUNT(names.Old) > 1
)
ORDER BY n.Old DESC;


Но у меня выходит нечто громоздкое + если один и тот же человек встречается дважды - он становится одногодкой с самим собой.
Есть ли способ решить задачу, используя всего один селект? Предполагаю, копать надо в сторону селфджойна уже сделанного джойна?

SELECT * JOIN выглядит следующим образом

Query result:
+----+---------+-----+----+---------+----------+
| Id | Name | Old | Id | name_id | position |
+----+---------+-----+----+---------+----------+
| 1 | Tom | 12 | 1 | 1 | Master |
| 2 | Lucy | 99 | 2 | 2 | Slave |
| 3 | Frank | 20 | 8 | 3 | Master |
| 3 | Frank | 20 | 3 | 3 | Dude |
| 4 | Jane | 99 | 4 | 4 | Killer |
| 5 | Robert | 1 | 6 | 5 | Dude |
| 5 | Robert | 1 | 5 | 5 | Master |
| 6 | Session | 20 | 7 | 6 | Slave |
+----+---------+-----+----+---------+----------+
Affected rows: 8

Помогите, я в тупике
Аноним 14/04/22 Чтв 20:37:37 2335896 495
>>2335894

Запрос, если надо кому потыкать

CREATE TABLE NAMES(
Id integer PRIMARY KEY,
Name text,
Old integer
);

CREATE TABLE STATS(
Id integer PRIMARY KEY,
name_id integer,
position text
);

/ Create few records in this table /
INSERT INTO NAMES VALUES(1,'Tom', 12);
INSERT INTO NAMES VALUES(2,'Lucy', 99);
INSERT INTO NAMES VALUES(3,'Frank', 20);
INSERT INTO NAMES VALUES(4,'Jane', 99);
INSERT INTO NAMES VALUES(5,'Robert', 1);
INSERT INTO NAMES VALUES(6,'Session', 20);

INSERT INTO STATS VALUES(1, 1, "Master");
INSERT INTO STATS VALUES(2, 2, "Slave");
INSERT INTO STATS VALUES(3, 3, "Dude");
INSERT INTO STATS VALUES(8, 3, "Master");
INSERT INTO STATS VALUES(4, 4, "Killer");
INSERT INTO STATS VALUES(5, 5, "Master");
INSERT INTO STATS VALUES(6, 5, "Dude");
INSERT INTO STATS VALUES(7, 6, "Slave");

SELECT FROM STATS;
SELECT
FROM NAMES;

SELECT n.Name, n.Old, GROUP_CONCAT(s.position)
FROM NAMES n
LEFT JOIN STATS s
ON n.Id = s.name_id

GROUP BY n.Name, n.Old
HAVING n.Old IN (

SELECT names.Old
FROM NAMES names
LEFT JOIN STATS stats
ON names.Id = stats.name_id
GROUP BY names.Old
HAVING COUNT(names.Old) > 1
)
ORDER BY n.Old DESC;
Аноним 14/04/22 Чтв 21:22:12 2335962 496
>>2335496
ты ебанутый? в SQL, как в практической реализации реляционной теории, не существует такого понятия как "порядок строк".

Как там оно вставляется ебать тебя не должно. Не используй это словосочетание.

В этом был смысл создания SQL и СУБД.

Но ты можешь написать к любому выражению ORDER BY.
Аноним 14/04/22 Чтв 22:42:37 2336011 497
Думаю использовать enum. Какие подводные?
Аноним 14/04/22 Чтв 22:46:03 2336015 498
>>2336011
Если у тебя оракл, придётся отказаться от этой мысли.
Аноним 14/04/22 Чтв 23:20:48 2336033 499
2022-04-1423-11.png 11Кб, 420x93
420x93
>>2335896
Решил сам в итоге селфджойном, красота. Теперь осталось только EXPLAIN потыкать и мб слоулогом

Аноним 15/04/22 Птн 00:25:27 2336078 500
>>2336015
В ORM же есть... пусть и создаёт строку с наиболее длинным значением
Аноним 15/04/22 Птн 20:41:44 2336708 501
почему нельзя всё в одной таблице все данные держать, зачем их множить? так будет быстрее выполняться запрос?
Аноним 15/04/22 Птн 20:42:11 2336710 502
я про join
Аноним 15/04/22 Птн 20:52:41 2336723 503
>>2336708
>>2336710
Читай про нормализацию и денормализацию.
Если всё держать в одной таблице, некоторые селекты могут ускориться, но всё остальное замедлится.
# OP 15/04/22 Птн 21:07:23 2336744 504
Аноним 01/05/22 Вск 10:49:13 2347853 505
Аноним 09/05/22 Пнд 17:05:12 2353273 506
>>2336708
Если у тебя огромная таблица где много повторяющихся данных то изменения в этой таблице начнут занимать слишком много времени.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов