Этого треда уже нет.
Это копия, сохраненная 21 ноября 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
109 Кб, 1061x973
ЕДИНЫЙ БАЗ ДАННЫХ ТРЭД #1034303 В конец треда | Веб
И снова это неиндексированный баз данных тред!
Тут мы решаем ультраважные вопросы о том, как правильно хранить динамические атрибуты сущностей: в полях или в строках,
Рассказываем, как работаем аналитиками и мечтаем стать разработчиками,
Строим АНАЛИТИЧЕСКИЕ отчеты в экселе, выгружая по миллиону строк, а потом фильтруя,
Дружно не понимаем, ЗОЧЕМ ЖИ НУЖИН ОЛАП, ЕСЛИ И ТАК ВСЕ РАБОТАЕТ ЗАЕБИСЯ,
Ищем ошибки в аббривиатурах MDX DMX XMLA,
Доебываемся до эс - ку - элей наших же потенциальных конкурентов

>Select id from tbl_table_with_id where id = (select max(id) from tbl_table_with_id)


>ЧТО НЕ ТАК-ТО У МЕНЯ?


Удивляемся, как за знания, приобретаемые за 4 месяца на sql-ex, могут платить по 100к, и бугуртим, что ниасилили и 100к не получаем.
А так же:
Постгре или постгрес?
Май эс ку эль или мускуль?
Эс ку эль или сиквел?

В общем, это очередной баз данных тред, поехали!
#2 #1034305
Хороший тред, освятил.

120к
#3 #1034339
>>1034303 (OP)
Анон, я вот шарю SQL(джойны, груп бай все дела), использую MySQL, и думал этого достаточно для погромиста. Но вот читал ресурсы некоторые и там к знаниям этим еще приписывают всякие нормализации, оптимизации, индексы - я не ебу что это все значит. Что почитать, чтобы расширить кругозор?
#4 #1034340
>>1034339
Скл.сру, там, в принципе, уже все давно разжевано:
http://www.sql.ru/articles/mssql/03013101indexes.shtml
#5 #1034341
>>1034339
Если ты вебер, а не разраб бд, то вполне достаточно, думаю.
Разрабу бд, как раз, все что ты написал, тоже желательно изучить.
#6 #1034342
>>1034339
Нормализации.
Коротко - Википедия (того, что там написано, действительно хватит для общего кругозора и вопросов на собеседовании), длинно - К. Дж. Дейт "Введение в базы данных".
Оптимизация, индексы - тут уже конкретно по интересующим тебя СУБД. Если Oracle, то это великолепный Том Кайт. Аналогов в других СУБД я не знаю. Кто-нибудь знает.
#7 #1034784
https://m.hh.ru/vacancy/20873637

Топ вакансию вам принес. Даже интересно, сколько там платят, мне кажется заебись. Как жаль, что я не шарю ETL. А если бы и зашарил, нахуй я нужен без практического опыта работы. Похоже, мой потолок это всю жизнь писать sql-запросы.
#8 #1034835
>>1034784
Да просто почитай про средства ETL для оракл, и все. Если ты хорошо шаришь в БД и структурном подходе, то ты быстро освоишь.
#9 #1034838
>>1034835
Так и сделаю! Ща только Кайта дочитаю и буду ETL изучать специально!
7 Кб, 340x252
#10 #1034908
Oracle 11gR2
Несмотря на то, что в аналитических функциях указываются v1 и v2, значение аналитической функции считается по v2.
Что за ебанутый косяк?
От функции не зависит, с sum та же история. Поодиночке отрабатывает нормально.
#11 #1034910
>>1034908
Для большего количества строк та же история.
#12 #1034940
>>1034908
Попробуй не юзать цте, положи сначала в табличку свои рандомы, а потом уже посчитай, что хочешь.
#13 #1034946
>>1034940
Да, спасибо. В общем-то это не самое важное в жизни.
Просто тупенько как-то выходит. Я бы ещё понял, если бы в каждом столбце свой рандом высчитывался, а так совсем фигня получается.
Кстати, если сделать прямую подстановку рандома в две агрегатные функции, он вернёт другое случайное значение, но одинаковое. А если функции разные, то и рандомы разные.
8 Кб, 444x198
#14 #1035051
>>1034908
Использование хинта materialize в конструкции with заставляет отрабатывать этот вопрос так, как мне нужно. Этот хинт сохраняет результат запроса в конструкции with как временную таблицу и оперирует с ее значениями, не вызывая dbms_random в самом запросе. Жаль, что не догадался до этого сразу, только сейчас осенило.

Надеюсь, информация была кому-то полезной.
#15 #1035460
Кто круче, DBA или DBD (developer). Кому больше платят? Что перспективнее?
#16 #1035477
>>1035460
Платят одинакого зачастую.
Тут вопрос нн в том, что лучше, а в том, что интереснее.
Ну и добавлю еще, что разраб, все-таки, тоже должен уметь в администрирование.
Все вот это вот:
Фаервол-рулзы для субд,
Индексы,
Джобы
Юзеры и группы, права
Это, вроде как, дба-шная херь, но если ты, как разраб, это не умеешь, то и стоить будешь меньше.
Есть куча контор, где вообще дба, как таковой, отсутствует. Знаю, потому что сам в такой работаю.
#17 #1035484
>>1035477
Сам сколько в месяц в среднем зарабатываешь? Если не ДС, можешь не отвечать.

Насчёт знаний это понятно, конечно, я чисто по специальности интересуюсь, в моем понимании dba следит за тем, чтобы все работало, а разработчик реализует функционал
#18 #1035575
>>1035051
охуенный хинт, возьму на заметку, т.е. с ним и производительность должна подрасти, т.к. в CTE можно вынести тяжелый запрос?
#19 #1035577
>>1035051
Спасибо, а почему все-таки dbms_random.value выдает одно и то же значение? И как узнал про этот хинт?
#20 #1035590
>>1035577
Не знаю. Тонкости реализации оракла, не более. Не углублялся в вопрос. Как видишь, оракл считает, что где-то ему нужно посчитать новый рандом, а где-то воспользоваться уже просчитанным. Один хуй в реальной жизни никто не использует рандом, я тестил одну хуйнюшку и заметил случайно?
Как узнал? Хз. Один из топ используемых на работе хинтов. Не помню, что было раньше, прочитал ли я о нем где-то или пришел на эту работу и стал активно юзать.

>>1035575
Аккуратнее!
Хинт означает, что результат твоего запроса будет храниться в памяти. Если у тебя огромное количество записей, хранить его в памяти накладно. Только проебешь в производительности.
Если тебе нужно сохранить результат какого-то охуевшего запроса с охуевшим количеством строк, проще создать для него обычную временную таблицу.
#21 #1035591
>>1035577
Наверно, потому что это псевдорандом, во многих яп генератор рандомных чисел так сделан.
#22 #1035594
Сап, аноны. Пишет кун, который сейчас ходит по собеседованиям, пытаюсь примерно оценить перспективы дальнейшего развития как dbd и классифицировать проекты, предлагаемые на рынке. Пока вот такой список:
1. Банки. Это в основном отчетность и etl, зарплаты норм в ДС и ДС2. Из плюсов норм зарплата, предметная область и возможность роста.
2. Легаси-проекты, разработанные и поддерживаемые относительно крупными компаниями: системы биллинга, АБС и т.п. Возможно плюсом будет то, что заниматься придется все-таки разработкой, а не клепанием отчетиков. Из минусов - это легаси, возможно придется долго и нудно погружаться в предметку, ковыряться в говнокоде столетней давности.
3. Шаражки - все плюсы и минусы мелких компаний, проектов мало, о новых не слышал.
4. Мобильные операторы и торговые сети. Часто вижу вакансии разрабов у МТС, Мегафона, Магнита, Окей и т.д. Чем там придется заниматься? Есть предположение, что обслуживать то, что разрабатывают компании из п. 2 и отчетики как в п. 1. Подтвердите или опровергните.
5. Аутсорсеры, например Люксофт, тоже в основном легаси, но возможно есть и интересные проекты.,
Речь идет о секторе РСУБД, всевозможные nosql, key-value и прочие бд не рассматривались.
Какие перспективы видите у разработчика RDBMS?
#23 #1035613
>>1035484
Дс, 100к, с августа перекатываюсь на 120.
#24 #1035614
>>1035590
Думал, что сначала выполняется запрос CTE, а потом результат его выполнения джойнится с другими таблицами. Дело в том, что у меня есть большая вьюха где в CTE находится рекурсивный запрос, который выводит даты начала каждого месяца начиная с текущего и до месяца двумя годами ранее, затем эта CTE джойнится в нескольких запросах, объединенных через union all.В моем случае будет выигрыш от помещения CTE в память, т.к. таблица по сути маленькая, как считаетt?
#25 #1035616
>>1035614
Канеш, будет, особенно, если у тебя там рекурсия, а результат мелкий - однозначно выйграешь.
#26 #1035619
>>1035594
Я не согласен по пункту 2. Мне доводилось заниматься поддержкой OLTP-системы. Не АБС, потому что дело было не в банке, но суть та же. Скажу, что у меня на отчетиках программирование более интеллектуальное, чем там. Обобщать на всё я, разумеется, не буду.
По пункту 4, я думаю, да, везде есть своя аналитическая отчётность.
Вспомнил про телеком. Ходил как-то на собеседование от одной днищной конторы-интегратора, которая мутит проект для топ3-оператора. Начальник, который меня собеседовал, закончил мой вуз, чуть ли не со старта сказал, что готов меня взять. А потом начал рассказывать, что проект нудный и хуевый, что карьерного и личностного роста я там не дождусь и все такое прочее. Хороший мужик.
Как попадать в аутсорс-компании мне неведомо. По ораклу все вакансии, что я находил, были в российских компаниях.

Какие перспективы тебе нужны? Психологические 100к везде можно зарабатывать, если чуть-чуть постараться. А дальше я не знаю.
#27 #1035620
>>1035614
Ну да.

>>1035613
А вы тут, кстати, зарплаты в net или gross называете?
#28 #1035630
>>1035619
Перспективы метнутся на 200к+ интересуют, подозреваю, что с такой узкой специализацией сделать это не просто. Ну и хотелось бы интересной работы, чтобы было место хотя бы немного изобретательству, пока сидел в треде, как-то пришло осознание, что sql в конкретных реализациях тоже весьма интересен сам по себе, хинты, планы запросов, оптимизация вот это все, а программирование на процедурном расширении по большей части в тот же sql упирается, только с циклами и if. Возможно стоит копать в сторону ETL и дальше развиваться как архитектор хранилищ данных, хз.
#29 #1035641
>>1035630
Полагаю, что только в узкой специализации можно метнуться на 200к+. А мастер на все руки, не являющийся охуенным спецом хоть в чем-то, вряд ли кому-то нужен.
Другой вопрос, насколько высок шанс поднимать такую зп, будучи разработчиком бд, по сравнению со всеми остальными специальностями. По моим наблюдениям больше 200к зарабатывают только на руководящих должностях, причем не начальники отделов, а повыше.
Впрочем, опыта у меня немного и, возможно, я просто попадал не в те конторы.
Посмотрим.
Хочу до посинения дрочить и углубляться в БД.
#30 #1035726
>>1035620
Да господи, только даун будет говорить про зп В Гросс, нахуя это нужно, вообще?
Я лично говорю всегда только о чистяее.
#31 #1035759
>>1035726
У тебя будет 120к чистыми? Респект...
#32 #1035848
>>1035641
Плохая идея. Не будешь ты иметь там много денег.
Помимо бд советую какой-нибудь бэк-енд базис иметь, если мс скл, то сисярп (асп нет), если оракл, то ява, если май скл, то пыха.
Вот с такими знаниями ты наверняка будешь дорого стоить.
#33 #1035951
>>1035848
Может быть я и двину в эту сторону.
Но у меня нет цели быть великим программистом, я хочу быть лучшим специалистом по базам данных в России.
#34 #1036017
>>1035951
Даже лучше ОПа, пишущего такие божественные запросы, как на ОП-пике?
#35 #1036027
>>1036017
Опа надо обоссать за создание колонки, фуллскан таблицы с ее заполнением, созданием индекса, удалением строк с этой заполненной колонкой и удалением колонки вместо одного простого dml с удалением строк.
#36 #1036033
Ваш топ-ораклист на связи. Откликнулся недавно на одну вакансию, сейчас позвали. Не банк, но приличная контора, если без деанона.
Заниматься придется в том числе etl. На месте уже уточню, что конкретно будет и в каких пропорциях.
Сказали, что мои охуевшие зарплатные ожидания они не удовлетворят, но 130-140к(gross) максимум готовы дать. На 140 буду согласен, конечно, главное, чтобы это не вылилось в стандартное "давай ты сейчас да мелкий прайс повъебываешь и мы тебе через годик 140к дадим".
#37 #1036042
>>1036027
Так там же индекс, чего ты, в самом деле, быстро же все будет.
#38 #1036049
>>1036042
Там один хуй фуллскан таблицы при обновлении.
#39 #1036093
Сап.

Есть таблица, в одной из колонок которой хранятся размеры файлов в байтах.
Суть в том, что надо вытаскивать данные о том, какое количество файлов имеют размер меньше заданного, причём делается это для большого количества границ. Например, если максимальный размер 10МБ, то надо вытащить <2, <4, <6, <8, <10.
Сейчас это сделано селектом в цикле со стороны приложения. Таблица большая (20к строк, на слабом железе) и это работает достаточно медленно.

Так вот, как можно оптимизировать эту операцию, анон?
#40 #1036095
>>1036033
Привет, расскажи, пожалуйста, подробнее, чем занимается контора и каковы твои обязанности, кроме etl?
#41 #1036096
>>1036093
Сап, т.е. в цикле примерно такой
запрос:
select count(id)
from table_name
where size_b < n,
где n с каждой операцией увеличивается?
#42 #1036097
>>1036095
Привет.
Контору не хочу деанонить, а о непосредственных обязанностят и работе я лучше расскажу после собеседования.
#43 #1036098
>>1036096
Да, прямо такой и есть.
#44 #1036099
>>1036093
Какая база данных?
Фиксирована ли шаг 2 или произвольно?
#45 #1036100
>>1036093

>ного, причём делается это для большого количества границ. Например, если максимальный размер 10МБ, то надо вытащить <2, <4, <6, <8, <10.


>Сейчас это сделано селектом в цикле со стороны приложения. Таблица большая (20к строк, на слабом желе


>>1036096
или имеется в виду, что в цикле при заданном размере файла
считается отдельно количество файлов размером <2, <4, <6 и так до n
с шагом 2?
#46 #1036102
>>1036099
Шаг фиксированный, задаётся при старте приложения.
БД - MariaDB + H2 тоже должна работать.

>>1036100
Есть некий шаг, который задаётся в приложении. После чего считается количество файлов, удовлетворяющих <STEP, <2STEP, <3STEP, ... и так до тех пор, пока NSTEP будет больше максимального размера файла.
#47 #1036103
>>1036093
Если у тебя мало разбивок и они фиксированны, то
select sum(1), --всего

sum(case when value < 4 then 1 else 0 end),
sum(case when value < 6 then 1 else 0 end), sum(case when value < 8 then 1 else 0 end)
from t

Некрасиво, но как минимум один запрос, один скан таблицы, одна группировка.
Если много произвольных значений, то надо думать
#48 #1036104
>>1036093
Нахуй тебе множество < и or между ними? Делаешь индекс на размер файла и хуячишь каунт айдишника с размером меньше верхней границы.
#49 #1036106
>>1036103
А, нет, так они не фиксированы. Количество шагов зависит от максимального значения этого столбца.

>>1036104
Ты где or видишь? Делается несколько запросов, каждый раз с разной верхней границей.
7 Кб, 430x204
#50 #1036109
В иерархический запрос передаешь шаг (тут 2) и максимальную отметку (тут 10).
Потом джой.
Это нихуя не отптимально по производительности (ну может только чуточку оптимальнее, чем N запросов), зато одним запросом.

Искренне ваш,
топ-ораклист
#51 #1036110
>>1036106
В одном конкретном обращении к бд всегда один < n? (без хуйни с < 2 < 5 < 10, как ты выше написал)

Делай индекс и обзапрашивайся - будет range scan по индексу.
#52 #1036112
>>1036093
>>1036102
вот решение для оракла, попробуй cte для maria db переписать

with tn as (
select 2level size_b
from dual
connect by 2
level <= (select max(size_b) from table_name)
)
select
tn.size_b,
sum(case when t.size_b <= tn.sizeb then 1 else 0 end) files_cnt
from
table_name t inner join tn on t.size_b <= tn.size_b

олсо ссылка на рекурсивные запросы:
https://mariadb.com/kb/en/mariadb/recursive-common-table-expressions-overview/

Цикл не нужен для этого запроса, но тут может быть просадочка, если n большое, т.к. cte джойнится по условию, зависящему от n. Индекс на t.size_b будет не лишним, думаю.
#53 #1036115
>>1036112
Все бы ничего, но в твоем иерархическом запросе отсекается последняя нужная граница.
То есть если в таблице максимальное значение 9, то твой запрос посчитает значения меньше 8, а суммарное количество записей не посчитает.
Так что d коннекте меняй level на level - 1
#54 #1036116
Всем спасибо, возьму всё-таки решение вот этого анона: >>1036110
Оно, судя по всему, выигрывает по соотношению простота/производительность.

>>1036093-кун
#55 #1036120
>>1036115
не обратил внимание, но и с level-1 будет неверно, т.к при n = 9 и level-1 = 4, 2level = 10, т.е. посчитает больше чем нужно.
Можно оставить level в connect by и отедльно union all добавить хвост от 8 до 9
#56 #1036121
>>1036116
т.е. цикл в приложении останется?
#57 #1036122
#58 #1036126
>>1036122
Расстрелять.
#59 #1036134
>>1036116
ПОХУЙ, ТАК СОЙДЕТ
@
ВЫИГРЫВАЕТ ПО СООТНОШЕНИЮ ПРОСТОТА/ПРОИЗВОДИТЕЛЬНОСТЬ
#60 #1036140
>>1036134
Может доступа к исходникам приложения нет, все ж мы люди
#61 #1036163
>>1036140
Приложение моё, для личного использования.

>>1036134
Эта жирная часть - всего лишь модуль статистики, который мне нужен для корректировки таймаутов и подобного. Заморачиваться с чем-то сложным ради того, чтобы раз в неделю не ждать трёх секунд на составление отчёта мне кажется излишним.
#62 #1036165
>>1036163
То есть ты приходишь в тред, люди тебе что-то предлагают, стараются, хотят помочь, а ты потом пишешь "похуй, не буду ничего делать, всем спасибо". Это нормально вообще?
Нахуй ты вообще свой вопрос задал, если тебя всё устраивает?
#63 #1036172
>>1036165
Почему не буду ничего делать? Повешу индекс и буду радоваться жизни, как посоветовал >>1036110

>>1036103 не подходит, потому что разбивка не фиксирована.

>>1036109 сам написал, что его решение неоптимально по производительности, да ещё и, судя по всему, под другую БД.

>>1036112 практически такое же решение, с теми же проблемами.
#64 #1036184
>>1036172
предпоследний пост сказал, что это в любом случае оптимальнее дохуилиона селектов.

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

НЕНЕ ПАЦАНЫ ХУЙНЯ КАКАЯ-ТО СПАСИБО ЗА ПОМОЩЬ Я ЛУЧШЕ БАЗУ ПОЕБУ ЩА ИНДЕКС НАВЕШУ ДЕЛА В ГОРУ ПОЙДУТ
#65 #1036190
>>1036184
Application before data, дбашечка.
#66 #1036207
>>1036109
Похуй, что синтаксис ОРАКУЛА вообще не Т-сКЛ ни разу, поебать.
#67 #1036734
Читаю книгу Learning SQL и запнулся на примере про индексы, почему данный запрос

>EXPLAIN SELECT cust_id, SUM(avail_balance) tot_bal


>FROM account


>WHERE cust_id IN (1, 5, 9, 11)


>GROUP BY cust_id;


просматривает все 24 строки таблицы, хотя без GROUP BY возвращает 8? Ведь если cust_id индексирован, он находит индексы этих восьми строк и работает только с ними.

Вот объяснение из книги:
После прочтения индекса ожидается, что сервер просмотрит все 24 строки таблицы account для сбора данных о доступных остатках, поскольку он не знает, что могут существовать другие клиенты, кроме клиентов с ID 1, 5, 9 и 11.

Зачем смотреть остальные доступные остатки, если уже выбрано 8 строк?
#68 #1036740
>>1036734
Потому что это не уникальный индекс, вот почему.
И все равно нужно просмотреть всю таблицу, чтобы убедиться, что больше нет полей с такими значениями.
#69 #1036752
>>1036740
понял, спасибо
#70 #1038003
Прошел курс на кодакадеми, так как тут нихуя не сказали что читать и пошел решать задачки на sql-ex, знакомые советовали и сразу же на втором задании вопрос.

Задание:
Exercise: 2 (Serge I: 2002-09-21)
List all printer makers. Result set: maker.


тлдр, есть дохуя таблиц, которые свзяанны фореин ки
Я пишу: SELECT DISTINCT maker FROM Product JOIN Printer ON Product.model = Printer.model;
Пишут что неправильно, предлагают писать так:
SELECT DISTINCT maker
FROM Product
WHERE model IN (SELECT model
FROM Printer
)

Естесна после кодакадеми я понятия не имею даже что так писать можно.
Что почитать и почему неправильно-то ?
Описание:
The database scheme consists of four tables:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
The Product table contains data on the maker, model number, and type of product ('PC', 'Laptop', or 'Printer'). It is assumed that model numbers in the Product table are unique for all makers and product types. Each personal computer in the PC table is unambiguously identified by a unique code, and is additionally characterized by its model (foreign key referring to the Product table), processor speed (in MHz) – speed field, RAM capacity (in Mb) - ram, hard disk drive capacity (in Gb) – hd, CD-ROM speed (e.g, '4x') - cd, and its price. The Laptop table is similar to the PC table, except that instead of the CD-ROM speed, it contains the screen size (in inches) – screen. For each printer model in the Printer table, its output type (‘y’ for color and ‘n’ for monochrome) – color field, printing technology ('Laser', 'Jet', or 'Matrix') – type, and price are specified.
#70 #1038003
Прошел курс на кодакадеми, так как тут нихуя не сказали что читать и пошел решать задачки на sql-ex, знакомые советовали и сразу же на втором задании вопрос.

Задание:
Exercise: 2 (Serge I: 2002-09-21)
List all printer makers. Result set: maker.


тлдр, есть дохуя таблиц, которые свзяанны фореин ки
Я пишу: SELECT DISTINCT maker FROM Product JOIN Printer ON Product.model = Printer.model;
Пишут что неправильно, предлагают писать так:
SELECT DISTINCT maker
FROM Product
WHERE model IN (SELECT model
FROM Printer
)

Естесна после кодакадеми я понятия не имею даже что так писать можно.
Что почитать и почему неправильно-то ?
Описание:
The database scheme consists of four tables:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
The Product table contains data on the maker, model number, and type of product ('PC', 'Laptop', or 'Printer'). It is assumed that model numbers in the Product table are unique for all makers and product types. Each personal computer in the PC table is unambiguously identified by a unique code, and is additionally characterized by its model (foreign key referring to the Product table), processor speed (in MHz) – speed field, RAM capacity (in Mb) - ram, hard disk drive capacity (in Gb) – hd, CD-ROM speed (e.g, '4x') - cd, and its price. The Laptop table is similar to the PC table, except that instead of the CD-ROM speed, it contains the screen size (in inches) – screen. For each printer model in the Printer table, its output type (‘y’ for color and ‘n’ for monochrome) – color field, printing technology ('Laser', 'Jet', or 'Matrix') – type, and price are specified.
#71 #1038032
>>1034303 (OP)
Постгр и Мускл.
#72 #1038045
>>1038003
Не знаю кто тебе что там предлагает, я делал так:
select distinct maker
from product
where type = 'Printer'

Только что проверил, мой вариант остается правильным.

Насчет почитать, можешь по быстрому просмотреть https://www.w3schools.com/sql/default.asp
#73 #1038046
>>1038045
Да я в итоге тоже так написал, но почему с джоином-то неправильно ?
разве это не тоже самое, что и кодакадеми ? Спасибо энивей, проверю
#74 #1038049
>>1038046
Запустил твой пример, результат то у тебя верный, но они смотрят кол-во возвращаемых записей до DISTINCT. В таблице Printer не все связи с Product (есть принтеры без расширенного описания).
Если бы в Product был еще один maker с принтером, без описания в таблице Printers, то твой запрос бы не сработал.
#75 #1038061
>>1038046
>>1038049
В подтверждение слов про не все имеют расширенное описание:
SELECT DISTINCT maker FROM Product LEFT JOIN Printer ON Product.model = Printer.model
WHERE Product.type = 'Printer'
Возвращает верный результат. Т.к. включаются и те принтеры из Product, которые отсутствуют в Printers.
#76 #1038066
Анон, у меня есть три таблицы, user, topic и category, связанные через четвертую, post. Выводить это мне нужно древовидной структурой, "category" > "user" > "topic+поля post". Поебавшись с запросами, я решил сначала получать список user, принадлежащий каждой category, затем у каждого user получать post и topic. В итоге это работает и выглядит удобно для работы, но меня не оставляет ощущение, что что-то не так, ведь для вывода используется n+2 запроса, где n - количество user. Варианты с groupby не взлетают. Порекомендуйте более корректное решение, если оно имеется
#77 #1038069
>>1038049
>>1038061
Сложна, но будем разбираться, спасибо.
#78 #1038079
>>1038003
Ты дурак?
select distinct maker from product where type = 'Printer';

> Естесна после кодакадеми я понятия не имею даже что так писать можно.


А хули ты там делал, если даже один простой селект написать не можешь?
>>1038046

> почему с джоином-то неправильно


А нахуй он там всрался? Там даже суррогатных ключей нету.
#79 #1038080
>>1038066
Открой для себя удивительный мир джоинов.
#80 #1038203
>>1038080
И у меня получается охуенно огромный список записей, которые надо ручками перебирать.
#81 #1038291
>>1038203

>ручками


>циклом


Пофиксил тебя
#82 #1038292
>>1038291
Хорошо, как мне разбить список topic сначала по user, а потом по category в циклах? Проверять на каждой итерации, не изменился ли id?
#83 #1038354
>>1038292
Откуда я знаю, пользуйся словарями, например.
#84 #1038753
>>1038061
Я придумал моднее, только результат не прошёл тест на проверочной базе. Наверное, этот прав >>1038049. Проверочная база содержит записи в Prodyct c type=printer, которых нет в таблице printer.
SELECT DISTINCT Maker
FROM Printer
LEFT JOIN Product
ON Product.model=Printer.model
WHERE Product.model IS NOT NULL
134 Кб, 984x734
#85 #1038765
>>1038753

> LEFT JOIN Product


> ON Product.model=Printer.model


> WHERE Product.model IS NOT NULL

#86 #1038905
Так поясните мне когда следует использовать kerberos для аутентификации в постгрессе. Я пока что понимаю, когда есть более одного приложения работающего с одним кластером. Или он в любом случае не повредит?
#87 #1038932
>>1038765
Он сам просил написать запрос с соединением.
#89 #1038934
>>1038933
Зачем там inner? Тут суть в том, что мы выводим все принтеры.
#90 #1038936
>>1038934
бляяя, ясн
#91 #1038938
>>1038936
Или ты хочешь сказать, что
inner join = LEFT JOIN where is not null?
#92 #1038939
>>1038938
посмотри на пик который я прикрепил, посиди и подумай над ним полчасика.
да
#93 #1040205
>>1036033
Отменилось собеседование в пятницу, сегодня было.
НУ ТАКОЕ
Во-первых, сказали, что самый максимум по ЗП это 130к гросс. Но если учесть, что мы вообще обсуждали деньги, считаю, что все прошло успешно. Может и позовут, но на 130 я точно не пойду.
По непосредственным обязанностям тоже как-то мутно. Они хотят и разработчика dwh, и аналитика, и гей-шлюху в одном лице. Не знаю, что из этого выйдет, это может быть как очень круто, так и очень хуево.
В общем, если бы остро нуждался в работе, то пошел бы, конечно, ну а так я вспоминаю слова моей тёти "хуй на хуй менять - только время терять".
По ораклу мало спрашивали. Стандартная задача с актуальными зарплатами сотрудников. Выебнулся keep derse_rank, конечно.
Какие типы соединения таблиц знаешь? Hash join, nested loops. Как будешь маленькую таблицу с большой соединять? Маленькую в хэш.
Был задан философский вопрос, как я буду удалять дубли из очень большой таблицы? Без задней мысли возьму и удалю.
#94 #1040328
grant all privileges on bank.* to
'username'@'localhost' identified
by 'xyz';

exit

mysql -u lrnsql -p;
xyz
ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)

Чому ?
#95 #1040329
>>1040328

> mysql -u username -p;



естесна, не то скопировал
3 Кб, 325x268
#96 #1040386
Можно ли в Oracle 11g r2 сгенерировать для каждой строки указанное в её столбце количество значений (см. картинку), используя только MODEL? Про рекурсивные cte, connect by и т.п., конечно, известно, но тут поставлено именно такое условие вручную вписывать значения тоже не разрешается.
#97 #1040853
>>1040205
ИМХО, но получение нового опыта сделает тебя куда более востребованным специалистом. Ты ведь работал только на отчетах, так?
#98 #1040891
>>1040853
По сути да.
Но 4 места работы за неполные два года это пиздец перебор, на меня косо смотреть будут.
Конечно, я бы ушел на какую-нибудь космическую зарплату хоть сейчас, но я и на текущей работе могу впоследствии получить и прибавку к деньгами и смену рода деятельности.
По совокупности факторов лучший вариант посидеть тут хотя бы годик, меня все устраивает.
#99 #1040970
>>1040386
PL/SQL
19 Кб, 973x515
#100 #1042641
анончики, подскажите почему во втором запросе с условием, не отображается строка с id = 5?
#101 #1042655
>>1042641
Из за NULL. Он добавляет некоторую троичную логику.
Выходит как-то так:
1. NULL = 'y' => NULL
2. NOT NULL => NULL
3. NULL != TRUE => строка не подходит

Можно написать NOT ISNULL(disabled, '') = 'y' (ещё есть COALESCE).
#102 #1042660
>>1042655
благодарю, только для mysql рабочий вариант с IFNULL()
#103 #1044008
>>1042660
>>1042655
А через "AND disable IS NULL" можно? Иначе зачем усложнять?
#104 #1044042
Сижу уже полчаса тупо втыкаю в то, что написал и не могу понять, что нет так-то.
КОгда отправляю запрос тупо нихуя не происходит, то есть мне дальше предлагают вводить, как если бы я я точку с запятой не поставил

> SELECT emp_id, fname, lname, groups.name FROM employee


-> INNER JOIN (SELECT 'trainee' name, '2004-01-01' start_dt, '2005-12-31' end_dt
-> UNION ALL
-> SELECT 'worker' name, '2002-01-01' start_dt, '2003-12-31' end_dt
-> UNION ALL
-> SELECT 'mentor' name, '2000-01-01 start_dt, '2001-12-31' end_dt) groups
'> ON start_date = groups.start_dt
'> WHERE start_date BETWEEN groups.start_dt AND groups.end_dt;
#105 #1044072
>>1044042
Всё, сам разобрался, забейте
#106 #1044081
>>1044042
Говеный запрос.
#107 #1044082
>>1044081
Ага, я переписал
#108 #1044151
>>1044008
Будто то, что ты написал, проще.
#109 #1044449
>>1040205
И все-таки как из большой таблицы удалить дубли?
#110 #1044506
Анон, посоветуй годный справочник команд и функций по SQL.
#111 #1044557
Потсоны, шарит кто в Dimensional Modelling (Data Warehouse)? Закину удочку, может, повезёт.

Есть проблема. Система собирает данные по различным статистическим показателям (например, количество населения, количество преступлений и т.д). В целом, у таких данных три общих измерения: показатель, территория, календарь. Далее у каких-то показателей могут быть доп. измерения (например, вид преступления или, там, национальность правонарушителя). Соответственно, в одну таблицу фактов данные по всем показателям не уложишь. Получается, надо под каждую группу показателей, имеющих одинаковую размерность, создавать таблицу фактов? Или под каждый показатель создавать таблицу фактов (не нраица -- потенциально показателей очень много)?
Гугление наводит на теги Core / Custom Fact Table, но построить цельную картину не получается из-за отсутствия опыта.
Шарящий DBA съебал на другое место, приходится дорабатывать его начинания.
#112 #1044558
Допустим, я создаю таблицу с пользователями, каждый из которых может быть подписан на новости. Или иметь ещё сотню булевых опций. Надо ли запихивать их в саму таблицу пользователей, или лучше завести одноколончатую таблицу с идентификаторами подписчиков?
#113 #1044585
>>1044557
У тебя olap или oltp?
#114 #1044589
#115 #1044623
>>1044589
1. Почему ты считаешь, что в одну таблицу фактов нельзя все уложить? Просто берешь и кладешь без задней мысли, напротив тех измерений, которых нету у данного показателя, пишешь null, будет у тебя одна таблица фактов с кучей измерений и null-ов в них, ну и что? Советую вместо null класть -1 и в соотаетствующем измерению справочнике завести элемент id: -1, name: None
2. Далее собираешь из этого один или несколько кубов. Если один, то все показатели в него и запихиваешь, соответственно, на пересечении с измерениями, которых у какого-то конкретного показателя нет, у тебя будут стоять (-1)None, только и всего.

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

В общем, не понимаю, почему ты сразу сделал вывод, что в одну таблицу фактов все класть нельзя, если абсолютно у всех показателей есть несколько общих измерений.
#116 #1044624
>>1044558
С какой целью интересуешься?
Что дальше с этими данными собираешься делать?
#117 #1044631
>>1044623
Да, самое главное не написал, это немного другая концепция складирования, тут придется завести еще однл измерение самому - "Показатели", ну и соответствующий ему справочник в хранилище, так вот, id-шники показателей так же следует класть в таблицу фактов, а рядом с ними в еще одном поле "measure", класть значение этих показателей. В итоге у тебя получится до хуя строк, зато из них изи будет собираться куб. В мерах же в самом кубе нужно завести всего один элемент - Value, и все значения из таблицы фактов класть на него. Если не понял, могу нарисовать схему. Эта методология используется в финансовых системах, например в Prophix, так что это не моя говнокостыльная придумка.
#118 #1044678
>>1044623

>Почему ты считаешь, что в одну таблицу фактов нельзя все уложить?


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

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


Я понял, т.к. прототип в таком виде сейчас и есть, от этого и отталкиваюсь.

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



Потенциально у нас тысячи показателей (аналог -- гос. система ГАСУ), многие из которых опираются на кастомные справочники. У этих данных в общем случае всего 3 общих измерения: справочник показателей, справочник территории, календарный справочник. Даже меры у них не всегда одинаковые, т.к. в одном случае у одного показателя аддитивная мера (например, кол-во родившихся за календарный период), а у другого -- нет (например, количество населения, зарегистрированное на календарный период). При таком раскладе я не вижу, как это всё можно сложить в одну таблицу фактов. Но, повторюсь, я не DBA ни разу, так что могу ошибаться.
#119 #1044696
>>1044678

>Я не DBA ни разу


А DBA и не должен в этом разбираться, если что, это вопросы к аналитикам.

>В перспективе видится не так много измерений.


Ну так и отталкивайся от задачи, не старайся уходить в максимальную абстракцию.

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

>Тысячи показателей


Ну так ты же их и пишешь в 2 поля, а не в тысячу, так что все збс.
Делаешь, смотришь, как работает, если всех устраивает, то и збс.
#120 #1044713
>>1044696
Ну да, чувствую, что в итоге сделаем с минимумом таблиц фактов. Спасибо.

Ещё фишка в том, что BI-инструментарий у нас хотят свой. Точнее, давно уже есть некое его подобие над старой схемой, но оно говно, и не в последнюю очередь из-за того, что старая схема не позволяет строить гибкие запросы (шутка ли, из всего множества значений выбрать значения показателей, у которых в контексте есть, скажем, Москва и 2015 год -- это из разряда фантастики, т.к. по словам DBA для этого нужно провести какие-то транспонирования/перевёртывания и прочий БДСМ).
Конечно, не всё так плохо: аналитики используют SAS Visual Analytics, но там данные в другой, более феншуйной схеме. Но в целом вектор взят на отказ от вражеского ПО (гос. контора): опенсорс БД (досвиданья оракл, здравствуй постгре), свои аналитические инструменты и прочее. Поэтому для меня как для разработчика это всё больной вопрос, на самом деле, и вроде как и хочется быстрее с ним покончить, но, с другой стороны, если сделаешь хуйню, то потом переделывать весь стек (чем, собственно, мы сейчас и заняты).
#121 #1044752
>>1044713

>шутка ли, из всего множества значений выбрать значения показателей, у которых в контексте есть, скажем, Москва и 2015


Mdx же есть и функции фильтрации измерений.
А так же возможности создавать статичные Set-ы.
#122 #1044985
Сложно ли перекатываться с Oracle на Postgres? И нужно ли?
#123 #1045021
>>1044985
Зависит от степени vendor lock-in, которая складывается в основном из объёма логики, написанной на PL/SQL (хранимые процедуры, утилитные скрипты), и количества эксклюзивных фич в используемом инструментарии (BI tools, Administration tools). Для великовозрастных систем перекатиться может быть крайне сложно.
Вопрос о необходимости для каждого свой. Например, для гос. контор это скорее риторический вопрос -- сказали "Надо", значит, надо, и не ебёт.

Если ты имеешь в виду перекат из PL/SQL разработчика, то это вопрос изучения другого SQL-диалекта и сопутствующей инфраструктуры (те же самые инструменты администрирования). Думаю, тоже не особо приятное занятие.
#124 #1046225
В PL/SQL Developer можно как-то включить уведомление о выполнении запроса, когда он сам свернут?
Заебывает проверять каждый раз...
Если не найду, как это сделать, придется после каждого выполняемого куска писать себе отправку сообщения на почту...
#125 #1046599
>>1046225

>отправку сообщения на почту


Ты что, одновременно по миллиарду запросов пишешь?
И что за запросы такие, результатов которых ты ждешь настолько долго, что сворачиваешь окошко?
#126 #1049791
DELETE FROM Person WHERE Email IN (SELECT Email FROM Person GROUP BY Email HAVING COUNT(Email)>1)

Что не так с этим запросом ?
You can't specify target table 'Person' for update in FROM clause
Это типа про сабквери или чего, я не понимаю
#127 #1049848
>>1049791
https://pastebin.com/6Chduftx
двач похерил звёздочки
#128 #1049862
>>1049791
Гугол говорит, что https://stackoverflow.com/a/14302701
#129 #1049868
>>1049862
Да, я это уже изменил, думал тут вообще никого нет, я немного с заданием проебался
задание удалить всё повторяющиеся емейлы из таблицы, но так чтобы остались с меньшими айдишниками. И там блять на второй проверочной таблице сначала вставляют id=2, а потом id=1
Почему моя уебищная хуйня не работает, может кто объяснить ?
моя уёбищная хуйня вот
>>1049848
#130 #1049884
>>1049868
Не ебу что ты там в пейстбине насрал, но это элементарно делается с оконной функцией.
#131 #1049885
>>1049884
хуй знает что это, но я таки допилил свое говно до ума, а они решили через джойн самому себе
sage #132 #1050148
>>1046599

> кококо нинужно кудах!! я скозал!!!

#133 #1050213
Сап, БДаны. Есть одна небольшая задачка связанная с проектированием БД с которой прошу вас помочь.
Есть таблицы epolis (epolis_id - первичный ключ), contracts (
contract_id - пк), transport(transport_id - пк).
В contracts - реквизиты договора на обслуживание, строго локальная версия. в epolis -
реквизиты страхового полиса, это таблица по сути - локальная версия данных из другой базы, в transport - параметры транспорта(год выпуска, цвет, объем двигателя, номер паспорта, регион регистрации и т.д.), может апдейтиться данными из внешней БД, значения параметров также передаются во внешку при необходимости, также может изменяться локально, без передачи данных. В текущей схеме на первой пикче связи с epolis и внешней информационной системой нет, историчность параметров транспорта не поддерживается, все параметры транспорта в одной таблице. Требования следующие: нужно реализовать историчность параметров транспорта и интеграцию с внешней ИС, таким образом, чтобы измения таких параметров как цвет и мощность двигателя (их больше, но не важно) можно было исторично закрывать в случае изменения и, по желанию, передавать во внешнюю ИС.
Аналогично с параметрами номера паспорта и региона регистрации, но для них есть ограничение, изменения во внешнюю среду передаются только при создании нового полиса или изменнении старого. Другими словами апдейт вступает в силу, только если данные, хранящиеся в epolis, успешно переданы во внешку. Т.е. эти параметры транспорта зависят от полиса, но являются параметрами ТС.

На второй пикче решение, подскажите, как это примерно реализовать или в чем ошибка? Тупо добавил start_date и end_date, из минусов то, что при изменении только лишь цвета придется закрывать всю запись.
Вообще там ебанутая ситуация, т.к. внешних источников два и они оба теребят одни и те же таблицы, при этом друг о друге ничего не знают. И еще проблема, например пользователь поменял номер паспорта транспорта, эти данные нужно сохранить локально, но внешняя ИС не приняла полис, а соотвественно и изменения сведений транспорта, и их нужно как-то откатить как это можно реализовать?
#133 #1050213
Сап, БДаны. Есть одна небольшая задачка связанная с проектированием БД с которой прошу вас помочь.
Есть таблицы epolis (epolis_id - первичный ключ), contracts (
contract_id - пк), transport(transport_id - пк).
В contracts - реквизиты договора на обслуживание, строго локальная версия. в epolis -
реквизиты страхового полиса, это таблица по сути - локальная версия данных из другой базы, в transport - параметры транспорта(год выпуска, цвет, объем двигателя, номер паспорта, регион регистрации и т.д.), может апдейтиться данными из внешней БД, значения параметров также передаются во внешку при необходимости, также может изменяться локально, без передачи данных. В текущей схеме на первой пикче связи с epolis и внешней информационной системой нет, историчность параметров транспорта не поддерживается, все параметры транспорта в одной таблице. Требования следующие: нужно реализовать историчность параметров транспорта и интеграцию с внешней ИС, таким образом, чтобы измения таких параметров как цвет и мощность двигателя (их больше, но не важно) можно было исторично закрывать в случае изменения и, по желанию, передавать во внешнюю ИС.
Аналогично с параметрами номера паспорта и региона регистрации, но для них есть ограничение, изменения во внешнюю среду передаются только при создании нового полиса или изменнении старого. Другими словами апдейт вступает в силу, только если данные, хранящиеся в epolis, успешно переданы во внешку. Т.е. эти параметры транспорта зависят от полиса, но являются параметрами ТС.

На второй пикче решение, подскажите, как это примерно реализовать или в чем ошибка? Тупо добавил start_date и end_date, из минусов то, что при изменении только лишь цвета придется закрывать всю запись.
Вообще там ебанутая ситуация, т.к. внешних источников два и они оба теребят одни и те же таблицы, при этом друг о друге ничего не знают. И еще проблема, например пользователь поменял номер паспорта транспорта, эти данные нужно сохранить локально, но внешняя ИС не приняла полис, а соотвественно и изменения сведений транспорта, и их нужно как-то откатить как это можно реализовать?
sage #134 #1050218
>>1036190
За такое надо убивать. Расстреливать пидорасню ебаную.
#135 #1050324
>>1050213
Я, к сожалению, ничего конкретного не скажу, т.к. не DBA.

Почитай про Dimensional Modeling и/или Data Vault. В случае с Dimensional Modeling (а на второй пикче -- это практически звезда по этой методологии) у тебя транспорт -- это slowly changing dimension. Нужно только определить тип исходя из условий задачи (надо ли хранить историю, насколько часто обновляются элементы измерения).
Неплохой обзор практик, связанных с Dimensional Modeling, можно посмотреть здесь: http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques

В случае с Data Vault хуяришь изменяющиеся атрибуты в отдельный сателит/сателиты, а дальше я ещё книгу не дочитал. Но в целом, там архитектура располагает к ведению истории.
#136 #1050366
>>1050213
Повесь триггеры на транспорт и обсохраняйся всей историей. Ну или сделай через аудит и сри вообще как хочешь.

> Другими словами апдейт вступает в силу, только если данные, хранящиеся в epolis, успешно переданы во внешку.


Ты ведь знаешь что такое транзакции?
>>1050218
Проблемы, дбашечка?
2,7 Мб, 4000x3000
#137 #1050424
Всем респект.
#138 #1050642
>>1050324
Это скорее задача девелопера - проектирование схемы данных, ок, спасибо, хотя у меня OLTP - база.
#139 #1050645
>>1050366
Триггеры не очень подход в данном случае, т.к. в приложухе повсеместно используется версионность start_date и end_date и вообще по рукам побьют.

>Ты ведь знаешь что такое транзакции?


Да, конечно, но смотри какая ситуация получается:
У пользователя есть форма с кучей полей транспорта, при этом есть скажем вкладки с прочей инфой о страховщике и т.д., все это представляет собой документ, который после заполнения передается во внешку. Поля транспорта, например, такие: цвет, мощность двигателя, регион регистрации, номер паспорта тс. Так вот задача в том, чтобы при сохранении промежуточных значений на форме параметров ТС во внешку уходили только данные о мощности двигателя и цвете. А остальные поля только при передаче всего документа.
Т.е. получается нужно какое-то время хранить черновик записей в БД, и только потом сохранить эти данные как новую версию, а старую закрыть, другими словами между транзакциями нужно сохранять данные (т.к. любые сохраенные на форме изменения коммитятся в локальной бд), а потом делать логический "коммит" - создавать новую версию.
Может забить и тупо версию открывать и закрывать при каждом апдейте таблицы, если меняются значения параметров? Без оглядки на то, что данные еще не передались. В конечном счете, мы храним у себя только историю изменений, т.е. актуальную локальную копию данных, которую потом используем в качестве подстановки в форму.
Посоветуйте, пожалуйста, может есть какие-то маст-рид книжки по интеграции между ис или проектированию схем данных, интересуют именно конкретные подходы, проблемноориентированные, анон выше советовал уже по dimensional моделлинг.
#140 #1050837
>>1050645

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



юзай Read uncommitted, добавь флаг в табличку с записями: is_confirmed bit, как только ты считаешь, что юзер ввел все (типа нажал сохранить"), ставь is_confirmed = 1 и отправляй, куда хочешь.
8 Кб, 671x578
#141 #1052141
>>1034303 (OP)

>couchdb



мб юзал кто для продакшина, какие подводные камни?
#142 #1052234
Поясните что они от меня хотят, лол, постоянно фейлится на их тестовой базе какой-то.
Given a Weather table, write a SQL query to find all dates' Ids with higher temperature compared to its previous (yesterday's) dates
Таблица собственно состоит из id, date, temperature
SELECT b.id as Id FROM Weather b WHERE b.temperature > (SELECT c.temperature FROM weather c WHERE c.date+1=b.date)

Что блять не так я вообще понять не могу.

https://leetcode.com/problems/rising-temperature/description/
#143 #1052252
>>1052234
select
Weather.Id
from Weather
join Weather as Second on subdate(Weather.Date,1) = Second.Date AND Weather.Temperature > Second.Temperature;
#144 #1052425
>>1038003
А чому бы не
SELECT DISTINCT maker
FROM Product pd
WHERE EXISTS ( SELECT 1
FROM Printer WHERE pr.model = pd.model)
Явный left semi join же
79 Кб, 500x251
#145 #1052465
>>1034303 (OP)
Сап, программач. Джва года ждал этот тред. Сейчас работаю в мухосрани разработчиком отчетности. По факту пишу огромные sql запросы по внутренним процессам организации. Обычно это отчеты для внутреннего портала и запросы для единичных выгрузок.

Также пишу функции и процедуры для внутренних процессов. Оче редко занимаюсь архитектурой баз, пару раз всего проектировал несколько таблиц. Иногда занимаюсь оптимизацией сложных запросов. Смотрю немного план запроса и выстраиваю индексы. Иногда занимаюсь СКИПТРЕЙСИНГОМ.

Все это пилится на MS SQL.

Так вот у меня к вам несколько вопросов:
1) Я считаюсь программистом по факту если пишу на SQL?
2) 30к это норм для такой вакансии если я в мухосранях?
3) Есть возможность с подобными скиллами перекатиться в ДС на зп тысяч в 60 со старта? Еще могу c++/c# простенький класс написать. Есть вышка магистра матфака.
#146 #1052489
>>1052465
Ты считаешься разработчиком корпоративной отчётности. если ты не шаришь в архитепктуре, то разработчиком баз/хранилищ данных тебя назвать сложно.
В ДС можно перекатиться и на 100 тыщ с теми скилами, которые ты описал, если, конечно, ты все делаешь правильно, пишешь оптимальные запросы, а не такие, как в ОП-пике.
Если умеешь в оптимизацию, чтение чужого кода, чтение плана запросов, принципы работы индексов, то втройнемолодец.
Хотя у меня в конторе работают олухи, которые пишут говно, но сотку, всё равно, имеют. советую перебиратсья в ДС, снимать тут хату за 30 и искать работу в районе соточки, будешь в шоколаде, удачи.
#147 #1052567
>>1052489
>>1052465
Два года назад перекатился на 40к в ДС2 с такими же скиллами. Архитектуры толком не знаю до сих пор, скиллы подросли немного. Планирую перекатываться на 80к+, т.е. в ДС думаю сотку за такое заплатят.
#148 #1053285
>>1052465
>>1052567

>30к


>40к


Пиздец. Даже говнотестер получает больше.
#149 #1053342
>>1053285

>ДС2


>лоу-тир контора


забыл сказать, что зарплата серая, на руки немнго больше идет
#150 #1053512
>>1052489
Что можно почитать, чтобы научиться читать планы запросов и вообще оптимизировать?
#151 #1053518
>>1052465
Нет. Ты ничего не разрабатываешь. Максимум дата аналист.
#152 #1053602
>>1052465
Да. Ты разрабатываешь функции и процедуры.
Если при этом работаешь с контролем версий, делаешь код ревью и вообще няша, то можешь назваться разработчиком БД.
#153 #1053605
>>1052465
Олсо, топ-ораклист-кун на запросах 120к поднимает, делай выводы.
#154 #1053704
Почему Postgres медленный? Или его не умеют готовить? В чем его прикол, кроме бесплатности?
#155 #1053718
>>1053704
Прикол в том, что админить его сложно, искать спецов сложно, вот и все.
А так классная штука.
#156 #1053721
>>1053512
Да блин,что угодно, просто гугли "ms sql plan", находи хабру, msdn, разбирайся, дай бог, в гугле не забанен.
#157 #1053789
>>1034303 (OP)
Сакральный смысл оп-пика в удалении самой ранней записи?
#158 #1053997
>>1053789
Аплодисменты!
Как говорится, если знаешь способ лучше, предложи, мы его рассмотрим всем тредом. Есть только одно условие, нужно, чтобы он был запоминающийся.
#159 #1054912
А есть какие-нибудь курсы по sql для людей, на связанных с разработкой? Аналитики всякие, и т.п.
#160 #1054977
>>1054912
Ты имеешь в виду легкость в освоении или специфичный sql, который в BI применяется?
#161 #1055007
Здравствуйте! У меня база данных постгре сиквел. Есть вот такие настроечки и вот так выглядит моя табличка. Как сделать что оно выглядело хорошо? Ос шиндоус 8.1. Я вообще потом хочу через пхп с табличкой работать. Там все выглядит так же плохенько. Помогите пожалуйста. Хримсто бого молю!
#162 #1055228
>>1055007
Collation и Character type выстави как UTF8.
#163 #1055381
>>1054977
Имею в виду с упором на оперирование данными, без технических тонкостей о проектировании бд, и прочей подобной информации.
#164 #1055405
>>1055228
Это отличный совет! При установке я ставил en us utf а этот пидор мне поставил en us 1251. Вроде как можно создать базу с отличными настройками локали от дефолтных. Я пытался. Но мне сказали что такой локали не существует. Как можно посмотреть существующие локали? Напомню что у меня шиндоуз 8.1
#165 #1055464
>>1055228
locale -a
выдает ошибка синтаксиса
#166 #1055517
>>1055381
Ну тип любой базовый курс по базам, если нашёл.
#167 #1055531
>>1055381
все зависит от объема, думаю в минимальном объеме нужно освоить селект, условие where, group by, having, join разных видов,операторы union, in, exists. Агрегатные функции: sum, min, max. DML зачем аналитику? оптимизация тоже мимо и архитектура.
#168 #1058111
Бамп
#169 #1058454
Шалом? Все на 100к+ устроились? Давно не заходил.

Как думаете, триггеры в оракле запускают автономную транзакцию или нет?
Если у меня триггер висит на таблице бефор инсерт, в транзакции я делаю инсерт в эту таблицу, смогу ли я операторать в триггере с данными, которые появились в этой транзакции в другой таблице?
#170 #1058638
>>1058454
Привет, а ты хорош. Устроился на 100к, теперь сижу, чешу репу думая над вопросом. Автономку в триггере можно использовать, прозреваю здесь подвох в мутации таблицы - т.е. нельзя изменять данные в таблице, на которой висит триггер. А так вроде нет противопоказаний для автономок. В условии второго вопросаподразумевается, что в транзакции выполняется инсерт в две таблицы, и на одной из них висит триггер before? Думаю, если сначал происходит инсерт в таблицу без триггера, то эти эти новые данные уже можно использовать в триггере другой таблицы. Без гугла, если че.
14 Кб, 672x224
#171 #1058645
Привет, есть следующая функция на пике, если в качестве параметра передавать clob, длина которого превышает 32767 символов, то на 10й строке функции возникает ошибка:
ORA-06502: PL/SQL: ошибка числа или значения.
Чому так? Ведь в цикле берется часть клоба, не превышающая максимальный размер varchar2. База если что в utf-8.
#172 #1058682
>>1034303 (OP)

В пограммировании я 0, так что строго не судите

Ребята хэлп.

Есть база SQLite 3 версии, есть там таблица и куча данных в ней, например
100.test.net
101.test.net
102.test.net
И тд

Как мне одним махом заменить test.net на test.org во всех строках? Руками редактировать не реально там более 3к строк, желательно в какой нибудь проге под винду. Пробывал в SQLite expert но нехрена разобраться немногу, получается только руками каждую строку отдельно.

Желательно что бы как в текстовом редакторе, типа: найти > заменить все

))
#173 #1058688
>>1058682
Update t
Set t.field = replace(t.field,'.net','.org')
#174 #1058690
>>1058688
Где мне это вводить?)))
Я потому и просил прогу под винду или какие то подробные инструкции для ламеров
#175 #1058718
>>1058688
помогли в соседней теме, твоя команда должна была подойти, спасибо
#176 #1058776
>>1058645
Посмотрел пакет SYS.STANDART в нем SUBSTR перегружается для строки в CLOB и возвращает тоже CLOB, а utl_raw.cast_to_raw требует varchar2. Похоже в случае, если символов в p_env не больше 32767, то вызывается версия SUBSTR возвращающая varchar2, а для большей строки возвращается clob. Но тогда почему ошибка связанная с числом?
#177 #1058819
>>1034303 (OP)
Допустим, я сделал таблицу и в ней столбец col1 - INTEGER
в него можно внести и целое число, и текст. Если в часть строк будет внесён текст, а в часть целые числа, может ли это вызвать какие-то ошибки ? Мне пока нужно только сумма подсчитывать, и функция SUM считает только сумму строк с числам, то есть работает так, как мне надо. Но мало ли что.
Использую Python и SQLite
#178 #1058825
>>1058819
Ты не можешь заполнить integer текстом,
Ты только можешь написать запрос на инсерт с цифрами в кавычках, типа '1'
Но инсертиться все равно будут числа.
#179 #1058951
Подскажите, пожалуйста.
На ресурсе http://sql-tutorial.ru/ru/book_simple_select_statement/page1.html
употребляются термины - "Вертикальная проекция таблицы", "вертикальная выборка". Что это означает? Не могу уловить суть.В других учебниках еще не рылся, может кто-то из анонов на понятийном уровне разъяснит, чем отличается вертикальная выборка от горизонтальной. А я пока пойду дальше теорию читать да упражнения делать
#180 #1058973
>>1058951
Судя по контексту, имеется в виду выборка без условия where. Т.е. "прореживаем" таблицу только по вертикали, указывая колонки в select. Может термин из реляционной алгебры.
>>1058645
>>1058776
Решил проблему, может пригодится кому. Нужно было уменьшить количество символов возвращаемой подстроки в substr(p_env, i, 32767), т.к. если символов было 32767, то длина строки в байтах могла превышать 32 кб. Подозреваю, что в p_env были символы занимающие больше одного байта, т.к. база в юникоде.
#181 #1059031
>>1058825
в mysql3 вставляется. Вопрос в том, какие ошибки из-за этого могут вылезти ?
--------
Query executed successfully: UPDATE total SET vsego='нет данных' WHERE ok=999 AND god='2014/2015' (took 1ms, 1 rows affected)
---------
#182 #1059093
>>1059031
Может все-таки происходит неявное приведение к чилсу? Это же вообще по пизде идет типизация данных при таком подходе
Аноним #183 #1059402
>>1059093
FIX это sqlite3
возможно дело вот в чём
https://sqlite.org/datatype3.html
------
Any column in an SQLite version 3 database, except an INTEGER PRIMARY KEY column, may be used to store a value of any storage class.

All values in SQL statements, whether they are literals embedded in SQL statement text or parameters bound to precompiled SQL statements have an implicit storage class.

Under circumstances described below, the database engine may convert values between numeric storage classes (INTEGER and REAL) and TEXT during query execution.
------
#184 #1059543
>>1052465
100к можешь выбить в дс
(Из личного опыта)
50 дают просто за знания основ джойнов
#185 #1059799
Вопрос к тем, кто работает с Oracle,

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

Короче, мой аккаунт просрочен:

A database warning was encountered performing the requested operation:

ORA-28002: дата действия пароля ист
28002. 00000 - "the password will expire within %s days"
Cause: The user's account is about to expire and the password
needs to be changed
Action: change the password or contact the DBA
Vendor code 28002


пытаюсь выполнить элементарную команду,
мне выдает:
ORA-00942: таблица или представление пользователя не существует

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

Не хочу писать преподу, да и ответит он только когда я лично подойду и спрошу его.

Есть ли способ как-то скопировать все эти данные и создать на локальном хосте точно такую же базу данных, что бы с ней тренироваться?
#186 #1059826
>>1059799
Конечно есть. У препода дамп базы просишь.
#187 #1059830
>>1059799
Напиши преподавателю, придурок, и не мучай мозг и клавиатуру.
#188 #1060338
Насколько WITH эффективен в плане скорости по сравнению с джоином запроса в самом селекте. Оптимизацию запросов только начал осваивать.
#189 #1060455
>>1060338
Возможно, что никак не отличается. В нормальной СУБД вроде MS SQL будет оптимизировано. Какой-нибудь MySQL вообще по оптимизациям слаб, можно с каким-то запросом промахнуться в этом плане.
#190 #1060561
>>1060338
Одна хуйня, и то, и то подзапрос, оптимизатор будет их одинакого воспринимать.
Просто у подзапроса есть свои фичи, например, использование его в outer apply в мс скл, а в сте можно юзать рекурсии.
#191 #1060623
>>1060561
А что не хуйня?
>>1060455
Так случилось что сейчас работаю с постгрес после божественного оракла.
#193 #1061380
Привет, призываю ораклистов в тред. Подскажите, пожалуйста, по проблеме производительности. Периодически возникает следующая ситуация: возрастает нагрузка на диски, почти 100%, рефреш матвьюх подвисает и возникают блокировки пользовательских сессий, причем блокируют пользовательские сессии также пользовательские сессии. Некоторые запросы таких сесиий висят по двое суток. После того, как убиваем эти блокирующие сессии и джобы рефреша матвьюх, тормоза уходят. Я это объясняю тем, что в тех сессиях, которые висят по несколько дней есть жуткий запрос и, возможно, dml, которые блочат другие сессии, следовательно пока есть блокировка, транзакции пользователей подвисают (например сессия, которая делает апдейт таблицы, указывается как блокирующая для нескольких других сессий) а мне говорят, что я хуй, не шарящий в локах, и проблема скорее всего в матвьюхах, которые при рефреше жрут диск. Хотел б попросить совета, как мне точно определить причину того, что процессы БД упираются в доступ к диску и грузят его на 100%? Из доступных инструментов есть только трассировка сессии и tkprof, доступа к Enterprise managerу нет.
#194 #1061404
>>1034303 (OP)
Оп, поясни позязя, а зачем столько лишних телодвижений выполняет на оп-пике? Разве это быстрее будет, чем просто удаление по фильтру?
#195 #1061429
Есть один сайт на битрексе , бд кодировка-сравнние utf8_unicode_ci .
Когда пользователь оставляет сообщения с яблока или андроида содержащие в себе, так называемые emoji смайлы , то текст сообщения сохраняется( в бд и сответсвенно нормально выводится другим пользователям ) , a emoji смайлы вырезаются из сообщения и не сохраняются в бд. Понятно что нужно менять,кодировку-сравнение соеденения и таблиц БД на utf8mb4_unicode_ci учитывая что индексы по полям типа VARCHAR ИЗМЕНЯТ СВОЮ ДИННУ С 255 НА 191( ибо символ станет занимать 4 байта вместо трех) и прочие прелести?
#196 #1061656
>>1061404
Оп-пик для привлечения внимания:3 в нем наитупейший запрос для демонстраци того, насколько неоптимально иногда пишут люди.
#197 #1061658
>>1061380

>ВОЗМОЖНО С ДМЛ


Лул, посмотри профайлером, что там выполняется, не тупи.
#198 #1061801
>>1061658
Бро, это не так просто, т.к. еще нужно определить, какая именно программная единица запускается, я судил по тому, что выполняется в данный момент в сессии и это был апдейт таблицы, сессия лочила другие. Мне тут даже важнее знать, правильно ли я понимаю принцип работы блокировок.
#199 #1061847
>>1061801
Окей, принципы работы блокировок зависят от уровня изоляции транзакций, по умолчанию стоит read committed в реляционных транзакционных субд. Можешт почитать про него и понять, какие операции какие уровни блокировок вызывают.
Например, update будет лочить всю таблицу, если на ней нет кластерного индекса. Если же он есть, то лочиться будут только те строки, которые этому апдейту подлежат.
#200 #1061913
Какую программу скачать, чтобы ебашить базы данных? Нихуя не понятно, БД это же блядь простая тема, а как читаю какой-либо материал, связанный с SQL, то у меня сразу возникает чувство, что кто-то решил поввыебываться.
#201 #1061917
>>1061913

>программу для баз данных


>выебываются



Скачивай database.exe, тут в треде только понты разводят.
#202 #1061918
>>1061917
Вот ты иди нахуй.
#203 #1061932
>>1061913
Скачай MS SQL Server минимум 2015 версии и не спрашивай: 'почему?'
#204 #1062025
>>1061913
в го и шахматах тоже правила не сложные
58 Кб, 845x542
#205 #1062144
>>1034303 (OP)
Сап /pr, есть одна лаба.
Нужно из цитаты выделить предметную область, построить инфологическую модель, в общем полностью реализовать базу данных, имеющую +- 10 сущностей и как минимум одну связь многие ко многим. Офк использование той или иной сущности всегда должно быть оправдано. Мне нужна помощь с инфологической моделью, собственна сам сабж:

Первые данные оптических наблюдений поступили спустя несколько минут после сообщения "Леонова"; непосредственные контакты начались уже через считанные часы. Бывший биржевой клерк прогуливал своего бульдога по Йоркшир-Мурз, когда рядом с ним приземлился дисковидный космический корабль и энлонавт, выглядевший - если не считать заостренных ушей - совсем как человек, осведомился, как попасть на Даунинг-стрит. Представитель человечества был поражен настолько, что смог лишь махнуть тростью в направлении Уайтхолла. Истинность происшедшего подтверждал тот факт, что бульдог теперь отказывается от пищи.

Пикрелейт - моя уебищная модель, желтым выделена сущность, которую я бы хотел прицепить, но не особо понимаю как это сделать правильно, и момент в котором кажется проебалсявся модель
Возможно, лучше стержневой сущностью делать не контакт, а улицу и переделывать все ? Покидайте идей пожалуйста, что тут можно пофиксить
язык - postgre
#206 #1062164
>>1062144
2000 руб. Срок 2 дн. Идет?
#207 #1062185
>>1062164
На что тебе срок 2 дня? Модель придумать? Ты откуда такой взялся?
#208 #1062220
>>1062144
Обстоятельства контакта - звучит как таблица, в которую вообще всё можно запихнуть, что связано непосредственно с контактом. Связи с действующим лицом может и не быть. Например, в городе шёл сильный дождь (разве что ты в действующее лицо город вставишь, что не совсем так). Так что это скорее всего 1 контакт - много обстоятельств.
Не понятно, зачем таблица значение (контакта?) к улице. Я думаю, что это по сути тоже самое, что последствия контакта.
У контакта несколько действующих лиц, у разных контактов могут быть одни и те же действующие лица, на лицо связь N:N. В промежуточной таблице можно хранить состояние действующего лица на момент данного контакта (то, что ты хотел в обстоятельства контакта вставить, по сути это и есть обстоятельства контакта в твоём смысле).
#209 #1062224
Суп. Есть две таблицы, в обеих есть поле ID. Нужно взять из первой ФИО, дату рождения и объединить с адресом из второй таблицы где ID из первой таблицы совпадает с ID из второй таблицы. Как это сделать?
#210 #1062227
>>1062224
Какой-нибудь JOIN.
#211 #1062271
>>1062227
Тебе че, сука, сложно написать нормальный ответ?
#212 #1062321
>>1062271
Какой вопрос - такой и ответ blyad
#213 #1062333
>>1062224
SELECT
Таблица1.ФИО,
Таблица1.ДатаРождения,
Таблица2.Адрес
FROM Таблица1
JOIN Таблица2 ON Таблица1.ID = Таблица2.ID
#214 #1062342
>>1062224
table1.id, table1.fio, table1.dr
table2.id, table2.address

SELECT table1.id, table1.fio, table1.dr, table2.address FROM table1, table2 WHERE table1.id=table2.id AND table1.id=...

(или table1.id IN(......))

или
SELECT table1.id, table1.fio, table1.dr
FROM table1
INNER JOIN table2 ON(table1.id=table2.id)
WHERE table1.id=.......
#215 #1062396
>>1062144
Где удобнее всего пилить такие диаграммы?
#216 #1062397
>>1062396
Из классики - erwin.
#217 #1062405
>>1034303 (OP)
Помогите понять как в Оракле числа прибавляются к датам.
например
сейчас 15.09.17 18:08

SELECT SYSDATE + 5
FROM DUAL


результат будет 20.09.17

а вот если

SELECT SYSDATE + 5.5
FROM DUAL


Там единица считается за 24 часа и в зависимости от того сколько сейчас времени будет прибавляться +5 дней и +12 часов, то есть 21.09.17 ???
#218 #1062407
Я вообще не понимаю, почему если хочу сделать бд, я должен куда-то коннектится, какие-то хосты, порты указывать. Почему я не могу просто в клиенте написать код, выполнить и получить результат?
#219 #1062409
>>1062407
А позволь поинтересоваться, где у тебя в таком случае будут физически храниться данные?
#220 #1062413
>>1062409
На компуктере же. Ну может, там надо будет указывать адрес-имя-пароль, чтобы типа как в настоящей бд.
#221 #1062414
>>1062413
Ну значит у тебя будет localhost, в чем проблема-то?

Не всегда можно все данные иметь на своём кампутере, представь, что объём данный настолько велик, что для его хранения нужен целый датацентр с кучей серверов
#222 #1062415
Я просто начал изучать SQL и у меня такое чувство, что я что-то упускаю, и ни в одном уроке этого нет. Скачал оракл sqldeveloper, запускаю, пытаюсь создать соединение, а у меня выходит ошибка: The Network Adapter could not establish the connection. Гуглю, а там ничего не понятно.
#223 #1062417
>>1062415
Посмотри через консоль кто занял порт, который ты указываешь и отключи потом эту службу
#224 #1062420
>>1062407
библиотека sqlite3, должна быть для всех основных языков. База создаётся в файле или памяти.
#225 #1062429
>>1062405
бамп
#226 #1062438
>>1062417
1521 порт, никто его не занимает.
#227 #1062449
>>1062405
>>1062429
sysdate: текущее время
sysdate + 1: это +1 сутки.
sysdate + 1/24: +1 час это 1/24
1 минута 1/24/60 и т.д.

В твоем случае 5.5 это как 5 дней + 12/24 (0.5) = 12 часов.
#228 #1062451
>>1062449
Ну и как результат
15.09.2017 18:08 + 5.5 = 21.09.2017 06:08

а вот если
select trunc(sysdate) + 5.5 то будет 20.09.2017 12:00
61 Кб, 937x589
#229 #1062455
>>1062164
Орнул
>>1062220
1.Обстоятельства контакта, это то при каких событиях произошла встреча человека и нло. там написано же, что это. ( красный текст) Про независимые природные явления в цитате не говорится, собствена поэтому я не понимаю, почему ты считаешь, что связи с действующим лицом может не быть, эта таблица по сути то, как лица столкнулись вообще.

>Так что это скорее всего 1 контакт - много обстоятельств.


Не совсем понял, о чем ты. (?)

2. Таблица значение - значение улицы в контакте.
Йоркшир-Мурз - место встречи
Даунинг-стрит.- цель контакта
Уайтхолл - результат контакта
Думаю теперь понятно, что это не одно и то же
Но вот тут меня как раз смущает, что возможно, место, цель и результат как раз нужно пилить отдельными сущностями, но тогда модель вообще другая будет, да и у меня не получилось ее так запилить
3. Годно, спасибо Пикрелейт, так? Тогда к чему лучше прицепить последствие контакта? К обстоятельствам?
>>1062396
https://go.gliffy.com/go/html5/launch
#230 #1062498
>>1062455

>1.


Я воспринял эту таблицу масштабнее, как контекст.

>3.


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

>2.


Место встречи ты уже слил в контакт. Текущая цель контакта явно зависит от времени и места, что однозначно определяется контактом. Обстоятельства контакта хорошо подходят, можно опять же отдельную таблицу сделать, которая будет зависеть от обстоятельства или непосредственно от контакта и лица.
Результат аналогично, только от последствий цепляться.
#231 #1062550
Синтаксис MySQL сильно отличается от Oracle?
#232 #1062570
>>1062550
Даже если отличается- не похуй ли? Все реляционки одинаковые +\-. Знаешь одну, разберешься и с другой.
#233 #1062573
>>1062570
У меня просто есть скрипт для одного, а работать, возможно, придется в другом.
#234 #1062577
>>1062570
Все одинаковые, да только дьявол в мелочах.
>>1062573
Ты конкретнее говори. Для начала - ты скрипты оракла хочешь адаптировать к mysql или наоборот?
#235 #1062578
>>1062577

>ты скрипты оракла хочешь адаптировать к mysql


Да.
#236 #1062592
>>1062578
Тебе зачем? Миграция бд или просто оракл ставить не хочешь, да на орм надеешься?
В оракле по иному обрабатывается null, свой набор функций в sql-движке (nvl2, decode..), есть свой синтаксис для джоинов, который некоторые уникумы даже используют. Также всякие мелочи, вроде аналитических функций, rownum, rowid, и это я не коснулся pl/sql, aq, pipeline-функций, хранимок на джаве, xmldb и кучи dbms_*. Имхо, даже на db2 при всей его совместимости с ораклом не всё может быть гладко.
#237 #1062593
>>1062578
Но в целом, пока держишься в рамках стандарта, больших проблем быть не должно, помни только про null и rownum
#238 #1062594
Нубский вопрос. Есть две таблицы: пользователи и мероприятия, пользователь может участвовать во многих мероприятиях, при участии в мероприятии пользователь может менять цифровое значение связанное с этим мероприятием, отдельное для каждого мероприятия. Как это лучше реализовать? Создать отдельную таблицу вида "пк мероприятие значение" и в таблице пользователей давать ссылку на нужные пк?
#239 #1062699
>>1062594
Третья таблица с композитным ключом пользователь+мероприятие, там твои значения цифровые.
#240 #1062705
>>1062594
Классика- связь 'один- ко- многим'. Две таблицы:
1. Users
Колонки.
Id bigint
Name varchar 128
Comment varchar

2. Meeting
Колонки.
Id bigint
Userid bigint
MeeteengDescr varchar 256

Связь по user.id = meeting.userid
#241 #1062780
>>1062699

> с композитным ключом


Нахуй. Только суррогатный ключ и два FK, только хардкор.
#242 #1062804
>>1062780
Поясни, почему, я теоретик полный в БД, мог и в лужу пердануть
#243 #1062898
>>1062415
Хотя я кажется понял. У меня же интернет через роутер подключен. Может быть в этом проблема?
#244 #1062908
>>1062898
Хотя если напрямую подключить, ничего не меняется. Блядь. Никак с локалхостом не получается соединиться.
#245 #1062925
Ну и жопа эти ваши бд.
#246 #1062928
>>1062908

Тебе выше мудрый анон уже посоветовал: потыкай палочкой библиотеку sqlite3.
#247 #1062940
>>1062928
Я не умею тыкать библиотеки. Сейчас поставлю MySQL, там-то уж точно все просто.
#248 #1062983
>>1062415
Оракловый клиент установлен? в tnsnames прописан локалхост?

Пацики, кто-нибудь работал с языком PL/PLUS? Если кто не в курсе, то это встроенный язык для АБС, на основе pl/sql. Что из себя представляет ваша работа?
#249 #1062985
>>1062983

>Оракловый клиент установлен? в tnsnames прописан локалхост?


Нет, но я уже понял, что я просто не установил все, что нужно. И даже мигратор с оракла на MySQL нашел.
#250 #1063835
Вечер в хату, SQL-щики. Есть какие-то универсальные способы оптимизации запроса SELECT * FROM <table> в MySQL? Немного обидно, что всякое говно с индексацией занимает примерно 0.01-0.02 сек, а запрос вообще без поиска 2 сек, а то и больше. Что здесь кривое? Руки, железо, язык (с#, .NET Connnector)? Чем посоветуете обмазаться?
#251 #1063837
>>1063835
Подчеркну: только SELECT * FROM <table>. Без продолжения, без условий, сортировки и прочего.
#252 #1063880
Блин, как включить нумерацию строк а Oracle developer?
#253 #1064007
Чет оракл дохуя памяти жрет, даже когда все выключено. Есть какие-нибудь способы это пофиксить? А то каждый раз после выхода отрубать оракловскую sql службу лень.
#254 #1064047
>>1063835
Это тротлинг или ты тупой?
Ты ж всю таблицу выбираешь при таком запросе, а при фильтрации - не всю.
#255 #1064070
>>1064047
Это не троллинг. Вообще-то кроме самого синтаксиса есть еще схемы, кеширование и много разной хрени. Например, а что если MyISAM лучше InnoDB для конкретных типов запросов? Вот и спрашиваю у спецов
132 Кб, 960x720
#256 #1064102
>>1063835
Мнрго факторов:
1. Размер таблицы (типы данных каждого поля)
Например, если у тебя в таблице куча полей nvarchar(4000), то выбираться будет долго жлементарно из-за твоей скорости инета
2. Скорость соединения - селект будет идти до хуя долго при скорости 0.00001 кбит/сек, а индексация происходит на сервера, там важна только скорость записи и чтения на диске, она зачастую в разы выше скорости инета
3. Однозначно не могу сказать, но бывает, что сортированные данные выбираются быстрее, чем просто куча - гугли index scan vs table scan
4. Хочешь быстро выбрать и уверен, что со скоростью инета у тебя все збс? Тогда выбирай в несколько потоков внутри приложения, например, в таблице 20 тыщ строк, в одном потоке выбираешь 10 тыщ и одновременно с этим во втором потоке - тоже 10 тыщ. Если же у тебя отчет, который каждый раз селектит все из таблицы, у меня для тебя плохие новости. Пользователю не нужны сразу все данные, параметр зуй запрос и заставь юзера выбирать данные только по срезам.

Собсна, все.
#257 #1064103
>>1064102
А, ну и коннектор, хз, что ты там юзаешь, надеюсь, не OLEDB (мы ж про дот нет говорим), адо.нет общепризнанно работает быстрее.
#258 #1064151
Есть большой массив с кучей текстовых айди в БД, а есть второй такой же маленький. Нужно узнать, какие из айди в этом маленьком присутствуют в базе данных. Как такое лучше всего и правильно сделать?
Конкретной бд никакой ещё нет, просто пришло время перекатываться с сохраняемых на диск json'ов, поэтому если хранить один большой массив это не круто, готов поменять.
#259 #1064163
>>1064151
Сгенерить запрос, который кладет айдишники из массива во временную таблицу, а потом переджойнить реальную таблтцу с временной по айдишникам, ну или просто взять except-ом записи из реальной таблицы и временной.
#260 #1064181
>>1064163
Звучит как-то громоздно создавать-джоинить-удалять таблицы. (Или нет, я вообще понятия не имею.) Мне это не один раз сделать, а при каждом открытии страницы / запросе пользователя. "Большой" это я, возможно, преувеличил, там не миллионы элементом, а тысячи. А маленький несколько десятков/сотня.

>просто взять except-ом


В смысле intersect'ом? А то иначе совсем не то будет.
#261 #1064188
>>1064181
Прост inner джоинишь в лоб по id + group или distinct. Ещё можно union по id
16 Кб, 719x760
#262 #1064189
Привет, котоны. Вопрос наверное избитый, но все же спрошу, мало ли есть какой-то универсальный вариант. Суть такова: пилю сайт каталога товаров, товары разные, с разными характеристиками. Пока все они нормально разбиваются на категории и подкатегории. Характеристики товаров разных категорий и подкатегорий совершенно разные и мне нужно придумать структуру БД, которая позволила бы отображать на странице каталога список товаров с удобным фильтром, типа как здесь: http://www.nix.ru/price/index.html.
Есть, например, категория "Жесткие диски". В ней подкатегории: "Seagate", "Toshiba", "WD". Пользователь из общего каталога товаров переходит в категории "жесткие дески", из нее в категорию "WD" и там видит полный список всех жестких дисков производителя WD. А также панель фильтров, например: "Серия", "Емкость", "Интерфейс". Поставив галочку на "2Тб" в фильтре ему будут показываться жесткие диски производителя WD с емкостью 2Тб. Поставив дополнительную галочку на "Black" ему будут показываться жесткие диски производителя WD, емкостью 2Тб и серии Black. И так далее. Какую наиболее простую структуру БД для этого составить? Пока из вариантов следующие таблицы: "Категория", "Товар" и по одной таблице на каждую подкатегорию со своим набором характеристик.
#263 #1064197
>>1064188
Но входные данные ("маленький массив") у меня не в базе данных. Мне, получается, нужно:
1. создать таблицу
2. заполнить её новымы данными
3. заджоинить её с основной
4. достать все оставшиеся значения из этой получившейся
5. удалить всё лишнее (я не в курсе, создаётся ли на третьем шаге третья или изменяется одна из двух)
Это норм?
#264 #1064268
>>1064197
Что мешает хранить данные в базе? Поддерживать одновременно таблицу и файл?
#265 #1064276
>>1064189
А, все, отбой. Придумал структуру.
#266 #1064295
>>1064197
Ну раз уж на то пошло, то проверь этот метод. Может тебе будет как раз.
#267 #1064344
>>1064197
Да, все верно расписал, я бы так и сделал.
#268 #1064364
>>1064007
Бамп
#269 #1064464
Ньюфаг в треде, подскажите, считается ли зашкваром создавать под каждого юзера приложения пачку бд вида юзер1.френдс, юзер1.задачи итд. Или как это правильно организовать? mysql 5.7, php
#270 #1064470
>>1064464
Зашквар.
#271 #1064471
>>1064470
А как правильно организовать? Дайте статью хотя бы, нагуглить не могу.
Есть таблица юзеров, на каждого юзера нужен список им созданных задач( каждая из которых тоже список ключ-значение), например.
#272 #1064496
>>1064471
Ну так и сделай в таблице с задачами ссылку на пользователя, шо ты, в самом деле

>task_id


>user_id

#273 #1064933
Чем отличаются коррелированный подзапрос от некоррелированного?
#274 #1065291
>>1035594
Работаю в п.2. Хуячу ETL(обычно помесь Informatica PowerCenter, shell скриптов, самописных хранимых процедур), документирую их.

Также решаю более "аналитические" задачи - нужно через мутные разговоры с аналитиками, разрабами и менеджерами всех мастей разобраться, где что лежит в определенной удаленной БД и как получить оттуда нужные данные, которые бы удовлетворили заказчика. ПОдробнее описывать лень и получится слишком уж конкретно...
#275 #1065374
>>1064933
Тем, что в коррелированном подзапросе ты обязательно указываешь связь с данными из внешнего запроса, то есть, у тебя для каждой строчки внешнего запроса могут получиться различные результаты, возвращаемые подзапросом.
А некоррелированный всегда возвращает одно и то же.
9 Кб, 768x614
#276 #1065392
Сап. Можно как - то в sql создать таблицу как на пике?
#277 #1065401
>>1065392
Нет, в реляционной базе данных каждая таблица состоит из строк, такая хуйня возможна только в объектной - документной бд путем укладывания туда json-a, xml-a или чего-то подобного.
Другое дело, что некоторые реляционные субд уже прддерживают такую фичу, например, ms sql, постгрес там.
Под поддерживают я имею в виду не просто возможность положить строку в формате джейсона, но еще и набор функций для того, чтобы что-то конкретное оттуда потом достать.
#278 #1065546
Добрый вечер.
Есть достаточно большой опыт етл дева, оркл, инфа, пл скл, оптимизация, отчетики сап бо.
Не так давно начал перекат в бигдата - мапредюс, Спарк и прочее. Пишу говнокод на Ява-скала.
Какой вариант развития лучше?
какой уровень ЗП можно получить в том же дс как реляционщику,, каковы перспективы, потолок?
По личному - от скл и информатики тошнит, все время считал это зашквар и комплексовал что не программист.
Заодно, что посоветуете?
#279 #1065562
>>1065546
Так иди в тред про машобчик, там тебе посоны за все пояснят, нас ты уже перерос, думаю.
#280 #1065589
>>1065401
Спасибо, анон
#281 #1065665
Pl/SQL
Ошибки не выдает, однако ожидаемых действий (изменения в столбце description таблицы products) нету.
Что я делаю не так? Пробовал вместо pdata делать массив - выбивает ошибки.

CREATE OR REPLACE PROCEDURE DescPrice(idMFR IN NUMBER, point_price IN NUMBER )
IS
str_cheap VARCHAR2 (50);
str_exp VARCHAR2 (50);
pdata NUMBER(4,0);

BEGIN
str_cheap := 'Дешевый товар';
str_exp := 'Дорогой товар';

SELECT PRODUCT_ID INTO pdata FROM PRODUCTS WHERE MFR_ID = &idMFR AND price > &point_price;

UPDATE PRODUCTS SET description = str_exp WHERE PRODUCT_ID = pdata;
UPDATE PRODUCTS SET description = str_cheap WHERE PRODUCT_ID != pdata AND MFR_ID = idMFR;

dbms_output.put_line(pdata);

END DescPrice;
#282 #1065701
Еще вопрос - как сделать, чтоб функция возвращала коллекцию?
При попытке написать при обьявлении return collection_name пишет, что нельзя использовать необьявленный тип.
#283 #1065794
Сап, не видел ли кто в интернетах бдшку со списком всех книг (хотя бы русских/англоязычных), с указательством автора?
#284 #1065796
>>1065794
Окей, нашел список литературы в ISBN (https://www.books-by-isbn.com/cg-russian_federation_and_ex_ussr.html), может ли кто подсказать, как оттуда можно выкачать весь этот список и как-то засунуть их в БДшку?
#285 #1065839
>>1065796
Нужно писать скрипт на каком-нибудь ЯП и потом из него вносить данные в БД.
#286 #1065847
Аноны, есть база на постгресе, и в ней есть табличка с полем parse_time формата TIME, в базах не особо силён, но не могу понять, какого хрена не делается выборка по времени?
Толкните меня в нужную сторону или расскажите в чём проблема.
#287 #1065861
Как предусмотреть ввод пользователем года равного нулю?

Почему то что я написал выдаёт ошибку на втором пике?
8 Кб, 594x151
#288 #1065867
Как с помощью WITH ... AS()
сделать таблицу, с которой можно было бы совершать команды DML, например, как соединить эти 2 строчки на пике
#289 #1065886
>>1065847
Попробуй привести строку к типу time

('23:03:06'::time)
#290 #1065888
>>1065861
Ни хуя не понятно, где предусмотреть? Приведи кейс и описание фрагмета своего приложения.
>>1065867
Ну это, вообще, ПУШКА,
Конструкция with - это такой подзапрос, ты не можешь выполнять с ней операции dml, для этого тебе нужно создать временную таблицу.
13 Кб, 797x153
#291 #1065896
>>1065888

>Приведи кейс и описание фрагмета своего приложения


Приложение это решение задачи:
В 1845 году в США была установлена традиция, согласно которой выборы президента проводятся во вторник после первого понедельника ноября в год, делящийся на 4 без остатка. Определить, дату ближайших к заданной дате президентских выборов в США.

Я не буду приводить весь код, что бы не сбивать с толку,
а дам только неработающую ветку в операторе ветвления
я предусмотрел все варианты, кроме одного - когда пользователь введет дату с нулывым годом ,
в принципе, нулевого года не существует по григорианскому календарю,
в оракле он тоже судя по всему не проходит,
поэтому я пытаюсь отловить этот год на этапе ввода данных, но не знаю как мне вычленить из вормата 'DD.MM.SYYYY' год SYYYY и сравнить его с нулем и выбросить строку 'NEPRAVILNO'

https://pastebin.com/m8zwMSna

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


>>1065888
а если я так напишу

CREATE TABLE MY_EMPLOYEE
(ID NUMBER(4) CONSTRAINT MY_EMPLOYEE_ID_NN NOT NULL,
LAST_NAME VARCHAR2(25),
FIRST_NAME VARCHAR2(25),
USERID VARCHAR2(8),
SALARY NUMBER(9,2)
);

это временная или обычная?
чем они отличаются вообще кроме названия
13 Кб, 797x153
#291 #1065896
>>1065888

>Приведи кейс и описание фрагмета своего приложения


Приложение это решение задачи:
В 1845 году в США была установлена традиция, согласно которой выборы президента проводятся во вторник после первого понедельника ноября в год, делящийся на 4 без остатка. Определить, дату ближайших к заданной дате президентских выборов в США.

Я не буду приводить весь код, что бы не сбивать с толку,
а дам только неработающую ветку в операторе ветвления
я предусмотрел все варианты, кроме одного - когда пользователь введет дату с нулывым годом ,
в принципе, нулевого года не существует по григорианскому календарю,
в оракле он тоже судя по всему не проходит,
поэтому я пытаюсь отловить этот год на этапе ввода данных, но не знаю как мне вычленить из вормата 'DD.MM.SYYYY' год SYYYY и сравнить его с нулем и выбросить строку 'NEPRAVILNO'

https://pastebin.com/m8zwMSna

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


>>1065888
а если я так напишу

CREATE TABLE MY_EMPLOYEE
(ID NUMBER(4) CONSTRAINT MY_EMPLOYEE_ID_NN NOT NULL,
LAST_NAME VARCHAR2(25),
FIRST_NAME VARCHAR2(25),
USERID VARCHAR2(8),
SALARY NUMBER(9,2)
);

это временная или обычная?
чем они отличаются вообще кроме названия
#292 #1065897
>>1065896

>на этапе ввода данных


в приведенном коде этого нет, это просто моя догадка)
можно сделать еще один case для первого столбца,
но проблема все та же, как вычленить число SYYYY из DD.MM.SYYYY при вводе данных
я ведь ввожу как бы строку?
#293 #1065904
>>1065886
Не помогло.
Сделал просто через:
SELECT * FROM packets
WHERE parse_time >= '23:03:06'
И всё ок, мне в принципе подходит такое решение.
Но всё же странно что оно так вот работает.
#294 #1065944
>>1065546
меня от SQL не тошнит, но в биг дату получше влиться тоже желаю. Сейчас по англоязчным туториалам развернул себе одноузловый "кластер" и потестил его. Сейчас смотрю как на питоне map-reduce джобы писать. Наверное на джаве тоже придется научиться.

По мне так это наверное будет не перекат, просто расширение навыков. А роль похожа - ETL, оптимизация "запросов"(которые за кулисами - мапредьюс) и т.д.
#295 #1065951
>>1065904
Вангую, что в тайм есть еще милисекунды, которые лежат в табличке, но в результате твоего первого селекта не выводятся.
#296 #1065953
>>1065944
Только придется еще в матстате и эконометрике прошариться, потому что чел, который занимается багдатой, но не умеет исследовать данные, нахуй никому не нужен.
#297 #1065955
>>1065953
Ну, тащемта, на это есть датасаенс и датасаентисты, не? Или ты единорогом хочешь стать?
#298 #1065972
>>1065955
Сужу по опыту, вижу, что те, кто занимается анализом бигдатыи машилернингом, как раз и выступают в роли разработчиков, у меня в конторе так, больше скажу, ходил на конференции мейл.сру, так дела обстоят точно так же.
Просто делюсь инфой, если хотите, учите спарки с мэпредьюсами без математики, никто ж не запрещает.
#299 #1065975
>>1065972
Я в большой телеком компании; на мой взгляд всё же есть тенденция всё же к разделению труда, где есть более-менее четкие роли санетистов и инженеров.

Мне в принципе пох, мне интересны обе стороны медали. Спасибо за информацию
#300 #1065983
>>1065972
Разделение у меня тоже есть. Писать етл и модели - все таки разные вещи. По вакансиям вроде где как. Где то хотят мл где то нет. Конечно не лишним будет.
#301 #1065996
>>1065951
Нет, милисекунд нету, я в таблицу передаю именно чч/мм/сс и всё.
40 Кб, 527x270
#302 #1066001
>>1065996
p.s. Я глядул код, в принципе что-то такое есть. Только я передаю БД строку формата datetime и она уже её делит на дату и время. Но всё равно там милисекунд нет. Странно.
58 Кб, 828x463
#303 #1066628
>>1034303 (OP)
Привет, котоны. Есть база товаров, нужно составить к ней запрос, который возвращал бы что-нибудь вроде этого:
1. Количество портов
1. 12
2. 24
3. 48
2. Производитель
1. Cisco
2. SNR
3. Asus
3. Скорость коммутационной матрицы
1. 48 Гбит/с
2. 64 Гбит/с

Запрос, который я составил возвращает следующее:
1. Количество портов 12
2. Количество портов 24
3. Количество портов 48
4. Производитель Cisco
5. Производитель SNR
6. Производитель Asus
7.Скорость коммутационной матрицы 48 Гбит/с
8. Скорость коммутационной матрицы 64 Гбит/с

Используя данную выборку я буду составлять панель фильтрации товаров на сайте в идеале двумя циклами:
Цикл по характеристикам
{
Имя характеристики
Цикл по значениям
{
Значение характеристики
}
}
Как мне правильно составить запрос, аноны? Пишу на PHP +Laravel.
58 Кб, 828x463
#303 #1066628
>>1034303 (OP)
Привет, котоны. Есть база товаров, нужно составить к ней запрос, который возвращал бы что-нибудь вроде этого:
1. Количество портов
1. 12
2. 24
3. 48
2. Производитель
1. Cisco
2. SNR
3. Asus
3. Скорость коммутационной матрицы
1. 48 Гбит/с
2. 64 Гбит/с

Запрос, который я составил возвращает следующее:
1. Количество портов 12
2. Количество портов 24
3. Количество портов 48
4. Производитель Cisco
5. Производитель SNR
6. Производитель Asus
7.Скорость коммутационной матрицы 48 Гбит/с
8. Скорость коммутационной матрицы 64 Гбит/с

Используя данную выборку я буду составлять панель фильтрации товаров на сайте в идеале двумя циклами:
Цикл по характеристикам
{
Имя характеристики
Цикл по значениям
{
Значение характеристики
}
}
Как мне правильно составить запрос, аноны? Пишу на PHP +Laravel.
#304 #1066690
>>1066628
Структуру результата прозрачнее представь. У тебя есть строки и столбцы, у каждой строки есть свой уникальный номер, как во втором результате, а не 1,2,3,1,2,3... Тогда может быть ты сможешь сам решить.
174 Кб, 959x350
#305 #1066713
Пытаюсь построить сводную таблицу из модели данных Power Pivot. Не могу понять почему за 21 сентября данные нормально отображаются, а 20 сентября - (пусто). Хотя все данные из одного файла и вроде тип поставлен у них дата. Почему же появилась графа пусто?
#306 #1066863
>>1066713
Очевидно, там есть пустые значения в исходных данных, посмотри просто их и фильтрани, там дрлжно быть где-то пусто.

Понту юзать PowerQuery, если честно, никакого не вижу, больше респектую стандартное подключение к ms sql.
#307 #1067102
>>1064276
поделись тогда, я вот не придумао
#308 #1067104
>>1065665
а где commit?
#309 #1067109
>>1065701
тебе нужно создать тип на уровне Бд, т.е. как объект схемы, тогда можно в скл запросах использовать эту функцию как таблицу. Ассоциативные массивы таким образом использовать нельзя.
#310 #1067151
Соси хуй
#311 #1067524
#312 #1067551
>>1066628
Так, ладно. С этим я разобрался. Теперь мне нужна помощь в другом. Нужно составить следующий запрос:
Допустим клиент в фильтре выбрал свойство 1 и значения для него 1 и 2, свойство 2 и значения для него 3 и 4. Как составить запрос, который вернул бы записи всех товаров, у которых в свойстве 1 есть значения 1 и 2, а в свойстве 2 есть значения 3 и 4? У меня запрос какой-то кривой получился, записи дублируются.
#313 #1067557
>>1067551
Лефт джоин, сука
#314 #1067561
>>1067557
Так он же по умолчанию считается как лефт, если явно не указывать.
#315 #1067566
>>1067561
Как inner по умолчанию!!!
#316 #1067567
>>1067557
Кстати, умник, какой смысл в left join'e, если накладывается условие на таблицы, которые джойнятся? Конкретно в этой записи записи запроса inner будет эквивалентен left'у!!!
#317 #1067588
>>1067566
Да пофиг, все равно ничего не изменилось. Может еще какие варианты есть? Разгребать выборку в коде как-то не хочется.
3 Кб, 365x175
#318 #1067596
>>1067588
Даже макаба возмущена.
#319 #1067606
>>1067596
Ты дибил блядь?
У тебя радные строки, одна строка по одному параметру, другая по второму
Какой груп бай бля дибил
#320 #1067607
>>1067596
А вообще нет, нихрена я не решил. Если свойства разные, то идет выборка по каждому из них и товары нормально не фильтруются. Как правильно зделость-то, а?
#321 #1067609
>>1067607
Тебе бля конечный вид какой надо
Имя / параметр 1 / параметр 2
-------
Имя / значение 1 / значение 2

Так бля?
#322 #1067610
>>1067609
Гугли короче pivot table, если хочешь красиво
Если некрасиво то ебись с case, group by и прочим
80 Кб, 573x433
#323 #1067612
>>1067609
Смотри какая у меня штука.
Если я выбираю в параметре "скорость коммутационной матрицы" значение "48 Гбит/с", то должны отображаться только те товары, у которых этот параметр имеет это значение. Соответственно, если помимо этого параметра я еще выбираю в параметре "емкость таблицы MAC-адресов" значение "16к", то должны отображаться только те товары, у которых скорость коммутационной матрицы = 48 Гбит/c и емкость таблицы MAC-адресов = 16к. В пределах одного параметра сейчас отображается все правильно, но если выбрать другие, то все смешивается.
#324 #1067649
>>1067612
Ну ведь это логично.
У тебя сейчас каждой строке в таблице соответствует две строки в дополнительных таблицах, отсюда и задвоение.
А так как у тебя в запросе OR, он тебе вернет не только строки, которые удовлетворяют обоим условиям, но и те, которые удовлетворяют одному условию.
В то же время, замена or на and на первый взгляд нихуя тебе не даст из-за своеобразной структуры.
Какой формат вывода тебе нужен, только сами товары, без наименований и значений параметров?
В таком случае тебе лучше использовать здесь конструкцию exists:

Select * from goods
Where exists (select по первому параметру из тех таблиц, которые ты джйнишь)
And exists (select аналогично по второму)

С уважением,
топ-ораклист-120к
#325 #1067656
>>1067649
Общая, тебе нужно джойнить дополнительные таблицы столько раз, сколько у тебя параметров
И писать условия через And
Это же блядь логично, не правда ли?
Что OR значит ИЛИ и выдаст тебе все продукты, у которые удовлетворяют условию 1 ИЛИ условию 2.
#326 #1067671
>>1067656
Так, подожди, сейчас я разгребу что ты мне написал и попробую. А то я ж не топ-ораклист-120к.
#327 #1067678
>>1067671
Разумеется.
Хоть я и перестал регулярно мониторить тред, но сегодня посижу, ок.
#328 #1067684
>>1067678
Видимо я вообще не понял как работать с EXISTS и у меня запрос достал вообще все записи из таблицы goods.
#329 #1067689
>>1067684
Ух бля дебил
Почитай про экзист
Нахуй ты ровно свой запрос туда пишешь, это бля как 1=1 написать
Скинь текст, могу отредактировать
#330 #1067690
>>1067689
Нет, не могу
Короче у тебя в запросе должно быть условие связки твоей основной таблицы с дополнительными, но джойнить её ещё раз не надо
Бля ты можешь просто прочитать как работает экзист? Сложно?
#331 #1067691
Ну и научись таблицы коротко называть
13 Кб, 497x190
#332 #1067697
>>1067691
Ты с телефона что ли капчуешь, что злой такой? В общем, взгляни на этот запрос - он выдает то, что мне нужно. Но я сейчас как обычно обрадуюсь и поспешу, так что мне нужно твое мнение как профессионала.
#333 #1067699
>>1067697
Всё верно, именно так экзист и используют.
Извини, я очень эмоционально нестабилен сейчас.
#334 #1067701
>>1067699
Понятно. Ну тогда большое тебе спасибо за помощь - очень выручил.
#335 #1067703
>>1067701
Обращайся.
#336 #1067920
я хуею с вопросов, как вы сайтики клепаете, если простой селект не понимаете
#337 #1067988
>>1067920
Ну так ведь клепание сайтиков это для животных
А тру боги клепают отчётность на оракле
#338 #1067992
>>1067920
Простой селект, я думаю, здесь все понимают. А хитровыебанный уже не каждый.
#339 #1068017
>>1067992
ммм, я спокоен за свою карьеоу
#340 #1068027
>>1068017
Расскажи про карьеру
#341 #1068032
>>1068027
карьера чмошника, знающего скл на уровне продвинутого чмошника
#342 #1068049
>>1068032
О,ты это я
#343 #1068126
>>1068049
хуево тебе
#344 #1068217
>>1065867
With cte as ()
Insert into t1
Select * from cte

>>1065888
А вот и нихуя.
Вышеознаяенный шаблон изи отработает в sql server 2k12 и выше.
В оракле тоже.
#345 #1068248
>>1068217
Либо в разных базах по-разному, либо ты ебаный дебил, потому что в оракле нужно писать
Insert
With
Select
В таком порядке
#346 #1068316
Чуваки, я запутался. Пилю один опенсорсный прожект, есть два типа данных - обычные табличные данные, в целом с ними ничего не происходит. То есть когда-никогда закинул в новую таблицу очередную порцию и забыл, по этим табличным данным идет сверка других, "живых", данных, которые идут в виде key-value. Сейчас я сижу на постгресе, но меня она почему-то заебала. Диски заебывает докупать. Тридцать гигов закинул в пару таблиц и столько же занял индекс. А еще эти простыни ебанутого sql-кодеса, особенно ебанутого поиска по jsonb. И дело тут не в ORM. И вот я подумываю про съёб на монгу или что-нибудь такое. Хуйня в том, что у меня не только постгрес, у меня тут еще графовая cayley, постгрес для нее идет бекэндом. Читал много негативного про монгу, хуева куча в интернете кулсторей про миграцию с монги на постгрю и одна или две про обратное. Вот что бы вы посоветовали? Стоит рыпаться с постгри или не стоит? Что бы вы сделали на моем месте? Что вы думаете про монгу (только без траллинга, пожалуйста)?
#347 #1068470
>>1068217
тогда я не понимаю, что ты хочешь сделать. Можешь объяснить еще раз нормально?
#348 #1068485
>>1068316
У нас кластер монгос. Зависимость есть, брат жив.
#349 #1068497
как из обычного join сделать cross join в оракле?
то есть
select from t1 join t2;
по идее долдно работать, но не работает в оракле, что к этому надо добавить,

старый синтаксис работает
select
from t1, t2;
это и есть декартово произведенте
как сделать то же самое но без клбчегого слова cross, но с join?
#350 #1068498
>>1068316

>Что вы думаете про монгу (только без траллинга, пожалуйста)?


что в ней транзакций и хранимок нет, вот что.
#351 #1068501
>>1068498
В ней есть хранимки в виде джаваскрипт-кода.
#352 #1068515
>>1068497

>t1 join t2 on 1=1

934 Кб, 1000x745
#353 #1068899
Решил наконец попробовать графовую СУБД, начал читать про neo4j и вот уже готов был ставить, как увидел, что она платная оказывается.
А она самая популярная и библиотеки под нее есть.
Полез смотреть дальше, вроде как следующая популярная это OrientDB. Но под нее уже с либами все гораздно хуже и язык запросов у них какой-то мутный.

В общем, что хотел спросить - может еще чего-нибудь посоветуете? Какие решения выбирают для продакшена?
#354 #1069095
>>1068899
А язык какой? У нас, гоферов, есть cayley и dgraph. Кайли умеет в graphql, gizmo и mql, dgraph - graphql. Но если ты раньше не работал с графовыми базами, то любой язык запросов тебе покажется ебанутым потому что ебанутый сам язык, а логика запросов.
#355 #1069435
>>1069095
Воу, я совсем отстал, первый раз про них слышу.
Язык руби.
Похоже нужно перекатываться.
#356 #1070130
Анон, привет. Хочу развиваться в сторону работы с данными, администрирования информационных систем. Подскажи какую книгу по дороге в метро можно читать про БД (именно теорию, потому что практические задания/команды нормально изучаются только за ПК)? Если я крайне мало знаю о них. Там про первичные, вторичные ключи и т.д. Сам сейчас изучаю sql и работу в excel (смотрю видосы на ютубе). Подскажи что еще требуется, куда двигаться.
#357 #1070440
>>1070130

>Подскажи какую книгу по дороге в метро можно читать про БД (именно теорию, потому что практические задания/команды нормально изучаются только за ПК)?


An Introduction to Database Systems (8th Edition)
by C.J. Date
Link: http://a.co/frmPMxS
#358 #1070471
Привет, стоит ли делать файл с подключением к БД на постгре который будут юзать сотрудники когда им, блять, заблагорассудится посмотреть на цифры?
#359 #1070473
>>1070471
* в екселе
#360 #1070525
Знающие, скажите плиз.
Кароч, замес такой. Мне 20, законченная вышка (да, круто, еее). Вышло так, что на 3 курсе случайно нашлась работа и слово за слово работаю полтора года с оракловыми бд и иже с ними.
Какие исходные на данный момент: Pl_sql, reports, forms это вот все на таком средненьком (в силу опыта) уровне ну и все, что дал универ (то есть много чего, но крайне слабо).
Задумываюсь о том, стоит ли оставаться в этой сфере или перекатиться во что-то другое, более трендовое и распространенное. Есть ли резон сидеть в этом всем. Ну и как обычно, что надо добавить к своему резюме, чтобы было больше шансов считаться нормальным спецом.
#361 #1070628
>>1070525

>Мне 20, законченная вышка


Вут?
#362 #1070775
>>1070471
А что такого? Это самый простой способ построить отчет. Если нету системы управления отчетностью, то почему нет?
#363 #1070797
>>1069095

>cayley


А что значит, что она в качестве бекенда может использовать другие БД (sql, cassandra, mongo). Это как вообще?
#364 #1070811
>>1070525
Просто расскажу как дела обстоят на рынке. Со знанием только sql и pl/sql выбор не велик: либо отчетики, либо легаси, где логика в БД. Еще можно вкатиться в администрирование Oracle, деньги там есть, а развитие хз. Если знаешь java, то вакансий становится в 10 раз больше, тут уже можно выбирать, есть и легаси, есть и новые проекты. Плюсиком тебе будет то, что ты продвинут в области БД. Короче сумбурно пишу, но я бы на твоем месте выучил распространенный язык и дальше в его экосистеме развивался бы. В случае чего, всегда можно найти говнопроектик для разраба БД. Ну а раз ты такой вундеркинд, то думаю без труда осилишь ту же джаву.
#365 #1070812
>>1070471
Лол, делал такое, только с ораклом и еще в vba раскидывал данные по документам.
#366 #1070813
>>1070811

> java


Занято.
#367 #1070815
>>1070813
Тебе бутер с икрой или с корку хлеба черствую?
#368 #1070842
>>1070815
Туалетную бумагу передай.
#369 #1071007
Можно в селекте устанавливать свои значения? Например есть таблица СТУДЕНТЫ и таблица ПИДАРАСЫ. По имени смотрим в таблице ПИДАРАСЫ студентов, если студент есть там, то в таблице СТУДЕНТЫ у этого студента в колонке пидарас ставим крестик.
#370 #1071045
>>1070811
Спасибо за хороший ответ.
В таком случае начну копать в этом направлении. Все-таки можно выучить минимум, а потом на работке дотянуть. Плюсик в карму.
#371 #1071046
>>1071007
Либо процедуру напиши, либо триггер на одну из таблиц повесь. А вообще изи задача.
#372 #1071048
>>1070775
Ну типа не сильно ли зашкварно в 2к19 году этим заниматься, и если макаки будут до обморока запрашивать данные, не сильно ли это загрузит бд. Да, я понимаю что всё от размеров и запроса зависит.
#373 #1071058
>>1071046
Не совсем понял. Ты точно правильно понял что я хотел сделать? Мне нужно для всех записей в таблице СТУДЕНТ, которые имеют ключ в таблице ПИДАРАСЫ, изменить поле 'пидарас'.
#374 #1071082
>>1071058
Ну вроде.
Если уже есть все таблицы, то пишешь процедуру.
В цикле по всем айди студентов :
Если селект из пидараса возвращает не пустое значение, то инсерт в студенты крестик, где айди студента такое то. Если вылетит эксепшн, что данных нет ( студент не пидр), то не делай нихуя.
Запускаешь процедуру.
Профит.
Не забудь комиты ставить после инсертов.
#375 #1071243
Анон, проходил кто на этом сайте курсы?
https://openedu.ru/course/spbstu/BIGDATA/
#376 #1071291
>>1071243
Я проходил в прошлом году 2 курса.
И прямо сейчас 3 прохожу.
Еще штук 11 в очереди (за все сразу не берусь, т.к. не осилю), там обычно перезапуски курсов в феврале и сентябре.
Прохожу для расширения кругозора, для себя.
Еще нравится stepic.org
#377 #1071293
>>1071291
А сертификат получал?
#378 #1071305
>>1071293
Бесплатный да.
Раньше их давали везде.
Год не заходил, сейчас где-то только платные дают, где-то как и раньше осталось.
Сертификат студентам надо, мне так, бумажка. Я сейчас на трех курсах за которые бесплатные сертификаты вроде не дадут.
#379 #1071315
>>1070797
Бамп вопросу
#380 #1071392
>>1071048
Сделай там set transaction isolation level read uncommitted, пусть хоть обчитаются.
пок пок грязные данные, ога
#381 #1071563
>>1071082
Сьеби с треда, быдло
>>1071058

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

Update s
Set s.pidoras='x'
From students s
Join pidorasi p on p.student-id = s.student-id
#382 #1071566
>>1071392
В пострге уровни изоляции как в спермосервере? Пиздишь же.
#383 #1071596
что такое db_link в оракле, можете плиз объяснить
#384 #1071725
>>1071596
Суть - устанавливается связь по сети между двумя разными инстансами, потом можно к примеру селктить из таблиц удаленной БД и вызывать хранимки.
#385 #1071727
>>1071045
Не за что, еще есть как вариант быть разрабом на платформах, которые являются надстройкой над Oracle Db, например платформа для банков ЦФТ со своим PL+. Но это уныние и крайне узкая специализация.
#387 #1071782
>>1070525
резон есть.
тырпрайзные БД со своими хранимками и репортами всегда там, где есть, _что_ считать и за _что_ отчитываться. это не веб-макакинг никому не нужных приложений (пусть даже сегодня за это платят сжигая деньги, хотя уже не платят). тырпрайзная БД параша никуда не исчезнет никогда. со временем будет только еще больше данных, больше хранимок, энтерпрайза, хардкора. тырпрайзные
19 Кб, 328x275
#388 #1071814

> PostgreSQL


Когда 1,5кк срок накапливается - вообще хуй дождёшься вывода.
Аноны, что почитать за оптимизацию постргреса и вообще про него?
Учил его по документации.
57 Кб, 1280x720
#389 #1071822
>>1071814

> full scan всех колонок


> бля, хули не секунда

7 Кб, 293x96
#390 #1071824
>>1071822
Колонок всего лишь 12.
Хотя судя по всему...иду ка я нахуй, ты прав.
#391 #1071896
какой приоритет в создании синонимов у оракла?
То есть увидев объект на который надо создать синоним он сначала ищет объект среди таблиц, потом среди предсиавлений итд
Может ли быть PUBLIC синоним с таким же именем как PRIVAT синоним, если да, то как пользователь в своей схеме будет к ним обращаться?
#392 #1072069
>>1071896
Что в доках написано? Если узнаешь, то отпишись. Откуда вы такие вопросы берете? На OCP что-ли готовишься? По логике, private перекрывает public.
#393 #1072321
>>1072069
Приоритет всегда имеет твоя собственная схема, то есть если у тебя есть таблица с именем T1 и существует PUBLIC синоним с именем T1, то приоритет будет отдан таблице
в доках не нашел, но увидел упоминание на каком-то форуме и проверил опытным путем

Нет, просто на учебе задали такой вопрос
#394 #1072322
Может ли любой пользователь передать право создавать запрос к своей таблице ?
#395 #1072347
Знатоки Баз данных, ай нид хелп
Сам в этой теме абсолютно ни фига не шарю, поэтому может моя проблема покажется вам тупой.
Попросили запилить сайт на Вордпрессе по-быстрому, я в этом практически нихуя не секу, но решил попробовать. Накатил ЦМСку, залил шаблон (скачал с ТемплейтМонстра), вроде все путем.
Потом залил файл БД через ПхпМайАдмин - и пиздец. Не могу зайти в админку Вордпресса. Сам шаблон вроде накатился, все адекватно, но вот что происходит:
1) При поптыке войти в админку сайта через "sitename.com/wp-admin" происходит какой-то ебаный редирект на страницу с УРЛом http://sitename.com/wp-admin/sitename.com/wp-admin/upgrade.php?_wp_http_referer=/wp-admin/
И, понятное дело, выдает мне 404 страницу

2) Если вдруг это поможет определить симптом: при попытке перейти с любой страницы сайта на главную он начинает прибавлять к урлу страницы "sitename.com/". То есть, было: sitename.com/contact, стало sitename.com/contact/sitename.com/, попробуешь еще раз - станет sitename.com/contact/sitename.com/sitename.com/ и т.д.

Шо делать, где и как что можно поправить, дабы избежать ебаного редиректа и спокойно попасть в админку? Кстати, на sitename.com/wp-login.php заходить получается, но после того, как залогинюсь, в админку один хуй не пускает
#396 #1072488
У кого есть скиньте справочник по sql функциям в pdf
28 Кб, 400x400
#397 #1072585

>cayley


Посоны, что значит, что она в качестве бекенда может использовать другие БД (sql, cassandra, mongo). Это как вообще?
#398 #1072608
>>1072585
Ну использует другую субд для реализации части функционала. Чё тут не понятно?
#399 #1072618
Друзья, чем можно нарисовать структуру базы данных? Буду использовать PostgreSQL. Нужно просто схема с таблицами и связями, при этом желательно без подключения к базе? Хочу просто пока описать названия + тип (примерно, не писать там float(10, 2), чтобы прикинуть несколько вариантов, без всяких осложнений и конкретики.

MySQL Workbench какой-то уебанский, залезла панель у меня куда-то, и не перетаскивается, не могу её выдвинуть. Забагованный короче. DBeaver тоже сыпет Exception'ами, и с ним не очень удобно работать, не поддерживает автокомплит (пишешь seri он подсказывает, мол, serial? жмешь ентер - ошибка, жмешь таб - ошибка, кликаешь - ошибка)
#400 #1072631
>>1072618
сам отвечу, наткнулся вот на что: https://sqldbm.com
вроде бесплатно, зарегался, можно сохранить прямо там в облаке. в принципе, то что нужно, жаль что не десктопный софт, структура будет большая, не хочу чтобы на 14 день мне выскачило сообщение об оплате, чтобы открыть доступ.
P.S. Если есть такое же удобное но десктоп - сообщите.
#401 #1073078
>>1072608

>Ну использует другую субд для реализации части функционала


Вот непонятно, как это. Реализация хранилища же сильно зависит от функционала. А тут графы, такая штука, с которой нельзя эффективно работать в обычных СУБД. И вдруг их используют в качестве хранилища. Интересно как?
У меня была мысль, что может они именно данные хранят в БД (ну типа как эластик хранит лексемы или типа того), а для хранения графа используют свою систему.
#402 #1073079
>>1072631
Анон, зря забраковал Воркбенч, он годный и пожалуй самый лучший из бесплатных (а еще он умеет в реверс-инжинеринг). Иногда глючит это правда, но не часто.
Другой годный, открытый и универсальный вариант - https://www.draw.io/.
#403 #1073159
>>1073078
Может и можно. Есть же в sql базах всякие модные штуки вроде recursive сte.
31 Кб, 539x347
#404 #1073296
Посоны, есть одна интересная задача.
Есть таблица сотрудников и там дата добавления результата этого сотрудника. То есть сотрудников добавляет результаты, но добавляет не каждый день. Нужно вывести статистику по сотрудникам, НО те дни когда сотрудники результаты не добавляли должны быть нулями. То есть должны быть все даты. Если через count стату собрать то будут даты только когда были проставлены результаты. Смотрите пик.

То есть, есть таблица result (int id, type_result int, id_user int, date_add datetime).
Можно сделать таблицу со всеми датами подряд, но как джойнить потом?
#405 #1073380
>>1073296
Джойнить по ключу. А вообще- изъебство, сделай проще. Поле DT определи, как Null. А далее обновляй по необходимости.
#406 #1073473
>>1071814
Добавление индексов избавит бедненькую СУБД от необходимости шерстить таблицу строка за строкой.
#407 #1073567
>>1073473
И как же добавление индексов поможет при селекте всей таблицы?
#408 #1073571
>>1073296
Нужно собрать табличку или подзапрос с датами за указанный период, а потом к нему(ней) лефт джойном присобачить твою таблицу с результатами по полю cal_d
#409 #1073686
>>1071814
>>1073567
>>1073473
Навели на вопрос: а собственно на чем именно тормозит выборка всех строк из таблицы? На дисковых операциях? Ведь на поиск нужных строк ресурсы не тратятся по сути, если правильно понимаю, сортировок тоже нет.
#410 #1074076
Правильно ли я понимаю разницу между кластеризованными и некластеризованными индексами?

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

Некластеризованный индекс хранится отдельно от таблицы в виде двух столбцов, где первый столбец - это сортированные значения индексируемых полей из таблицы, а второй столбец содержит указатели на соответствующие строки из таблицы. Вставка/изменение/удаление строк производится быстрее чем при использовании кластеризованного индекса, но поиск будет чуток медленнее.
#411 #1074316
>>1074076
Да, не забывай еще, что некластерные индексы не будут работать, если нету кластерного, потому что ему (некластерному) нужно ссылаться на какой-та адрес строки в таблице.
#412 #1074325
Дана таблица-лог с более 100 млн записей
У нее есть ключевое поле и некоторый набор других полей. Среди них одно ссылается на некоторую сущность. Нужно удалить все старые записи по каждой этой сущности, оставить только 5 последних. Как это можно сделать? Поиски в гугле предложили курсор и top 3 id desc
После пары часов работы отменил запрос. Нужно что то более быстрое.
Как такие задачи решают настоящите администраторы баз данных?
#413 #1074358
>>1074325
Нужно разбить запрос: запустить несколько запросов, которые будут обновлять таблицу по кусочкам, например, по 10тысяч записей, так ты сможешь увидеть результат быстрее, да и, самое главное, сможешь запустить несколько таких запросов параллельно.
Само задани на удаление не осень понял. Тебе нужно удалить записи об этой сущности из логов или удалить абсолютно все записи о ней из всех мест, где она упоминается?
#414 #1074428
>>1074358
Задание довольно простое. Есть лог, в котором фиксируются изменения сущностей. Там все подряд и товары и услуги и сотрудники. У всех есть id. Этот лог рос и никому не мешал. Сейчас во стал мешать. Поэтому решили что последние 5 записей по каждой сущности это вполне норм. А остальные под нож. Но что то вот не выходит очистить базу. Все пиздец как медленно в курсоре.
Обновлять по кусочкам это как? Когда запускаю два запроса на разных вкладках, то одна крашится, мол таблица залочена или типа того.
#415 #1074442
Нужны ли за рубежом SQL-щики?
#416 #1074451
>>1074428
Пиздец даунич! Вместо того, чтобы подумать над архивацией лога, решили нахуй его удалить. Нет лога - нет проблем, заебись!
#417 #1074590
>>1074442
А лично автор этого вопроса даже в России никому не нужен.
Сейчас буду плакать после плохого собеседования.
#418 #1074594
>>1074590
Что не знал?
По одному собеседованию не судят.
#419 #1074641
>>1074594
А ты можешь себе представить, что я всё знал? Вообще все.
Просто общался как чмо и в заданиях с мутными формулировками, не качающимися эскуля, я обосрался.
Позовут на второй этап - будет чудо. Но вряд ли.
#420 #1074664
>>1074451
Двачаю, логи на то и нужны, чтобы в любой момент спорный поднять историю и пояснить вопрошающему.
#421 #1074710
Анончики, работаю пхп макакой, хочу развиваться в сторону проектирования бд, чтобы повысить свою квалификацию в бекенде.

Основы знаю и могу придумать запроектировать таблички типа customers, orders, products, но хочется больше развить свое мышление, чтобы мыслить абстрактно, чтобы слышать какую-то тему проекта и в голове или на бумаге рисовать сущности и связи между ними. В данный же момент когда сталкиваюсь с незнакомой задачей, то поначалу образовывается каша в голове и хочется больше просветленности.

Что посоветуете? Может какую-то книгу или методики
#422 #1074790
>>1074710
Посоветуем больше практики.
Принцип: хочешь научиться класть кирпич- клади кирпич.
21 Кб, 685x349
#423 #1074827
>>1065392
В PostgreSQL таки можно

create table t1 (id int, tarray text[]);
insert into t1 (id, tarray) values (1, array['line1','line2','line3']);
select * from t1;
#424 #1074886
Проясните один момент, пожалуйста, те, кто знает Оракл
если я использую подзапрос как ЦЕЛЬ в INSERT е

INSERT INTO(SELECT R1, ID FROM T1 WHERE ID = 50)
VALUES ('VASYA', 100);

Вставится ли у меня эта строка в таблицу T1 ???
Есть ли какой-нибудб CHECK OPTION для этого случая?
Потому что кто-то говорит, мол, вставится, но вроде хотели ввести чек оптион.
#425 #1074893
кажется надо просто поставить WITH CHECK OPTION полсле WHERE
как же меня бесит манера составлять лекции: сначала написать "неправильно", потом отвлечься на другую тему, потом дать пример как "правильно"
#426 #1074929
Добрый день.
Срочно.
В иерархических запросах oracle есть connect_by_root. Возвращает значение верхней строчки в иерархии.
А мне нужно значение второй сверху строчки.
Как это сделать?
Красиво или хотя бы говнокодом.
Спасибо.
#427 #1074936
>>1074929
Похуй, скорее всего SYS_CONNECT_BY_PATH подойдет.
#428 #1074987
Я ебал в рот заниматься отчётностью. Я это ненавижу.
#429 #1075038
>>1074886
Проверил в https://livesql.oracle.com
Вставилось.
IDR1
50Max
100Vasya

Про чек опшины хз. Я даже не знал что оно вставится так (смысл правда не понял, зачем мне так вставлять).
65 Кб, 1130x597
#430 #1075182
NEED HELP!

Вопрос про обращение к STORED PROCEDURES через бажесвеный DAPPER, а именно с передачей параметров.

Примеров для M$ SQL Server много и как бы все работают. Мне надо для MySQL

Так не работает. Выдаёт ошибку синтаксиса. Сама рутина экзекьютится в phpMyAdmi-е, то есть с ней всё в порядке

connection.Execute("InsertPerson(@firstN, @lastN)",new{firstN = firstName,lastN = lastName});

Работает только тогда, если передаваемый параметр один.

Где я проебался с синтаксисом????
#431 #1075206
>>1075182
Чё пишет-то?
#432 #1075213
>>1075182
сonт.Execute(sql,params,commandType: CommandType.StoredProcedure);
#433 #1075235
>>1075206
Пока ничего конкретного.
Позже буду перекладывать в VB6+Access на .NET+[Firebird, MySQL, Ms SQL Server]

Сделать красиво
#434 #1075240
>>1075213
Это и так понятно. Мне нужен пример из жизни

В одном примере под MS SQL Server было так

Execute("some_proc @param", new { param = Param})

но для MySQL надо было со скобками просто перебрал и попал

Execute("some_proc(@param)", new { param = Param})

а с двумя и больше выкидавает ошибку
#436 #1075332
>>1034303 (OP)
Сап. Вот есть удаление из двух табличек postgres, все ок
DELETE FROM orders o USING users u WHERE o.userid = u.id and u.firstname = 'Sam';
DELETE FROM users u WHERE u.firstname = 'Sam';
но, если надо удалить много записей, Sam, Inan, Anon1 etc. Как сделать красиво и просто?
#437 #1075372
#438 #1075377
>>1075372
рили, во я тупой
#439 #1075434
Hey, guys!
Что вы думаете о mydataexpress ?
Выгорит? Или лучше не браться?
Нужна база на систему авторов-статей, чтобы главред большого журнала мог кроссреференсить кто уже скоко писал.
#440 #1075524
Двоч, посоветуй. Если мне нужно хранить информацию о очень большом количестве подчиненных объектов с малым количеством столбцов (1-2), то как лучше поступать - создавать всё таки таблицу подчиненного объекта и добавить столбец РодительId, или можно у родителя создать varchar(max) и запихивать туда соединенные через разделитель сериализованные мелкие объекты? Я не могу определить, что будет работать быстрее и тратить меньше памяти. Если объекты простые, то их можно быстро десериализовать и не будет оверхеда в виде метаданных таблицы. С другой стороны, это всё равно нужно на бизнес-сервере десериализовывать объекты, прежде чем проводить с ними манипуляции. 1 вариант мне кажется быстрее, но гораздо затратнее по расходу памяти.
#441 #1075547
>>1075524
Очень большое количество объектов парсить из плейн текста по разделителям быстрее, чем сделать один элементарный запрос в базу?
#442 #1075556
>>1075547
А если объект в сериализованном виде занимает 4 байта?
#443 #1075574
>>1075556
Почему бы его не "сериализовать" в байты и не вытаскивать из байтов?
#444 #1075794
>>1075248
Спасибо, помогло!

Кстати, у MySQL всё ещё может глючить, не находя явно существующие рутины, если имя базы не прописано маленькими буквами в connectionString
#445 #1075798
NEED HELP AGAIN

как проверить, что primary key поставлен на AUTO_INCREMENT

Вроде, соответствующая заява (AUTO_INCREMENT = 1) исполнялась без ошибок, но при попытке сделать INSERT кричит, что duplicate entry '0' for key PRIMARY
119 Кб, 1108x402
#446 #1075800
>>1075798
убил старую таблицу и сделал по канону сразу с автоинкрементом

вот и INSERT заработал
#447 #1076187
Заявляю сразу, я довн

Надо сделась SELECT записи в 5 полей (id, Firstname, Lastname, email, phone)

Нужно, чтобы поиск работал как минимум по одному критерию и/или по комбинации из заданых. Например, по фамилии или имени и мылу. %%нувыпонели

Понимаю, что должно выглядеть так:

SELECT FROM people WHERE...
и тут собственно проблема с пустыми полями

Как сделать красиво, чтобы в WHERE игнорились пустые строки.

И как сделать красито, чтобы искало по отрезку строки. Например,
искать всех Jack, Jacob и James через Ja
#448 #1076193
>>1076187
Опять я. Забыл приписать, что делаю черех STORED PROCEDURE

Пойдёт так? обоссыте меня пожалста

WHERE (Firstname=_fistName AND _firstName != "") AND (Lastname=_lastName AND _lastName != "") AND ...и так далее
#449 #1076206
>>1076193
если через процедуру, и условия будут параметрами процедуры, то я бы делал не != "", а is not null.
И чтобы запрос работал нужно предусмотреть варианты null и не null.

Если так, то можно переписать условия типа:
((Firstname=_fistName AND _firstName is not null)
OR (_firstName is null))

Либо

Firstname=coalesce(_fistName,Firstname). Но это если строго равно.

Если через Ja выводить всех то лучше через первый способ: ((Firstname like '_fistName%' AND _firstName is not null) OR (_firstName is null))
#450 #1076210
>>1076206
Спасибо! Помогло!
#451 #1076244
>>1076206
Я поспешил радоваться. Как на пике 1 работает
как на пике 2 - не работает. ни по части, ни по полной
#452 #1076262
>>1076244
насчет like name||'%' нужно соединить параметр и процент. Если || не заработает, пробуй CONCAT(name, '%').

По первому скрину он на твое поле в таблице ругается, есть там такое firstname? Задай таблицу с алиасом или пиши people.firstname.
#453 #1076263
>>1076262
Да и как бы не совсем понятно использование в процедуре
select * и что с этим делать собираешься.
Но это походу какой-то mysql я с ним не работал. Может там так норм.
#454 #1076280
>>1076244
Firstname = name and name is not null? Что блядь? Ты хочешь чтобы у тебя домен не был бы равен null?
#455 #1076299
>>1076262

>CONCAT(name, '%')


это работает (MySQL)
#456 #1076300
>>1076280
я хочу, чтобы пустые поля в маске не сравнивались с содержанием таблицы
#457 #1076313
Есть Mysql база, нужно проверить наличие записи в таблице по совпадению текстового поля. Каким образом сделать это быстрее всего?

PS Если новые записи добавляются по несколько раз в секунду, целесообразно ли использовать индексы?
#458 #1076317
что такое ДС?
#459 #1076688
Как сделать нормальную внешнюю таблицу в оракле?
Вот например у меня такой текстовый файл

https://pastebin.com/6JMEbZV4

и я создаю вот так

https://pastebin.com/aUtAHnCx

Если учесть, что названия файлов 100% правильные, то что может быть не так,
еще что делать, если в текстовом файле последняя строка пустая (пробелы)? как её читать?
#460 #1076902
>>1076300
Пожалуйста, объясни на примере, я не понимаю тебя.
#461 #1076925
Котаны, задрочился что-то на одном вопросе. Есть ли более элегантный способ вытащить последние по таймштампу данные из таблицы? Вот как это делаю я сейчас: http://sqlfiddle.com/#!17/482e3/4/0
#462 #1077338
>>1076925
Зависит от субд, если она умеет в оконные функции (over), тогда есть, гугли row_number()
#463 #1077511
>>1077338
СУБД - PostgreSQL 9.6, оконные функции умеет.
Предлагаешь что-то типа:
with lv as (select id1, id2, value, row_number() over (partition by id1, id2 order by date desc) rn from test)
select * from lv
where rn=1

Что-то сразу не додумался. Хотя по плану выполнения одинаково выходит. Но выглядит лучше.
#464 #1078033
>>1077511
Не может это по плану одинакого выглядеть, так как оконные функции работают без самоджойнов. Это всегда будет работать быстрее и очнее, так как твой старый способ не гарантирует уникальность полученных строк после джойна.
#465 #1078481
>>1076902
Есть маска в черырмя полями
- имя
- фамилия
- пол
- возраст

искать по любой комбинации известных данных, которые задаются. Все пустые искать как any, а не сравнивать, например, gender =""
#466 #1079300
>>1078481
Хуяришь вычислимое поле на эту таблицу
Alter table t_kaka
Add full_user_info as
coalesce(name, '')+coalesce(second_name, '')+ coalesce(cast(gender as nvarchar(50)), '')+coalesce(cast(age as varchar(50)), '')
Далее херачишь на него full text index
#467 #1079308
раскажите пжл в двух словах, что такое SQL project. А именно меня интересует что он содержит? Может быть таблицы базы, может быть базы, их хранимые процедуры, макросы, а может и сами данные. Так что в нем есть?
#468 #1079317
>>1034303 (OP)
Весь тред перечитал, но так и не нашёл этого вопроса.
Как вкатиться в разработку (аналитику) БД. Что качать понятно что SQL, что еще?? Какие вопросы на собеседованиях меня ожидают? И какие подводные в вашей работе?
Я третьекурсник, думаю начать искать стажировку или продолжать читать книги по БД. SQL знаю на уровне проделывания всех упражнений и зубрёжки из книги Ицыка Бен-Гана.
Знаю реляционную теорию на базе курса в универе уровень - могу дать определения третей нормальной форме и называю таблицу - отношением.
В рамках курсового проекта спроектировал БД через oracle developer.
Куда мне двигаться дальше?
Можно ли с моим уровнем начинать искать стажировку?
Как мне получать 100к через год?
250 Кб, 1242x2208
#469 #1080381
>>1034339
А если я вполне ебу что все это значит, как использовать и имею маленький опыт применения этого на практике , но при этом почти не шарю в других языках, можно ли с такими знаниями на стажировку или джуна вкатиться ? Смотрел вакансии по дс-2, дбд если где и нужны то с опытом от года - 3 разработки и приличным прикладным багажом.Есть вакансия в БИЗНЕС ТЕХНОЛОГИЯХ, младшего разраба, вроде почти по всем требованиям прохожу, но вот отзывы об этой конторе в интернете - сугубо негативные
#470 #1080402
>>1079317
Знать надо не только реляционки, вроде оракла, но и nosql, вроде монги и редиса. Сейчас угорают по бигдате, а там без хадупа/редиса/кафки- никуда.
#471 #1080433
>>1034303 (OP)
Sql тяжко учить?
Думаю начать задротить.
В городе маленьком появилась вакансия на 45к, но хуй они тут найдут даже за 100 к, разве что из Москвы выпишут им.
Хочу попробовать через пару дней хотя бы стажором или помощником за 30к. Каковы шансы?
#472 #1080605
>>1080433

>через пару дней


Вкатывальщики ваще ебанулись.
#473 #1080683
>>1080433
Лучше С++ выучи за 21 день и получай 300кк
#474 #1080924
Java уже все? Куда пропал жава тред?
#475 #1080927
>>1080924
промахнулси да и хуй с ним
#476 #1081003
>>1080924
Жава скурвилась
#477 #1081008
>>1081003
Ты хотел сказать СУЛЬвилась?
90 Кб, 1988x956
#478 #1081044
Как выбрать объединение данных из двух таблиц если они связаны через третью? Нужно из table1 выбрать все записи вместе с соответствующими полями table3.
Тоесть получить выборку которая будет содержать table1.table1_ID и table3.table3_ID
#479 #1081078
Есть отчёт на оракле. Ну как есть, хуячу его сейчас.

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

Работает медленно, поэтому пара вопросов:
1. Я не пишу commit после каждого инсерта, так как далее сразу идёт truncate следующей временной таблицы, а он, как известно, сам по себе делает инсерт. Так вот, разницы между явным и неявным коммитом нет? Если я пропишу commit, работать быстрее не станет?
2. Сейчас у меня обычные таблицы, пока я тестирую, потом сделаю global temporary. Это даст прибавку в скорости работы?

Сами запросы тяжёлые и ебанутые, их я оптимизировать ещё больше вряд ли смогу.
#480 #1081079
>>1081078

>делает коммит


Прошу прощения.
#481 #1081085
Господа, как dbf засунуть в mysql5.7?
#482 #1081113
>>1065291
Сколько получаешь?
#483 #1081194
А такое бывает, что при обычном запуске запроса у него один план, а при запуске из хранимой процедуры - другой?
Руками за минуту отрабатывает, а процедура час висит.
Я ебать не хотел эту РАБоту.
#484 #1081363
>>1081113
Когда взяли, был год опыта pl/sql разработчиком, согласился на 80к. Теперь, спустя несколько месяцев, на хедхантере предлагают 100+.
#485 #1081365
>>1076688
а какая ошибка-то вылезает?
#486 #1081369
>>1081363
Хорошо тебе, а мне вот ничего не предлагают с двумя годами опыта pl/sql
#487 #1081373
>>1081369
Как-то странно. Ты в Москве?
#488 #1081374
>>1081373
В Москве.
А 100+ это сильно + или просто чуть-чуть?
Так-то 100 с копейками у меня есть, но мне бы уже 130 хотелось бы.
#489 #1081380
>>1081374
Ну я поставил 120к как желаемое и звонили, говорили что цифра очень даже устраивает. Мне кажется, что поступают неплохие предложения в основном потому, что я ещё Informatica PowerCenter умею юзать. Я вообще специально пошёл на текущую должность чтобы научиться, ибо просек, что это ценится на рынке. Правда обернулось это тем что эта хуйня меня пиздец заебала и тепреь охота слезть не то что с Информатики, но и с чистого SQL-ля вообще. Это реально скучно когда хоть немножко научишься.
#490 #1081393
>>1081380
Я двачую, понимаю прекрасно твой кризис.
Я хуже, я не работаю с ETL, я просто делаю отчёты. ХХ скролю регулярно, на таких как ты спрос больше, чем на таких как я.
Работа заебывает, дрочить на оптимизацию запросов, передрачивать отчёты по 10 раз из-за глупых требований заказчиков. Запускаешь хуйню и ждёшь пока отработает. Долго ждёшь. Заебало, движухи хочется.
#491 #1081394
>>1081393
Соскочил бы куда-нибудь поинтереснее, чай где-нибудь нужен oracle, я ведь его пиздец как люблю и запросики писать нравится
Отчётность заебала, отчётность скучно, банк скучно.
Но мне же хочется ещё и с выгодой по деньгам перейти, потому что никто не знает, понравится ли мне на новом месте, а так хоть деньги в виде бонуса.
#492 #1081508
>>1081044
они не связаны через третью
#493 #1081847
>>1081394

>Скучно.


Охуеть ты зажрался.
мимо >>1079317
#494 #1081942
>>1073686
Дисковые операции + i/o данных.
Вопрос в другом, нахуя так делать, зачем выбирать все 60к строк. Если высрать в отчет - то лучше уж rownum добавить
#495 #1082214
>>1081847
Пошел нахуй, вкатывальщик ебливый.
#496 #1082218
>>1081847
Сука, черт ебаный, как же я с тебя горю.
Откуда ты блядь знаешь, каково это работать тем, кем работаю я?
Ты думаешь, что если апнешь 100к сразу счастливым станешь? Я тоже думал.
Но тебе я желаю разочароваться в профессии, никогда в жизни не апнуть 100к и сдохнуть от синьки.
Потому что нехуй пиздеть о том чего не знаешь.
#497 #1082483
>>1082218
Что-то ты нервный какой-то.
У тебя тянка есть?
sage #498 #1082488
>>1082218
кокой самчный разрыв свитера
даже не пожалел что забыл скрыть ваш петушиный угол
#499 #1082492
>>1082483
Постоянной нет.
#500 #1082718
Здравствуйте.
В понедельник пойду на вилку 130-150 в руки, поддержка АБС.
Будет круто, если возьмут, деньги так-то космические.
#501 #1082817
>>1082718

даже в /rf/ хикканы по 4-5к даларов поднимают с видео на ютубе, при этом не светят еблом, деньги сами в банк приходят
#502 #1082953
>>1034303 (OP)
Можно ли создать представление на основе иерархического запроса (или вообще ОТВ) в MS SQL.
#503 #1082954
>>1082953
?*
быстро фикс
#504 #1083150
>>1082953
Что за иерархический запрос?
Ты можешь сделать представление в мс скл на основе любого запроса, написанного на т-скл.
#505 #1083166
>>1083150

>Что за иерархический запрос?


https://habrahabr.ru/post/43955/

>Ты можешь


Например у нас есть запрос :

WITH REC AS
(
SELECT id, pid, title
FROM test
WHERE title = 'Воронеж'

UNION ALL

SELECT t.id, t.pid, t.title
FROM REC AS r
INNER JOIN test AS t
ON r.id=t.id
)
SELECT id, pid, title
FROM REC

Как реализовать его в виде представления?
#506 #1083522
Блять есть где-то нормальный гайд по установке постгреса на убунте, это же пиздец какой-то, каждый даун по своему говорит, а главное нихуя не работает ?
#507 #1083525
>>1083522
Блять, что нужно добавить то в этот ебучий файл pg_hba.conf
psql: FATAL: no pg_hba.conf entry for host "::1", user "postgres", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "::1", user "postgres", database "postgres", SSL off

Сейчас он выглядит так
host all all 192.168.0.1/32 md5

host all postgres 127.0.0.1/32 trust

host all postgres 192.168.0.1/32 trust
#508 #1083728
>>1083166
Весь люд кличет такие конструкции рекурсивынми запросами, лул.

>как же нам реализовать такое, ой, ой, как же это сделать то?



>>1083150

CREATE VIEW dbo.view_kaka
AS
WITH REC AS
(
SELECT id, pid, title
FROM test
WHERE title = 'Воронеж'

UNION ALL

SELECT t.id, t.pid, t.title
FROM REC AS r
INNER JOIN test AS t
ON r.id=t.id
)
SELECT id, pid, title
FROM REC

Но это еще не все.
#509 #1083730
>>1083728
Если ты реализуешь рекурсию в представлении, то тебе придется писать в каждом запросе, использующем это представдение,

>орtiоn (mахгесuгsiоn = x)

#510 #1083731
>>1083730
где х - это число допустимых циклов в рамках твоего запроса, в самой вьюхе ты это написать н сможешь. (Только если х превышает установленное по умолчанию значение, конечно же)
Такие дела. Не лучший способ. Лучше функцию написать или процедуру, в ней можно явно задать эту опцию раз и навсегда.

П.с.: писал в 3 поста, потому что Уродское слово МАКСРЕКУРШН в спам листе, ой лол, абу, что, от скл инъекций так защищается?
#511 #1083957
>>1083731
А что не так с этим словом?
14 Кб, 361x516
#512 #1084000
Вечера, ананасы. Есть одна БД на пикрил, а т.к. все пары по БД я успешно проебывал, то имеется вопрос.

Делаю аналог livelib/goodreads/myshows(про книжки) для семестровки по инфе. Как хранить статус книги у юзера? Читает он ее сейчас, прочел ее или собирается прочесть? Что-то совсем не втыкаю.

У БД не финальная версия, многое добавить еще необходимо.
#513 #1084160
>>1084000
Я бы предпочел заместо таблицы book_rating сделать таблицу user_books, в которой помимо id юзера и od книги будет статус книги (читаю/прочитал/планирую) и для прочитанных будет оценка.
#514 #1084161
>>1084000
Хранить пароли открыто в таблице - моветон.
#515 #1084170
>>1084160
Спасибо за совет, так и сделаю. Про >>1084161 в курсе, это со старой БД еще осталось
#516 #1084245
>>1084160
Так тут по пизде идет какая-то нормальная форма. И что тут будет primary key?
#517 #1084250
>>1084245
Либо я тупой, либо что-то еще, но я не могу придумать такую связь между таблицами, чтобы не шла по пизде первая нормальная форма. Всегда будут повторы либо по user_id, либо по book_id. Что делать, помогите
#518 #1084251
>>1084245
Он будет двойной, по книге и по юзеру. Это уникальное сочетание.
#519 #1084252
>>1084250
Первая нормальная форма не идёт тпл пизде вообще никогда. У тебя по одному значению каждого атрибута.
#520 #1084266
>>1084252
То есть, это нормально, если значения id повторяются и встречаются в нескольких строчках?
#521 #1084272
>>1084266
Да
У тебя будет уникальная комбинация из двух id
Первая нормальная форма пойдет у тебя по пизде, если ты будешь допускать хранение нескольких оценок в одной ячейке через запятую
Вторая пойдет по пизде, если комбинация ид книги и ид пользователя не будет уникальной и можно будет сохранять в таблице несколько оценок одного пользователя по одной и той же книге
У тебя неправильные представления о нормальных формах. У меня, возможно, тоже
#522 #1084367
>>1084272
Да проебывал пары по БД, вот и хуевое представление. Если что, доебусь еще до препода, а так спасибо, вроде все понял.
#523 #1084382
>>1084367
У тебя они хотя бы были...
А я всё сам, всё сам...
А теперь мне даже ссаные 150 тыщ платить не хотят, ненавижу всех.
#524 #1084407
>>1084382
А ведь мог бы в универе нормальный язык изучить и нормально работать. Но в универе предпочёл проебываться, а потом пошел работать SQL-макакой.
#525 #1084410
Блядь, как же я ненавижу порой эти ебаные базы данных. Сука. Осталось сделать 2 задания, а я уже 3 дня безрезультатно не могу нихуя сделать. Ну вот как это решать?

Создать хранимую процедуру для быстрого получения всех наименований тем заданий домашних работ выполненных заданным студентом (fio) и их оценку за заданный период с даты 1 по дату 2.

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

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

Во второй нужно подсчитать количество домашних работ по каждой группе. Как это сделать? Я знаю, что нужно использовать COUNT(*), но вот как мне вытащить каждое поле столбца name_tgroups и посчитать домашние каждой группы? Через id? Но каким образом вытаскивать каждый из них? Я не знаю.

В задании ещё говорится, что в некоторых задачах нужно создавать VIEW. Напишите эти ебучие запросы, аноны, которые эксперты в базах данных. У меня вообще нихуя не получается. Я уже пробовал и локальные переменные, подзапросы, вьюшки...нихуя не получается, нихуя не помогает. Может это из-за того, что я не до конца врубаюсь в хранимые процедуры, не понял всех их тонкостей. Вот тут все таблицы http://dbdesigner.net/designer/schema/123097 .

Спасибо заранее.
#526 #1084485
>>1084272

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


Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо зависит от (каждого) её потенциального ключа
У него не была бы там вторая нормальная форма, если в таблице бук_рейтинг находился бы возраст пользователя (типо ключ составной, а аге зависит только от одного ключа)
Более того, отношение тут даже в 3НФ. Т. к. все функциональные зависимости не транзитивны..
#527 #1084492
>>1084410
5к. 2,5 сейчас, 2,5 после выполнения.
#528 #1084511
>>1084410
А где лежат даты? Может в первой косяк из-за того, что ты вместо даты использовал время? Алсо, какая связь JOIN у тебя?
#529 #1084550
Аноны, как в процедурах вывести в EXEC больше одной локальной переменной? Вывожу одну @ - всё заебись, вывожу две "@имя1, @имя2" - передано слишком много аргументов, иди нахуй, ниче выполнять не буду. Что не так делаю?
#530 #1084554
>>1084550
Ты бы хоть показал что ты вызываешь и как.
#531 #1084813
ОП, ПЕРЕКАТИ ТРЕД. Я ЧЕ НА ВСЕМ ДВАЧЕ СВОИ БД-ПРОБЛЕМЫ ДОЛЖЕН В /B/ ЧТО ЛИ ОПИСЫВАТЬ? ЕСЛИ НЕ ПЕРЕКАТИШь, ТО ТЫ - ПИДОР
#532 #1084857
>>1084813
А почему бы тебе не перекатить, если тебе это надо?
Пидорас.
Знаешь, что базовики самые злые и неудовлетворенные жизнью специалисты? Ну ладно, только я. Но сука не нервируй меня.
Я не оп.
#533 #1084872
>>1084857
Братан, не пизди, я уже пошутил.
#534 #1084873
#535 #1084876
>>1084872
А у меня циклотимия, прости, пожалуйста.
#536 #1084996
Сегодня эйчар на собеседовании по Скайпу сказала мне, что у меня нет никакой специальности, потому что я шарю только SQL, но в ее представлении sql надо применять к чему-то, а такой специальности как sql-щик нет.
#537 #1085161
можно ли вкатиться в это дело без сопутствующего образования? как hr относятся к этому делу? в математике шарю более лименее
#538 #1085208
>>1085161
Какое у тебя образование? Так-то на приличных вакансиях требуют техническое образование, на средних - любое высшее.
Закончить тех вуз и самостоятельно подрочить sql в свободное время - отличный старт в этом направлении, лучше и не придумаешь.
Вот только нужно ли тебе это скучное говно для старперов? Ты не будешь программистом, ты будешь мусором, клепателем отчетиков, аналитиком и прочей швалью. Почему ты не можешь выучить нормальный язык программирования, как все? Чего тебе не хватает?
Мимо sql-макака с двухлетним стажем.
#539 #1085248
>>1085208
у меня неоконченная юридическая вышка) уже пару лет на пхп и сисадмин галере. вот хочу на мат.фак поступать и влиться в аналитику - интересно вообще как в этой сфере относятся к вышке
#540 #1085258
>>1084996
Конечно, нет, но есть очень близкие: аналитик данных, разработчик корпоративной отчетности, там еще нужно пару систем изучить, в которых отчеты рисуются, и научиться собирать требования к ним. Не поверишь, но даже на таких специальностях можно овер 100к в дс делать.
#541 #1085260
>>1085258
Я разработчик корпоративной отчётности.
А тянка предлагала мне быть риск-аналитиком, говорит заебись тема. Похуй, что я ничего не знаю, говорит там главное вышка хорошая и sql знать.
Ну посмотрим, если до собеседования у работодателя дойду, будет здорово.
#542 #1085927
Пилю короче лабу в консольке оракла
ora-01843 not a valid month и не понятно почему.
Возможно в этой строке что-то не так с ограничениями:
Bday Date check (Bday < ‘01.01.1996’)
?
Анон, помоги тупому.
#543 #1086017
>>1085927
Дурак бля, никогда не пиши просто дату в кавычках.
Нужно использовать to_date с маской
#544 #1086020
>>1086017
В методичке етого не было.
#545 #1086023
>>1086020
Лучшая методичка - это я и мой жизненный опыт.
Обращайся!
А мне даже ссаные 150к никто не хочет платить, видишь как плохо!
Ууууу, суки.
190 Кб, 881x1282
#546 #1086024
>>1086023
Давайте, смотрите на мое унижение!
#547 #1086026
>>1086024
Уже посмотрели отклик и резюме.
Как жаль, что на этом успехи закончатся.
#548 #1086218
Ха-ха, лёд тронулся.
Позвонили с одного места, где 100 на испытательном и 120 после него. На руки. На текущем месте были те же цифры в гросс. Менять ради прибавки в 15% - быть дауном. Но тем не менее самый выгодный оффер в моей жизни.
Пока писал этот пост, мои начальники вызвали на разговор и предъявили мне, что я ищу работу. В отрицалово идти не стал. Но в целом обсудили все вопросы и пришли к понимаю, посижу тут ещё, даже денег потом прибавят.
Простите, что сделал бложик из треда, но в бамплимите можно
#549 #1086219
>>1086218
Продолжай, интересно.
У вас видимо тоже кто-то мониторил вакансии, раз про тебя узнали.
#550 #1086253
>>1086219
Да вот что странно, я от своего банка скрыл резюме. То есть видно оно компаниям, зарегистрированным на хедхантере, кроме моей. Скорее всего, просто спалили, что я чаще чем нужно выхожу поговорить по телефону. Ну это правда подозрительно.
Господи, хорошо быть молодым и перспективным, другого может и пидорнули бы за такое. А меня уверили, что все нормально, и попросили сразу подходить и говорить, если что-то не устраивает. Но наверное компания всегда заинтересована сохранять своих сотрудников.
#551 #1086330
Хочу создать простенькую дб из десятка табличек, каталог того, что послушал. В блокнотике я заебался это вести, т.к. там не отсортируешь по алфавиту и из таблицы в таблицу муторно переносить.

Какую прогу скачать? MySQL не слишком навороченным для меня будет? А то я скачал его, установил, а там серверы, коннекторы и т.д., мне это не нужно.
Смотрел этот рейтинг: https://db-engines.com/en/ranking
#552 #1086429
>>1085260
Дурень. Открой hh, в списке выбери "резюме", в поиске введи "sql". Ты охуеешь от числа тебе подобных.
#553 #1086466
>>1086330
SQLite
664 Кб, 1080x1920
#554 #1086536
>>1086429
Нашел, охуел.
Я лучше.
#555 #1086540
Закончил 5 лет назад бакалавриат по специальности прикладная математика и информатика, потом ещё учился в магистратуре (чтоб в армейку не забрали), в итоге дропнул (всё время играл в дотку, из-за чего проебал все сроки на сдачу диплома, о чем сейчас жалею). Всегда был распиздяем (и в школе и в универе) + в 11 классе перед ЕГЭ умер отец, что неслабо ударило по атмосфере в семье, из-за чего мой манямирок пошел по пизде и в тот момент вообще ничего не хотелось. В школе были интересны алгебра и геометрия, но в целом тяги к знаниям особо не было. В универе проебывал периодически лекции/практики, часто пересдавал предметы, пару раз висел на волоске от отчисления. На эту специальность пошел, т.к. брат уговорил.
Говно выше высрал не для того, чтоб меня пожалели, а скорее оценили мои шансы. За всё это время я почти ничему (ну кроме уж совсем прям какой-то базы в математике/информатике) не научился, хотя возможности были, просто я их практически все проебал. Отсиживаю геморрой в одной конторке уже почти 2 года, в ИТ департаменте, но не программистом или тестером, а аналитиком данных (по сути пишу запросы на t-sql, анализирую данные на корректность и соответствие ТЗ, делаю описание всех баз, т.к. их дохера, и по сути мало кто знает, где какие данные лежат, если они вдруг внезапно кому-то нужны, и т.п.). СИКВЕЛ освоил на базовом (как мне видится) уровне, ну т.е. DML и DDL-запросы могу писать.
С одной стороны, у меня всегда была и есть низкая самооценка, и у меня всегда работает установка, что я ничего не могу, ничего не знаю и вообще самый тупой дегенерат в мире. И перед устройством на эту позицию мне казалось, что SQL - это пиздец сложно и я не смогу освоить. Но в итоге получилось, что освоить что-то, да смог.
С другой стороны понимаю, что всю жизнь работать на этой позиции будет невозможно, потому что работа сводится к рутине. Зп мне хватает в целом на жизнь, но на что-то большее нет, т.е. вынужден копить по пол года.
Соответственно, вопрос. Есть ли у меня шансы параллельно освоить какие-то ещё технологии/языки/инструменты?
Из языков сейчас начать изучать C#, т.к. надеюсь, что он мне поможет в решении некоторых проблем, которые я встречаю при решении некоторых задач. Например, нужно проверить данные в гигабайтной XML'ке, и чтобы её вручную не открывать и не сканить через поиск, написать простой парсер и т.п. + хочется изучить Enitity Framework и понять, как наши девелоперы работают с данными, как хранимые процедуры вызываются. Ну и также мечу взгляд в машобчик и нейроночки. Т.е. хочу ещё вкатиться в Python/R. И тут у меня дикий бугурт от себя, потому что в универе у меня был курс интеллектуального анализа данных , и освещались различные алгоритмы, но я нихера не понимал.
Соответственно, второй вопрос. Если шансов нет, и если мне не имеет смысла пытаться изучать языки/инструменты выше, куда можно дальше двигаться? В разработчики/архитекторы баз данных? Сложно ли освоить Sphinx? Имеет ли смысл изучать другие другие СУБД, либо NoSQL? Сложно ли вкатиться в MongoDB + ElasticSearch? Буду благодарен, если кто-то обратит на меня внимание.
#555 #1086540
Закончил 5 лет назад бакалавриат по специальности прикладная математика и информатика, потом ещё учился в магистратуре (чтоб в армейку не забрали), в итоге дропнул (всё время играл в дотку, из-за чего проебал все сроки на сдачу диплома, о чем сейчас жалею). Всегда был распиздяем (и в школе и в универе) + в 11 классе перед ЕГЭ умер отец, что неслабо ударило по атмосфере в семье, из-за чего мой манямирок пошел по пизде и в тот момент вообще ничего не хотелось. В школе были интересны алгебра и геометрия, но в целом тяги к знаниям особо не было. В универе проебывал периодически лекции/практики, часто пересдавал предметы, пару раз висел на волоске от отчисления. На эту специальность пошел, т.к. брат уговорил.
Говно выше высрал не для того, чтоб меня пожалели, а скорее оценили мои шансы. За всё это время я почти ничему (ну кроме уж совсем прям какой-то базы в математике/информатике) не научился, хотя возможности были, просто я их практически все проебал. Отсиживаю геморрой в одной конторке уже почти 2 года, в ИТ департаменте, но не программистом или тестером, а аналитиком данных (по сути пишу запросы на t-sql, анализирую данные на корректность и соответствие ТЗ, делаю описание всех баз, т.к. их дохера, и по сути мало кто знает, где какие данные лежат, если они вдруг внезапно кому-то нужны, и т.п.). СИКВЕЛ освоил на базовом (как мне видится) уровне, ну т.е. DML и DDL-запросы могу писать.
С одной стороны, у меня всегда была и есть низкая самооценка, и у меня всегда работает установка, что я ничего не могу, ничего не знаю и вообще самый тупой дегенерат в мире. И перед устройством на эту позицию мне казалось, что SQL - это пиздец сложно и я не смогу освоить. Но в итоге получилось, что освоить что-то, да смог.
С другой стороны понимаю, что всю жизнь работать на этой позиции будет невозможно, потому что работа сводится к рутине. Зп мне хватает в целом на жизнь, но на что-то большее нет, т.е. вынужден копить по пол года.
Соответственно, вопрос. Есть ли у меня шансы параллельно освоить какие-то ещё технологии/языки/инструменты?
Из языков сейчас начать изучать C#, т.к. надеюсь, что он мне поможет в решении некоторых проблем, которые я встречаю при решении некоторых задач. Например, нужно проверить данные в гигабайтной XML'ке, и чтобы её вручную не открывать и не сканить через поиск, написать простой парсер и т.п. + хочется изучить Enitity Framework и понять, как наши девелоперы работают с данными, как хранимые процедуры вызываются. Ну и также мечу взгляд в машобчик и нейроночки. Т.е. хочу ещё вкатиться в Python/R. И тут у меня дикий бугурт от себя, потому что в универе у меня был курс интеллектуального анализа данных , и освещались различные алгоритмы, но я нихера не понимал.
Соответственно, второй вопрос. Если шансов нет, и если мне не имеет смысла пытаться изучать языки/инструменты выше, куда можно дальше двигаться? В разработчики/архитекторы баз данных? Сложно ли освоить Sphinx? Имеет ли смысл изучать другие другие СУБД, либо NoSQL? Сложно ли вкатиться в MongoDB + ElasticSearch? Буду благодарен, если кто-то обратит на меня внимание.
#556 #1086640
>>1086466
Спасибо!
#557 #1086645
>>1086540
Обратил, прочитал, а спросить ты что хотел?
Хватит ли тебе знаний на разработчика БД? Сходи на собеседование, узнай.
Что тебе изучать? Что тебе самому нравится, то и изучай.
Это искусство высрать пост на весь экран и ничего не написать по делу.
#558 #1086651
>>1086645
Спасибо, что прочитал. У меня есть проблемы с формированием мысли, поэтому я часто расписываю ненужную хуйню, так и не объяснив самое основное в сухом остатке. Спрошу точнее, надеюсь так будет понятнее.
Имеет ли смысл изучать C#, как приложение к уже имеющимся знаниям в MS SQL? Т.е. можно ли какие-то крутые вещи пилить, когда имплементируешь SQL в C#? Например, сложные регулярки пилить или какие-то библиотеки прикручивать или выньформу запилить с прикруткой в базе, ну и т.п. И более общий вопрос, к которому клоню. Куда можно двигаться в этой области (работа с данными)? В первую очередь не с точки зрения бабла, а перспектив. Ну т.е. нужно понимание, что вот такой-то стэк технологий условно в ближайшие 5 лет будет актуальный, поэтому имеет смысл двигаться в этом направлении и при этом не быть бесполезным куском дерьма на рынке труда. Соответственно я и спросил про машин лёнинг/проектирование бд/сфинкс/носиквел и т.п. Что из этого востребовано сейчас на рынке и во что из этого реально вкатиться?
#559 #1086659
>>1086651
Да, например, в моем отделе пишутся интерфейсы на sharepoint под БД. Это и есть C#. То есть от разработчика требуется как SQL, так и C#. Но я не такой, к сожалению, обычная отчётная макака.

В любой непонятной ситуации скролль хедхантер, sql в связке с C# я вижу довольно часто.
#560 #1086666
>>1086651
По профессиям.
Архитектор - моя влажная мечта, но нужен колоссальный опыт и знания, думаю годам к 30 им стану, когда за плечами будет почти 10летний опыт работы с БД. Если, конечно, не поменяю резко направление работы.
Для МЛ ты староват и туповат, судя по всему. Да и зачем там SQL я не очень понимаю, там важно прежде всего быть хорошим программистом, питон, вся хуйня.
Если есть потребность в модных словах в названии профессии, то попробуй биг дату, hadoop, хуе-мое. Меня на такую вакансию могли взять без опыта в бигдате, да один скуль и сообразительность. Но то ли тупанул, то ли прайс большой заломил. Не сложилось, короче.
#561 #1086748
>>1086747 (OP)

https://2ch.hk/pr/res/1086747.html (М)

Да, я полностью скопировал этот тред.
Хотите лучше - делайте сами.
#562 #1086832
>>1086748
Делай что-то нормально или не делай вообще.
#563 #1086838
>>1086832
Я так и знал
Сами-то чего не перекатили?
Тред утонул или удален.
Это копия, сохраненная 21 ноября 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски