М.Двач / Программирование

Двач.hk не отвечает.
Вы видите копию треда, сохраненную 14 июня 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

65 Кб, 921x419
Кластеризованный уникальный баз данных тред /sql/ 18 дек, 01:26 1312894 В конец треда | Веб

И это опять баз данных тред.
Обсуждаем базы данных во всех возможных реализациях

Структуры данных, ER-модели, key-value, хранилища, снежинки, звёздочки,
Оптимизируем запросы, написанные криворукими аналитиками,
Создаем времянки с одной строчкой,
Колонизируем индексы,
Коммитим транзакции,
Проводим sql-инъекции,
Пиздим за кривую табуляцию в процедурах, функциях и вьюхах,
Рассказываем тупым студакам, как заджойнить 2 таблички, чтобы сдать очередную лабу преподу-старпёру при смерти.

Ну и, конечно же, проходим бесплатные курсы на sql-ex за полгода и устраиваемся в ДС на 100 000 без задней мысли.

Погнали.
Прошлый тут: https://2ch.hk/pr/res/1222346.html (М)

Ответы313160313625316168316510329480338540343593363459364132366914370749371362372210373194374601375157387802392285396952397167400954406456

2 18 дек, 02:58 2 1312903

нинужна111

3 18 дек, 17:46 3 1313160

>>1312894 (OP)
Вопросик появился.
СУБД MS SQL SERVER 2014

Как будет работать поиск по некластурному индексу, если на таблице отсутствует кластерный индекс?

87 Кб, 604x557
4 18 дек, 22:38 4 1313310

Неблохо знаю sql, как вкатиться в анатилику???
Реальная история я не тролль.

Ответы313450

5 19 дек, 10:51 5 1313450

>>1313310
Берешь и заходишь на hh, например, и вводишь там в поиске

>Хранилище данных, аналитик

Вакансий (в ДС точно) хватает, народу ни хуя нет, так что поле непаханное.

Ответы315823

6 19 дек, 16:48 6 1313625

>>1312894 (OP)
ОП, где книги, где рекомендованная литература, ссылки, курсы?

Ответы313645

7 19 дек, 17:29 7 1313645

>>1313625
Проблема в том, что я этот список не составил, потому что у самого опыт очень странный, зачастую почти не касающийся чтения теории.

Если хотите, давайте, как у всех, заведем проект на гитхабе и все подробно там распишем.

Ответы313918

8 20 дек, 02:58 8 1313918

>>1313645
>Если хотите, давайте, как у всех, заведем проект на гитхабе и все подробно там распишем.
Да пошёл ты нахуй, вкатывальщики не нужны.

Ответы314030

9 20 дек, 13:43 9 1314030

>>1313918
Боишься просто, что тебя вытеснят с рынка молодые шутливые лоботрясы

Ответы314126

10 20 дек, 16:08 10 1314092

Почему в пхпмуадмин не обновляется инфа о размере таблицы и количестве строк? Или у myisam она и не должна обновляться?

Ответы314358

11 20 дек, 16:19 11 1314097

Вопрос, конечно, немного не в тему, но...

Короче. Есть - phpMyadmin 4.8.3, MySQL 5.6.41.

Задача - экспортировать базу данных и использовать её в формоклёпке Борланда и с возможностью перенести и юзать на высере вебмакакинга.

Шо с этой хуйнёй делать?

Ответы314167

12 20 дек, 17:42 12 1314126

>>1314030
Не вытеснят, но могут понизить стоимость моего труда.

13 20 дек, 18:46 13 1314167

>>1314097
А зачем тебе экспорт БД? В чём проблема из дельфы обращаться к БД?

14 21 дек, 03:29 14 1314358

>>1314092
решилось. обновляется через период. иннодб с каждым запросом обновлялась

Ответы314494

15 21 дек, 14:06 15 1314494

>>1314358
Не пользуйся этим говном - пхпадмин.

Скачай себе нормальный клиент для mysql жи, например
>heidisql

16 22 дек, 17:16 16 1315023

бамп

17 23 дек, 10:22 17 1315345

Работает прога в 6 потоков. Через какое то время в одном потоке или в парочке вылезает mysql server has gone away. Все что делают эти проги - insert примерно каждую секунду одних и тех же данных (то есть не может отправиться данных на 100 мб например, там отправляется 4 строки и 50 чисел). Я к тому что в инете предлагают увеличить пакет лимит и таймаут, но это точно не оно. В 4 потока (меньше инсертов в 1.5 раза соответственно) ВРОДЕ КАК такое не выскакивает, по крайней мере еще не было

В чем может быть причина?

Ответы315384406015

18 23 дек, 11:20 18 1315360

У меня есть 300 000 word docx документов, причем каждые три-пять описывают отдельный договор. Вопрос: где их хранить? Если создавать папки в windows, получается ну очень странная структура, все будет очень медленно и ебано. 1 общая папка - 300 000 отдельных папок и в каждой еще по три папки получается, очень ебанутое решение. Существует ли метод хранения подобного количества информации в более удобном виде.

Ответы315376

19 23 дек, 11:44 19 1315376

>>1315360
> Вопрос: где их хранить?
Если задача состоит в том, чтобы просто сохранить 300к файлов, то БД не лучший вариант. В остальных случаях, например, создание локального портала с документооборотом, конечно же лучше хранить в БД, заодно проиндексировав все файлы.

> 1 общая папка - 300 000 отдельных папок и в каждой еще по три папки получается, очень ебанутое решение.

Кстати ты ошибаешься. Это рекомендуемый способ хранения крупного набора файлов для любой ФС.

Ответы315383

20 23 дек, 11:58 20 1315383

>>1315376
Спасибо. Оставлю вариант с папками.
Если интересно - файлы нужны для того, чтобы достать потом из них всякие признаки для ML модели.

Ответы315390

21 23 дек, 11:58 21 1315384

>>1315345
Блядь, школьник, твой высер пять минут пытался понять. Весь мозг выебал и опишу как я понял. Ситуация такова, что ты открываешь соединение с БД, а оно у тебя лимитированное, твои «проги»/«потоки» не успевают выполнить операции, потому что БД закрывается.

На вид у тебя есть «прога», которая открывает БД, а дальше ты бомбишь БД запросами. И в этом твоя ошибка. Тебе необходимо асинхронно выполнять запросы, а распараллеливать в твоём случае не нужно.

Ответы315603360153

22 23 дек, 12:11 22 1315390

>>1315383
Ну что же ты сразу про мл не написал? Конечно тогда лучше всё сохранить в БД и проиндексировать. Я бы ещё elasticsearch прикрутил. Было бы вообще удобно потом признаками наполнять...

23 23 дек, 18:36 23 1315603

>>1315384
insert delayed должен помочь?

80 Кб, 397x419
24 24 дек, 09:14 24 1315818

Сап sql

Есть одна таблица с производства - каждый раз добавляются новые строчки и редактируются старые.

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

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

Ключи то я раздам через rank, но как сделать так, чтобы они всегда давались постоянными к тем же старым данным и давались новые для новых?

Пока есть идеи через хэш как-нибудь реализовать - чекать, если есть, давать ключ max + ранк. Но это хуйня какая-то. Других идей чёт нет.

Ответы315843

25 24 дек, 09:45 25 1315823

>>1313450
> Вакансий (в ДС точно) хватает, народу ни хуя нет
Давайте поможем анону догадаться почему

Спойлер: зп ниже чем у ебучего фронтендера иногда даже в разы

Ответы359461

26 24 дек, 11:22 26 1315843

>>1315818
>но как сделать так, чтобы они всегда давались постоянными к тем же старым данным

Щито, бля?
Ты, сука, по-русски можешь писать?

Какие ключи, какие хэш + макс + ранк?

Но, если серьезно, напиши, какая у тебя СУБД и приведи по одному примеру для 2 своих кейсов:
1. Появляется новая запись, что с ней должно произойти
2. Обновляется существующая запись, что с ней должно произойти,

Ни хуя же непонятно

Ответы315848315849

80 Кб, 397x419
27 24 дек, 12:00 27 1315848

>>1315843
> Щито, бля?
> Ты, сука, по-русски можешь писать?
Пиздос, я не базист нихуя, по вашему не говорю.
Кризис, сисярперов за базы сажают.

> Но, если серьезно, напиши, какая у тебя СУБД и приведи по одному примеру для 2 своих кейсов.
SQL Server 16
> 1. Появляется новая запись, что с ней должно произойти
Прицепиться к базе2 с ключом, продолжающим закономерность ключей в базе2. Как?
> 2. Обновляется существующая запись, что с ней должно произойти,
Если в базе1 - обновить и в базе2.
Только как? Нужно удалить старый вариант и записать новый.

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

Примечание: база1 - индусская помойка, тянуть их ключи не вариант.

> Ни хуя же непонятно
Пытаюсь написать понятнее, анон

Ответы315975

80 Кб, 397x419
28 24 дек, 12:02 28 1315849

>>1315843
> Щито, бля?
> Ты, сука, по-русски можешь писать?
Пиздос, я не базист нихуя, по вашему не говорю.
Кризис, сисярперов за базы сажают.

> Но, если серьезно, напиши, какая у тебя СУБД и приведи по одному примеру для 2 своих кейсов.
SQL Server 16
> 1. Появляется новая запись, что с ней должно произойти
Прицепиться к базе2 с ключом, продолжающим закономерность ключей в базе2. Как?
> 2. Обновляется существующая запись, что с ней должно произойти,
Если в базе1 - обновить и в базе2.
Только как? Нужно удалить старый вариант и записать новый.

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

Примечание: база1 - индусская помойка, тянуть их ключи не вариант.

> Ни хуя же непонятно
Пытаюсь написать понятнее, анон

29 24 дек, 17:28 29 1315975

>>1315848
Если я тебя правильно понял, то тебе не нужно записи из всех таблиц копировать. А нужен какой-то механизм интеграции для тех таблиц, в которых ты заинтересован.

Я использовал такой способ:
1. Создаешь в базе1 такие таблицы:
1.1. c_integration_mode - таблица-справочник, в которой будут храниться описания всеего, что ты умеешь интегрировать
id (identity),
name,
description
1.2. t_integration_queue - это будет табличка, в которую будут падать задания для интеграции
id (identity),
integration_mode_id,
object_id (bigint) - айдишник нашей записи, которую хотим интегрировать,
last_sync_date,
is_synced (bit),
last_error
1.3. t_integration_linq - таблица связей айдишников из базы1 и той базы, с которой ты интегрируешься, например, 2
id (identity),
integration_mode_id,
object_id (bigint) - это айдишник найшей записи,
remote_object_id (bigint) - это айдишник записи, которую мы отправили на интеграцию и получили ответ

Значит, что теперь делаешь, когда осилил создание 3 табличек:
1. Инсертишь в таблицу c_integration_mode название своей первой таблички, записи из которых собираешься интегрировать, смотришь, какой айдишник присвоился записи
2. Создаешь триггер AFTER INSERT на ту таблицу, которую собрался интегрировать, в триггере
insert into t_integration_queue (integration_mode_id, last_sync_date, is_synced) select 1 (айдишник, который запомнили в п.п.1), getdate(), 0 from inserted
3. Создаешь хранимку, которая будет курсором ходить по таблице t_integration_queue where is_synced = 0 and integration_mode_id = 1(то число, которое запомнили в п.п.1), заджойнив ее с настоящей таблицей с записями по object_id, и пытаться отправить в другую базу каждую запись по отдельности. (Как отправлять - это уже тебе решать: через линкед сервер, через веб-вызов из бд) Таким макаром ты ничего не проебешь, а так же сможешь получить для каждой записи айдишник (при удачной отправке) или текст ошибки (при неудачной отправке).
В конце курсора делай merge таблицы t_integration_linq, если смог получить айдишник из другой базы
А так же не забудь проапдейтить t_integration_queue.is_synced = 1, чтобы в следующий раз твоя процедурка эту запись не пыталась интегрировать.

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

Ну и теперь настало время научиться все это запускать - создаешь самую главуню процедуру
sp_process_integration, в которой в правильном порядке (чтобы не нарушить целостность) запускаешь все написанные до этого тобой процедуры

А саму sp_process_integration настраиваешь на запуск через Sql Server Agent.

29 24 дек, 17:28 29 1315975

>>1315848
Если я тебя правильно понял, то тебе не нужно записи из всех таблиц копировать. А нужен какой-то механизм интеграции для тех таблиц, в которых ты заинтересован.

Я использовал такой способ:
1. Создаешь в базе1 такие таблицы:
1.1. c_integration_mode - таблица-справочник, в которой будут храниться описания всеего, что ты умеешь интегрировать
id (identity),
name,
description
1.2. t_integration_queue - это будет табличка, в которую будут падать задания для интеграции
id (identity),
integration_mode_id,
object_id (bigint) - айдишник нашей записи, которую хотим интегрировать,
last_sync_date,
is_synced (bit),
last_error
1.3. t_integration_linq - таблица связей айдишников из базы1 и той базы, с которой ты интегрируешься, например, 2
id (identity),
integration_mode_id,
object_id (bigint) - это айдишник найшей записи,
remote_object_id (bigint) - это айдишник записи, которую мы отправили на интеграцию и получили ответ

Значит, что теперь делаешь, когда осилил создание 3 табличек:
1. Инсертишь в таблицу c_integration_mode название своей первой таблички, записи из которых собираешься интегрировать, смотришь, какой айдишник присвоился записи
2. Создаешь триггер AFTER INSERT на ту таблицу, которую собрался интегрировать, в триггере
insert into t_integration_queue (integration_mode_id, last_sync_date, is_synced) select 1 (айдишник, который запомнили в п.п.1), getdate(), 0 from inserted
3. Создаешь хранимку, которая будет курсором ходить по таблице t_integration_queue where is_synced = 0 and integration_mode_id = 1(то число, которое запомнили в п.п.1), заджойнив ее с настоящей таблицей с записями по object_id, и пытаться отправить в другую базу каждую запись по отдельности. (Как отправлять - это уже тебе решать: через линкед сервер, через веб-вызов из бд) Таким макаром ты ничего не проебешь, а так же сможешь получить для каждой записи айдишник (при удачной отправке) или текст ошибки (при неудачной отправке).
В конце курсора делай merge таблицы t_integration_linq, если смог получить айдишник из другой базы
А так же не забудь проапдейтить t_integration_queue.is_synced = 1, чтобы в следующий раз твоя процедурка эту запись не пыталась интегрировать.

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

Ну и теперь настало время научиться все это запускать - создаешь самую главуню процедуру
sp_process_integration, в которой в правильном порядке (чтобы не нарушить целостность) запускаешь все написанные до этого тобой процедуры

А саму sp_process_integration настраиваешь на запуск через Sql Server Agent.

Показать весь текст
Ответы315982

80 Кб, 397x419
30 24 дек, 18:20 30 1315982

>>1315975
Спасибо, анон.
То, что нужно.

31 24 дек, 21:13 31 1316080

Подскажите запрос для мускула, чтобы пронумеровать все записи в таблице числами от 1 до 8. (1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,...)
Можно конечно и рандом ебануть, но мне надо чтоб под каждой цифрой было одинаково (более менее) записей

Ответы316096

32 24 дек, 21:58 32 1316096

>>1316080
Возьми общее количество записей и подели на 8, дальше возьми 8 пачек через limit из этой таблицы и проставь им соответствующие номера.

Ответы316189

33 25 дек, 01:14 33 1316168

>>1312894 (OP)
Ну и где гайд по вкатыванию?

34 25 дек, 02:45 34 1316183

Есть статическая, проиндексированная таблица почти на ярд записей.
Регулярно код получает около 100 индексов по которым нужно сделать выборку из таблицы.
Как это сделать правильно?
1) выбирать по очереди select * from where
2) залить список индексов в другую таблицу и сделать джойн?

Ubuntu/postgres10
индекс неуникальный

Ответы316246

35 25 дек, 04:13 35 1316189

>>1316096
Какой еще лимит. Когда в базе 20кк записей. Пока видимо только рандом решение

Ответы316191

36 25 дек, 04:17 36 1316191

>>1316189
А стоп. Типа не вместе 12345678, а 111112222223333. Ну можно и так

37 25 дек, 10:25 37 1316246

>>1316183
Что ты понимаешь под
>код получает индекс
можешь пример привести?

Ответы316327

38 25 дек, 14:40 38 1316327

>>1316246
ну смотри, таблица содержит записи начинающиеся с некого неуникального ID
ID,field1,field2,field3....
По этому ID построен индекс create indexindename on table1(ID)

В процессе работы код получает список этих ID из внешнего источника (56,678,1245,...999999)
Нужно достать все записи из БД

Ответы316531

MySQL 8 39 25 дек, 19:24 39 1316457

Это возможно? На выходе вижу только Row matched:1 и все, а мне необходимо заменить значения.
UPDATE db.t1
JOIN db.t2
ON t1.id = t2.id
JOIN db.t3
ON t2.id = t3.id
SET col1 = CASE
WHEN col1 != col2
THEN col1 = col2
END
WHERE t1.id = t2.id AND t3.id = t2.id and t1.id = 2

Ответы316556

40 25 дек, 21:16 40 1316510

>>1312894 (OP)
Скачал пример скрипта для поиска дубликатов по несколкьким полям. Поясните плз, как работает.
1) C.. Таблицы C же нет
2) Далее идет вложенный запрос, с этим ясно
3) Е - это таблица с результатами предыдущей конструкции ?
4) JOIN Employees C что за конструкция, почему два набора данных после JOIN ?

SELECT C. FROM ( SELECT FirstName, LastName
FROM Employees
GROUP BY FirstName, LastName
HAVING COUNT(*) > 1 ) E
JOIN Employees C
ON C.FirstName = E.FirstName
AND C.LastName = E.LastName

Ответы316540

41 25 дек, 22:06 41 1316531

>>1316327
Сконструируй один запрос
>Select *
>from table1
>where id in (1,2,3,...,n)
В конструкцию in подставь свои айдишники, перечисленные через запятую.
Получишь в плане запроса
>nonclustered index seek

Ответы316650

42 25 дек, 22:19 42 1316540

>>1316510
C и E - это аллиасы для таблицы и вложенного запроса, за которыми они идут в тексте запроса.
После джойна у тебя не 2 набора данных, это у тебя вложенный запрос джойнится с таблицей по 2 полям: имя и фамилия.

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

Далее этот вложенный запрос джойнится с той же самой таблицей по имени и фамилии для того, чтобы
Ты мог получить уже айдишникт всех сотрудников, по которым найдены дубли.

43 25 дек, 22:32 43 1316556

>>1316457
Ну напиши селект вместо апдейта, посмотри, сколько записей реально попадают под твои условия.

44 26 дек, 03:51 44 1316650

>>1316531
>where id in (1,2,3,...,n)
будет быстрее чем join?

Ответы316667316861

45 26 дек, 08:40 45 1316667

>>1316650
Конечно

Ответы316844

46 26 дек, 18:43 46 1316844

>>1316667
чому? разве джойн не тоже самое делает?

Ответы316872

47 26 дек, 19:36 47 1316861

>>1316650
нет, потому что с in индексы не работают

Ответы316872

48 26 дек, 19:52 48 1316872

18 Кб, 501x35730 Кб, 654x536

>>1316861
>потому что с in индексы не работают
Садись, два (см. пик 1)

>>1316844
См. пик 2 - у тебя тратится время на сканирование второй таблицы

Ответы316888

49 26 дек, 20:33 49 1316888

>>1316872
что у тебя за дб?
у меня задача такая - индексированная таблица на ярд записей и около сотни записей которые там надо найти.
все-таки сотню записей в in перечислять как-то не очень же

Ответы316896

50 26 дек, 20:50 50 1316896

>>1316888
Sql-server
>как-то не очень сотню записей перечислять
Так в чем тогда твой вопрос, делай так, как тебе очень.
Создавай таблицы НА ДИСКЕ, инжексируй их, сканируй индекс, все это в системе, небось, где каждая милисекундочка отработки важна, и держи в голове, коннчно же, что такой функционал может работать и одновременно в нескольких потоках, например, где каждый поток будет создавать времянки. Проконсультируйся с тим лидом, а потом напиши его предложение сюда, мб я и ошибаюсь, но пока что не вижу, в чем, я тебе даже план нарисовал - объективно все.

Ответы316956

51 26 дек, 22:29 51 1316956

>>1316896
>sql-server
они все SQL, какой именно? mysql? mariadb? postgre? oracle?
>НА ДИСКЕ, инжексируй их, сканируй индекс
не на диске, а в /tmp которая суть рамдиск

Ответы316964

52 26 дек, 22:42 52 1316964

>>1316956
Ms sql server.

Времянки создаются на диске.

Ответы316968

53 26 дек, 22:49 53 1316968

>>1316964
>Времянки создаются на диске.
очередная причина не пользоваться говном от M$

Ответы316970

54 26 дек, 22:56 54 1316970

>>1316968
Расскажи, что у тебя за субд такая волшебная, в которой времянки создаются в памяти.

Ну и, что самое главное, даже если ты создаешь эту таблицу в памяти, ты, все равно тратишь на это ресурсы, а зачем, когда можно тот же результат получить быстрее без таких манипуляций?

Ответы316985

55 26 дек, 23:06 55 1316985

>>1316970
>волшебная
это все нормальные бд умеют, например мускуль
>CREATE TEMPORARY TABLE foobar (id int) ENGINE=MEMORY;

Ответы316994

56 26 дек, 23:13 56 1316994

>>1316985
Это отдельный тип табличек - инмемори.
Ну что ж, создавай таблицы в памяти из своего приложения, раз считаешь, что это оптимально. Я по-прежнему уверен, что это говнорешерие.

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

Ответы317011

57 26 дек, 23:31 57 1317011

>>1316994
ты не понимаешь разницу между
>создать временную таблицу в несколько сотен строк в памяти
>залить в память таблицу на 150 гигов

Ответы317014

58 26 дек, 23:40 58 1317014

>>1317011
Создавай, кто тебе мешает.
А, когда ваша система по пизде пойдет, скажешь, что зато на дваче всех убедил, что так надо.

59 27 дек, 15:56 59 1317289

Расставляю индекс на поля (gender, city) Для выборки
WHERE gender = 1 AND (city = 'Москва' OR city = '')
Чтобы выбрать всех кто из москвы и всех, у кого город не указан
Будет ли тут индекс работать как надо?

Ответы317359317361317366

60 27 дек, 18:53 60 1317359

>>1317289
Советую научиться распознавать план запроса.

>Будет ли тут индекс работать как надо?

Конечно

Ответы317401

61 27 дек, 18:56 61 1317361

>>1317289
> gender
SJW плез.

62 27 дек, 18:59 62 1317366

>>1317289
Не забудь еще
>or where city is null

Ответы317401

63 27 дек, 20:37 63 1317401

>>1317359
>>1317366
А если мне еще надо добавить AND age between 20 AND 25 (ну или просто age > 20 AND age < 25) то ведь индекс не будет работать в промежутке этом? На age индекс не нужен если я буду всегда искать диапазоны?

Ответы317658

64 28 дек, 09:39 64 1317658

>>1317401
Будет работать индекс, просто без age.
Сначала найдет все записи, которве тебе нужны, без условия по age, а дальше уже среди них будет искать по age.

Ответы317880

65 28 дек, 17:30 65 1317880

>>1317658
Тогда age надо в индекс добавлять вообще или нет?

Ответы317883

66 28 дек, 17:43 66 1317883

>>1317880
Добавляй, конечно. Тогда и по Age будет поиск работать.

67 29 дек, 19:28 67 1318438

Храню форматированный текст в PostreSQL в виде JSON-объекта. Текст там хранится в виде блоков https://pastebin.com/PmXYgziH
Хочу запилить поиск по тексту. Как сделать лучше: проходить по массиву blocks и проверять значение поля text, или же сделать отдельное поле plainText, где будет храниться чистый текст в виде обычной строки, и проверять это поле?

Ответы318458

68 29 дек, 20:43 68 1318458

>>1318438
Да, для поиска обычно делают одно поле, куда, пусть даже с дублированием, но пишут весь текст. Так будет быстрее, думаю.

69 30 дек, 02:49 69 1318545

Добрый день, допустим есть таблица, в ней есть всякие разные столбцы, и среди этих столбцов, есть несколько с одним префиксом: setting_ , например setting_name1, setting_name2, setting_name3, ... setting_name35

Так вот, есть возможность заселектить как-то только столбцы с этим префиксом?

Что бы не писать SELECT setting_name1, setting_name2, setting_name3, ... setting_name35 FROM table_x ...

Писать SELECT * FROM table_x тоже не подходит пока что.

Ответы318609318624318774

70 30 дек, 10:06 70 1318609

>>1318545
П Р Е Д С Т А В Л Е Н И Я
Р
Е
Д
С
Т
А
В
Л
Е
Н
И
Я

Ответы318718

71 30 дек, 10:59 71 1318624

>>1318545
Есть конечно.
В любой бд есть системные представленияи таблицы, например, в sql serverэто
sys.columns
И sys.tables

Просто загугли «select table column names <<название субд>>”
Дальше хуяришь запрос к табличке с колонками и выбираешь только те колонки, where name like ‘setting_%’ таким образом, чтобы результатом твоего запроса стал новый запрос, который ты потом и будешь выполнять.

Ответы318718

72 30 дек, 15:37 72 1318718

>>1318609
>>1318624
Обидно и стремно что нельзя просто сразу написать типа:

SELECT setting_* FROM table_x

или

SELECT setting_% FROM table_x

>чтобы результатом твоего запроса стал новый запрос, который ты потом и будешь выполнять.
Не совсем понятен этот момент. Это в один запрос все то можно уместить? или я делаю сначала первый запрос, складываю результат в переменную в php и потом уже второй запрос формирую вида
SELECT $settingColumns FROM table_x

Ответы319328360159

73 30 дек, 19:49 73 1318774

>>1318545
Если сами делали эту таблицу, то мудаки вы, если нет, то мудаки они.

74 31 дек, 02:00 74 1318989

как юзать bit_count для поиска схожих записей через расстояние хэмминга?
У меня в таблице есть допустим 64 точки описывающих картинку. Как эти 64 точки захэшировать в строку, чтоб потом по bit_count найти ее можно было? Ну и все похожие на нее

75 31 дек, 04:27 75 1319017

Кто ms sql server юзает? Читаю, там в 2017 завезли gpu ускорение, как оно там работает? На 7 виндувсе запустится?

Ответы319329

76 1 янв, 08:19 76 1319328

>>1318718
Второй вариант, да. Селектишь набор колонок, перечисленных через запятую в переменную. Дальше вторым запросом формируешь селект $колумнс, как ты и написал.

77 1 янв, 08:20 77 1319329

>>1319017
Для каких целей, вообще скл серверу гпу?

78 2 янв, 03:46 78 1319526

Что можете посоветовать для проектирования БД? В унике использовался ERWin, но это была очень старая штука, которую можно достать только с рутрекера. И то, она не поддерживает работу с Postgres. И ещё, можно ли сделать дамп базы в Postgres, загрузить его в средство проектирования и получить визуализированную схему?

Ответы320617

79 4 янв, 13:04 79 1320617

>>1319526
UML

139 Кб, 833x602
80 4 янв, 13:58 80 1320646

Где можно почитать о алгоритмах кластеризации данных?

Как реализованы на вебстраницах ТЕГИ.
Тобишь под статьей облако тегов.
Типа есть таблица статей, таблица тегов, и таблица соединяющая их?
Это самый оптимальный вариант илиесть проще и лучше?

Ответы320747

81 4 янв, 18:16 81 1320747

>>1320646
Оптимальнее по скорости поиска в обе стороны(статья ->теги, тег-> статьи) сложно представить, если честно.

Под кластеризацией ты что понимаешь? Если деление на группы, то тебе в тред про нейроночки и машобчик.

82 8 янв, 17:36 82 1323257

Базач, обоссы, но пожалей. Вкатился в sql-ex с нуля, нихуя не могу. Некоторые задания делаю с лету, некоторые не могу понять даже через объяснения с параллельного сайта, потому что "ну вообще пишут обычно вот так, но это не правильно, а как правильно - хуй соси" - это не объяснение решения.
Какие еще есть пути? Хочу вкатить в бизнес-аналитику, но там без sql никуда. Есть вышка, но какая - даже писать стыдно.

PS Раньше мог писать простенькие новеллы в рен пай на питоне, т.е. код для меня это не непонятные закорючки и точечки.

Ответы323316

83 8 янв, 18:33 83 1323316

>>1323257
Вот пример.
http://www.sql-ex.ru/learn_exercises.php?LN=18 - Задача
https://pastebin.com/AehjHCGw - Мой высер

Правильное решение показывает с одной строкой. Но мой высер, по идее, логичен и показывает все подходящие варианты. Где соснул?

Ответы323699

84 9 янв, 14:08 84 1323699

>>1323316

У тебя в запросе
>from product, printer
просто одна таблица умножается на вторую, их еще заджойнить нужно, плюс у тебя идет проверка на минимальную цену цветного принтера, но а самом селекте выбираются все принтеры, даже не цветные.

Я бы написал, вообще, вот так
>select distinct maker, price
>from (
>Select TOP 1 WITH TIES
> p.maker
>,pr.price
>from Printer pr
>inner join Product p on pr.model = p.model
>where pr.color = 'y' and pr.price is not null
>order by pr.price asc
>) dat

Но, если исправлять твой запрос, то
>select distinct maker, price
>from product, printer
>where price = (select min(price) from printer where color = 'y')
>and printer.color = 'y'
>and product.model = printer.model

47 Кб, 952x365
85 9 янв, 18:28 85 1323890

Сап, анонче. Пытаюсь добавить данные в базу, mysqli_query возвращает false. Типы данных совпадают. Что не так?

Ответы323921

86 9 янв, 18:34 86 1323891

Что почитать, чтобы подготовиться к собеседованиям на java middle? Желательно на русском. Так вроде шарю, и запросы могу писать, и немножко оптимизировать, но хочу систематизировать все.

Ответы323998

87 9 янв, 19:27 87 1323921

>>1323890
Понял, функцию с датой нельзя передавать напрямую в запрос.

Ответы325014

88 9 янв, 22:05 88 1323998

>>1323891
Орм - хз, какие там у джавистов
Индексы, как работают, какие бывают,
Планы запросов, типы джойнов для оптимизатора - хэш, луп, мёрдж
Оконные функции (а к а OVER ())

89 11 янв, 15:41 89 1325014

>>1323921
ты передаешь не функцию, а строку. Внутри строки ты можешь подставить переменную, но и то должны быть двойные кавычки, ну или делай склеивание
'... VALUES ("", "zalupa",' . date('pizda) . ', "sir")';

90 12 янв, 18:05 90 1325588

в мускуле нужно создавать поле с уникальным id, чтобы индексы потом накидывать? А то я чето индексы создаю, но они не заполняются (0 значений пишет), но у меня нет AI колонки

Ответы326341

91 14 янв, 00:00 91 1326341

>>1325588
Есть индексы кластерные и некластерные.
На одну таблицу может быть создан один кластерный индекс и сколько угодно некластерных.
Если кратко, то для того, чтобы некластерные индексы работали, нужно, чтобы на таблице был кластерный индекс (Primary key - это уникальный кластерный индекс, если што), который, как раз, и создается зачастую (необязательно, но желательно) на основе уникального поля, типа id или комбинации полей, по которому/ой можно однозначно идентифицировать строку в таблице.

Ответы377876

17 Кб, 913x139
92 16 янв, 02:16 92 1327595

Что они имеют в виду под мат. предств?

Ответы327643

93 16 янв, 08:52 93 1327643

>>1327595
Материализованные представления, ВНЕЗАПНО.
Загуглил бы, на крайний случай.
Это таблица-вьюха на таблицу, которая обновляется физически вслед за родительской таблицей. Нюансов не то чтобы миллион, но они есть и анон с двача тебе все не расскажет в одном посте, потому если тебе это реально нужно - иди на docs.oracle.com и читай там про materialized views.

Ответы327644

94 16 янв, 08:54 94 1327644

>>1327643
Бтв если ты про матвьюхи не знаешь, то вряд ли у тебя есть опыт разработки pl/sql, так что если надумаешь идти на собес - пройди хоть какой-то курс в инете, что ли.

95 16 янв, 11:32 95 1327714

WHERE .... AND
(
ABS(s0 - 1) +
ABS(s1 - 1) +
ABS(s2 - 1) +
ABS(s3 - 1)
) < 5)

Тут нужно на s0, s1, s2, s3 индексы ставить?

Ответы328507

96 17 янв, 14:00 96 1328507

>>1327714
С таким запросом тебе никакие индексы не помогут, они тупо работать не будут, потому что ты к полю применяешь функцию, а потом уже ещешь по ее результату.

Сначада добавь в таблицу вычислимое поле в виде

>alter table tbl_tvoya_tablica add your_column as ABS(s0 - 1) + ABS(s1 - 1) + ABS(s2 - 1) + ABS(s3 - 1)

А потом уже на него создавай индекс.

>create nonclustered index IX_tbl_tvoya_tablica_1 on tbl_tvoya_tablica (your_column)

Ну и, сосбна, твой запрос
>where your_column < 5

Ответы328807

97 17 янв, 19:44 97 1328807

>>1328507
Да не, вместо 1 разные числа будут. Значит без индекса будет

98 18 янв, 18:03 98 1329480

>>1312894 (OP)
Сап, анон. Хелп.
Короче в моей мухосрани есть вакансия "Младший программист баз данных".
Требований нет, кроме высшего образования и "голод новых знаний". Но в графе преимущества у них указано:
опыт написания запросов SQL или работа с любыми базами данных?
опыт разработки приложений БД и тест кейсы(что это?).
Так вот, вакансия приглянулась, только вот я хочу подтянуть знания SQL с ни@уя.
Вопросы:
Где лучше подготовиться и сколько времени займет? Мне как вы понимаете не нужно знать много, но так как я слышал, что в этой компании на вакансию консультант дают решать IQ тесты, лучше уж подготовиться.
Нужно ли знать вышмат?
Нужно ли знать алгоритмы?
Что запилить, что бы показать, что вот мол могу работать?
Что такое тест кейсы?

Ответы329551

118 Кб, 1366x768
99 18 янв, 18:35 99 1329501

Сап. Принес БД с шараги и такая проблема, что делать?

Ответы329551

100 18 янв, 20:10 100 1329551

>>1329480

В оп посте ж написано - sql ex
>>1329501

Как ты видишь, у тебя нет прав на эту базу данных, нужно эти права добавить.

Security - Logins - на своем логине правой кнопкой мыши - properties - user mapping - выбираешь эту базу, ставишь галочку dbo.

Ответы329561329579329991

101 18 янв, 20:19 101 1329561

>>1329551
не могу найти Security

152 Кб, 1366x768
102 18 янв, 20:39 102 1329579

>>1329551
нашел, но без понятия какой у меня логин

Ответы329685329693

103 18 янв, 22:45 103 1329685

>>1329579
Гугли ms sql get current user
>select current_user

104 18 янв, 22:54 104 1329693

>>1329579
Алеша, вангую, что ты dbo

105 19 янв, 13:16 105 1329991

>>1329551

В оп посте ж написано - sql ex
Да понятно, но пожалуйста ответьте на другие вопросы. Алгоритмы нужны?

106 19 янв, 18:33 106 1330239

Есть обычная таблица с первичным ключом id.
Допустим, я выбрал запись с id = 393.
Как мне получить запись, находящуюся на 3 позиции дальше заданного id?
Нельзя тупо приплюсовать 3 к id, ибо строки из БД могут удаляться и в таблице могут отсутствовать некоторые id.

Ответы330261334719

16 Кб, 356x450
107 19 янв, 18:51 107 1330261

>>1330239
Эффект утки работает. Всегда полезно поговорить с самим собой.
Похоже что решение до гениального просто:
SELEСT * FROM articles WHERE id > 350 LIMIT 20
Я просто ищу id'ы больше заданного, но ограничиваю работу mysql нужным лимитом.

Правда все равно есть проблема.
При больших величинах смещения mysql будет один хуй обходить все тысячи/миллионы записей, чтобы выдать мне последний id.

По идее, насколько я понимаю, невозможно это оптимизировать.
Есть некий select с заданным сложным where. Нет иного способа получить дальние id'ы этого запроса, кроме как пробежав по всей таблице.

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

Однако, даже если в таблице на миллион записей удалено 2 сотни, то погрешность при навигации в 200 записей существенна.

Ответы330276330391

108 19 янв, 19:09 108 1330276

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

109 19 янв, 21:09 109 1330391

>>1330261
Select
a.*
From articles a
Where a.id >= (select id from articles ar where ar.id = 393)
Limit 3

Вот тебе с работающими c индексами запрос.

Ответы330408

110 19 янв, 21:25 110 1330408

>>1330391
Более точно напишу, чтоб вопросов не было:
Select dat.
From (
Select
a.
From articles a
Where a.id >= (select id from articles ar where ar.id = 393)
Order by a.id
Limit 3
) dat
Order by dat.id desc

Ответы330409

111 19 янв, 21:26 111 1330409

>>1330408
Select dat.звездочка
From (
Select
a.звездочка
From articles a
Where a.id >= (select id from articles ar where ar.id = 393)
Order by a.id
Limit 3
) dat
Order by dat.id desc
Limit 1

Ответы330417

112 19 янв, 21:49 112 1330417

>>1330409
Спасибо! По сути, от вышеописанного это отличается лишь тем что благодаря подзапросу не нужно пересылать массив id на клиент.

То есть, так бы я сделал в 2 шага:
1. Выбрать id > 393
2. Взять из них последний и получить.

Ответы330512330513

113 20 янв, 00:08 113 1330512

>>1330417
Нет, по сути я говно рещение предложил, твое стоило использовать, как базовое:
select dat.звезда
from (
select
a.звезда
from articles a
where id> 359
limit 2
) dat
order by dat.id desc
limit 1

Вот так будет правильнее всего.

Ответы330513

114 20 янв, 00:09 114 1330513

>>1330512
В общем, да, вот тут
>>1330417
ты все правильно расписал.

115 20 янв, 10:51 115 1330649

Обеспечивает ли MySQL атомарность выполнения UPDATE в сложном ебанутом запросе?

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

При сложном запросе с подзапросами и прочей хуйней происходит так же?

116 20 янв, 11:04 116 1330658

Да

Ответы330660

117 20 янв, 11:09 117 1330660

>>1330658
Ок

Запрашивает Java Junior 118 21 янв, 15:13 118 1331744

Вкатываюсь в sql-ex.
Посоветуйте годноту обновить студенческие знания про нормализацию и прочие ЕР-диаграммы.
Насколько эти знания актуальны в реальных крудах?
Про асид и особенно транзакции что можно почитать?
Что про хранимые процедуры?
Насколько глубоко это всё джуниору нужно знать?
Сейчас юзаю майэскюэль, потом думаю постресс глянуть

Ответы332207

119 22 янв, 00:37 119 1332207

>>1331744
>Запрашивает
Запросил тебе за щеку.

120 24 янв, 16:35 120 1334066

Посоветуйте клиент для mysql
Сейчас пользуюсь dbForge studio express version

Ответы334151

121 24 янв, 18:10 121 1334151

>>1334066
Юзаю heidisql
бесплатный, удобный интерфейс. Мне нравится.

122 25 янв, 19:06 122 1334719

>>1330239
С этим великолепно справится аналитическая функция LEAD, если речь идёт о нормальной СУБД (в оракле справится точно, в MS SQL с большой вероятностью).
Да и любая аналитическая функция, можно отранжировать по ид и взять третий...

123 25 янв, 19:09 123 1334720

Тут случайно никто не хочет в банк под мое чуткое руководство? В приоритете оракл, можно мс, особенно если олапы знаете. Я заебался мусор собеседовать

Ответы335616335833

124 26 янв, 11:54 124 1335054

21 Кб, 715x269137 Кб, 1437x706

Пацаны, а REQUIRED это значит "Не пустой" ?
Да, знаю, что русек в ide это плохо, но я перейду на англ версию когда освоюсь тут.
И у меня название таблицы position какого-то хера в кавычках.

Ответы335130

125 26 янв, 13:10 125 1335130

137 Кб, 1440x868141 Кб, 1440x86868 Кб, 1440x86813 Кб, 557x152

>>1335054
Всё, не надо. Разобрался.

Вот с этим помохити
Из экселя не могу импортировать.

И да, я знаю, что full name надо разделить на first и second, но я пока не знаю как

Ответы336107

37 Кб, 450x526
126 26 янв, 13:16 126 1335140

127 27 янв, 00:46 127 1335616

>>1334720
Какой банк, какой город, опиши, что нужно делать, сколько бабла предлагаете?

Ответы335933

128 27 янв, 13:58 128 1335833

>>1334720
>Я заебался мусор собеседовать
А стажёра на 4 курсе с опытом поддержки систем на пл/скл возьмёшь?

Ответы335933

129 27 янв, 15:28 129 1335933

>>1335616
Банк топ10, Москва, название на дваче палить негоже, все хорошо с соцпакетом и стабильностью.
Делаем отчетность, селекты и процедуры на оракле (реже вертика), визуализация в ssrs (реже tableau), это научим, там все изи. От вас исключительно знания БД и сообразительность.
ЗП +- рыночная, не обидим.

>>1335833

Возьму с радостью, если умный!

Ответы335944336055349836

130 27 янв, 15:30 130 1335939

вы деваху то форшмачили хоть раз

131 27 янв, 15:32 131 1335944

>>1335933
sql2chhunte;1;rANUSgmais_ylPUNCTUMcA59om
Кидайте резюмехи, можете пока лицо и ФИО замазать, интересуют только скиллы и опыт. Если понравитесь, кину ссылку на hh куда откликаться.

Ответы335963

132 27 янв, 15:46 132 1335963

>>1335944
Работа в самом банке или через посредников?
Дипсофт?
Почему сразу не скинешь ссылку на hh?

Ответы335976

133 27 янв, 15:55 133 1335976

>>1335963
Не, не аутсорс, сам банк.
Стесняюсь

134 27 янв, 16:50 134 1336055

>>1335933
А какое-нибудь тестовое задание есть, чтобы я мог понять мусор я или нет?

Ответы336107

135 27 янв, 17:33 135 1336107

>>1336055
Вот задание: как импортировать без ошибки >>1335130

Ответы336127

136 27 янв, 17:55 136 1336127

>>1336107
Скорее всего у тебя в staff есть записи, которых нет в таблице position.

Ответы336177336186

137 27 янв, 18:43 137 1336177

86 Кб, 1157x66073 Кб, 1163x669

>>1336127
Естественно, это же разные таблицы, там не должно быть всё одинаково. Он только на этот foreign key ругается, но без него нельзя.

Ответы336186336215

138 27 янв, 18:46 138 1336186

>>1336127
>>1336177
А, блин, подожди. Записей вообще нет ни в одной таблице. Я их еще не заполнял

139 27 янв, 19:05 139 1336215

>>1336177
>foreign key ругается
Тебе нужно заполнить сначала главную таблицу, затем заполнить с форейгн кей.

140 29 янв, 00:15 140 1337090

Есть 2 вопроса крч.

Скочал я СКУЛайт. Занес его в РАТН. Теперь из CMD могу работать с sqlite3 из любой директории. Но если я пытаюсь вызвать скулайт из терминала ВСкод, то не работает. ЧЯДНТ?

И вопрос 2: создал я db.sql с кодом

Ответы337091

141 29 янв, 00:16 141 1337091

>>1337090
... с кодом:
CREATE TABLE cities (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255) NOT NULL UNIQUE,
active BOOLEAN NOT NULL DEFAULT TRUE
);

Но когда я пишу .read db.sql, то консоль пишет
Error: near line 1: file is not a database
ЧЯДНТ?

Ответы337097

142 29 янв, 00:19 142 1337097

>>1337091
А, ну и еще ВСкод ругается на
Incorrect syntax near ','. Expecting ID, QUOTED_ID, STRING, or TEXT_LEX.
и
Incorrect syntax near '255'. Expecting '(', or SELECT.

Ответы337144

143 29 янв, 01:59 143 1337144

>>1337097
Бля, хуй к твоему вопросу подступишься, везде, сука ошибки, то ты неправильно вызываешь, то у тебя скл неверный, пиздос, еще и в трех постах, и ни хуя непонятно, где именно ругается, на той же команде?

Сделай все в одном посте и приложи скрины, пожалуйста. Ты сам почитай, что ты несешь, такое ощущение, что у тебя 30 секунд было времени, чтобы все написать, а потом у тебя кудахтер отобрали.

28 Кб, 361x464
144 31 янв, 12:45 144 1338540

>>1312894 (OP)
Анон, подскажи каким образом индекс по pk делает выборку по pk быстрее? У нас ведь остаётся ровно столько же записей в таблице индекса, соответственно и скорость обхода этих записей должна быть примерно одинаковой с основной таблицей.

Ответы343817

145 31 янв, 13:59 145 1338579

аноны есть пример триггера с TG_NAME ? хочу создать такой триггер в котором при добавлении строки проверялось конкретное значение status и если есть совпадение то при выполнении триггера срабатывала notify/listen

146 4 фев, 09:22 146 1341410

Как на собеседовании отвечать на вопрос
-SQL запрос медленно выполняется, как его ускорить.
Отвечаю про план исполнения и индексы, но ИРЛ особо этим не занимался, что-то еще можно к ответу добавить?

Ответы341631341661

147 4 фев, 15:47 147 1341631

>>1341410
Хинты, партиции?

148 4 фев, 16:40 148 1341661

>>1341410
>План запроса

А что делать-то, когда ты план прочитал?

1. Индексы
2. Статистика
3. Локи
4. Диски
5. Подзапросы, мб можно на вермянки переделать
6. Кэш запроса (where user_id = @user_id or @user_id is null) - всегда будет сканировать таблицу полностью, узнай, что с этим делать
7. Определение признаков, по которым идет поиск, не в самом запросе, а на этапе загрузки данных (например, where user_name like '%admin%' - проще пометить пользователя признаком user_type_id = 1, а потом искать по нему)

Короче, полно есть способов оптимизировать,

149 7 фев, 17:57 149 1343482

Как называются эти штуки, их еще указывают перед названием таблицы. Они еще объединяют таблицы. Например: huinyaname.tablename.fieldname
Как называются huinyaname?

Ответы343505

150 7 фев, 18:45 150 1343505

>>1343482
Схема

151 7 фев, 21:02 151 1343593

>>1312894 (OP)
А где гайд как в катиться-то? Книги, сайта, порядок изучения технологий и т.д.?

152 8 фев, 07:19 152 1343771

Досталась база данных pl-sql

В которой очень много очень запутанных ролей и ограничений.
Многие ограничения прописаны в триггерах, мол, при апдейте govno_table.column_1 сверяет имя юзера с прописанным списком (user1, user2 ...) и либо дает право либо не дает апдейтить.

Так вот. Есть ли какой-то универсальный способ как узнать, что может конкретный юзер делать с конкретными табличками и столбиками?

Ответы343853

153 8 фев, 10:48 153 1343817

>>1338540
В SQL Server выборка быстрее по некластеризованному уникальному ключу, чем по primary, если не изменяет память. Как - хз

154 8 фев, 11:59 154 1343841

Так как учить sql братья? Только sql-ex?

Ответы344017

155 8 фев, 12:17 155 1343853

>>1343771
ееееебать.
В таком случае - никак.

156 8 фев, 15:02 156 1343976

Существуют ли в Oracle кластерные и некластерные индексы?

Ответы344047

157 8 фев, 15:52 157 1344017

>>1343841
Съебись с треда, чмо.

158 8 фев, 15:55 158 1344021

Подскажите литературы для нуба в mysql (кроме документации). Желательно на русском.

159 8 фев, 16:32 159 1344047

>>1343976
Кластеризованный индекс в Оракле называется index organized table. Некластеризованные, естественно, есть - это любой индекс по обычной таблице, или вторичный индекс по index organized table.

Ответы344054

160 8 фев, 16:46 160 1344054

>>1344047
Спасибо, няшь, я разобрался.
А где какие нужно юзать кластерные в ОЛТП и некластерные в ОЛАП или наоборот?

Ответы344071344080

161 8 фев, 17:01 161 1344071

>>1344054
Ну грубо говоря да. Если ты хочешь в скорость и выборка в основном идёт по примари кею, то кластеризованный индекс - твой лучший друг.

Ответы344080344099

162 8 фев, 17:10 162 1344080

>>1344054
Он >>1344071 тащемта прав, но немного тебя сейчас запутает.
В OLTP-системе нежелательно загружать таблицу чем-то сверх минимально необходимого, т.к. это будет замедлять каждую транзакцию.
А в OLAP-системе можнов принципе все, что может ускорить частые запросы к таблице. То есть нужно учесть, как именно пользователь обращается к базе, а не просто вешать индекс по уникальному полю.

Ответы344097

163 8 фев, 17:33 163 1344097

>>1344080
>нежелательно загружать таблицу чем-то сверх минимально необходимого
В смысле не загружать индексами совсем?
Я не могу сделать некластерный индекс не по ключу или кластерный индекс "загружает" таблицу меньше чем кластерный?

Ответы344369

164 8 фев, 17:33 164 1344099

>>1344071
>то кластеризованный индекс - твой лучший друг
А почему?

Ответы344369

165 9 фев, 05:16 165 1344369

>>1344097
Нет, тут суть в другом.
В оракле индекс-организованная таблица - это таблица, строки которой лежат в листовых блоках индекса. Т.е. сначала строится индекс, а вокруг него - таблица. Смысл в том, что поиск будет производиться по индексу, а вся строка - вот она, доступ быстрый. Поэтому и >>1344099. Но это дело работает хорошо в случае поиска.

В случае обычного индекса в листовых блоках лежат rowid искомых строк, на доступ к ним потребуется время. Здесь важен фактор кластеризации - это такая штука, которая говорит, разрознены ли блоки таблицы относительно индекса в ТБС. Если да - то при чтении соседних блоков индекса придется читать разные хер знает где лежащие блоки таблицы.

Кластер(речь не о нем, но расскажу тоже) - это две таблицы вокруг одного индекса. Ну, то есть у них два поля общих и на них висит индекс, а остальные - как хочешь. Можешь обращаться хоть к одной, хоть к обеим, но все равно строки обеих таблиц лежат в одном блоке. Чем-то похоже на join с using, грубо говоря.

Почему это загружает OLTP-систему. Каждый DML над индексированным столбцом будет вызывать перестройку индекса (кроме удаления - там просто освобождение блока для последующего вероятного использования до move/shrink). То есть как вставка в середину массива - нужно будет "раздвинуть" все блоки для вставки нового.
И если IOT-таблица обновит тебе сразу и индекс, и таблицу одновременно, то при обычном индексе будет отдельно обновляться блок таблицы и отдельно индекса.
И на это тоже нужно время. Как и на срабатывание + выполнение триггера.

В OLAP-системе в этом плане проще, там нужна скорость поиска, а не скорость транзакций, там можно вешать индексы так, как хочется/нужно.
У нас в транзакционной системе индексов мало, как и триггеров, а в аналитической - в интерфейсной области их вообще нет, чтобы не замедлять выгрузку данных из систем источников.

>Я не могу сделать некластерный индекс не по ключу или кластерный индекс "загружает" таблицу меньше чем кластерный?
Индекс можешь вешать на что хочешь, а вот будет ли он использоваться - это другой вопрос, зависит от обращений к таблице. Грузит он DML в эту таблицу.
Но просто так в оракле ты не повесишь кластерный индекс - вон, анон выше упомянул, что это при создании таблицы указывается. А грузить DML это тоже будет, так как это тоже индекс - перестраиваться он будет при каждом DML.
здесь под DML - insert/delete/update индексированного поля.

165 9 фев, 05:16 165 1344369

>>1344097
Нет, тут суть в другом.
В оракле индекс-организованная таблица - это таблица, строки которой лежат в листовых блоках индекса. Т.е. сначала строится индекс, а вокруг него - таблица. Смысл в том, что поиск будет производиться по индексу, а вся строка - вот она, доступ быстрый. Поэтому и >>1344099. Но это дело работает хорошо в случае поиска.

В случае обычного индекса в листовых блоках лежат rowid искомых строк, на доступ к ним потребуется время. Здесь важен фактор кластеризации - это такая штука, которая говорит, разрознены ли блоки таблицы относительно индекса в ТБС. Если да - то при чтении соседних блоков индекса придется читать разные хер знает где лежащие блоки таблицы.

Кластер(речь не о нем, но расскажу тоже) - это две таблицы вокруг одного индекса. Ну, то есть у них два поля общих и на них висит индекс, а остальные - как хочешь. Можешь обращаться хоть к одной, хоть к обеим, но все равно строки обеих таблиц лежат в одном блоке. Чем-то похоже на join с using, грубо говоря.

Почему это загружает OLTP-систему. Каждый DML над индексированным столбцом будет вызывать перестройку индекса (кроме удаления - там просто освобождение блока для последующего вероятного использования до move/shrink). То есть как вставка в середину массива - нужно будет "раздвинуть" все блоки для вставки нового.
И если IOT-таблица обновит тебе сразу и индекс, и таблицу одновременно, то при обычном индексе будет отдельно обновляться блок таблицы и отдельно индекса.
И на это тоже нужно время. Как и на срабатывание + выполнение триггера.

В OLAP-системе в этом плане проще, там нужна скорость поиска, а не скорость транзакций, там можно вешать индексы так, как хочется/нужно.
У нас в транзакционной системе индексов мало, как и триггеров, а в аналитической - в интерфейсной области их вообще нет, чтобы не замедлять выгрузку данных из систем источников.

>Я не могу сделать некластерный индекс не по ключу или кластерный индекс "загружает" таблицу меньше чем кластерный?
Индекс можешь вешать на что хочешь, а вот будет ли он использоваться - это другой вопрос, зависит от обращений к таблице. Грузит он DML в эту таблицу.
Но просто так в оракле ты не повесишь кластерный индекс - вон, анон выше упомянул, что это при создании таблицы указывается. А грузить DML это тоже будет, так как это тоже индекс - перестраиваться он будет при каждом DML.
здесь под DML - insert/delete/update индексированного поля.

Показать весь текст

166 10 фев, 21:14 166 1345328

Мимо бэкэнд на скриптовой параше качает навык в сыром эскуеле. Второй день решаю задачки на одном известном сайте.

Решение крайней задачки на текущей момент получилось таким:

```
WITH query as
(
SELECT TOP 0 1 as code,1 as point,1 as date,1 as inc,1 as out
UNION
SELECT code, point, date, inc, NULL AS outcome
FROM income
UNION
SELECT code, point, date, NULL as inc, out
FROM outcome
)

SELECT point, date, SUM(out), SUM(inc)
FROM query
GROUP BY point, date
```

Чем больше узнаю, тем больше чувствую себя больным ублюдком. Пожалейте меня. Впереди ещё столько задачек!

Ответы345437

167 11 фев, 02:58 167 1345437

>>1345328
Да ладно,молодец.
А то понаизучают всяких орм, а что там под капотом, не знают.

168 16 фев, 21:34 168 1349052

Есть три столбца: дата, id, число, означающее цену. Нужно вывести для каждого id сумму этих цен за последние 20 дат с помощью аналитических функций. Не подскажите, как это делать? Не получается нагуглить

Ответы349310349407

169 17 фев, 11:27 169 1349310

>>1349052
Может типо того
SUM(цена) GROUP BY id
Мимо вкатальщик

170 17 фев, 12:36 170 1349407

>>1349052
Sum(number) over(partition by id order by dt rows between 19 preceding and current row)

Мог бы и погуглить аналитические функции и узнать про окна, а не говорить, что не получается.

171 17 фев, 14:54 171 1349580

MS SQL
триггер, который при обновлении строк записывает текущую дату в соответствующую колонку. ЧЯДНТ? эта штука зачем-то у ВСЕХ строк изменяет дату обновления, а не у строк, которые обновили

CREATE TRIGGER my_trigger
__ON table_name
__AFTER UPDATE
AS
BEGIN
____DECLARE @str varchar(8)
____SET @str = CONVERT(varchar(12), GETDATE(), 100))
____UPDATE table_name
____SET BKTXT = (@str)
____FROM inserted
END
GO

Ответы351217

172 17 фев, 19:07 172 1349836

>>1335933
это открытие

sage 173 18 фев, 11:11 173 1350295

Смысл треда, если в оп посте 0 инфы с чего начать изучение, а вопросы соответствующие в треде просто игнорируются?

Ответы350359

174 18 фев, 13:01 174 1350359

>>1350295
>оп посте 0 инфы с чего начать изучение
БД просто так не учат!
Если пора подключать бд, то уже значит вкатальщик шарит чутка, если шарит то загуглит что и как учить.

Ответы350386

175 18 фев, 13:40 175 1350386

>>1350359
А если я хочу стать DBD, мне же не обязательно знать более высокоуровненвые ЯП, мне можно просто учить сиквел, а я не знаю как.

Ответы350581350633

176 18 фев, 19:37 176 1350581

>>1350386
>я хочу стать DBD
Ты вакансии глянь сперва, есть ли они и что там нужно знать.

Ответы350625

177 18 фев, 21:06 177 1350625

>>1350581
Глянул, что ты мне сделаешь?

178 18 фев, 21:26 178 1350633

>>1350386
Поставь себе какой-нибудь pgadmin или mysql workbench, читани книжку Бена Форта "Освой sql самостоятельно за 10 минут" она для начинающих реально очень хороша и вперед хуярить запросы прямо из этих приложений без всяких ЯП.

Ответы350968

179 19 фев, 13:43 179 1350871

Автоматизация гиперссылок в excel

какой вписать макрос, чтобы excel автоматически давал гиперссылку на файл pdf, находящийся в той же папке, что и файл xls, если название файла pdf указано в ячейке

название файла в ячейке прописано не текстом, а через команду "сцепить"

Ответы350995

180 19 фев, 19:01 180 1350968

>>1350633
А дальше куда? В шапку написать не?

Ответы351013

181 19 фев, 19:46 181 1350995

>>1350871
объекты FSO подключи а дальше сам догадаешься

182 19 фев, 19:59 182 1351013

>>1350968
Я же не ОП, чтобы шапку пилить.
Дальше наделай себе разных жирных таблиц с кучей внешних ключей и упражняйся в написании эффективных запросов. А вообще тебе наверное надо на sql-ex.ru

Ответы351031

183 19 фев, 20:41 183 1351031

>>1351013
>Я же не ОП
Ну хули тебе надо?

Ответы351201

sage 184 20 фев, 08:57 184 1351201

>>1351031
Мира во всем мире

185 20 фев, 09:48 185 1351208

Хочу вкатиться в IT, думаю начать с тестирования, подскажите годные сайты где можно научиться всей подноготной тестировщика.

Ответы351213

186 20 фев, 09:54 186 1351213

>>1351208
Сори, я заметил что проебланил с тредом, я совсем ньюфажка.

187 20 фев, 09:59 187 1351217

>>1349580
Блядь, да простая же хуета, почему она не работает, помогите

Ответы351220352012

188 20 фев, 10:12 188 1351220

>>1351217
Не знаю, как это точно называется в транзакте, но гугли что-то вроде new и old в триггерах.
Ты не понял сути. Триггер for each row умеет работать конкретно со вставляемой строкой, а не с таблицей, тебе это и надо.

189 21 фев, 16:43 189 1352012

>>1351217
Да потому что ты запрос пишешь криво.

Update t
set ...
from table_name t
inner join Inserted i on t.id = i.id

У тебя же просто апдейт всей талицу происходит.

190 22 фев, 17:14 190 1352635

Всем привет. Извиняюсь за тупой вопрос, как можно выгрузить готовую таблицу в виде запроса insert? Нужно скопировать некоторую часть таблицы, но не всю. Очищать таблицу и импортировать не вариант - рвутся связи.

191 25 фев, 00:57 191 1354539

Начал читать Introduction to database systems. Вроде C J Date - лучший по базам. Хочу стать самым умным на районе по базам.

мидл питонист

192 26 фев, 01:07 192 1355366

помогите построить запрос для того чтобы в с# вывести данные в Excel при этом выбирать в comboBox какие именно данные выводить.
Например есть фио, отметка о посещении, дата посещения и группа, нужен запрос для того чтобы вывести конкретную группу и всех её воспитанников ебусь с этим 3 дня

193 28 фев, 13:51 193 1356636

Привет, вот я знаю sqlite. Могу скрафтить бд файлик, как потом его использовать для сайта например, куда пихать?

Ответы356648

sage 194 28 фев, 14:18 194 1356648

>>1356636
>куда пихать
И какого ответа ты здесь ожидаешь?

Ответы356683

195 28 фев, 16:29 195 1356683

>>1356648
Всм как соединяют сайт и базу данных?

Ответы357652

196 1 мар, 00:28 196 1356996

можно ли как-то сделать базу данных sql в облаке, чтоб ее могли дополнять различные пользователи через запросы к ней?

Ответы357648

197 2 мар, 11:55 197 1357648

>>1356996
Конечно, можно.
Есть такие сервисы, как азур, но там ты будешь платить за мощности.

Можешь просто арендовать сервер, на который поставишь субд, например, на ru-vds(там дешево)
Наконец, есть и бесплатные веб-хостинги, на которых можно размещать небольшие базы, в основном, my sql, конечно, однако: открыл вот для себя gearhost, на нем можно и sql server иметь.

198 2 мар, 11:59 198 1357652

>>1356683
Использовать для сайта точно так же, как и для приложения.
Пихать можно себе в анус куда угодно, если ты хочешь использовать ее для сайта, просто пишешь у себя строку подключения, в которой указываешь расположение склайт базы, например,
>SqliteConnection con = new SqliteConnection("Data Source=c:\mydb.db;Version=3;");

199 2 мар, 21:40 199 1357941

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

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

Ответы358095

286 Кб, 1920x1080
200 3 мар, 05:33 200 1358086

В чем прикол?-_-

Ответы358093

201 3 мар, 07:18 201 1358093

>>1358086
Обычно, user - это функция, возвращающая имя текущей схемы.
Попробуй "user"(именно в кавычках). В оракле точно прокатит, у тебя не знаю.

Ответы358094

81 Кб, 630x800
202 3 мар, 07:22 202 1358094

>>1358093
Сработало, спасибо большое.
Не знаю, сколько бы я с этим сам разбирался

203 3 мар, 07:27 203 1358095

>>1357941
https://habr.com/ru/post/348220/

204 5 мар, 08:01 204 1359383

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

205 5 мар, 11:27 205 1359461

>>1315823
разве в этом случае не работает спрос\предложение?

206 6 мар, 15:27 206 1360153

>>1315384
>Тебе необходимо асинхронно выполнять запросы
Какой в этом смысл, если сама бд синхронна?

207 6 мар, 15:41 207 1360159

>>1318718
>Это в один запрос все то можно уместить?
Можно. Например у mysql есть команда EXECUTE

208 9 мар, 09:37 208 1361311

Ньюфаг итт.
Укажите направление, что мне читать и изучать для моей нужды?
А именно. Надо создать базу данных на компе и туда транслировать информацию через вебсокет с сайта.
В этом вашем программировании не разбираюсь, но буду читать все что вы мне скажете.

Ответы361315

209 9 мар, 09:45 209 1361315

>>1361311
Начни с sicp.

Ответы361324

210 9 мар, 10:54 210 1361324

>>1361315
Изучение мертвого языка.

Ответы361358

211 9 мар, 12:20 211 1361358

>>1361324
>думать, что sicp - это язык

212 10 мар, 20:44 212 1362165

Надо хорошо математику знать для этого?

Ответы362852

213 11 мар, 21:27 213 1362634

Пагни, подскажите. Постоянно зовут то тут то там работать на Siebel CRM.
1) Что это за хренота?
2) Какие у нее перспективы?
3) Стоит ли оно того?

Я вроде как на распутье, но совершенно не уверен, стоит ли даже думать об этом направлении и уж тем более выбирать его

Ответы362797

214 12 мар, 00:47 214 1362797

>>1362634
>1) Что это за хренота?

Это CRM. Customer Resource Management

>2) Какие у нее перспективы?
Против Salesforce иои SAP - никаких

>3) Стоит ли оно того?
Не стоит. Быстро сдегродируешь с прогера до внедренца-консультанта

Ответы412676

215 12 мар, 08:02 215 1362851

Зашел в тред за шапкой, книгами там, сайтами с задачами, концентрированной годнотой, вот это всё, чтоб обмазаться SQL забавы ради. А в треде-то - НИХУЯ.

Реквестирую. Или сам пойду составлять из того, что знаю, и искать что-то новое.

Ответы362853

216 12 мар, 08:06 216 1362852

>>1362165
Реляционная алгебра и реляционное исчисление будут хорошим подспорьем.

217 12 мар, 08:13 217 1362853

>>1362851
SQL это как бэ уже для продвинутых чуваков, кто круды писать начинает, обычно к этому времени люди умеют гуглить и самостоятельно искать инфу.
За все время что я тут сижу упоминали 2 книжки и онлайн ресурсы про которые я уже знал.

Ответы362859

218 12 мар, 08:33 218 1362859

>>1362853
>обычно к этому времени люди умеют гуглить
Гуглить не проблема, проблема в том, что не хочется тратить время на заведомо плохие варианты.

Хочется
>концентрированной годноты
а не наворачивать условный %сайт-книга-нейм% и спустя неокторое время найти %другой_сайт_книга_нейм% с более полной и полезной инфой.

Например, https://www.tutorialspoint.com/sqlite неоче в сравнении с http://www.sqlitetutorial.net .

Или же вот код для создания бд для примеров из книги [Clare_Churcher]_Beginning_SQL_Queries содержит ошибки в синтаксисе и местами кривые данные (лишние пробелы), а пулреквесты с багфиксами висят второй год. Что намекает на то, как автор относится к своей работе. И так далее, и так далее.

Ответы362869

219 12 мар, 09:05 219 1362869

>>1362859
>что не хочется тратить время на заведомо плохие варианты
Там же повторение мать ученья! Ну про бежал ты по плохому как ты думаешь варианту, а после опять с нуля по другому. Так и закрепишь свои знания.
А потом уже можно вдумчиво читать книгу на 1000 страниц.
Я прочекал https://www.w3schools.com/sql/default.asp
Дальше буду https://sqlzoo.net/
Притом я круды пишу уже во всю с джоинами и до книг ещё не дошёл

Ответы362874

220 12 мар, 09:33 220 1362874

>>1362869
>Там же повторение мать ученья! Ну про бежал ты по плохому как ты думаешь варианту, а после опять с нуля по другому. Так и закрепишь свои знания.

Я бы поспорил, но у меня нет аргументов мне лень.

>https://sqlzoo.net/

Годнота, особенно self join с автобусными маршрутами. Хотя quizzes местами показались мне невероятно тупыми и бессмысленными.

221 12 мар, 11:52 221 1362908

Внезапный вопрос - как в SQLite посмотреть подробности об автоиндексах? Хочу 100% знать, на какие поля создаются автоиндексы. Информация об юзер-индексах элементарно достается из sqlite_master, но с автоиндексами так не получается.

Ответы362928

222 12 мар, 12:49 222 1362928

>>1362908

pragma index_list(table_name);
pragma index_info(index_name);

https://sqlite.org/pragma.html

17 Кб, 300x218
223 13 мар, 15:28 223 1363459

>>1312894 (OP)
Есть две таблицы
tabl1: id и названия организаций, всего 100 организаций

tabl2: непосредственно данные по организациям
типа id;year;sales;manager. Тут на одну организацию по несколько строк, например, в году 2016,2017,2018.

Данные есть не по всем организациям, поэтому число уникальных id в tabl2 меньше числа id, например, всего 50.

Хочу сделать sum(tabl2.sales) и JOIN с tabl1, чтобы было видно, по каким организациям есть данные по сумме, а по каким нет. Т.е. будут делать OUTER.

SELECT tabl1.id, tabl1.id, SUM(tabl2.sales) as 'sales'
FROM tabl1
LEFT OUTER JOIN tabl2
ON tabl1.id=tabl2.id
GROUP BY tabl2.id

Но мне выдаётся не 100 строк, а 51:
50 строк заполненных и за оставшихся организаций,по которым нет данных в tabl2, т.е. их id нет в tabl2.id, выдаётся только одна (соответственно, с пустым полем 'sales')

Это из-за того, что в скрипте GROUP BY (tabl2.id) и ему нечего группировать по тем id, которых нет в tabl2 ?

Если так, что можно ли вообще сделать такое - совмещать первую и вторую таблицу так, чтобы в первой была группировка по id, а из второй включались все id, даже если каких-то из них нет в первой ?

Ответы363466363614363615

224 13 мар, 15:35 224 1363466

>>1363459
>из-за того, что
да

>из второй включались все id, даже если каких-то из них нет в первой
FULL JOIN?

Ответы363493

225 13 мар, 16:07 225 1363493

>>1363466
Спасибо за быстрый ответ!
Я в MySQL сижу, там FULL JOIN не работает.
http://www.sql-tutorial.ru/ru/book_full_join_and_mysql.html

Ошибки на слово FULL не выдаёт, но начинает писать, что нет такого-то столбца из первой таблицы
Unknown column 'tabl1.id' in 'field list' */

Хотело бы как-то попроще сделать, а не писать программу, копировать базу в какой-нибудь SQLite (и то я не уверен, что там это поддерживается)

Ответы363505

226 13 мар, 16:28 226 1363505

>>1363493
у тебя как в Т1, так и в Т2 могут быть уникальные идектификаторы?
если нет, то сджойни Т2 на Т1, наоборот т.е. и группируй как тебе надо

Ответы363525

227 13 мар, 16:57 227 1363525

>>1363505
Т1- общий список компаний.
T2 - данные по компаниям, на каждой строке по такому-то году. По каким-то годам есть, по каким-то нет. Каких-то компаний из T1 в T2 вообще нет. Т.е. id в T2 неуникальны (а уникальных меньше, чем в T1), поэтому там нужна сумма T2.sales с группировкой по id.

> сджойни Т2 на Т1, наоборот т.е. и группируй как тебе надо
Не работает, пробовал LEFT OUTER JOIN T1 на T2 и
RIGHT OUTER JOIN T2 на T1. То есть работает, но не выдаёт T1.id полностью, как мне нужно

Ответы363531

228 13 мар, 17:12 228 1363531

>>1363525
Работает только
SELECT DISTINCT(table1.id) ....
...OUTER JOIN
вот тогда на самом деле в столбце id выдаются все 100 id из table1, с NULL там, где по таким id нет записей в table2.

По идее, нужно GROUP BY применять к результирующей таблице, но скрипт как-то по другому работает

Ответы363534

229 13 мар, 17:21 229 1363534

>>1363531
PS в таком случае с DISTINCT нельзя применять SUM,

230 13 мар, 19:53 230 1363614

>>1363459
Делаешь фулл джоин через юнион двух соединений и сверху пишешь селект с group by nvl(id_t1, id_t2).

Только что за такой справочник компаний, в котором не все компании присутствуют?

Ответы363615363637

231 13 мар, 19:58 231 1363615

>>1363459
>>1363614
А почему ты вообще группируешь по tab2.id?

232 13 мар, 21:09 232 1363637

>>1363614
В справочнике tabl1 все присутстсуют (есть все id, например, их 100 штук)

В таблице данных tabl2 не все компании присутствуют вообще (например, уникальных id всего 50), не все компании могут присутствовать по какому-то конкретному году. Например, по 2017 их всего 30.

Ответы363662

233 13 мар, 21:37 233 1363662

>>1363637
Запутал ты нас.
То, что в t2 - это называется неуникальное поле и все.

Делай тогда то, что я следующим сообщением написал - группируй по полю tab1.id и решится твоя проблема.

Ответы364738

234 14 мар, 14:20 234 1364132

>>1312894 (OP)
Подскажите какую-нибудь относительно удобную библиотеку для работы с MS SQL Server из C++/GCC под никсами?

235 15 мар, 00:00 235 1364521

Спросил в руби-треде, но тут возможно больше экспертизы в вопросе.

Короче, подскажите, как принято моделировать заказы в интернет-магазинах? Я запутался в сущностях.
1. Cart (aka Basket) vs Order. Это отдельные сущности или одно и то же. Потому что корзина по сути это те же самые заказы. И смотрел библиотеку одну, там тоже корзина это просто заказ в статусе "cart". Хотя с другой стороны это вроде не одно и то же, и корзины могут быть брошены и анонимные, негоже им быть вместе с заказами.
2. Invoice. Не могу понять ни бухгалтерский ни технический смысл этой сущности. Это факт оплаты?
3. Payment, Checkout. Кажется это то же самое что Invoice?

В библиотеке (движок для ИМ на рельсах) я нашел только две сущности - Order (корзина + заказы) и Payment. Но поскольку у меня не было опыта работы с этой предметной областью, боюсь либо недомоделировать либо нагородить лишнего.

Ответы364580364782365055

236 15 мар, 06:15 236 1364580

>>1364521
Я бы сделал Order как уже готовый к исполнению заказ. Т.е. выбор сделан, оплата произведена, товар идет дальше по этапу отправки-доставки.

А Cart/Basket это набор потенциальных Order, которые еще не приняты к исполнению.

Invocie - https://ru.wikipedia.org/wiki/Инвойс

Ответы365023

237 15 мар, 15:34 237 1364738

>>1363662
Братюни, спасибо, буду смотреть

238 15 мар, 17:02 238 1364782

>>1364521
настроим синхронизацию вашей хуйни с 1с всего за 9.99 + абонентская за итс

239 15 мар, 23:23 239 1365023

>>1364580
>А Cart/Basket это набор потенциальных Order, которые еще не приняты к исполнению.
Я не понял что ты предлагаешь, отедельную сущность или одну и ту же? Если отдельную, то объясни свой выбор.

>https://ru.wikipedia.
И что это объясняет, в чем физический смысл этого понятия?

Ответы365841

240 16 мар, 00:26 240 1365055

>>1364521
cart - то что покупашка еще собирается купить, order - то что покупашка уже оформляет.
invoice - я так понимаю платежный документ или выставленный счет к оплате.
payment - сам платеж, факт оплаты, checkout - заказ, который ожидает оплаты

Ответы365102

241 16 мар, 00:49 241 1365066

Доброй ночи, анон.
Прошу помочь определить оптимальный способ решения задачи. (oracle db)
Есть таблица t с атрибутами n1..n10 и внешним ключом k, k - не уникальный.
Есть процедура, которая сначала удаляет из t все записи с определенным k, а затем итерационно обрабатывает некие данные и результат записывает в t с тем же значением k.
После наполнения таблицы t необходимо по созданным записям построить отчет.
Вот тут возникает вопрос, как лучше поступить: держать созданные записи в памяти (pl/sql таблица) или же выполнить select из t по ключу k. Commit в процедуре выполняется после построения отчета.
При этом существует вероятность, что процедура может быть запущена одновременно под другой сессией со всеми вытекающими (фантомное чтение и пропажа апдейта).

Ответы365071365143

242 16 мар, 01:01 242 1365071

>>1365066
поправлюсь, пропажи апдейта там быть не может

243 16 мар, 01:52 243 1365102

>>1365055
Да вы издеваетесь надо мной, посоны? Что ты мне объясняешь, как менеджер блондинке. Я же пришел спросить как сущности проектировать, а не что эта иконка обозначет.

Ответы365732

244 16 мар, 02:21 244 1365143

>>1365066
А что вообще за такой страшный процесс?
В таблице лежат строки с ссылками на другую таблицу, но конкретно какие-то обновить нельзя, потому нужно прям все удалить, а потом вставить заново - т.е. это уже другой набор данных совсем?
Нельзя обойтись меньшей кровью и просто обновить существующие записи?

Ответы365729

245 16 мар, 23:32 245 1365729

>>1365143
По сути таблица t - состояние неких объектовв, каждая строка таблицы - это какое-то свойство конкретного объекта. Свойства одного объекта объединены ключом k. Т.е. запуская операцию мы получаем состояния объектов на момент запуска (в идеале так хотелось бы). И после получения состояния всех объектов рисуем по этой таблице отчет.

Ответы365867

246 16 мар, 23:34 246 1365732

>>1365102
Сорян тогда, могу только посоветовать загуглить туториал по созданию инет-магазов.

247 17 мар, 04:09 247 1365841

>>1365023
>отедельную сущность или одну и ту же? Если отдельную, то объясни свой выбор.
Либо флаг/статус в Order, (товар только в корзине или уже в обработке), либо отдельная сущность для Order, которые только в корзине.

248 17 мар, 08:09 248 1365867

>>1365729
Так и говори - горизонтальная таблица. Ещё небось внешний ключ+идентификатора свойства можно выделить как первичный ключ, а рядом несколько полей для каждого возможного типа данных этого свойств?
Ну так почему нельзя обновить каждый объект без удаления его из таблицы?

Ответы365868365977

249 17 мар, 08:09 249 1365868

>>1365867
Вертикальная таблица*
фикс

250 17 мар, 10:59 250 1365931

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

Ответы365940

251 17 мар, 11:20 251 1365940

>>1365931
В хранимках, представляющих из себя простое апи, и отрабатывающих за константное время, ничего плохого нет. Ну типа процедура обновления объекта, которая проверяет все поля, и кроме обновления создаёт запись в исторической таблице.

А вот писать на них кучу логики, это зло как с точки зрения превращения кода в трудноподдерживаемую лапшу, так и производительности и масштабируемости.

Ответы366048

252 17 мар, 12:35 252 1365977

>>1365867
Если коротко - тому что это легаси-говно с тысячами строк кода, который делает инсерты в эту таблицу и рефакторингом заниматься нет ни времени, ни желания.
Есть неизменное условие - таблица очищается по ключу k, затем магическим образом инсертятся строчки. Лучшее что могу сделать отлавливать то, что попадает в таблицу.

Ответы366018

253 17 мар, 14:22 253 1366018

>>1365977
По-хорошему, ты должен проявить инициативу и выбить время на рефакторинг этого говна.

Но раз тебе лень, то что я могу сказать.

Тогда к твоему вопросу. Коммит только один и только после построения отчёта?
Либо забей(в течение одного pl/sql блока, запущенного до коммита самой первой обработки все увидят одинаковые данные, хотя на диске уже будут лежать другие), либо раздели логику на два этапа - один раз обновляешь этим ебнутым способом записи, коммитишь, а потом сколько хочешь раз строишь под этим записям отчёт.
Можно даже сделать проверку - если такая-то запись а логе об обновлении есть, то запустить процедуру формирования отчета сразу, если нет - сначала обновить нужное.

Ответы366219

254 17 мар, 15:33 254 1366048

>>1365940
>Ну типа процедура обновления объекта, которая проверяет все поля, и кроме обновления создаёт запись в исторической таблице
ну это уже логика. и вопрос ее расширения - это вопрос времени

255 17 мар, 20:53 255 1366219

6 Кб, 1152x64815 Кб, 1362x185

>>1366018
>проявить инициативу и выбить время на рефакторинг этого говна.
Это не реально сделать по причине сроков, моя лень тут не причем, будь моя воля и месяц рабочего времени переписал бы эту хуету.
Чтобы было понятнее - вот пример строк из таблицы.
У нас есть некоторый объект который состоит из свойств-объектов. Можно представить в виде дерева на первой пикче, в таблицу же пишутся свойства вложенных объектов, которые не удовлетворяют определенным правилам, точнее пишется, что именно не так с ним (логиурется ошибка) Одна из подпроцедур как раз и проверяет валидность объектов и делает вставку в t, если какое-то свойство невалидно.

Так вот на момент запуска основной процедуры не известно как состояние объектов, так и сколько всего вложенных объектов каждого класса и значения их свойств. Может получится так, что и объекта суперговно уже нет. Видимо поэтому сделали удаление, а потом заполнение по новой.

И вот после того как новый лог зафиксируется (читай отработает процедурка логирования) - нужно получить отчет.

26 Кб, 300x307
256 19 мар, 07:33 256 1366914

>>1312894 (OP)
Есть кто много работает с PostgreSQL и 1С? сейчас переводим файловую базу на эту СУБД и вроде норм работает, но вот в номенклатуре ставишь цены и начинает по 3 секунды думать, а в файловом варианте все мгновенно считает
Тест Гилева показывает 32 балла
Почему притормаживает не можем понять
1С-ник говорит, что доработки не нужны при переходе с файловой на СУБД, а я думаю, что при переходе оптимизация в любом случае нужна, также мы используем SSD и конфиг PG вроде на максимум выкручен
Может быть надо еще быстрее диски? PCI-E например под запись в 1000МБ и чтение в 1500МБ?
СУБД пробуем и на винде и на линуксе - на линуксе 32 балла в Гилевском, на винде 22 балла
Может есть какие-то версии PG, линукса и 1С, которые совместно работают отлично?
Пробовал PG 9.2, 9.6, 11.1 на CentOS6, UbuntuServer14.04 и PG 9.6, 10.5 на Win2013R2
1С 8.3 КА
брал готовые сборки 9.2, 9.6 для линукса с сайта официального сайта 1С и PostgrePro там тоже для 1С сборки
для винды 9.6 и 10.5 с официального сайта 1С
то есть пробовал разные миксы для 1С, кроме 11.1 она сама по себе просто самая последняя. Может есть какие-то отличные проверенные версии? 1С 8.3.13.1690, база 25Гб, хотя сейчас на файловой работают на старой версии 8.3.6
сервер с 24 ЦПУ, 25Г ОЗУ, ССД с 200МБ запись\400МБ чтение для баз и системы
а конфиг большой
основные параметры для_винды:
users=100
ssl=off
shared_buffers = 2GB
temp_buffers = 16MB\t
work_mem = 16MB\t\t
maintenance_work_mem = 256MB
bgwriter_delay = 100ms\t\t\t
bgwriter_lru_maxpages = 1000\t\t
bgwriter_lru_multiplier = 4.0
max_worker_processes = 24\t\t
max_parallel_workers_per_gather = 12
wal_level = minimal\t\t\t
fsync = off\t\t\t\t
synchronous_commit = off\t\t
wal_sync_method = fsync\t
wal_buffers = 16MB
checkpoint_timeout = 60min\t\t
max_wal_size = 3GB
min_wal_size = 1GB
checkpoint_completion_target = 0.8
archive_mode = off
enable_mergejoin = off
enable_nestloop = off
random_page_cost = 1.1
effective_cache_size = 18GB
default_statistics_target = 500
join_collapse_limit = 1\t
autovacuum = on\t\t\t
autovacuum_max_workers = 20\t\t\t\t\t\t
autovacuum_naptime = 20s\t\t
autovacuum_vacuum_scale_factor = 0.005
autovacuum_analyze_scale_factor = 0.02
escape_string_warning = off
standard_conforming_strings = off
для_линукса:
users=100
ssl=off
shared_buffers = 5GB
temp_buffers = 16MB\t
work_mem = 16MB\t\t
maintenance_work_mem = 1500MB
bgwriter_delay = 100ms\t\t\t
bgwriter_lru_maxpages = 1000\t\t
bgwriter_lru_multiplier = 4.0
max_worker_processes = 24\t\t
max_parallel_workers_per_gather = 12
wal_level = minimal\t\t\t
fsync = off\t\t\t\t
synchronous_commit = off\t\t
wal_sync_method = fsync\t
wal_buffers = 16MB
checkpoint_timeout = 60min\t\t
max_wal_size = 4GB
min_wal_size = 2GB
checkpoint_completion_target = 0.9
archive_mode = off
enable_mergejoin = off
enable_nestloop = off
random_page_cost = 1.1
effective_io_concurrency = 200
effective_cache_size = 18GB
default_statistics_target = 100
join_collapse_limit = 1\t
autovacuum = on\t\t\t
autovacuum_max_workers = 20\t\t\t\t\t\t
autovacuum_naptime = 20s\t\t
autovacuum_vacuum_scale_factor = 0.005
autovacuum_analyze_scale_factor = 0.02
escape_string_warning = off
standard_conforming_strings = off

26 Кб, 300x307
256 19 мар, 07:33 256 1366914

>>1312894 (OP)
Есть кто много работает с PostgreSQL и 1С? сейчас переводим файловую базу на эту СУБД и вроде норм работает, но вот в номенклатуре ставишь цены и начинает по 3 секунды думать, а в файловом варианте все мгновенно считает
Тест Гилева показывает 32 балла
Почему притормаживает не можем понять
1С-ник говорит, что доработки не нужны при переходе с файловой на СУБД, а я думаю, что при переходе оптимизация в любом случае нужна, также мы используем SSD и конфиг PG вроде на максимум выкручен
Может быть надо еще быстрее диски? PCI-E например под запись в 1000МБ и чтение в 1500МБ?
СУБД пробуем и на винде и на линуксе - на линуксе 32 балла в Гилевском, на винде 22 балла
Может есть какие-то версии PG, линукса и 1С, которые совместно работают отлично?
Пробовал PG 9.2, 9.6, 11.1 на CentOS6, UbuntuServer14.04 и PG 9.6, 10.5 на Win2013R2
1С 8.3 КА
брал готовые сборки 9.2, 9.6 для линукса с сайта официального сайта 1С и PostgrePro там тоже для 1С сборки
для винды 9.6 и 10.5 с официального сайта 1С
то есть пробовал разные миксы для 1С, кроме 11.1 она сама по себе просто самая последняя. Может есть какие-то отличные проверенные версии? 1С 8.3.13.1690, база 25Гб, хотя сейчас на файловой работают на старой версии 8.3.6
сервер с 24 ЦПУ, 25Г ОЗУ, ССД с 200МБ запись\400МБ чтение для баз и системы
а конфиг большой
основные параметры для_винды:
users=100
ssl=off
shared_buffers = 2GB
temp_buffers = 16MB\t
work_mem = 16MB\t\t
maintenance_work_mem = 256MB
bgwriter_delay = 100ms\t\t\t
bgwriter_lru_maxpages = 1000\t\t
bgwriter_lru_multiplier = 4.0
max_worker_processes = 24\t\t
max_parallel_workers_per_gather = 12
wal_level = minimal\t\t\t
fsync = off\t\t\t\t
synchronous_commit = off\t\t
wal_sync_method = fsync\t
wal_buffers = 16MB
checkpoint_timeout = 60min\t\t
max_wal_size = 3GB
min_wal_size = 1GB
checkpoint_completion_target = 0.8
archive_mode = off
enable_mergejoin = off
enable_nestloop = off
random_page_cost = 1.1
effective_cache_size = 18GB
default_statistics_target = 500
join_collapse_limit = 1\t
autovacuum = on\t\t\t
autovacuum_max_workers = 20\t\t\t\t\t\t
autovacuum_naptime = 20s\t\t
autovacuum_vacuum_scale_factor = 0.005
autovacuum_analyze_scale_factor = 0.02
escape_string_warning = off
standard_conforming_strings = off
для_линукса:
users=100
ssl=off
shared_buffers = 5GB
temp_buffers = 16MB\t
work_mem = 16MB\t\t
maintenance_work_mem = 1500MB
bgwriter_delay = 100ms\t\t\t
bgwriter_lru_maxpages = 1000\t\t
bgwriter_lru_multiplier = 4.0
max_worker_processes = 24\t\t
max_parallel_workers_per_gather = 12
wal_level = minimal\t\t\t
fsync = off\t\t\t\t
synchronous_commit = off\t\t
wal_sync_method = fsync\t
wal_buffers = 16MB
checkpoint_timeout = 60min\t\t
max_wal_size = 4GB
min_wal_size = 2GB
checkpoint_completion_target = 0.9
archive_mode = off
enable_mergejoin = off
enable_nestloop = off
random_page_cost = 1.1
effective_io_concurrency = 200
effective_cache_size = 18GB
default_statistics_target = 100
join_collapse_limit = 1\t
autovacuum = on\t\t\t
autovacuum_max_workers = 20\t\t\t\t\t\t
autovacuum_naptime = 20s\t\t
autovacuum_vacuum_scale_factor = 0.005
autovacuum_analyze_scale_factor = 0.02
escape_string_warning = off
standard_conforming_strings = off

Показать весь текст
Ответы367377

257 20 мар, 06:17 257 1367359

Столкнулся со следующей ситуацией:

На компьютере была установлена pSQL 9й версии, позже накатывал 10ю.
И всё вроде хорошо, веду базы данных на 9ке и 10ке отдельно, всё как у людей.

Однако 9ка вроде как и не нужна уже, все проекты на ней давно сданы и едва ли кого интересуют.
И вот залез я как-то в службы шиндоуза и обнаружил что у меня там оба pSQL-сервера вписаны на автозапуск.
Я подумал что 9ка больше не нужна в общем-то и отключил.

И вот обнаружилось что вместе с тем pgAdmin с консолью перестали видеть те самые базы данных и даже логины проебались. Однако при этом компьютер также видит что у меня тут джва сервера установлено.

Подрубил обратно службу с процессом 9й версии - всё вернулось.

Кто-нибудь может хотя бы примерно объяснить за счёт чего оно может происходить? Самое что непонятное - почему 10й сервер оказывается привязанным к 9ке, но при этом спокойно пользует свои специфические фичи.

Ответы367378

258 20 мар, 07:38 258 1367377

>>1366914

Раскошеливайтесь вот на эту залупу, хуле:

https://www.supermicro.com/products/system/2U/2029/SYS-2029UZ-TN20R25M.cfm

259 20 мар, 07:43 259 1367378

>>1367359
порты поменять надо попробовать в конфиге ПГ
а почему не удалить 9 совсем?

Ответы367384

260 20 мар, 08:04 260 1367384

>>1367378
>почему не удалить 9 совсем?
Тоже думал, но иногда таки попадаются случаи когда заказчику нужна именно 9я версия.
Опять же, теперь есть повод беспокоиться что со сносом 9ки у меня могут и данные проебаться.
>порты поменять надо попробовать в конфиге ПГ
Да вроде с этим проблем нет же.
На мой взгляд аномальным является то что 10й сервер каким-то образом работает из-под исполняющего файла 9ки и де факто в 9ке же и находится.

261 20 мар, 16:05 261 1367548

Существует ли какой-нибудь алгоритм выбора мощностей сервера, на котором БД крутится? Там ведь куча показателей, начиная размером данных и заканчивая кол-вом параллельных запросов...

Ответы367551367633

262 20 мар, 16:07 262 1367551

>>1367548
бери самый жирный и дорогой, не ошибешься

Ответы367552

263 20 мар, 16:07 263 1367552

>>1367551
Мне для диплома нужно подобрать оптимальный.

264 20 мар, 19:12 264 1367633

>>1367548
Ну так и составь интегральный критерий.

Если с СУБД и структурой данных всё ясно, то сервер упирается в:
- проц
- ОЗУ
- HDD\SSD
- ширина канала
- ожидаемый пинг для клиента
- возможности защиты от дудосов, внезапных падений железа, и прочего

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

Ответы367783

265 20 мар, 21:42 265 1367783

>>1367633
>По всему этому выводишь минимумы-оптимумы-максимумы
Вот тут проблема, я не знаю, как это вывести. Что можно почитать?

266 22 мар, 23:37 266 1368663

Аноны, помогите.
Ебусь весь вечер без результата.

Ставлю на win 10 оракл базу, чтобы на ней учиться.
Скачал с сайта oracle sql developer Windows 64-bit with JDK 8 Included
Скачал OracleXE184_Win64.zip
Установил базу с админ правами.
Запускаю sql developer и жму, как во всех гайдах, new connection. Заполняю все как в гайдах, ввожу свой пароль, что указал при регистрации.
Вылазит эта херня:
Status : Failure -Test failed: Ошибка ввода/вывода: The Network Adapter could not establish the connection

Что я не так делаю? Как лечить? Почему даже поставить не выходит блять? Ебусь весь вечер без какого либо результата. Качал обычную базу, но она сука даже не устанавилась, писала про failed to set acl's for specified user oracle, поэтому и ставил XE версию.
Как мне поставить этот гребанный sql с табличками к себе на комп?

Ответы368757368841368842376120

267 23 мар, 07:12 267 1368757

>>1368663
юзай SQLite

268 23 мар, 13:56 268 1368841

>>1368663
Как ты ставил сервер? Листенер настроил?
А ещё можешь забить на sql developer, поставь себе ещё клиент оракла и подключайся через pl/sql developer.

Ответы368842

269 23 мар, 13:57 269 1368842

>>1368663
>>1368841
P.S.: sqlplus работает?

1 270 24 мар, 18:58 270 1369463

аноны, кто онлайн? дело срочное! надо запрос sql написать, а я не шарю. Знающему человеку дела на 5 минут. Кто помочь может?

Ответы369491

271 24 мар, 19:54 271 1369491

>>1369463
никто

112 Кб, 1222x925
272 26 мар, 22:52 272 1370606

Ребята, прошу, хелп!
Как написать на Perl'e, чтобы инфу в базе данных можно было менять прямо через сайт, который прицеплен к самой этой базе данных?
Извиняюсь за некорректную формулировку мэйби

273 27 мар, 11:21 273 1370734

ДАВАЙТЕ ПИСАТЬ ШАПКУ ПОД ЭТИМ ПОСТОМ

Кидаем ресурсы\книги\ютуб.

Изучить азы на практике http://www.sql-ex.ru/index.php?Lang=0
Cодержащая много хорошего https://www.w3schools.com/sql/

гайд как гуглить:
если не знаешь инглиша, то пиши сюда по-русски, что хочешь\требуется сделать
https://translate.google.ru/
копируй результат и вбивай в гугол

274 27 мар, 12:10 274 1370749

>>1312894 (OP)
А кто тут вообще сидит? Аналитики?
>>1312894 (OP)
Сколько вы зарабатываете?
Кем работаете?
Я сейчас занимаюсь поддержкой и доработкой одной ИС на pl/sql и созданием всяких отчётов в BI.
Получаю 70к, но я еще совсем студент 4 курса, поэтому мне норм, естественно ДС.

32 Кб, 400x190
275 27 мар, 17:48 275 1370893

Работаю сейчас в банке. Разрабатываю, сопровождаю внутреннее хранилище на оракле. Пилю витрины. Переливаю данные из схемы в схему. Вывожу красивые отчеты в BI. Пилю триггеры/функции/процедуры. Проектирую новые таблы. Веду мониторинг всякой бизнес параши. В общем, мальчик SQL на подхвате. Пердолюсь в PL/SQL.

Хочу перекатиться в разрабы БД Oracle. Пару раз ходил на собесы, выделил для себя направления которые еще надо подтянуть.

1) redo undo пространства
2) принципы построения хранилищ (dv, 3nf)
3) AWR
4) xml в оракле
5) skip partition
6) in out nocopy - повторить
7) гистограмма статистики (зачем собирать)
8) dwh vs olap
9) параллелизм в oracle
10) индексы составные (критерий порядка)
11) раздел temp
12) HASH JOIN, MERGE JOIN, NESTED LOOPS как ведут себя с индексами
13) Блокировки: как пользоваться где смотреть
14) Области памяти в Oracle

Что стоит знать еще? Чтобы вы добавили?

Ответы370903370965

276 27 мар, 17:59 276 1370903

>>1370893
Ты в курсе, что ты и так разработчик oracle?
Только аналитической системы.
Для разработки OLTP тебе нужно все это + стандартные требования для программиста, а-ля алгоритмы и структуры данных.

Ответы370917

277 27 мар, 18:17 277 1370917

>>1370903
Так получилось, что я "разработчик" в отделе, который разработкой не занимается. Все приколюхи которые я тут пишу, они для внутренних нужд или для смежных отделов.

>Для разработки OLTP

В OLTP как раз и хочу вкатиться.

Ответы370932372462409314

278 27 мар, 18:47 278 1370932

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

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

Ответы370968409314

279 27 мар, 19:44 279 1370965

Расскажите, пожалуйста, немного больше о собеседованиях на девелопера.
Что меня может там ожидать?
Нужно будет процедуры/функции/триггеры на бумаге писать?
Оптимизация/параллельность/партиции/хинты/ мат. представления в оракле, что еще может быть, кроме того, что тут >>1370893
написано?

Ответы371001372197

280 27 мар, 19:45 280 1370968

>>1370932
А ты чем занимаешься?

Ответы371001

281 27 мар, 20:54 281 1371001

>>1370968
Разработчик хранилища - как и ты.
>>1370965
Оптимизация, хинты, аналитические функции, коллекции, курсоры, параллельный доступ(сюда можно ещё принципы acid отнести), понимание того, что ты работаешь не с ежедневными выгрузками, а в системе "реального времени" - не в смысле как в самолёте, а что постоянно бегают транзакции и нужно учитывать нагрузки, которые будет испытывать твоя разработка.
Главное отличие - помимо точности обработки тебе ещё нужна эффективность. В хранилище это тоже требуется, но там разница в 5 секунд не сыграет роли - вся процедура бегает 5 минут, а следующий набор данных придет только завтра ночью - в транзакционной же системе тебе нужно сделать все быстро, так как во время обработки могут прийти новые данные, и чем меньше их будет - тем быстрее ты их обработаешь и не замедлишь работу системы.

282 28 мар, 09:25 282 1371283

САП ПРОГРАМИСТЫ ПОЯВИЛАС ПОТРЕБНОСТЬ ВОТ В ТАКОЙ ХУЕВЕН, ВОПРОС СМОГУ ЛИ САМ НАПИСАТЬ? ЕСЛИ ДА, ТО КУДА КОПАТЬ?

Сайт для учета базы клиентов c Блэкджеком
Цена до: 1 000 Р
Активный
Авторизация на сайте, пользователи и админ.
1 создал карточку клиента, поля с данными: телефон , название итд,
И главное борьба С дублями
2 карточка с событиями, привязанная к карточке клиента (позвонил , пообщались, оставил заказ), создаются новые, старые остаются, можно проследить ход событий.
3 сортировка по полям данным
4 маркеры пользователя на карточке клиента,чтобы было видно, какой пользователь ведет клиента
это предварительно

Ответы371300

283 28 мар, 10:21 283 1371300

>>1371283
>СМОГУ ЛИ САМ НАПИСАТЬ?
нет, конечно. подобные вещи гуглами делаются за год, а то и джва

42 Кб, 331x504
284 28 мар, 11:42 284 1371323

Собсно, есть вопрос по поводу конструкции БД. Есть определённая таблица, в которой содержится много людей разных типов, созданных наследованием, суперкласс не используется. Отличается только их тип, но всегда есть набор и отношение мэнитомэни, то есть в людях тоже есть ссылки на эту таблицу. Собсно, вопрос, получается очень много may-to-many отношений (12) вместо 4. Как лучше сделать, оставить так, таблицу для каждого подтипа, или одну общую для типа, просто создав поле? Столько ManyToMany вообще норм и что можно почитать про это? Пик стронгли релейтед.

Ответы372318

285 28 мар, 13:33 285 1371362

>>1312894 (OP)
Есть WAMP 2.5.
Есть Mysql база в интернете, которую я хочу скопировать на локальный сервер. Зберёг усю базу в большой файл SQL. Но при импорте на локальный сервер одна таблицы на сотни тысяч строк не загружается вообще, а в логе появляются сообщения MySQL Server gone away 2006.

Почитал про
set global max_allowed_packet=64000000;
set global net_buffer_length=1000000;
set global innodb_lock_wait_timeout=500;

Но когда я задаю их в консоли (WAMP-Mysql console), они не сохраняются.

mysql> set global max_allowed_packet=64000000;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "%max_allowed_packet%";
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| max_allowed_packet | 4194304 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set (0.00 sec)

Прописал также в my.ini
max_allowed_packet = 64000000
перезапустил все сервисы и отдельно mysqld restart
но нифига, по-прежнему max_allowed_packet=4194304

Працует тильки вставка set global ... непосредственно в початку загружаемого файла SQL с моей базой с большой таблицей.

Чому так ? Чому Mysql не воспринимает прописанное в my.ini ?
Где потрибно прописывать переменные ?

285 28 мар, 13:33 285 1371362

>>1312894 (OP)
Есть WAMP 2.5.
Есть Mysql база в интернете, которую я хочу скопировать на локальный сервер. Зберёг усю базу в большой файл SQL. Но при импорте на локальный сервер одна таблицы на сотни тысяч строк не загружается вообще, а в логе появляются сообщения MySQL Server gone away 2006.

Почитал про
set global max_allowed_packet=64000000;
set global net_buffer_length=1000000;
set global innodb_lock_wait_timeout=500;

Но когда я задаю их в консоли (WAMP-Mysql console), они не сохраняются.

mysql> set global max_allowed_packet=64000000;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "%max_allowed_packet%";
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| max_allowed_packet | 4194304 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set (0.00 sec)

Прописал также в my.ini
max_allowed_packet = 64000000
перезапустил все сервисы и отдельно mysqld restart
но нифига, по-прежнему max_allowed_packet=4194304

Працует тильки вставка set global ... непосредственно в початку загружаемого файла SQL с моей базой с большой таблицей.

Чому так ? Чому Mysql не воспринимает прописанное в my.ini ?
Где потрибно прописывать переменные ?

Показать весь текст

286 30 мар, 04:00 286 1372197

>>1370965
меня на первую работу спрашивали селект звездочка, сказали остальному научат. на 30к мухосрань-200к

287 30 мар, 07:31 287 1372210

>>1312894 (OP)
В чем рисовать няшные схемы?

sage 288 30 мар, 14:04 288 1372318

>>1371323
Бля, конечно, одну общую с атрибутом user type id. Что тут спрашивать, вообще. Как ты будешь запросы писать ко всем пользователям? Юнион олл свои миллиард таблиц?

289 30 мар, 21:17 289 1372462

>>1370917
>В OLTP как раз и хочу вкатиться.
нахуй олтп. Ораклиный олтп в отсосе сейчас. Все пытаются делать в орм. В плане бд разработчика хранилище это еще та тема, где можно рулить. К тому же оракул в хоронилищах отсасывает последние десять лет специализированным бд (терадата, гринплам) и носкль говну типа хадупа.

Вообще в Данных сейчас самая нормальная тема, это data engineer на опен сурс стеке hadoop, presto, kafka и тп говно. Это сейчас востребованная тема и больше платят. У оракула всё наоброт. Надо в неё вкатываться.

Или если модолой пиздюк может не поздно перекатиться в general purpose языки типа джавы. Разработчик оракл в 2019 это как то это. Если на текущем раб месте надо, учи конечно, но подумай. Работаю в хоронилищах 10 лет.

Удивительно, что во всём pr по запросу hadoop находятся три поста. В БД обсуждают какое-то аутдейтед говно из девяностых.

Ответы387876

290 31 мар, 15:36 290 1372744

Товарищи, делаю задачки на SQL-EX.ru, и в данный момент нахожусь на 13 задачке. Подскажите пожалуйста, в чём неправильность моего решения?

ЗАДАНИЕ: Найти среднюю скорость компьютеров от производителя "А"

МОЁ РЕШЕНИЕ (Неправильное):

SELECT AVG(PC.speed)
FROM PC, Product
WHERE Product.maker = 'A'

Ответы372746372747

291 31 мар, 15:43 291 1372746

>>1372744
Где связь между pc and product?

Ответы372748

292 31 мар, 15:43 292 1372747

>>1372744
1) Научись соединять таблицы.
2) Забудь эти ебучие джойны через запятую и пользуйся нормальными ансишными.

Ответы372748372769

293 31 мар, 15:46 293 1372748

>>1372746
>>1372747
Решил. Спасибо что отозвались!

Не учёл самого очевидного, >>1372746 , благодарю.

294 31 мар, 16:29 294 1372769

>>1372747
>джойны через запятую
это ж и не джойны вовсе?

Ответы372790

295 31 мар, 17:06 295 1372790

>>1372769
Ты хочешь сказать что
select from a, b
и
select from a join b on 1 = 1
это разные вещи?

Ответы372881

296 31 мар, 20:51 296 1372881

>>1372790
ну так как
join b on 1 = 1
это то же самое, что
cross join b
то скажу да. а так - джоин - это поиск пересечения множеств, а select from a, b - это декартово произведение
а еще оптимизаторы запросов написаны людьми умнее, чем написатели подобных запросов, и они могут в переделку на джоин

Ответы372882372992

297 31 мар, 20:52 297 1372882

>>1372881
в смысле, я скажу нет, лол

Ответы372985

298 1 апр, 00:37 298 1372985

>>1372882
А ничего, что cross join - то же самое, что две таблицы через запятую?
Ничего, что ты при соединении таблиц через запятую можешь указывать условия соединения?
Нет, это разные вещи, конечно же. И оптимизатор переделывает запятую в джойн не потому что видит ее как джойн, а потому что это запятая, а оптимизатор написан очень умными людьми. Такими умными как ты, наверное.

Ответы372992

299 1 апр, 00:57 299 1372992

>>1372985
>А ничего, что cross join - то же самое, что две таблицы через запятую?
>>1372881
>ну так как
>join b on 1 = 1
>это то же самое, что
>cross join b

300 1 апр, 13:11 300 1373139

Аноны, помогите с вопросом нубу: есть у меня таблица ивентов посещения страниц - юзерайди, времядата, страница, сессия, вот как бы отобрать сессии, в которых юзер посетил три страницы в определенном порядке? Помимо них в сессии могут быть какие угодно страницы в любых местах. Пока что есть желание составить какой-то такой запрос где GROUP BY сессия HAVING MIN(время посещения страницы1) < MAX(время посещения страницы3) и что-то в этом роде, но MIN же не может отбирать по значению другого столбца.

Прошу прощения за сумбур, вдруг кто поймёт суть

Ответы373181

301 1 апр, 14:21 301 1373181

>>1373139
>вдруг кто поймёт суть
а ты не пробовал объяснить так, чтобы было понятно "не вдруг"?

302 1 апр, 14:33 302 1373194

>>1312894 (OP)
Есть такой селект:
select shit from anus
into wc
where available = true and want_srat' = true.
if wc == space
{
select shit from anus
into wc
where available = true.
}
Как это записать в одном селекте без необходимости переписывать весь запрос с одним измененным условием?

Ответы373197373217

303 1 апр, 14:34 303 1373197

>>1373194
т.е. грубо говоря надо выставить приоритет для want_srat', но если нет,то извлекать все подряд

Ответы373219

304 1 апр, 15:11 304 1373217

>>1373194
select nvl(decode(want_srat, true, shit), shit)
from anus
where available = true

А смысл вообще запроса можешь объяснить?
Тебе нужно выбрать значение из строк, где оба параметра - истина, но если такого нет, то выбрать такие, где только один параметр - истина?

Ответы373219

305 1 апр, 15:12 305 1373219

>>1373217
Сорян, увидел >>1373197.
Подойдёт вариант с nvl и decode

Ответы373224

306 1 апр, 15:33 306 1373224

>>1373219
Ну а вообще даже так
select id, max(nvl(decode(...))) from
//
group by id

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

307 1 апр, 18:38 307 1373296

Вечер в хату, аноны.

Какие есть хорошие ресурсы (сайты, книги, видео, шо угодно) для освоения SQL? В ВУЗе было в своё время и сдавал всё на отлично, но там как-то слабоватый совсем уровень был: базовые джойны, агрегатные функции и прочее барахло. После тех времён заглянул в нынешние PostgreSQL и Redshift, а там вообще другой сказочный мир из оконных функций, массивов каких-то дивных и прочих приблуд. В целом по гуглу и документации всё понятно, когда сталкиваешься, но сталкиваться задачи нужны какие-то.

Неужто все по хардкору документацию сплошняком читают и в фиддле сами себе примеры для отработки сочиняют?

Ответы373316

308 1 апр, 19:23 308 1373316

>>1373296
professorweb глянь, но там упор на MSSQL, может и не подойти

309 3 апр, 11:08 309 1374126

Господа, нужна помощь.
Mysql, есть таблица справочник вида
id name
1хуй
2пизда
3джигурда
4залупа
5жопа

И динамическая таблица вида
n naims
QWER9090 1,3,5
JOPA1337 2,4
GOVN2281 1,5

Нужно заселектить так чтобы в naims вместе цифр по id из справочника выдавало список naim типа:
n naims
QWER9090 хуй,джигурда,жопа

select dyn.n, group_concat(spr.name) as names from dyn
left join spr on spr.id in (dyn.names) выдает только одно значение из справочника. find in set в каждую строку полностью весь справочник запихивает.
Что я делаю не так?

Ответы374219

310 3 апр, 13:20 310 1374219

>>1374126
>QWER9090 1,3,5
>1,3,5
Это id из таблицы "справочник"? Так и записаны через запятую в поле "динамической" таблицы? Схема мудацкая в таком случае.

По-хорошему должно быть так в динамической таблице:
QWER9090 1
QWER9090 3
QWER9090 5
...

Тогда можно было бы обойтись без вот этих плясок :

SELECT t.name, group_concat(spr.name) names FROM spr spr JOIN (
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(dyn.ids, ',', spr.id), ',', -1) id,
dyn.name
FROM spr JOIN dyn
ON CHAR_LENGTH(dyn.ids)
- CHAR_LENGTH(REPLACE(dyn.ids, ',', '')) >= spr.id - 1
) t ON spr.id = t.id
GROUP BY t.name

простым джойном и группировкой.

Ответы374805

311 3 апр, 21:10 311 1374601

>>1312894 (OP)
Как думать в SQL и писать эффективные запросы?
1. Нужно сделать, условно, 2 джоина.
Есть вариант предварительно отфильтровать одну таблицу (запихнуть результат в CTE) и уже сделать джоин первой таблицы с CTE.
Либо же сразу писать джоин в одном месте и там по ходу фильтровать
2. Есть к примеру 4 таблицы: A,B,C,D.
Отфильтровал как-то A, нужно сджоинить оставшиеся три.
Забрать нужно не все данные, а только часть. offset и fetch next можно сделать на таблицу А, а потом на результат сделать джоин оставшихся таблиц.
Либо же сразу на А делать джоины и в конце делать offset и fetch next.

Ответы374635

312 3 апр, 21:48 312 1374635

>>1374601
1) просто напиши джойн. Оптимизатор за тебя решит, как лучше.
2) rownum и аналоги.

Ответы374654

313 3 апр, 22:27 313 1374654

>>1374635
1. понял, спасибо
2. Вопрос немного не в этом. Меня offset и fetch next вполне устраивают.
Либо я не правильно ответ понял, либо вопрос не так поставил.
Вопрос примерно такой же как и первый: делать ли джоины до пагинации, либо после нее.
Я сейчас делаю так: беру таблицу А, делаю по ней пагинацию, джойню остальную инфу, типо зачем делать джоины на строки, которые потом не попадут в результат. Но возможно оптимизатор и это способен понять и можно сразу писать джоины и в конце делать пагинацию.

Ответы374674

314 3 апр, 23:15 314 1374674

>>1374654
Я к тому, что ты можешь изначально первую таблицу обрезать так, чтобы не было ничего лишнего.
Т.е. если в первом вопросе оптимизатор сам решит, как лучше соединять, то в этой ситуации, если ты явно скажешь, что хочешь обрезать выборку из таблицы А, он никуда не денется - выберет из нее нужные данные и будет соединять их. Смотри план, опять же.
Плюс тут ещё нужно учитывать затраты: зафетчить строку из А, пустить для нее запрос и так для какого-то количества строк - это ж сколько раз ты будешь читать остальные таблицы?
То есть нужно оценить, что выгоднее - пустить для десятка строк один и тот же запрос десять раз или все же за один запрос все соединить.

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

А, может, это я тупой и не понял тебя.

315 3 апр, 23:30 315 1374682

Посоны, а сейчас реально в SQL на работу вкатиться? Какой там сейчас стэк? Или просто сикуль сейчас не нужен и я еще долежн быть как минимум жаба мидлом? Вакансии в моих ебенях намекают именно на это.

Ответы374786

316 4 апр, 08:54 316 1374786

>>1374682
разраб как DBA востребован не во многих компаниях, с большой вероятностью в аутсорсе онли. ну, и чем больше охват базочек, тем ты лучше. популярный реляционный набор энтерпрайза плюс хоть какое-то представление о NoSQL, или самодостаточные знания в оракле - это все дба, которых я встречал

Ответы374802

317 4 апр, 09:40 317 1374802

>>1374786
>сорсе онли. ну, и чем больше охват базочек, тем ты лучше. популярный реляционный набор энтерпрайза плюс хоть какое-то представление о NoSQL, или самодостаточные знания в оракле - это все дба, которых я встречал

А разве ORM всех не подебил?

Ответы374806

318 4 апр, 09:44 318 1374805

>>1374219
Схема мудацкая, согласен. Но менять никто не даст и приходится работать с тем что есть.

319 4 апр, 09:55 319 1374806

>>1374802
а что ORM? его присутствие в коде проекта не означает, что база сама себя заадминит. плюс, орм орм-у рознь: если какой-нибудь EntityFramework разве что ускорить время выхода приложения в live сможет (и рано или поздно от него придется отказаться), то Dapper или нечто вроде просто тебе дает возможность скастить результат в нужный тип без явного приведения полей (писать SQL тебе нужно ровно так же, если бы юзались хранимые процедуры, только в другом месте)

Ответы374808

320 4 апр, 10:10 320 1374808

>>1374806

Ну вот зачем SQL, если есть JPA/Hibernate?

Ответы374831

321 4 апр, 10:50 321 1374831

>>1374808
затем, что это все персоманс-кост на разбор выражения и приведение его в SQL, а также ультранеоптимальный (в большинстве случаев) запрос. не знаю насчет NHiber, но EF не поддерживает практически никаких хинтов и оконных функций (вагную, если бы первые умели, вторые моментально выкатили свой вариант), про MERGE/PIVOT/WITH я даже не заикаюсь. поэтому для 10RPS CRUD-запросов к таблицам с джойнами ORM тебе будет хватать с избытком, даже если ты всю базу при каждом запросе будешь в память грузить. но анатилику ты никакую на ORM не построишь, а с ростом интенсивности взаимодействия с базочкой тебе придется искать выход. и очень сильно повезет, если бекенд не окажется гвоздями прибит к [конкретной] ORM

Ответы374834

322 4 апр, 10:53 322 1374834

>>1374831
>а с ростом интенсивности взаимодействия с базочкой тебе придется искать выход. и очень сильно повезет, если бекенд не окажется гвоздями прибит к [конкретной] ORM

Но зачем его искать?

https://www.supermicro.com/products/system/2U/2028/SSG-2028R-NR48N.cfm

Ответы374837

323 4 апр, 10:57 323 1374837

>>1374834
>CONFIGURED PRICE: $17,654.00
или сказать кастомеру, что если тебя уволить, можно сэкономить без малого 20к

Ответы374843

324 4 апр, 11:09 324 1374843

>>1374837
>>CONFIGURED PRICE: $17,654.00
>или сказать кастомеру, что если тебя уволить, можно сэкономить без малого 20к

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

И все это вместе, разумеется, будет дороже (по зарплате, по простоям, по сопровождению) и 17к, которое стоит это шасси, и 80к, которое уже напихано топовыми восьмитерабайтными NVMe SSD.

Ответы374880376022

325 4 апр, 12:05 325 1374880

>>1374843
наличие или отсутствие ORM, хранимопроцедурного говнослоя и прочих вещей не дает никому никаких гарантий. наскакивать на ORM очень легко, а соскакивать тяжелее, особенно, если это YOBA-фреймворки. кому-то, может, и не приется соскакивать никогда, кто-то просто добавит стейтфул инстансов в Service Fabric/Kubernetes и будет счастлив

326 4 апр, 20:16 326 1375091

Как запилить нечеткий поиск с ограничениями? Нужно найти (в sql) все записи, содержащие "строка" или отличающиеся от нее на <=N символов. Например, если N=4, при поиске "строка" должны находиться "строки", "стрАка" (1 <= 4), "срака" (2 <= 4) и "строковой" (4 <= 4), но не должны находиться, например, "строка-массив" (7 > 4) или "строка12345" (5 > 4). У LIKE есть процент, означающий 0, 1 или более символов - это все подстроки в строке, есть _ - это 1 символ, а как мою хуйню запилить, я даже хз.

Ответы375096376010

327 4 апр, 20:34 327 1375096

>>1375091
это не совсем задача SQL

Ответы375099

328 4 апр, 20:49 328 1375099

>>1375096
А чья? Я же не буду миллион вариантов на каждый вариант посылать к базе.

Ответы375105

329 4 апр, 20:59 329 1375105

>>1375099
эластика какого-нибудь
если ты умудришься завернуть подобную логику в процедуру, это будет ебала с регулярками, циклами и подобной тяжеловесной залупой. ну по эффективности выйдет не хуже, чем миллиард запросов

Ответы375107

330 4 апр, 21:01 330 1375107

>>1375105
Еба...это ради такой хуйни VPS с явапарашей поднимать. Еба. А каких-то промежуточных вариантов между LIKE `строка` и LIKE `%строка%` нет вовсе? Без шуток про LIKE `%строка` и LIKE `строка%` плз.

Ответы375278

331 4 апр, 22:55 331 1375157

>>1312894 (OP)
Аноны, подскажите какой-то литературы в которой очень сжато будет рассказано самое важное, чтобы я за дня 3 упорного чтения управился могу читать примерно 200 страниц в день, потом плохо воспринимаю и работу с SQL. Возникла необходимость прикрутить небольшую БД и залить ее на сервер, в языке средства для работы с СУБД есть, но в голове нет нихуя по этой теме

Ответы375204

369 Кб, 366x500
332 5 апр, 01:07 332 1375204

>>1375157
>очень сжато будет рассказано самое важное

Ответы375372

333 5 апр, 07:53 333 1375278

>>1375107
ну не поднимай
тебе нужен поиск схожести, а ты пытаешься лобовой полнотекстовый поиск заюзать. ну, попробуй с лайками напиши, расскажешь, что получилось

Ответы375356

334 5 апр, 12:12 334 1375356

>>1375278
Есть же soundex() например.

175 Кб, 981x704
335 5 апр, 12:41 335 1375372

>>1375204
Не смешно, блять.

433 Кб, 450x297
336 6 апр, 08:17 336 1375811

/v/tard репортинг. Сидел с игровой импотенцией, унывал, скроллил джвач и наткнулся на ваш тред и, конкретно на sql-ex. Посоны, это - охуенно, давненько так не залипал.

337 6 апр, 16:31 337 1376010

>>1375091
Если хочешь на Sql такое написать, можно заюзать динамик скл: собирай запрос по такой логике:
1. На вход прилетает строка и число N, например, "кака", N=3
2. Далее нужно использовать логику для подбора бинома Ньютона(гугли): выбор M из N, иными словами, обойти все варианты, подставляя вместо них "_" в свое like выражение,для нашего примера это будут:
where word like '_ака'
or word like 'к_ка'
or word like 'ка_а'
or word like 'как_'
or word like '__ка'
or word like '_а_а'
or word like '_ак_'
or word like 'к__а'
or word like 'к_к_'
or word like 'ка__'
or word like '___а'
or word like '_а__'
or word like '__к_'
or word like 'к___'

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

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

338 6 апр, 16:43 338 1376022

>>1374843

Есть еще хранилища данных, BI, где зачастую не используются никакие языки, кроме SQL, потому что не нужны. Но, как показывает практика, разработчики приложений про такие слова слышали разве что мельком.

Помимо всего прочего, просто интересно, как будет выглядеть написанный, например, на
>JPA/Hibernate
вот такой запрос
>update t_data set update_date = cast('20190101' as date) where is_valuable = 1
, имея в виду, что все необходимые классы у тебя уже имеются.

ОРМ - это удобно, никто и не спорит, но некоторые вещи он сейчас решает топорно, помимо всего прочего любопытно узнать, что ты будешь делать, не зная SQL и, соответственно, не умея читать план запроса, если твое выражение, написанное при помощи ОРМ вдруг начнет выполняться медленно. Такие вещи, как профилирование запросов, для тебя оказывваются тайной за семью замками, значит, в более-менее крупных проектах, где данных чуть боьше, чем 100000 строчек, ты не работал.

339 6 апр, 19:29 339 1376120

>>1368663

Бро, как справился?

340 8 апр, 10:12 340 1377089

Как бэкапить файловую 1С каждый час не выгоняя юзерей?

341 8 апр, 10:54 341 1377098

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

342 8 апр, 11:17 342 1377109

Анчоусы распишите принцип работы СУБД как будто мне 10 лет

Ответы377110

343 8 апр, 11:18 343 1377110

>>1377109
есть большие банки данных (базочки), которыми надо управлять (дядя-начальник = СУБД)

Ответы377112

243 Кб, 850x480
344 8 апр, 11:37 344 1377112

>>1377110

345 8 апр, 11:58 345 1377119

Требования:

•Опыт работы системным администратором не менее 3-х лет.
•Уверенные знания всей линейки ОС Windows, базовые знания Linux.
•Опыт администрирования активного сетевого оборудования, опыт построения VPN сетей 2/3 уровня.
•Опыт администрирования телефонных станций линейки PANASONIC, базовые знания работы ASTERISK и SIP телефонии.
•Опыт администрирования систем IP видеонаблюдения, в том числе Облачных.
•Опыт администрирования виртуальных машин на базе VMWare и HYPER-V.
•Опыт администрирование серверов 1С в том числе мониторинг производительности, схемы резервного копирования.
•Уверенные знания СУБД MS SQL\Postgres\Firebird и языка запросов SQL.
•Опыт применения в работе стандарты ITIL\SLA.
•Опыт работы с кассовым оборудование, POS системами.
•Базовые знания WEB технологий и серверов IIS\Apache.
•Базовые знания технологий защиты информации.

угадайте сколько предлагают)

Ответы377120

346 8 апр, 11:59 346 1377120

>>1377119
1ккк/с

Ответы377121

347 8 апр, 12:08 347 1377121

>>1377120
Старший администратор баз данных
от 30 000 до 30 000 руб. на руки

Ответы377132

348 8 апр, 12:38 348 1377132

>>1377121
Ну и пусть нахуй идут, ясно же, как белый день.
Если есть мозги, то в ДС с такими знаниями изи 200к в месяц можно иметь.

Скоро в региаоных одни дауны останутся, а те, кто с головой на плечах, уедуд в дс/дс2/в другие страны на нормальные бабки.

Ответы377134377135

349 8 апр, 12:39 349 1377134

>>1377132
с удовольствием бы жил не в мегаполисе, если не уровень з/п
но уезжать ради денег тоже такое себе

350 8 апр, 12:40 350 1377135

>>1377132
слава пыне! - пыне слава!

мёртвый тред мёртвой хуйни 351 9 апр, 13:58 351 1377720

>2k20
>sql

33 Кб, 795x549
352 9 апр, 15:34 352 1377767

Почему я считаю что все связанное со свитеровязанием лютая поебень и зашквар. Где абстракции? Где композиции этих абстракций? И это блядь учебный эталонный пример. Ничего этого в свитеромирке нет и даже больше свитера просто не понимают что это и зачем нужно. Любого нормального кодера за такой копипаст ткнули бы носом в говнокод. В свитеромирке - это норма.
Да что там далеко ходить - в этом итт треде один клоун реально заявляет о то что имплицитный джойн это слишком и кабы чего не вышло.

Ответы377793378080378209

23 Кб, 947x462
353 9 апр, 16:09 353 1377793

>>1377767
Абстрагировался как мог...

Ответы377808377811378042

354 9 апр, 16:24 354 1377808

>>1377793
Ну я рад за тебя, осталось только подтянуть state of the art свитероиндустрии хотя бы до уровня пятидесятилетней давности или когда там Дейкстра и ко поясняли за пользу структурированного подхода.

355 9 апр, 16:27 355 1377811

>>1377793
Алсо, что будешь делать когда глав-свитеро-петух скажет что так никуда не годиться потому что БУДЕТ МЕДЛЕННА и вообще пиши как все ПО ПРОСТОМУ а то КАБЫ ЧЕГО НЕ ВЫШЛО.

356 9 апр, 18:48 356 1377876

>>1326341
>Primary key - это уникальный кластерный индекс, если што
Ответьте нубу, значит ли это, что первичный ключ должен быть сортирован?

Ответы378042

357 10 апр, 00:39 357 1378042

>>1377793
Советую давать всем таблицам алиасы и использовать их везде в запросе. Иначе непонятно, что это за поле такое - title, из какой оно таблицы?

>>1377876
Наоборот, первичный ключ в таблице - это всегда кластерный индекс, причем уникальный.
А кластерный индекс предполагает сортировку, да, по тем полям, по которым он создан.

Ответы378494

358 10 апр, 02:02 358 1378080

>>1377767
Скопировать подзапрос и повесить сверху агрегат - бесценно.
Написать max(count(title)) - для этого нужен мозг.
А для count(title) > 2 - нужно быть сверхразумом.
Но чтобы вонять без умения писать запросы мозг не нужен.

Как же хорошо, что есть оптимизатор для таких дурачков как ты.

Ответы378103

359 10 апр, 03:00 359 1378103

>>1378080
> свитера просто не понимают что это и зачем нужно
> бессвязный поток дриста не имеющий никакого отношения к поднятому вопросу
Ну да, все сходится.

Ответы378188

360 10 апр, 09:54 360 1378188

>>1378103
> Любого нормального кодера за такой копипаст ткнули бы носом в говнокод.
Да нет, просто ты тупой, тебя в твое говно ткнули.

Ответы378209

ИС 361 10 апр, 09:54 361 1378189

Срочно нужна база данных по интернет магазину. Есть такая?

362 10 апр, 11:07 362 1378209

>>1378188
Чувак, это решение на скрине >>1377767
используется на сайте sqlzoo.net в качестве примера.

Ответы378244

363 10 апр, 13:20 363 1378244

>>1378209
Угу, так же добавлю что это было бы еще пол-беды. Проблема в том что такие "примеры" очень даже встречаются irl, но только на сотни строк и каждая строка повторяется по десять раз минимум, как будто читаешь текст песни леди Гаги.

364 10 апр, 16:57 364 1378375

Сап господа.

Помогите определиться плес. Премного благодарен.

Моя тян я знаю уже смешно, да желает вкатиться в ойти попроще. В настоящий момент пытаюсь определить, что ей лучше зайдёт по лёгкости вката и условной востребованности на рынке:

1. что-то связанное с базами данных
2. QA с автотестами

Что скажет умный анон по этому поводу? Если она выучится в каледже на базы данных vs сделает тоже самое по QA, какие перспективы быстрого вката в профу?

Ответы378504

365 10 апр, 18:51 365 1378494

>>1378042
>первичный ключ в таблице - это всегда кластерный индекс
проорал с этого

Ответы379038379280

366 10 апр, 18:57 366 1378504

>>1378375
go, js~ и питонопитушня
проще некуда. ну, для го нужно чуть больше мозга, чем для фронтача. однако технология относительно новая, дохулиарда, готовых кодить за еду, не видно

Ответы378573

367 10 апр, 20:43 367 1378573

>>1378504
Я понял слова, но не понял смысла.

Ты ратуешь за то, чтобы она вкатывалась в программерство, забив на базы данных и QA? Или ты имеешь в виду, чтобы она вкатывалась на QA с го, жс и питоном?

И куда ей легче будет вкатиться джуном, чтобы наверняка? Как быстро вкатится после календжа с курсами в год (два семестра)?

Ответы379023

368 11 апр, 12:17 368 1379023

>>1378573
я тебе про ойти попроще говорю, а не QA с питоном

ибо дба не самый легкий и не самый востребованный спец

369 11 апр, 13:07 369 1379038

>>1378494
>Если кластеризованный индекс в таблице еще не создан, а уникальный некластеризованный индекс еще не указан, то при создании ограничения PRIMARY KEY в одном или нескольких столбцах автоматически создается уникальный кластеризованный индекс. В первичном ключевом столбце недопустимы значения NULL.
https://docs.microsoft.com/ru-RU/sql/relational-databases/indexes/create-clustered-indexes?view=sql-server-2017
Пруф ми вронг

Ответы379188

370 11 апр, 16:26 370 1379188

>>1379038
>первичный ключ в таблице - это всегда
>если кластеризованный индекс в таблице еще не создан

сначала ты утверждаешь инвариант
потом приводишь дефолтное поведение

371 11 апр, 18:41 371 1379280

>>1378494
Интересено посмотреть, как ты оперируешь PK, когда он не является кластерным индексом.
Можешь какой-нибудь пример привести с объяснениями, зачем так делать?

Ответы379803

372 11 апр, 23:00 372 1379444

Анон, добра. У меня есть трабл - работаю с Postgresql программно через классы Qt (QSqlDatabase и QSqlQuery). Нужно сделать синхронизацию локальной бд с серверной. Думаю делать через репликацию, но не имею понятия как можно программно передавать эти инструкции - никакие другие интерфейсы кроме SQL-запросов эти классы не предоставляют. Не хотелось бы в ручную прописывать чтение всех таблиц с серверной БД и потом их запись в локальную.

Ответы379564

373 12 апр, 11:01 373 1379564

>>1379444
а что если сторонней программой? например фрифайлсинх - зеркало пространства делать и все м?

Ответы379764

374 12 апр, 16:08 374 1379764

>>1379564
Нужно чтобы синхронизация выполнялось программно, внутри приложения.

375 12 апр, 17:06 375 1379803

>>1379280
я никак не оперирую, я сторонник того, чтобы естественный ключ был равен первичному
когда-то приходила в голову мысль, где это может быть применимо, но, видимо, было не сильно убедительно даже для самого себя, чтобы подобное запоминать. в общем, если нужно построить скалярный FK на таблицу, у которой составной первичный ключ. и вообще, если дают возможность так делать, значит это кому-нибудь нужно.

59 Кб, 874x505
376 13 апр, 14:22 376 1380274

Помогите, с nosql-базами почти не имел дело, а сейчас встала задача.

Есть БД, фрагмент ее быстро накалякал в draw.io, чтобы суть пояснить. Но на скрине SQL-вариант.
Как оптимальней подобное перенести в mongodb? Насколько я понимаю, у школ будет массив objectId предметов, учителей и уроков, а соответствующие вторичные ключи на школы в этих трех таблицах будут удалены? В остальном то же самое?
Если учесть что бизнес-логика подразумевает постоянные запросы "Преподает ли учитель в данной школе", "В какой школе преподает учитель", "Какие уроки провел данный учитель" итд, короче джойны во все стороны со всех таблиц будут использоваться.

Ответы380361

377 13 апр, 18:33 377 1380361

>>1380274
ты хочешь в нереляционное хранилище напердолить реляционную модель?
храни сразу граф объектов в одном документе. условно: школа { инфа, учителя: [{ инфа, предметы: [{ инфа }] }] }. возможно, придется дублировать данные в документах

378 16 апр, 13:17 378 1382223

Пишу сейчас программу на C++/QT и нужно как-то к этому всему мракобесию прикрутить базу данных. С ними я вообще никогда не работал, поэтому посоветуйте какой-то курс для начинающих, чтобы элементарную систему авторизации логин-пароль запилить.

Ответы382224

379 16 апр, 13:17 379 1382224

>>1382223
Курс, или книгу, или какие-то статьи. Покупать я разумеется ничего не буду

380 20 апр, 18:38 380 1384987

Сап, датабазеры. Можно ли как-то сделать handler, который будет дёргаться каждый раз, когда происходит новый insert?

Ответы385000

381 20 апр, 19:21 381 1385000

>>1384987
CREATE TRIGGER

1,3 Мб, 1920x1080
382 22 апр, 02:58 382 1386291

Кто-нибудь понимает что за бред?

Описание таблицы сверху

Ответы386296

383 22 апр, 03:19 383 1386296

>>1386291
'

384 22 апр, 08:48 384 1386344

Сап, двач! Допустим мне на питоне(юзая mysql connector) нужно постоянно обрабатывать новые добавленные в базу данных значения. Как можно создать тригер, который после инсерта будет звать питоний код?

Ответы386346

385 22 апр, 08:53 385 1386346

>>1386344
охуеть ты придумал

Ответы386348

386 22 апр, 08:54 386 1386348

>>1386346
Ну а чё, селектить каждую минуту?

Ответы386349

387 22 апр, 08:54 387 1386349

>>1386348
селекти каждые две

388 22 апр, 12:55 388 1386523

В учебниках про БД постоянно пишут про 58 видов геев 6-7 различных нормальных форм, эта нудятина имеет смысл и отношение к базам данных или её можно спокойно пропускать?

Ответы386562386761

389 22 апр, 13:42 389 1386562

>>1386523
Когда уже дойдёшь до такого уровня, что начнёшь смотреть план выполнения запросов - тебе может потребоваться какая-нибудь N'ная нормальная форма.

А пока, раз у тебя, грубо говоря, 10 тысяч строк в таблицах, на твоём уровне достаточно было бы оставить правило "не увеличивай число столбиков без крайней на то необходимости" - вот тебе и подходящая нормальная форма.

Алсо, было же у Андрея Орлова правило "не храни артикул товара в виде 12-значной строки, а храни его в виде целочисленного ключа" - вот тебе и подходящая нормальная форма.

Или старое правило "не храни номера телефонов ни с кодом города ни тем более через точку с запятой" - вот тебе и подходящая нормальная форма.

Как мог, объяснил.

Ответы386901

390 22 апр, 18:25 390 1386761

>>1386523
конечно не имеет отношения никакого. это ж учебники по базочкам. нахуя там что-то писать полезное?

391 22 апр, 21:20 391 1386901

>>1386562
>Как мог, объяснил.
А объясни пожалуйста джуну, как нормальные формы влияют на план запроса?

Ответы387130

392 23 апр, 07:54 392 1387130

>>1386901
прямо никак. но от дизайна базы уровня /b/ можно посадить перфоманс таже двуколоночной таблицы. думаю, он это имел ввиду

393 23 апр, 17:18 393 1387375

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

Сам я когда-то запомнил совет читать учебник по ссылке ( http://www.sql.ru/docs/sql/u_sql/ ), но к восьмой главе у меня уже на полном серьёзе от качества перевода начинает болеть голова и создаётся впечатление, что меня поразил инсульт, по причине чего у меня пропала способность воспринимать текст.

Попутно я решаю задачи на http://www.sql-ex.ru , изредка пользуясь справкой, но по беглому её просмотру я посчитал, что она - прямое руководство по использованию языка, без каких-то теоретических сведений.

Может есть какие-то более приемлемые альтернативы?

Ответы387376

394 23 апр, 17:20 394 1387376

>>1387375
Какие именно области применения SQL ты пытаешься разобрать с помощью учебника? Сформулируй вопросы.

Ответы387382

395 23 апр, 17:26 395 1387382

>>1387376
Ну, судя по тому, что вопросы мне в голову не приходят, то просить нужно что-то обобщённое, что позволило бы сформировать представление о языке?

Мне он нужен в дополнение к Java, то есть в сущности, насколько я понимаю, мне только и придётся, что писать запросы. Но хотелось бы охватить хотя бы поверхностно общие положения реляционных баз данных и всё такое.

Ответы387398

396 23 апр, 17:52 396 1387398

>>1387382
Пока ты не поймёшь, что именно тебе нужно, и не сформулируешь вопросы, нет смысла заниматься разбором ответов. Что-то обобщённое в википедии написано.

397 24 апр, 15:04 397 1387802

>>1312894 (OP)
Помогите с литературой. Нужна книга объем не важен где рассказывается о базах данных в целом, для получения общей базы нихуя каламбур, а потом более подробно рассматриваются распределённые БД. Если такая литература существует конечно

Ответы387807393839

398 24 апр, 15:14 398 1387807

>>1387802
>Помогите с литературой. Нужна книга объем не важен где рассказывается о базах данных в целом, для получения общей базы нихуя каламбур, а потом более подробно рассматриваются распределённые БД. Если такая литература существует конечно

http://tc.kpi.ua/content/lib/vvedenie_v_sistemy_baz_dannyh_8izdanie.pdf

Ответы387815387884

399 24 апр, 15:29 399 1387815

>>1387807
благодарю

400 24 апр, 17:45 400 1387876

>>1372462
С хранилищами понятно. Там Apache Spark и прочая хуйня.

Но ведь тот же OLTP живет на MS SQL/Oracle/PostgreSQL разве нет в Ынтерпрайзе? мы сейчас не про залупные конторы из трех человек которые сайты на mysql пердолят.

Сменил три банка: обычно кроме MS SQL/Oracle ничего не видел.

Ответы389540

401 24 апр, 17:54 401 1387884

>>1387807
2005 года книга, найс. Ты бы ещё прошлого века сочинение принёс.

Ответы388013

402 24 апр, 20:57 402 1388013

>>1387884
>имплинг с 2005 года что-то изменилость

Ответы388089

403 24 апр, 22:30 403 1388089

>>1388013
>имплаинг что за 15 лет ничего не поменялось
>найс специалисты собрались итт

Ответы388274

404 25 апр, 09:41 404 1388274

>>1388089
реляционная теория не поменялась с 70х годов, дурачек
каких "современных" основ о БД ты хотел?

Ответы388296388308389558

405 25 апр, 10:11 405 1388296

>>1388274
мамку ебал

406 25 апр, 10:31 406 1388308

>>1388274

так и nosql это древнейшие файловые бд

Ответы388349

407 25 апр, 11:36 407 1388349

>>1388308
вопрос был об основах, ты всегда матешу с интегрирования изучать начинаешь?

Ответы388357388370

408 25 апр, 12:05 408 1388357

>>1388349
Да, а что?

409 25 апр, 12:26 409 1388370

>>1388349
В 21 веке изучение математики начинают с гомологической алгебры, быдло.

Ответы388463

410 25 апр, 15:07 410 1388463

>>1388370
>гомологической алгебры
Уноси своё старьё обратно, быдло.
Я начал с изучения вычислимых нумерованных множеств и построения функторов с преобразованием в категорию конструктивных моделей с обязательным семейством фридберговых вычислимых нумераций. Кстати, наиболее рациональный способ для получения конструктивной модели с фиксированной авторазмерностью.
И не прогадал.

411 25 апр, 15:40 411 1388482

ебасосов полон тред

Ответы388537

412 25 апр, 17:22 412 1388537

>>1388482
>я ничего не понял в треде
>ряяяя ебасосы

413 25 апр, 17:43 413 1388557

Перекатываю сюда вопрос из c++ треда.

Кто-нибудь может пояснить за надежность хранения данных в текстовом документе (txt)?

Вот записано у меня там данных на 1кк байт, какова вероятность что информация будет считана ровно на этот 1кк байт без потерь? Или это зависит от старости моего жесткого диска? Возможны ли ошибки и как их устранять, есть что почитать (статьи/книги/видосы)?

Ответы388573

414 25 апр, 18:00 414 1388573

>>1388557
>надежность хранения данных
Определяется исключительно надёжностью хранения данных как таковых, формат не имеет значения. Если ты пишешь логи, то храни их хоть в txt, разницы нет, но запросы к ним ты писать уже не сможешь.
я скозал

415 27 апр, 01:28 415 1389540

>>1387876
>Сменил три банка: обычно кроме MS SQL/Oracle ничего не видел.
ну сами базы понятно, они никуда не денутся

я говорил, что сейчас логика над базами делается в ORM - в самом джава приложении, а не в процедурном языке базы. Такой тренд, туда идёт. Можно много плача про это почитать на том же скуль.ру. При таком раскладе "разработчики баз данных олтп" нахуй не нужны.

Сам был в десяти банках. Видел эти олтп. ЦФТ на диасофте стоит с окошками на делфях сверху и диды это поддерживают сидят. Нет там развития. И рынка особо нет (мне так кажется)

А в хоронилищах что-то развивается.

Ответы391439391740

416 27 апр, 02:51 416 1389558

>>1388274
Ну хотя бы начиная с C-Store.

417 27 апр, 12:48 417 1389734

Добрый день, господа датабэйз инженеры
Тут по Ораклу вопрос тупой есть.
Поставил 18c XE и sqldeveloper. Как подключаться к ДБ как моя собственная схема из dba_users? Например, SCH_TEST с каким-то паролем. Или это вообще не про это? Тогда как создавать объекты бд так, чтобы они по умолчанию принадлежали схеме, а не писать постоянно create table schemaname.objectname.

Похоже, я гуглю как-то неправильно, но нихрена найти не удалось.
Для stackoverflow считаю вопрос туповатым. Помоги, анон.

Ответы389753

418 27 апр, 13:35 418 1389753

>>1389734
Когда создаёшь объекты без схемы, они всегда создаются в текущей схеме - по умолчанию это схема твоего пользователя под которым ты логинишься в бд. Текущую схему для сессии можно поменять через ALTER SESSION SET CURRENT_SCHEMA=...

Ответы389857

419 27 апр, 15:26 419 1389857

>>1389753
Понял. Спс. Находил уже этот alter в ответах на форуме ораклов, но думал, что есть вариант получше.
Потыкал интерфейс логина. Оказалось, другие настройки неправильно выставлял, а логин и пароль схемы рабочие были.

9 Кб, 634x408
420 27 апр, 20:38 420 1390141

Как подобную базу данных сделать? Накидайте хотя бы ключевых слов для гугления, я в БД вообще нихуя не шарю.

Ответы390165390174390214

13 Кб, 721x213
421 27 апр, 21:00 421 1390165

>>1390141
Пока сделал так: Каждое ФИО это отдельная таблица, где два поля - Дата и Время. Для каждой даты можно будет использовать несколько значений времени.
Но мне кажется можно сделать не так дебильно, как у меня.

Ответы390171392390

422 27 апр, 21:07 422 1390171

>>1390165
Попробуй погуглить в сторону графовых баз данных. Или же тебе нужно гуглить в сторону связей между сущностями, а может тебе просто нужно почитать про иерархические sql запросы.

Ответы390192

423 27 апр, 21:23 423 1390174

>>1390141
Ты лучше словами объясни, что тебе нужно сделать. Потому что как ты нарисовал - достаточно одной таблицы с логическим ключом (id, timestamp), где id относится к конкретному человеку, а timestamp - время какого-то события.

Ответы390192

424 27 апр, 21:26 424 1390177

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

Пока что думаю запилить микросервис который будет складывать ордера в кластер редиса и клиенты через апи будут в этот кластер стучаться, но возникает проблема консистентности типа ордер всегда должен быть наиппоследним
1) приходит ордер во время T1, я начинаю класть его в редис
2) в это же время в другом потоке пришел ордер во время T2 (более актуальный) и я его тоже положил в редис раньше T1
3) ордер T1 положился в редис и перезаписал собой Т2

То есть у меня теперь в редисе неактуальное состояние ордербука, как такое разрулить можно? Можно ли в редисе как-то денаить запись если в записи таймстемп раньше уже записанного?

Ответы392386

425 27 апр, 21:57 425 1390192

>>1390171
>>1390174
У меня приложение учета рабочего времени. Нужно на сервер с БД отсылать ФИО человека, дату и время его входа/выхода с работы. Посему нужна БД, в которой на одного человека приходится много Дат, а на каждую дату по два времени.

Ответы390214

426 27 апр, 22:20 426 1390214

>>1390192
В таком случае ты какую хуету нарисовал выше >>1390141 в виде дерева.

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

Name | Time In | Time Out

Либо если вы имена где-то храните, то имя у тебя будет ключом к базе имён. Всё.

Ответы390222

427 27 апр, 22:28 427 1390222

>>1390214
>Name | Time In | Time Out
Как в этом случае добавлять в Time In и Time Out несколько записей, где тип данных DateTime?

Ответы390228390229390235

428 27 апр, 22:40 428 1390228

>>1390222
Зачем добавлять несколько записей? Новая запись -> новая строчка. Либо можешь проверять, есть ли запись Time In, тогда писать в Time Out, а если нет, то делать новую строчку.

429 27 апр, 22:46 429 1390229

>>1390222
Ещё можешь делать так:
Name | DateTime | EntryType

430 27 апр, 22:55 430 1390235

>>1390222
Алсо, я так понимаю, с тебя потом спросят какие-то отчёты по посещаемости. Сразу прикинь, как ты будешь их строить с той схемой, которую ты делаешь. А то потом окажется, что ты всё пишешь, а сбор отчёта можно было бы делать намного проще. И спрашивать отчёты с тебя будут скорее всего как раз в формате пиво таблички какой-нибудь, из разряда кто опоздал, кто задержался и сколько времени за какой период переработал и не доработал. Так что сразу понимай, как ты будешь такой отчёт делать.

Ответы390246

431 27 апр, 23:13 431 1390246

>>1390235
У меня в этом плане свобода действий, ты бы как посоветовал отчеты делать? Пока планирую запилить скрипт, который будет из БД записывать в эксель за каждый день опоздания, переработки и уже в экселе считать сводную таблицу за отчетный период. БД Access дружит с экселем?

Ответы390324

432 28 апр, 00:29 432 1390324

>>1390246
>ты бы как посоветовал отчеты делать
Хз как бы я сделал. Здесь надо ещё учесть несколько нюансов, например:

a) выходят твои сотрудники наружу или нет во время перерывов, и куда ты будешь это писать. По идее нужно записывать каждый выход и отнимать время отсутствия.

b) имеет ли для руководства значение каждый день (допустим, чтобы ни в коем случае сотрудник не работал меньше 8 часов суммарно за день) или важно считать только сумму часов за отчётный период (полмесяца или что там у вас). Если важно считать за каждый день, то надо чекать каждый день и ставить флажок и там отдельно считать пропущенные часы за каждый день, допустим.

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

Access дружит с Экселем, разумеется, но тебе нужно будет всё равно экспортом заниматься.

Ну ты понел в общем, что тебе самому надо посидеть и составить на примере тестовых данных, как это будет выглядеть у тебя в конечном итоге.

27 Кб, 700x500
433 28 апр, 13:25 433 1390526

Базач, снова тупой вопрос. Почему неактивны объекты, не могу из этого окна создавать пакеты и таблицы?

Ответы391148

Инженеры тут? 434 28 апр, 17:11 434 1391007

Какие базовые метрики с постгреса можно поснимать для общего развития?
На что обратить внимание?
Что можно мониторить не устанавливая доп софт?

435 28 апр, 19:35 435 1391148

>>1390526
Очевидные права очевидны.

Ответы391284

436 28 апр, 23:54 436 1391284

>>1391148
Права схемы или от кого запускаю прогу?
В открытом соединении в списке объектов базы могу всё создавать спокойно. Но что-то я тогда не понимаю зачем вообще эта кнопка "new" нужна.

437 28 апр, 23:59 437 1391286

Снова я и снова с Oracle. Почему APEX_WORKSPCE_ACTIVITY_LOG может не существовать? APEX 19, база 18 XE. _ACCESS_LOG и _SESSIONS есть тем временем. Арех свеже установленный. Название в новой версии поменяли? Как из SQL тянуть логи посещений страниц по юзерам? Нужно знать, сколько раз кто на какой странице был за текущую сессию. В мониторинге админском это можно посмотреть, но никто ж там не рассказывает, как именно эти вьюхи и таблицы называются. Собсна, нагуглить тоже не смог ничего. Может, мне логирование где-то включить надо или что или как?

438 29 апр, 11:20 438 1391439

>>1389540
>логика над базами делается в ORM
>"разработчики баз данных олтп" нахуй не нужны

Это да, этого и боюсь ввиду того что кроме PL/SQL не знаю нихуя. Надо перекатываться в Java + Oracle иначе посадят меня в петушиный угол к аналитикам бизнес-показатели считать

Ответы391759391768

439 29 апр, 19:59 439 1391740

>>1389540
>я говорил, что сейчас логика над базами делается в ORM - в самом джава приложении, а не в процедурном языке базы
Попытайся создать что-нибудь сложнее круда.
Попытайся создать собственную CMS или приложение, которое обрабатывает больше терабайта данных. И не смеши, пожалуйста, местных обитателей.

Ответы391758

440 29 апр, 20:17 440 1391758

>>1391740
>Попытайся создать что-нибудь сложнее круда.
нахуй ты мне это пишешь то
я знаю, что орм говно, но это раскладов на рынке не изменит

какое у тебя в банке приложение, которое "обрабатывает больше терабайта данных". что ты несешь вообще?

Ответы391766

441 29 апр, 20:18 441 1391759

>>1391439
>Надо перекатываться в Java + Oracle
если есть варик, перекатывайся в джабу конечно

это я в оракл говне 10+ лет сижу. Так бы давно туда закатился

442 29 апр, 20:23 442 1391766

>>1391758
>какое у тебя в банке приложение, которое "обрабатывает больше терабайта данных"
Ты хочешь сказать, что таких приложений нет и терабайта данных не может существовать?

Ответы391770

443 29 апр, 20:25 443 1391768

>>1391439
Да вот нет. Как минимум знаю один банк в котором работаю, логика работы которого построена на PL/SQL в большинстве случаев.

Ответы392044

444 29 апр, 20:26 444 1391770

>>1391766
Может, но не в олтп. А в олап - запросто.

Ответы391774

445 29 апр, 20:32 445 1391774

>>1391770
Как ты думаешь, какой объём данных в системах, которые считают премии считают в условном мегафоне, ты думаешь, что там ОЛАП, а бизнес логику фиксят программисты? А если речь идёт о каком-нибудь здоровом складе, где нужно минимум привязать миллион товара к полкам. Про банки я даже говорить не хочу, любая джава там по пизде пойдёт.

Ответы391775391860

446 29 апр, 20:34 446 1391775

>>1391774
Блядь.
Этим занимается хранилище в нормальных системах, а не олтп базы.

447 30 апр, 01:02 447 1391860

>>1391774
ебать клован, я работал в десяти банках из топ 10, может в двух там в самых больших абсках там и есть таблицы на терабайт, но это хистори за года разбитая по партициям, которые в олтп запросе не используются. Ты вообще знаешь, что такое олтп запрос, ёба?
он одну строку вытаскивает/апдейтит

448 30 апр, 12:34 448 1392044

>>1391768
Зелёный такой банк?

Ответы392120

449 30 апр, 15:16 449 1392120

>>1392044
Да нет, на удивление, другой банк, ажно интернациональный.

Ответы392285

450 30 апр, 21:31 450 1392285

>>1392120
Сколько тебе лет?
Расскажи о своём опыте и зарплате.
Что посоветуешь джуну, который решил найти своё призвание в БД, и даже работу пару месяцев назад нашёл?
Есть смысл пытаться вкатываться во всякие Hadoopы? Работал аналитиком?
>>1312894 (OP)
А мне тут могут объяснить, чем вообще занимается аналитик со знанием sql, но без знания датасайнс? Подобных вакансий довольно много, требований мало, а зп выше средней по ДСам.

Ответы392346

451 30 апр, 23:56 451 1392325

Антоны, помогите составить запрос, работаю в ms sql
У меня есть таблица состоящая из id, parent, date
parent - это числовое значение, оно может равняться 0, либо оно может равняется id строки, где это самое parent равно 0.
Нужно выбрать значения где parent равно 0, но отсортировать их таким образом, что сперва будут идти те, у которого большее значение date из поста, где parent равно id поста, где parent равно 0.

Ответы392335392372392385392393

452 1 мая, 00:16 452 1392335

>>1392325
Если вы не поняли, о чем я толкую, то представьте себе посты на дваче, оппост мы помечаем parent 0, а все остальные будут равны id оп-поста

453 1 мая, 00:50 453 1392346

>>1392285
> Сколько тебе лет?
> Расскажи о своём опыте и зарплате.
25 лет, работаю год, получаю больше полусотни. Но это аутсорс. Опыт - почти только SQL, остальное учу сам, в пределах работы другое не получается использовать(пока, надеюсь).
Попал скорее случайно, без знаний, пригласили на собес и там понеслась. Повезло с начальством в банке, которое ратовало за адекватную разработку, а не за быструю реализацию - стараюсь избегать быдлокода и ругаюсь, если вижу хуйню.
> Что посоветуешь джуну, который решил найти своё призвание в БД, и даже работу пару месяцев назад нашёл?
Логика. Учись писать адекватный код, разбирайся в плане запросов и не вороти хуйни, не делай лишнего. В идеале, то, что ты делаешь, должно работать максимально эффективно, без ошибок и без тормозов. Видишь, что можно что-то исправить и уверен в этом - пиши начальству, проявляй инициативу.
> Есть смысл пытаться вкатываться во всякие Hadoopы? Работал аналитиком?
А хуй его. Кто-то говорит, что хадуп - рудимент и скоро вымрет, а у меня есть инфа от коллеги, которая сменила место работы, что на ее новом месте очень ценятся разработчики хадупа. У нас они тоже есть, но про них мало чего знаю.
> А мне тут могут объяснить, чем вообще занимается аналитик со знанием sql, но без знания датасайнс? Подобных вакансий довольно много, требований мало, а зп выше средней по ДСам.
Аналитиком официально не работал, но так как обычно это люди, которые в SQL не разбираются и в оптимизацию не умеют, то приходилось выполнять работу за них.
Чем занимаются? Бизнес говорит либо "хотим такую фичу", либо "вот тут хуйня какая-то, не сходится", а аналитик должен понять имеющуюся бизнес-логику и дополнить ее или найти, где же косяк в расчете чего-нибудь и на основании своих изысканий написать документ для разработчика, что именно он должен сделать - а разработчик уже должен привести код к стандартам разработки своего отдела, учесть процессы внутри своей системы и выкатить изменения по требованиям бизнеса.
На деле выходит так, что в 80% аналитик получает формулировку от бизнеса и говорит разработчику: "бля, хуй знает, как это сделать, ты придумай, а я потом напишу доку, что именно нужно сделать для реализации требований бизнеса".
То есть на деле от аналитика требуется выпытать у бизнеса, что они таки хотят и донести до них мысль "так нельзя", если они хотят хуйню.

453 1 мая, 00:50 453 1392346

>>1392285
> Сколько тебе лет?
> Расскажи о своём опыте и зарплате.
25 лет, работаю год, получаю больше полусотни. Но это аутсорс. Опыт - почти только SQL, остальное учу сам, в пределах работы другое не получается использовать(пока, надеюсь).
Попал скорее случайно, без знаний, пригласили на собес и там понеслась. Повезло с начальством в банке, которое ратовало за адекватную разработку, а не за быструю реализацию - стараюсь избегать быдлокода и ругаюсь, если вижу хуйню.
> Что посоветуешь джуну, который решил найти своё призвание в БД, и даже работу пару месяцев назад нашёл?
Логика. Учись писать адекватный код, разбирайся в плане запросов и не вороти хуйни, не делай лишнего. В идеале, то, что ты делаешь, должно работать максимально эффективно, без ошибок и без тормозов. Видишь, что можно что-то исправить и уверен в этом - пиши начальству, проявляй инициативу.
> Есть смысл пытаться вкатываться во всякие Hadoopы? Работал аналитиком?
А хуй его. Кто-то говорит, что хадуп - рудимент и скоро вымрет, а у меня есть инфа от коллеги, которая сменила место работы, что на ее новом месте очень ценятся разработчики хадупа. У нас они тоже есть, но про них мало чего знаю.
> А мне тут могут объяснить, чем вообще занимается аналитик со знанием sql, но без знания датасайнс? Подобных вакансий довольно много, требований мало, а зп выше средней по ДСам.
Аналитиком официально не работал, но так как обычно это люди, которые в SQL не разбираются и в оптимизацию не умеют, то приходилось выполнять работу за них.
Чем занимаются? Бизнес говорит либо "хотим такую фичу", либо "вот тут хуйня какая-то, не сходится", а аналитик должен понять имеющуюся бизнес-логику и дополнить ее или найти, где же косяк в расчете чего-нибудь и на основании своих изысканий написать документ для разработчика, что именно он должен сделать - а разработчик уже должен привести код к стандартам разработки своего отдела, учесть процессы внутри своей системы и выкатить изменения по требованиям бизнеса.
На деле выходит так, что в 80% аналитик получает формулировку от бизнеса и говорит разработчику: "бля, хуй знает, как это сделать, ты придумай, а я потом напишу доку, что именно нужно сделать для реализации требований бизнеса".
То есть на деле от аналитика требуется выпытать у бизнеса, что они таки хотят и донести до них мысль "так нельзя", если они хотят хуйню.

Показать весь текст
Ответы392371

454 1 мая, 02:41 454 1392371

>>1392346
>получаю больше полусотни
Мб больше сотни?
Ты в ДС живешь?

Ответы392481

455 1 мая, 02:45 455 1392372

>>1392325
Дай пример таблицы с данными

456 1 мая, 03:27 456 1392385

>>1392325
Гугли рекурсию в скл

457 1 мая, 03:30 457 1392386

>>1390177
Зачем тебе редис?
Мб еще раббит эм кью и докер собираешься использовать?
Вот ха каких хуем редис, блжад, тут нужен, ума не приложу?

458 1 мая, 03:36 458 1392390

>>1390165
Это вообще дичь, какие нахуй таблички по именам? Ты что делать будешь, когда у тебя новые пользователи будут появляться? А что будешь делать, если у тебя 10 ивановых инва иванычей будет?

Тебе нужно
1. Справочник пользователей, d_user (id, first_name, last_name...), id=1, name = Иван
2. Справочник с типами действий пользователей, d_action (id, name) id=1, name = вход; id=2, name = выход
2. Таблица с фактами входа-выхода, t_user_action
(user_id, action_id, create_date)
И пиши в нее все свои события.

Не делай никогда таблички на основе какого-то частного говна, это никогда работать не будет.

459 1 мая, 03:39 459 1392393

>>1392325
Если не юзаешь говно типа mysql, который в 2к19 не умеет в сте, тогда так:
with cte as (
Select id, parent, date
From t_data t
Where t.parent=0
Union all
Select c.id, c.name, c.date
From cte c
INner join t_data p on c.parent=p.id
)
Select
*
From cte
Order by...
Сортировку сам напиши, ни хуя из твоего поста не понял.

460 1 мая, 12:28 460 1392481

>>1392371
Больше сотни - это если бы я жил в ДС и работал на этой же вакансии в московском офисе.
Я же говорю - это аутсорс, мухосрань, потому меньше, но я более чем доволен таким раскладом.

Ответы392483

461 1 мая, 12:29 461 1392483

>>1392481
>если бы я жил в ДС
Немного не по тематике, просто интересно, что тебя держит в мухосране?

Ответы392488

462 1 мая, 12:44 462 1392488

>>1392483
Да хуй его знает.
Ну, точнее, знаю. Лояльность к локальным начальству и коллегам, тян, планы. А так же осознание того, что очень много нужно будет поменять, устраиваться на новом месте и все такое.
Я сижу на жопе ровно, потому что мне нравится и меня все устраивает, поднимать свои madskillz я без проблем могу и тут.

Ответы393307

463 1 мая, 13:43 463 1392519

сук за год опыта больше полусотни
это пиздец как ахуенно для провинции

464 2 мая, 03:07 464 1392880

Допустим есть коллекция в монге. В каждом документе этой коллекции есть поле (список) с idшниками, которые указывают на документы из другой коллекции. Можно сделать что-то типа join? Или только на стороне приложения уже? Ну, т.е, сделать потом еще один запрос к нужной коллекции по этим idшникам.

Храню список idшников из-за того, что если бы вкладывал, был бы пиздецкий размер у каждого документа

Ответы393290

465 2 мая, 10:54 465 1392922

В каких системах лучше бзать связи между таблицами, в ОЛТП или ОЛАП? И почему?

Ответы393307

466 2 мая, 11:59 466 1392932

У кого тут есть опыт работы с Apache Cassandra? Есть ещё какие-нибудь бесплатные курсы помимо datastax?

467 3 мая, 09:13 467 1393290

>>1392880
вся суть монгоебов - дропнуть реляционное хранилище потому, что зашквар, и пытаться реляционно долбиться в монге

Ответы393404

468 3 мая, 10:09 468 1393307

>>1392922
Что это за вопрос, вообще?
Для того, чтобы был олап, тебе потребуется откуда-то его наполнять. Это скорее всего будет олтп. Олтп используют для систем всяких, которые какие-то ОПИСЫВАЕМЫЕ процессы автоматизируют.
Олап используют там, где заранее неизвестно, какие данные нужно смотреть и в каких разрезах. Ты вот конкретно с какой целью интересуешься?
>>1392488
Я бы хотел, чтобы все умные люди приехали в Москву однажды, оставив в мухосранях ни хуя, чтобы местечковые царьки наконец-то поняли, что у них все прогнило, и народ голосует уже ногами, съебывая в ДС.

Ответы393377

469 3 мая, 12:54 469 1393377

>>1393307
>Что это за вопрос, вообще?
Ты, наверное, его не понял.
Есть связи между таблицами, которые через primary key реализуются.
Зачем их использовать? Где их чаще использовать? Может лучше использовать exists? Как они влияют на оптимизацию?

470 3 мая, 14:00 470 1393404

>>1393290
Да я бы не сказал, что я монгоёб. Просто решил попробовать что-то новое

Ответы393450

471 3 мая, 15:45 471 1393450

>>1393404
чесгря меня останавливает исключительно непонимание применимости ДСУБД, чтобы нырнуть в монгу или иже с ней
а то так и получаются дурачки на конфах, задающие вопросы типа "я тут выкинул мускуль, засунул все в монгу и вообще никаких проблем не знаю"

472 4 мая, 15:52 472 1393839

Сап аноны, это опять я >>1387802. Читая книгу понял, что нужно выполнять примеры на какой-то конкретной СУБД, но до этого имел дело только с sqllite, но прочитал что в серьёзных проектах она особо не используется, скорее для мобилок и локальных БД. Посоветуйте какую-то широкоиспользуемую СУБД которую можно осваивать паралельно с чтением книги. MySQL подойдет для такой цели, или сейчас уже что-то другое используют?

Ответы393905394000406016

473 4 мая, 17:55 473 1393905

>>1393839
>Посоветуйте какую-то широкоиспользуемую СУБД которую можно осваивать паралельно с чтением книги.
Очень часто СУБД привязывается к ЯП. И сложности бизнес логики
Если учишь C#, то это книга по MS SQL, если PHP, то MySQL Java- Oracle.
Книги нагуглишь сам, но для начинающих, независимо от СУБД, очень хорошо заходит книга по t-sql Инцыка Бен-Гана.

Ответы394072

474 4 мая, 20:01 474 1394000

>>1393839
>Посоветуйте какую-то широкоиспользуемую СУБД
у каждой субд есть область применения, где она чаще используется
в энторпрайзе - банки, телекомы, хуйомы - используется чаще Oracle, MS SQL
в инторнетах используется чаще бесплатное говно MySQL, PostgreSQL, например, в компании майлсру

Роль вида "разработчик БД" чаще бывает в энторпрайзе. Все эти СУБД, включая оракл и мс скл можно официально скачать с интернетов и задрочвать до бесконечности.

Ответы394072394362

475 4 мая, 21:33 475 1394072

>>1393905
Вообще С++, но тут есть поддержка любого СУБД. Наверное остановлюсь на MySQL потому-что гайдов много, за ответы >>1394000 >>1393905 спасибо

476 5 мая, 09:19 476 1394362

>>1394000
> MySQL, PostgreSQL, например, в компании майлсру

Ебанько, что ты несёшь? У них своя субд уже хуй знает сколько лет.

Ответы394585395143

477 5 мая, 18:39 477 1394585

>>1394362
Т А Р А Н Т У Л
А
Р
А
Н
Т
У
Л

Штоле? Так это только в некоторых отделах.

Ответы394586394742

478 5 мая, 18:42 478 1394586

>>1394585
Нихуч сколько тебе пришлось гуглить, что мэил ру юзает вместо постгре и мускула.

они тарантул еще и в мире стараются активно продвигать и кто-то даже переходит на него

Ответы394622

479 5 мая, 20:15 479 1394622

>>1394586
>сколько тебе пришлось гуглить
Мне гуглить не нужно было, у меня товарищ там работает, так что инфа от инсайдера: нихуя у них тарантул не используется во внутренних проектах, только в некоторых, но даже не во всех основных А так то там обычные PostgreSQL, MySQL и MongoDB https://mcs.mail.ru/databases/

480 6 мая, 09:36 480 1394742

>>1394585
тарантул не очень-то и база данных (даже по словам лида разработки)

481 7 мая, 13:09 481 1395143

>>1394362
>Ебанько, что ты несёшь?
ебанько твой дед

тарантул не используют вместо постгре, он как кэш для постгре используется, педивикию посмотри хоть

это вообще не альтернатива реляционным субд

был на трех собесах, про тарантул не слуху не духу

вообще это говно они 3+ лет назад пушили. Сейчас не слышно. До разработок яндекса, типа кликхауса, которые в каждом углу стоят в индустрии - им как до китая раком.

Ответы395325

482 7 мая, 18:24 482 1395325

>>1395143
Всё с тобой понятно, ты хуже, чем ебанько. Иди в 4 контору, где не юзают тарантул таких контор ещё дохуя, если что

Ответы395396

483 7 мая, 20:54 483 1395396

>>1395325
>Иди в 4 контору, где не юзают тарантул таких контор ещё дохуя, если что
трех собесах в мейлру, дебилоид

Ответы395403

484 7 мая, 21:00 484 1395403

>>1395396
Хуя ты упёртый, хаха, три захода в гавань мэил.сру. Ебать ты одаренная дитя лол. Бог любит троицу?)) так сильно хотелось выёбываться в офисе тарантул нинужно яскохал ряяяяя. Дитя, ебать ты потешное.

Ответы395404

485 7 мая, 21:05 485 1395404

>>1395403
>тарантул нинужно яскохал ряяяяя
ну иди, расскажи им, как тарантул вместо постгре используют

посмотрим на результаты

Ответы395465

486 8 мая, 00:34 486 1395465

>>1395404
Это пойди ты в 4й раз им расскажи, хахахахха

59 Кб, 675x622
487 9 мая, 16:48 487 1396447

Не могу запустить сервак на Postgres, что не так?

Ответы396454396467396501

14 Кб, 989x519
488 9 мая, 16:53 488 1396454

>>1396447
Добавка

Ответы396501

489 9 мая, 17:17 489 1396467

>>1396447
попробуй 127.0.0.1 вместо локалхост

Ответы396468

490 9 мая, 17:21 490 1396468

>>1396467
пробовал

491 9 мая, 18:24 491 1396501

>>1396447
>>1396454

Пароль неправильный вводишь, лалка

Ответы396566

492 9 мая, 21:27 492 1396566

>>1396501
двачую кек
ещё поди раскладку не ту включил просто и корячит

493 10 мая, 15:10 493 1396952

>>1312894 (OP)
Какая сейчас роль реляционных БД? На сколько профитно залезать туда прямо сейчас? Кто быстрее вымрет, вы или сис. админы?

Ответы396959

494 10 мая, 15:18 494 1396959

>>1396952
> роль реляционных БД
ACID-транзакции. как только NoSQL сможет в них, так и умрет

Ответы396961

495 10 мая, 15:20 495 1396961

>>1396959
>как только NoSQL сможет в них
А что он не может? Там транзакций нет?

Ответы396964

496 10 мая, 15:21 496 1396964

>>1396961
не ACID. тем более, у распределенных баз их нет принципиально

Ответы396966

497 10 мая, 15:23 497 1396966

>>1396964
пизжу, Aerospike, Mongo, CouchDb поддерживают асид. ну, осталось подождать пока они вытеснят оставшиеся СУБД (до, приблизительно, никогда), и можно ливать из DBA

Ответы396967

498 10 мая, 15:24 498 1396967

>>1396966
>DBA
А куда ливать из DBD?

Ответы396969

499 10 мая, 15:25 499 1396969

>>1396967
сразу в гей-шлюхи, чтоб наверняка

500 10 мая, 19:53 500 1397167

>>1312894 (OP)
Хоть бы FAQ со списком литературы сделали у меня лапки

Ответы397188397376

501 10 мая, 20:32 501 1397188

>>1397167
>у меня лапки
И как это тебя останавливает?

Ответы402506

21 Кб, 700x337
502 10 мая, 23:11 502 1397256

Помогите решить задачу по SQL нубу.

Ответы397266

503 10 мая, 23:25 503 1397266

>>1397256
Если Х - первичный ключ, а в джоине идёт условие, что a.x is null, то, логично предположить, что запрос вернёт 0 строк.

Ответы397584

504 11 мая, 07:47 504 1397376

>>1397167
Пидор ленивый, ты тредик не попутал?
Если ты дошёл до бд, то гуглить уже научился, справишься сам!
Иногда аноны упоминают название годных книг

Ответы397631

505 11 мая, 14:39 505 1397584

>>1397266
Ну да. Ты не увидел, что это левый джойн? Это условие не выполнится ни для одной строчки для таблицы справа - значит, там будут наллы в присоединенной таблицы, но в выборку попадут все строки из tbl a.
После группировки по полю первичного ключа все строки удовлетворят условию count(*) < 11.
Запрос вернёт все строки из таблицы, а их пять.

Ответы397595397600

506 11 мая, 15:12 506 1397595

>>1397584
>Ты не увидел, что это левый джойн? Э
Он джойнит её с собой.
Это аналогично
from tbl a
left join tbl b
on a.x =b.x
where a.x is null
a.x - левая таблица, каким образом там будут nullы?

Ответы397618

507 11 мая, 15:18 507 1397600

>>1397584
>Это условие не выполнится ни для одной строчки для таблицы справа
Там условие на левую таблицу.

Ответы397618

508 11 мая, 15:40 508 1397618

>>1397600
>>1397595
Господа, покурите, пожалуйста, внешние джойны.
> >Ты не увидел, что это левый джойн? Э
> Он джойнит её с собой.
> Это аналогично
> from tbl a
> left join tbl b
> on a.x =b.x
> AND a.x is null
> a.x - левая таблица, каким образом там будут nullы?
Условие на левую таблицу в соединении, а не в where.
Вы где SQL учили?

Ответы397620

509 11 мая, 15:41 509 1397620

>>1397618
>Вы где SQL учили?
Да, ты прав. Я ошибся.

510 11 мая, 15:59 510 1397631

>>1397376
Я могу только вспомнить про 3-6 нормальных форм да книгу Ульмана. Про NoSQL вообще нихуя не знаю.

190 Кб, 1058x760
511 12 мая, 20:02 511 1398556

В проектировании, обслуживании и настройке БД есть удаленка или фриланс? Или офис единственный удел?

ссычевавшийся студент с хорошим знанием матана, вкатываюсь в проектирование реляционных БД

Ответы398616

512 12 мая, 20:56 512 1398616

>>1398556
есть, но мало
даже сильно мало

Ответы398618

513 12 мая, 20:57 513 1398618

>>1398616
>есть, но мало

В СНГ или в целом ?

Ответы398641

514 12 мая, 21:38 514 1398641

>>1398618
в целом
на СНГ вообще не стоит ориентироваться
не принято там на удаленке нормальные бабки платить

515 15 мая, 21:42 515 1400813

Сап програмач. В общем суть такова:
Есть у меня таблица, которая состоит из ключа и 9 других атрибутов. Так вот, как мне запилить проверку ограничение, триггер, хз на то, чтобы только один из этих девяти атрибутов был ненулевым? Ну то есть вот кортеж, ключ ясен хуй, один из 9 атрибутов чем-то забит, остальные пусты. И так каждая запись в таблице.

Ответы400996

516 16 мая, 04:26 516 1400954

>>1312894 (OP)
Господа, перепиливаю под себя программу с кучей (около сотни) SQL команд (выборка, добавление, удаление), к ней идет БД формата СУБД MS Access, в ней я меняю почти все наименования (таблицы, столбцы) неизменной остается структура и впринципе логика. Скажем был склад овощей, делаю склад фруктов.

Так вот, нет ли инструмента/способа автоматом переделать эти запросы под уже новую БД, то есть прописать там что "название овоща" меняем на "название фрукта" и тд, а оно бы уже зная сие в запросах где нужно заменило бы что нужно ? Вручную это пиздос, пробовал через замену, но по всей видимости где - то заменяется не то что нужно или не дозаменяется и все идет по пизде. Может я аутист и средствами того же Access это можно сделать ? Т.е импортировать запросы из проги, поменять в БД что надо, как - то поменять запросы, экспортировать в прогу...

Ответы400964

517 16 мая, 05:04 517 1400964

>>1400954
>Может я аутист
Таки скорее всего, но все же
>средствами того же Access это можно сделать ? Т.е импортировать запросы из проги, поменять в БД что надо, как - то поменять запросы, экспортировать в прогу
Это в мою головушку пока я писал пост как - то же пришло. Чекнул режим SQL в Access и вауля, он сам меняет в запросах при изменениях БД. Заебись, надеюсь синтаксис общения OLEDB такой же как внутри СУБД, тогда можно считать что моя задача решена.

518 16 мая, 09:03 518 1400996

>>1400813
я делаю так:
%function_name% (
(CASE table.A IS NULL THEN 0 ELSE 1 END) +
(CASE table.B IS NULL THEN 0 ELSE 1 END) +
...
) = 1
этот case замени на более удачную функцию под твою СУБД

можно заебенить как CHECK CONSTRAINT для твой таблицы, если наличие больше одного ненулла недопустимо

519 16 мая, 13:58 519 1401116

Как реализовать загрузку новых данных не дропая старые и обновляя изменения средствами SSIS? Сейчас работает на MERGE, но не знаю насколько правильно скриптом это делать, если инструментарий визуальный есть, где можно лампово на циферки смотреть.

Ответы405134

520 16 мая, 15:04 520 1401148

Хочу разобраться с постгрескьюл, поставил 11ую, а у меня на компе уже стоит 9.5, которая, походу, используется какими-то приложениями - не ебу какими. Вся проблема, что когда я вызываю инструменты постгре из под командной строки у меня постоянно лезет ошибка о неправильном пароле, хотя в пгадмин, например, с этим паролем залазит спокойно. Что делать то в итоге? Как переназначить вызов программ в консоли со старой версии на новую? Или как отследить приложения которые работают со старой версией - может они мне вообще не нужны?

521 18 мая, 14:01 521 1402441

Сап аноны помогите с пониманием связей. Почему после создания не идентифицирующей связи в дочерней таблице при добавлении записи все равно требуется указывать данные из родительской т.е. Foreign key. Просто я думал сказали в шараге, что суть неидентифицирующей связи в том, что в дочерней таблице могут быть записи без связи с родительскими, но видимо это не так.

Ответы402451

522 18 мая, 14:23 522 1402451

>>1402441
Все в точности наоборот.
У тебя есть департаменты и сотрудники.
Департамент без сотрудников может быть, а сотрудник без департамента - нет.
Кто здесь родительская запись? Правильно, департамент.

Ответы402460

523 18 мая, 14:33 523 1402460

>>1402451
То есть насколько я понял при любом типе связи, дочерняя запись обязана иметь родителя?
Просто сам пример с департаментом понятен в этом плане, но он не очень точно передает видимо только для меня суть неидентифицирующей связи. Сам Интернет говорит мне о внешнем ключе в первичном ключе (идентифицирующая) или о внешнем ключе не в первичом (неидентифицирующая), но в чем же причины использования этих типов?

Ответы402488

524 18 мая, 15:35 524 1402488

>>1402460
Ну, я дохуя умный и не совсем верно тебя понял.
Скорее всего речь о тех внешних ключах, которые позволяют однозначно определить дочернюю запись(связь один к одному) или нет(один ко многим).
Например: есть таблица договоров, карточных счетов и таблица связи между ними.
В таблице связи ссылка на таблицу договоров - неидентифицирующий внешний ключ, потому что ты на один договор может быть несколько карточных счетов(один ко многим). То есть ты не можешь однозначно идентифицировать запись в таблице связей только по договору, т.е. это не уникальный ключ.
А вот карточный счёт в этой таблице, который есть ссылка на таблицу карточных счетов - это уникальный ключ таблицы, потому что один счёт не может принадлежать нескольким договорам(один к одному), то есть это тот самый идентифицирующий внешний ключ.

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

525 18 мая, 16:32 525 1402506

>>1397188
Я - кот. Мяу.

526 18 мая, 20:35 526 1402609

Вопрос тем кто хостился на амазоне.
Не могу подключиться с сайта, который там же, к базе (внутри одного инвайронмента). Во всяком случае в "client connections" не видно чтобы происходило подключение. Со своего компа с теми же настройками подключения - могу. Нужно менять security group и добавлять туда сам амазон или причина может быть в другом?

Ответы402655

240 Кб, 601x322
527 18 мая, 21:58 527 1402649

Посоветуйте материалы по доскональному изучению Баз Данных, их типов, архитектур и проблем

Ответы402831

528 18 мая, 22:14 528 1402655

>>1402609
Всё работает, отбой.
Ответ >менять security group и добавлять туда сам амазон

529 19 мая, 06:44 529 1402831

>>1402649
википедия

530 19 мая, 14:35 530 1403092

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

Ответы403287403425

531 19 мая, 16:45 531 1403287

>>1403092
джоин 3-х таблиц

Ответы403291

532 19 мая, 16:55 532 1403291

>>1403287
Да понятно ведь что джоин 3-х таблиц, но как именно он оформляется в таком случае? Я так понимаю надо вложить один джоин в другой?

Ответы403308

533 19 мая, 17:21 533 1403308

>>1403291
Ебта ну загугли как джоин 3-х таблиц делается!
Там для таких как ты и я дохуя статей про это есть.

Ответы403324

534 19 мая, 18:26 534 1403324

>>1403308
Там джоины 3-х таблиц у которых между собой прямые связи, а не вложенные джоины. Если бы все было легко так найти, я бы здесь не спрашивал.

Ответы403348

535 19 мая, 19:22 535 1403348

>>1403324
Ёпта блядь, я наблюдаю за этим и охуеваю.
Есть таблица A с полем X, есть таблица B с полем Y, есть таблица C с полями X и Y. Охуенно прямые связи, не правда ли?
Что тебе мешает представить запрос вида
select *
from a join c on a.x = c.x
join b on c.y = b.y?

536 19 мая, 20:36 536 1403425

>>1403092
select *
from ta
join tref on ta.Id = tref.AId
join tb on tb.Id = tref.BId
where ta.Govno = 1 and tb.Kek is not null

Ответы403427

537 19 мая, 20:37 537 1403427

>>1403425
сука, опять трендель не обновился

538 23 мая, 12:15 538 1405134

>>1401116
Merge - это охуенно, это всяко круче любой хуйни из SSIS, так что не еби себе мозги и оставляй, как есть.

11 Кб, 1673x221
539 24 мая, 10:48 539 1405601

Помогите, делаю курсач, хуй пойми что за ошибка
Не могу связь сделать

Ответы405608

540 24 мая, 10:57 540 1405608

>>1405601
если в trains уже есть данные, убедись, что там везде валидные company/companys.id

Ответы406010

541 25 мая, 00:19 541 1406010

>>1405608
спасибо <3

542 25 мая, 00:26 542 1406015

>>1315345
>mysql
>В чем может быть причина?
Ну, даже не знаю, что тебе и ответить.

543 25 мая, 00:29 543 1406016

>>1393839
mysql используют, только ты глотнешь говна и помыкаешь горя
эта говносисистема на хую видала половину стандарта и половину нормальных человеческих представлений о том, как что должно работать (not null констрейнты в некоторых ситуациях ведут себя так, что ты обязательно охуеешь, например).
Если не боишься - вперед.
Если хочешь по-нормальному, бери постгрес. Стоит столько же (ни хуя), но является настоящей субд.

544 25 мая, 20:56 544 1406429

Аноны, есть какойто рабочий способ настроить мультимастер под Postgres с помощью SymmetricDS?
Гуглятся только примеры для SymmetricDC pro, где это вообще делается нажатием несольких кнопок в гуи, и большой мануал от создателей, где много информации о куче концепций, но очень мало конкретики и примеров.

545 25 мая, 21:53 545 1406456

>>1312894 (OP)
ПЕРЕКОТ
https://2ch.hk/pr/res/1406455.html (М)

ПЕРЕКОТ
https://2ch.hk/pr/res/1406455.html (М)

ПЕРЕКОТ
https://2ch.hk/pr/res/1406455.html (М)

546 30 мая, 18:04 546 1409314

Я - >>1370917, снова на связи.

Братишка, ты мне снова нужен >>1370932

Есть одна должность которая маячит в банке.
Собес на следующей неделе, есть время подготовится.
Написали из требование только:

Ожидаемый опыт:
- Знания Oracle SQL, PL/SQL
- Понимание принципов разработки OLTP систем
- Умение разобраться в чужом коде
- Умение отлаживать код
- Умение работать с документами

>Знания Oracle SQL, PL/SQL
Про это расскажу думаю. Спросят поди про синтаксис, основные конструкции. Индексы, партиции, план такое говно.

>Понимание принципов разработки OLTP систем
Что тут хотят от меня? Ну индексы не вешать чтобы вставка была быстрее, ну sql аналитику не крутить на oltp базах, что еще тут рассказать?

547 2 июня, 14:54 547 1410732

>sql-ex за полгода и устраиваемся в ДС на 100 000 без задней мысли
И на какую позицию можно претендовать ? Пишем в сопроводительном письме, что я осилил все задачи на sql-ex и profit ?

Ответы414081

548 6 июня, 01:24 548 1412676

>>1362797
>Не стоит. Быстро сдегродируешь с прогера до внедренца-консультанта

С работой на Salesforce тоже ожидать деградации?

549 9 июня, 15:54 549 1414081

>>1410732
Если ты осилил все задачи оттуда, то у тебя непременно будет сертификат.
Но работодателю зачасьую интересно, умеешь ли ты решать задачки с практической точки зрения, поэтому он будет их тебе давать прямо на сбоеседовании, тут-то ты и врубишься, что ты их можешь решить без задней мысли, ведь миллион раз дрочил их на этом sql-ex.

Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 14 июня 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion