В этом итт ай-ти треде собираются все любители Баз данных, гордо именующие себя айтишниками.Доказываем друг другу, что >SELECT ID FROM b_entity_tvoya_mamaэто тоже программирование, Креэйтим индексы на одно и то же поле по 100 раз и инклудим в них всякие поля на всякий случай,Храним gender в NVARCHAR(2000),Поясняем, как можно без задней мысли хранить бизнес-логику в бд, а не в приложении,Рассказываем, как обновлять хранилище данных актуальными real-time данными раз в минуту,Называем логично и понятно поля в логичных и понятных таблицах>CREATE TABLE tablica_s_clientami (>ID_CLIENTA INT NOT NULL>IMYA NTEXT,>"DATA ROJDENIYA" NVARCHAR(MAX))Ну и, конечно же, выбираем лудшую СУБД для всего:MY SQLMS SQLPostgreSQLORACLEMongoDBSQLiteExcelИ даже Google Docs!В общем, это очередной баз данных тред.
>>1015789 (OP)Что же ты наделал, ирод! А как же придумать новую охуительную шапку? А как же картинка?Ты, ты просто перекатил, как жить теперь?
>>1015789 (OP)Бамп годному треду с отзывчивыми анонами!
>>1015897Перекатывайте сами...
Господа, установил я AdventureWorks. При попытке сформировать диаграмму бд - выдает пикрелейтед. Пользователь dbo создан. В чем ещё может быть проблема?
>>1015989
exp(sum(ln(nullif(coeff_increase,0)))) over (partition by date_begin,tab_num)сууука, почему не работает, не хочу вложенные запросы делать.если экспоненту убрать, все ок
>>1016057Прошу прощения, ебаный дебил, надо было over под экспоненту добавить.
>>1015993Для начала переустанови SSMS на английскую. Я серьезно.
>>1016146А после этого все твои проблемы будут решаться за минуту гуглением. https://stackoverflow.com/questions/13823354/sql-server-principal-dbo-does-not-existЭти ебучие локализации, забудь про них вообще, обходи за километр.
Пытаюсь использовать PyQt5 + MySql 5.7. С помощью QSql.QSqlDatabase не могу подключится в MySql. lastError выводит driver not loaded, хотя драйвер и в списке drivers() есть, и физически присутствует в необходимой папке, установки хоста, логина, пароля, и имени бд правильны, что проверялось не один раз. Что необходимо сделать, чтобы установить подключение с БД?
>>1014847>Привет, не самый частый гость здесь!>Стаж почти два года, работаю в топ-10 банке (без подробностей, деанон), зп чуть больше сотки чистыми. >Ты dba? А расскажи пожалуйста про свою работу побольше, мне это очень интересно. Сам я чистый dbd, к администрированию никакого отношения не имею, но подозреваю, что рано или поздно моя любовь к базам данных и желание углубиться в тему приведут к тому, что я стану администратором бд или архитектором.Ответ на пост из предыдущего треда. Нет, я тоже oracle dbd, и немного подправляю интерфейсную часть php/js/xslмакака, лол. Просто твой пост навел на мысль, что свернул я где-то не туда, до этого 3 года был околопрограммером, немного админил, поднимал standby сервер и базу из бэкапа восстанавливал, по-хорошему занимаюсь разработкой последние 2 года на проекте в ноунейм конторке. Вот думаю надо двигаться дальше, т.к. задачи и зарплата уже не соответствуют ожиданиям. Расскажи, если не трудно, чем приходится заниматься по работе, какие скиллы прокачаны по части оракла и в целом по теории БД? Как попал в ТОП-10 банк?
>>1016241Это я.Мне тоже кажется, что я свернул никуда, потому что на нормальных вакансиях требуется бд + что-нибудь, а я только бд знаю. Никакими языками программирования я так и не овладел. Так всю жизнь и буду недопрограммистом. В отделе тоже есть люди, которые пилят интерфейсы на js/c#, но я делаю строго отчетики. То есть я не etl-щик даже, не админ, просто пишу запросики в sql.Работа состоит из двух этапов: сделать процедуры, которые собирают нудные данные, что-нибудь считают и тп. Дальше нарисовать отчетик в MSRS.Скиллы? Ну так, между делом читаю что-нибудь, интересуюсь.Как попал? Ну во-первых вышка хорошая, во-вторых, опыта набрался нормально за полтора года. На собеседовании почти только sql спрашивали, всякие в меру сложные запросы. Попасть в банк не так уж сложно, на хедхантере куча вакансий, я мониторю.
>>1016250Расскажи, пожалуйста, о том где набирался опыта и о в меру сложных запросах на собеседованиях в банк. Мимо другой аноно
А есть тут кто, кто занимается аналитической отчетностью, OLAP-кубами, SSIS, SSAS. Вот это все.Где взять мануалы и инфу по данной тематике? Хочу тоже научиться.
>>1016260Привет.Зашёл в бар поссать, взял пива. Рассказать историю жизни? Попробую.Началось все, конечно, с лучшего технического вуза этой страны. Не спрашивайте, какого, я же всё-таки сохраняю анонимность. Я уже говорил, что считаю образование одной из причин моего относительного успеха.Интерес к учебе я потерял быстро, последние семестры бакалавриата уже скорее доучивался, недели учился. В итоге средний балл по диплому 4, хотя первые семестры были даже на стипендию закрыты.Решил, что хватит это терпеть, в магистратуре решил работать. Выбрал себе в магистратуре кафедру похалявнее и стал искать работу. Был в нескольких местах, пошел по сути в первое, в которое взяли. Я нихуя не умел, вот вообще нихуя, и вместо того, чтобы на последних курсах задрачивать что-то полезное, я сидел и деградировал в интернете. У конторы, в которую я в итоге попал, была такая политика: берём молодых ребят, которые нихуя не умеют, но при этом умные и желательно с топовым образованием, и учим всему сами. Вот меня туда взяли. Тут я впервые познакомился с sql и бд оракл, понравилось, и это определило мой дальнейший путь.Как там Том Кайт говорил? Сначала сделай в оракле, если не можешь, сделай в джаве, если не можешь в джаве сделай в си, а если не можешь и в си, то задумайся, нужно ли тебе это делать. Так вот, к чему я. В этой конторе работа происходила приблизительно по такому же принципу, только вместо си - делфи (на котором работали чистые погромисты и меня он не касался), а вместо джавы свой обоссанный язык программирования, который был разработан специально там, по синтаксису очень похожий на Паскаль, но с добавлением всяких своих приколюх. В общем, работа состояла где-то 50/50 из оракла и этого говна, и это говно очень угнетало тем, что оно бесполезное. Спустя чуть больше года, словил жёсткую депрессию и уволился буквально в первое место, в которое позвали, чтобы заниматься чистым ораклом. На собеседовании показалось, что ребята серьезные, много интересного спрашивали, казалось, что я там сильно скилл оракла прокачаю, но нет. Свелось все к тому, что первые пару недель я читал доки оракла и прочие книжки по sql (дохуя нового узнал, кстати, от души, спасибо). А реальных задач мне так и не давали. Ну и в целом контора была очень днищная и убогая (топ-50 банк). Прошло 3 месяца, заканчивался испытательный, я всерьёз думал, что меня могут уволить, потому что я нихуя не делал (как оказалось, нет, начальник был мной доволен и даже пообещал поднять зп через пару месяцев, если останусь), решил сходить куда-нибудь на собеседование. И вот меня пригласили в первое место, в которое я сходил, и сделали поистине восхитительный оффер, вполне соответствующий моему скиллу, возрасту и амбициям. Ну и я съебал. Недавно вот испытательный тут закончился, зп стала 120к до налогов, доволен как черт.Таким образом, к моменту окончания магистратуры имею такую восхитительную зарплату и хочу расти дальше, хоть и не знаю, как именно.Что на собеседованиях спрашивают?Ничего конкретного не вспомню сейчас. Какие нормальные формы бд знаешь? Ну короче именно по теории бд достаточно статей на Википедии почитать, глубже никто не копает. В основном аналитические функции спрашивают (кстати, в моих отчетиках в топ-10 банке они постоянно используются, охуенная штука). Про хинты спрашивают, ну типа какие знаешь, какие тут будешь использовать, какие тут. Про джойны много вопросов. Хоть убейте, не помню конкретные примеры. И вообще у меня пиво закончилось, пока я писал, пойду домой.
>>1016430Спасибо за развернутый ответ!Если обобщить, написанное тобой выше, то получается, что зная только sql и теорию БД на уверенном уровне можно претендовать на 120к? Образование сильно роль играет в топовых конторах? Вообще как мне кажется аналитические функции и использование хинтов - это продвинутый уровень, может поэтому я и получаю в 2 раза меньше, лол.
>>1016429удваиваю, как в это вообще вкатиться
>>1016438А ещё быть эрудированным и няшным пидорком, чтобы понравиться на собеседовании.Не такой уж продвинутый. Если ты занимаешься sql постольку поскольку, то в резюме будет написано "базовое знакомство с sql, базовые навыки написания запросов в sql". А если ты пробуешься на вакансию именно разработчика оракла, то всю эту хуйню надо знать.
>>1016438Про образование я тебе не ответил.Влияет, конечно. Не как главный фактор, а просто как одно из твоих достоинств. Но ты вполне можешь брать другим.Это не самое главное. Когда я искал первую работу, я четко осознал, что за один только диплом меня никто не возьмет, важно, что я из себя представляю. Как мне кажется, диплом влияет на вероятность того, что тебя позовут на собеседование. Если ты закончил какой-нибудь МухГУ, тебя с меньшей вероятностью позовут на собеседование, чем меня. Ну а на самом собеседовании уже как себя покажешь. В моем подразделении, например, процентов 70 из МГУ/МФТИ/МИФИ/МГТУ, но и из ноунейм заведений тоже есть люди.
>>1016451Т.е. конкуренция есть, прояснил некоторые моменты, держи няшку. Еще один вопросик, как качать скиллы оракловые, хинты и т.п.? По своей работе с хинтами никогда не сталкивался, всегда было достаточно грамотно написать запрос, чтобы индексы цеплялись, иногда смотрю планы, анализирую, но применить что-то новое не получается, да и просто смысла не имеет. Ну и аналатика так или иначе сводилась к использованию агрегатных функций. Судя по твоему опыту предыдущему, то ты тоже это не использовал, получается, что просто читал книжки и запоминал? Можешь порекомендовать что-то конкретное и прикладное, вроде Тома Кайта(у него скорее обобщенная инфа, чего не стоит делать программисту в оракл бд и как делать грамотно). Например по аналитическим функциям или по тем же хинтам. Конечно можно просто доку зазубривать по oracle sql.
>>1016473Ну да, на первой работе я в принципе не знал, что такое хинты.Вообще, все мое изучение оракла сводится к гуглу. Либо мне что-то нужно сделать и я это гуглю, либо мне что-то интересно и я это гуглю.Книжек целенаправленно не читал.Недавно списался с барыгой на Авито, хочу у него Кайта прикупить. Начну серьезное изучение.
Бамп
Коллеги, посмотрите, пожалуйста, что из этого можно купить почитать?Я хотел пункт 1, разумеется, но он не в наличии. Что ещё годно? Меня в основном 11g/12c интересует.1. Т.Кайт. Oracle для профессионалов, 3-е издание (2 тома) /6002. С.Фейерштейн, Б.Прибыл. Oracle PL/SQL для профессионалов, 3-е издание /3003. К.МакДональд и др. Oracle PL/SQL для профессионалов: практические решения /3004. С.Урман. Oracle9i - Программирование на языке PL/SQL /3005. К.Луни. Oracle Database 10g - Полный справочник (2 тома) /6006. Т.Кайт. Эффективное проектирование приложений Oracle /3007. А.Адколи, Р.Велпури. Oracle9i для Windows /3008. С.Джесси и др. Oracle9i для Windows 2000 - Советы и методы /3009. М.Терьо и др. Oracle9i 101 - Администрирование баз данных /25010. К.Смит, С.Хейсли. Oracle 101 - Резервное копирование и восстановление /20011. М.Терьо, А.Ньюмен. Oracle - Руководство по безопасности /25012. Л.Хоббс. Oracle9i - Разработка и эксплуатация хранилищ баз данных /20013. Р.Нимик, Б.Браун. Oracle9i - Оптимизация производительности - Советы и методы /30014. Д.Льюис. Oracle - Основы стоимостной оптимизации /30015. К.Милсап, Д.Хольт. Oracle - Оптимизация производительности /30016. Д.Тоу. Настройка SQL для профессионалов /15017. Д.Селко. SQL для профессионалов /20018. Д.Генник. SQL - Карманный справочникС.Фейерштейн. Oracle PL/SQL - Карманный справочникД.Генник. Oracle SQL*Plus - Карманный справочник /100 (за 3 кн.)19. P.Corrigan, M.Curry. Oracle Performance TuningD.Shasha. Database Tuning - A Principled ApproachS.Bobrowski. Mastering Oracle7 & Client/Server Computing /бесплатно (в придачу)
>>1016781Давеча Дэйта читать пытался. Чуть не заснул, такое унылое говно эти базы данных.
>>1016781Если бы ты хотел, то давно бы уже скачал любую книгу с торрентов и прочитал. Не еби мозги.
>>1016870Спасибо, хейтер!Мне неприятно читать техническую литературу в электронном формате.
>extract(hour from sysdate)А вы знали, что это не работает? Работает только из systimestamp.Так что остается два варианта:>extract(hour from systimestamp) + extract(timezone_hour from systimestamp)>to_number(to_char(sysdate,'hh24'))Сами выбирайте, что из этого наименее зашкварно.
Посоветуйте хорошую книгу по базам данных.Главное что нужно - небольшой объем. Нет, я не ленивый, но сейчас другие приоритеты, но и знания по базам подтянуть надо. Начал читать Дейта, но сильно затянуто. Мне такой объем ни к чему. Цель - научиться оптимизировать запросы, знать какую базу и где применить, понять что такое индексы и т.д. У меня сейчас уроверь select,insert,join. sql знаю, MySQL на уровне php разраба - insert/select/join и прочая хрень
>>1017132Ну советую просто синтаксис рабочей базы учить глубже.Например, гуглишь про join, там у него опций куча. Смотришь описание опций. Если нашёл что-то интересное, то можно отдельно загуглить статей каких-нибудь именно по ней.Или можешь не читать подряд книгу, а читать именно то, что цепляет щас.
>>1017132И вот ещё что:https://dev.mysql.com/doc/refman/5.7/en/optimization.html
>>1016429Бамп вопросу.
Суп программач, я в замешательстве.В общем, есть одна коллекция в MongoDB с 1.5 миллиона записей такого формата:{id: Int32, t(ime): Double, s(tatus): Int32}В коллекцию каждую минуту складывается примерно ~1200 записей (distinct('id').length = 1200), затем я запрашиваю данные по определенным id (в среднем 300-400, до 600) за последние 3 часа вот таким образом (прикреплейтед).Индексы следующие: { id: 1, t: 1 }Так вот, запрос выполняется 1.5 секунды, в результате получаю ~100к записей (для 600 id). Подскажите, это вообще нормальная скорость? Я то думал "ну это же nosql епта, в пару сотен мс уложусь". Может, дело именно в моем компуктере и на google cloud platform будет быстрее?
>>1017217Скорее всего, нормально, это же главный отсос Монги: дико медленная аггрегация.
>>1017222а какая БД позволит сделать указанную задачу быстрее? я в общем-то не привязан пока к конкретной, так, колупаю все подряд. ну и желательно чтобы app engine поддерживал
>>1017226Нам Clickhouse от Яндекса помог, оче быстро работает, там правда column-store и немного обрезанный SQL , но нам подошло. А так хз, что тебе советовать, мало какие БД пробовал.Недавно вот разве что очень приятно работалось с JSON в Postgres.
>>1017132Охуел что ли? Либо ты усваиваиваешь большой объем информации или 'ехай, ехай нахуй'!
>>1017132Алан Бьюли, но там ни разу не кратко.
Пацаны, помогите.Предлагают второе издание Кайта + Льюис Основы стоимостной оптимизации за 1.5к вместе. Нормально или торговаться? Состояние у книг отличное.
>>1017346Полное собрание Гарднера бери. Хоть почитаешь.
>>1017375Шутишь так, да?А за что? Что я тебе сделал?
>>1017385В каждой шутке есть доля шутки.
А есть какая-то база данных, где мол можно указать, что сюда я больше буду писать, туда читать, и тд и ты короч мне оптимизируй под это?
Найс ТЗшки пишешь, научи, плес>to_date('01.'||to_char(s_date,'MM.YYYY'),'dd.mm.yyyy')
>>1017346Взял.
Аноны, помогите мне запрос написать. У меня в универе ничего подобного не было. Даже когда две таблицы связывали, неприпомню, чтобы одно и тоже поле (фамилия) два раза выводилось. Как это сделать это вообще?
>>1017574Ну ты чего, дурашка.Берёшь основную таблицу и к ней дважды прицепляешь таблицу юзеров.Select u1.name, u2.name, t.sumFrom таблица_платежей tLeft join таблица_юзеров u1 on t.user_id1 = u1.user_idLeft join таблица_юзеров u2 on t.user_id2 = u2.user_id
>>1017576Спасибо, анон, надеюсь завтра возьмут на работу
>>1017577Сомневаюсь, но удачи ладно, возьмут, смотря на кого, это я тут топовый оракловщик, а если тебя будут простейшие запросы спрашивать, то возьмутДавай ещё задачки
Кстати, вот задачки с собеседования в одну говноконтору год назад. 60к на старте давали, но не пошел офк.
>>1017580Все задания изи, только непонятно "одним запросом" - это что, без использования подзапросов? Если да, то второе не изи.
Аноны, я сейчас выпилюсь нахуй. Значит есть база в mysql, создал я её таким образом CREATE DATABASE `db_example` CHARACTER SET utf8 COLLATE utf8_general_ci;Потом сделал там таблицу create table if not exists users (id bigint auto_increment, login varchar(256), password varchar(256), primary key (id));И пытаюсь в эту таблицу записать строку: insert into users (login, password) values(a,3);и тут у меня выскакивает ошибка 1054 Unknown column 'a'. И хуй знает из-за чего это может быть, если пытаюсь записать в values все цифрами то даёт вставить строку.Может кто знает как это поправить?
>>1017705А как совсем без подзапросов?Как по мне, самое красивое:delete from twhere t.rowid <> (select max(t2.rowid) from t t2 where t2.a = t.a and t2.b = t.b)
>>1017818Что такое >а У тебя?Мб ты текст хочешь вставить? Тогда>insert into users (login, password) values('a',3);
>>1017842А rowid ты откуда взял?
посоветуйте пиздатых книг по БД
>>1017844Это уникальный идентификатор строки в БД оракл и он есть всегда. Простите, ради бога, как в других базах это работает я не знаю...
>>1017843Точно, спасибо
>>101758060к на старте и такие лёгкие задания? Что за город и должность?Я сейчас в банке за эти же деньги работаю в ДС.
>>1017903Ещё обещали рост до 80 в течение полугода, но все равно не пошел.Город ДС, конечно.Разработчик PL/SQL.Хз, в каком ты банке работаешь, в моих банках на самой стартовой позиции платят 80-90.
>>1017910Может потому что у меня sql server, а не оракл.
>>1017918В чем состоит твоя работа? Ты просто пишешь запросы?
>>1017923Оналитик. Кубы, витрины.
>>1017924Прикольно. Ну мы разные. Но ты все равно нищенка и ищи норм зп.
Что сейчас нужно для работы с базами данных?Какие системы управления базами данных (СУБД) сейчас популярны?Какие средства, технологии, библиотеки нужно знать?Что спрашивают работодатели на собеседованиях про базы данных?Какие средства популярны сейчас для работы с базами данных на различных языках программирования (C++, Java, C# и т.д.)?
Sup, программач.Помогите пожалуйста спроектировать БД. Представьте есть интернет-магазин книг. Юзер заходит (по своим логину и паролю) и добавляет книги себе в корзину. Если у него есть купон на скидку (например, 15%), то он его вводит и после этого у него на все книги скидка 15%. Какие таблицы создавать и какие связи между ними?Вот понятно, что будет таблица "Книга", а что делать со всем остальным? Типа создать таблицу "Купон на скидку", отдельно таблицу "Скидка", где будет храниться размер скидки в процентах? Или как? А как реализовать корзину? Помогите, ребят.
>>1017940Купон только один на весь заказ?Будут такие таблицыПользователи (ид, ид_купон)КнигиПрайсы книг (ид книги, цена, дата начала действия цены, дата окончания действия цены)Таблица корзин (ид пользователя, ид книги, цена, скидка (1 по дефолту и выводишь в интерфейсе произведение цены на скидку))Купоны (ид, дата начала, дата конца)При добавлении книги в корзину добавляешь ее актуальную стоимость в таблицу для корзины, 1 в качестве скидки)При вводе купона проверяешь наличие актуального купона в таблице купонов и делаешь апдейт поля скидка по юзеру
>>1017958И если книга добавляется после ввода купона, то в качестве скидки можно сразу подтягивать скидку из таблицы купонов.А при удалении купона ставить везде скидку 1.Также на моменте окончательного сохранения заказа нужно проверять, действует ли купон, иначе удалять и проставлять скидку 1.Спасибо за интересную задачу, попробую на домашний бд реализовать под пивас.
>>1017958Знаешь что... Лучше не храни в таблице корзины ничего... Пусть там будут только ид пользователя и ид книги, а все остальное актуальное подтягивай...
>>1017958нахуя ид купона у пользователя?логичнее у купона сделать ссылку на пользователя.пользователь (ид, имя, имя мамки)купон (ид, ид пользователя)
>>1017958>>1017964>>1017967>>1017968Спасибо большое, аноны. Не уходите никуда, пожалуйста, я сейчас БД нарисую и вам скрин скину на проверку.
>>1017968Ну я подумал, один купон может быть у нескольких пользователей. Ну типа промокод.
>>1017970В чем рисуешь?
>>1017972наверно если пойти еще дальше то у пользователя может быть несколько купонов а не 1 на всю жизнь, тогда нужен many 2 many типо так:user (id, name, imya_mamki)coupon (id, description)и связть many 2 many:user_coupon (user_id, coupon_id)
>>1017972Ну короче я думал, что это не персональная хуйня, а типа введите промокод 'TIPIDOR' и получите скидку 15%.Тогда при вводе промокода будет делаться запрос к таблице промокодов и проверяться, если ли такой промокод с нужными сроками действия.И сохраняться для юзера.1 юзер, ему соответствует 1 купон.Моя схема будет поддерживать как персональные купоны, так и массовые.
>>1017958>>1017968>>1017970Вот, смотрите, это то, что я понял с ваших постов:
>>1017973В пэинте.
>>1017976Чёто я намудрил. Там между корзиной и книгами должна быть связь "many-to-many".
>>1017979И как ты себе представляешь наличие нескольких корзин у одного пользователя? Пользователь должен видеть при заходе на сайт результат запроса select * from таблица корзин по ид_пользователя.
>>1017984Ну, я исходит из того, что у пользователя только одна корзина. А если так, как ты говоришь, нужна связь между "Пользователи" и "Корзины" один-к-одному?
>>1017988>один-ко-многимФикс.
>>1017984Я полагал, что таблица для корзины будет динамической, добавлять и удалять книги. И пользователь будет видеть то, что у него добавлено по его ид. После оформления заказа удалить из нее записи пользователя. Ид в этой таблице - не ид корзины, просто ид строки
>>1017991>Я полагал, что таблица для корзины будет динамической, добавлять и удалять книги. И пользователь будет видеть то, что у него добавлено по его ид. После оформления заказа удалить из нее записи пользователя. Правильно ты полагал, я именно так и хотел.>Ид в этой таблице - не ид корзины, просто ид строкиСтроки для каждой книги в таблице? То есть, к примеру, user1 заказал книгу Пушкина и книгу Лермонтова. По итогу у него в корзине 2 книги, а это 2 записи в таблице "Корзина" c одним id_пользователя, но разными id_корзины. Ну, да, по идее правильно было бы переименовать "id_корзины" в "id_строки". Ты ведь это имеешь в виду?
>>1017994Да, ид строки, ид_пользователя, ид_книги. Для каждый книге в корзине своя запись
>>1018003Посмотри, анон. Это уже более конечный вариант. Только я не могу придумать как правильно реализовать такую фичу, что пользователь вводит промокод и у него на всё появляется скидка. То есть должна ведь существовать таблица скидок (как на моей пикче)? А в ней промокод так же, как и на отдельном купоне. И потом делать сравнение, типа если промокод совпадает, то из таблицы "Скидки" вытаскиваем конкретное значение скидки в процентах? Или как? Даже не знаю...
Почему я предлагаю использовать таблицу юзер_купон.При заходе на сайт пользователь должен видеть 'у вас введен такой-то купон, даёт вам такие плюшки' как результат селекта из этой таблицы.Если купон уже не актуален, удаляем строку. Если вводим новый - merge в эту таблицу. При оформлении заказа тоже чистим. Я вообще сначала это хотел в таблице юзеров хранить, но там будут всякие личные данные, нехуй ее лишний раз логировать
>>1018008Ага, понял. Значит я добавлю таблицу "юзер_купон" как соединительную типа. А что делать с величиной скидки? Скидка же должна быть отдельной таблицей? Ну, типа для того, что сделать проверка авось юзер введёт промокод, которого нет и никакая скидка этому промокоду не соответствует. Я прав, неправ?
>>1018007Тебе не нужна таблица скидок.В таблице - справочнике купонов ты будешь хранить его ид, его сроки действия и скидку, которую он даёт.Логику хранения купона по юзеру я тебе вроде как описал.Процедуры, которые выводят содержимое корзины и формируют заказ, должны выгдядеть следующим образом:Select t.id_user, t.id_knigi, p.price, s.skidkaFrom таблица корзиныLeft join таблица прайсов p on p.id_knigi = t.id_knigi (и условие на даты)Left join таблица пользователь_купон pk on t.id_user = pk.id_iserLeft join таблица купонов s on s.id_kupon = pk.id_kupon (и здесь условие на даты)Where t.id_user = ты
>>1018020А как тогда проверяется промокод? Вдруг он введён неправильно?Вообще говоря, это тестовый проект, поэтому я включал сюда таблицу прайсов, которую ты предлагаешь, я все прайсы сохраняю тупо в таблицу книг как поле. То же самое по поводу дат - они в задании не нужны. Предполагается, что они типа действует всегда для конкретного юзера.
>>1018021Ой, подожди, анон, кажется я допёр как промокод проверяется. Не уходи никуда, пожалуйста, я сейчас перерисую БД и покажу на всякий случай.
>>1018021Foreign key
>>1018021Тестовый проект?То есть ты сейчас устроишься на интересную работу и будешь зарабатывать больше, чем я?
>>1018020Вот как-то так. Надеюсь правильно. Я хоть правильно связи расставил?
>>1018024>То есть ты сейчас устроишься на интересную работу и будешь зарабатывать больше, чем я?А ты что мало зарабатываешь? Тыж праграмист.
>>1018026Смотря что для тебя мало. Сколько зп ты хочешь на своей работе? Что за должность?>>1018025Ну я об этом говорил, да.
>>1018028>Смотря что для тебя мало. Сколько зп ты хочешь на своей работе? Что за должность?Я, вообще говоря, студент ещё, опыта работы нет, так что вряд ли мне станут много платить. Вот пытаюсь впервые устроиться Java-программистом.
>>1018031Тогда ты молодец, удачи.Я не программист, я sql-щик.
>>1018028>Ну я об этом говорил, да.Спасибо большое, анон. Ты прям выручил меня. Надеюсь этот тред ты посещаешь часто? Можно я тебе тут же потом ещё отпишу на тот случай, если будут какие-то проблемы с SQL-запросами?
>>1018033Разумеется, частенько мониторю.Не за что.
>>1018032>я sql-щикПо-моему, базисты - это одно из самых главных звеньев в в IT-конторе. Тебе прям обязаны много платить.
>>1018036Да нет, я лох просто. Сижу, отчетики обоссанные рисую. А вечерами читаю Тома Кайта, мечтаю стать большим специалистом по базам данных и тихо плачу...
>>1018037Просто изучи, как работают индексы и ssis-пакеты, и иди разработчиком двх, я так сделал, раньше тоже был аналитиком. Ни о чем не жалею.
>>1018055Как давно работаешь, сколько зп?Я знаю, что рано или поздно буду перекатываться во что-то такое.
>>1018059Разработчиком ms sql, дс.100к в месяц.
>>1018179Да, работаю с ноября 2к16.До этого несколько лет пахал аналитиком по отчетности.
>>1018181В ЗП потерял или выиграл со сменой работы? Я на отчетиках больше получаю...Алсо, терминология очень мутная. Можешь как-то конкретизировать спектр задач? Я считаю аналитиками тех, кто пишет мне ТЗшки, а разработчиком того, кто создает всякие процедуры и реализует всю хуйню, то есть себя. Но понятно, что в разработчик dwh другой смысл вкладывается, мне бы понять, какой. Я короче какая-то промежуточная и паразитирующая хуйня, которая и не аналитик, и не разработчик.
>>1018212Аналитик - чел, который строит отчеты, пиздит с заказчиком, формирует требования к витринам данных. Если речь идет о хранилище.А разраб - хуярит витрины, процедуры по наполнению хранилища, оптимтзирует запросы (пок, пок, юзернейм, посмотри, у меня там вьюшка что-то долго работает>left join tbl_oche_bolshaya_tablica obt on 1=1)ну и, чего греха таить, тоже пилит отчетики, сейчас граница, вообще, очень размыта, например, я разраб, но сервак тоже я админю почему-то, а, когда руководителя аналитического отдела нет, я же еще и пизжу с заказчиками, вот такой пиздец.
>>1018212В зп выйграл, причем уверенно, почти в 2 раза.Аналитиком на прошлую работу пришел на 40, когда перешел в разрабы, получал 60, теперь соточка.Дс, если что.
Вы тут наркоманы все.Корзину не надо в БД хранить, это нинужно, лучше в пользовательской сессии, это временные данные.Зачем купоны привязывать к пользователям? Кто ИРЛ их будет каждому пользователю в соответствии ставить?Нужно, обратно же в сессии сделать переменную для идентификатора купона. И интерфейсик - пользователь вводит код купона и если он правильный - купон идет в сессию, начинают работать скидки.далее. Нужно организовать таблицу сейлс и сейлс лист - это то, что пользователь заапрувил корзиночные данные, то есть согласился купить.сейлс - идентификатор, ид_пользователя, датавремя, адресдоставки, купонсейлс_лист - идентификатор, идентификатор_сейла, идентификатор книги, конечная цена ( с учетом купонов )
>>1018866>корзину не надо в бд хранитьПроиграл с этого.
>>1018866Чёто как-то мутно всё. Вроде понял, а вроде и нет. Можешь написать, пожалуйста, сколько у меня всего будет таблиц и с какими полями?
>>1018881Нахуй она там нужна, дебил ебанный?
>>1018883ну, смотри книжка (id,name,price,count) купон (id,name,kod,date_start,date_finish) пользователь ( id,name, fullname, email, passhash ) продажа (id,idUser,datetime,adres,idKupon)* товары_продажи (id, idSales,IdBook,ActualPrice,count)Как то так
Анон, доставь книжек по проектированию и нормализации бд.
>>1015789 (OP)>Excel>СУБД
>>1017577Взяли?
>>1019008Крис Дейт - введение в бд
>>1017576Зачем тут left join? Inner же достаточно.
>>1019170Напиши, сам запрос
>>1019199Наркоман что ли? То же самое, но с inner join.
>>1018035Анон, ты здесь?Мне нужна твоя помощь...
>>1018842Как устроиться разработчиком, если я недоаналитик? Пилю несложные отчеты и пишу хранимки.Что нужно уметь, чтобы быть именно "Разработчиком MS SQL"?
>>1019617>>1018055+ советую похавать C#, потому что есть такие вещи, которые рядовым sql сделать либо сложно, либо невозможно. (Clr, ssis script tasks, боты о работе бд для телеграмма и пр. свистелки)Но это необязательно.
>>1018025Почему у пользователя с корзиной один к одному? Он может сделать только один заказ?
>>1018025>>1019672И "купоны" тебе нужно соединять с "корзиной" один ко многим. У тебя получится, что в таблице "корзина" может быть запись с одним пользователем, который может купить две разные книги по разным купонам.
>>1019678Как-то так
Реквестирую базу данных, которая хранит инфу в json файле и не требует сервера (т.е. монго не катит).
>>1020010Блокнот
>>1020010Что значит "не требует сервера"? Что-то вроде sqlite?
>>1020010первая ссылка из гуглаhttps://github.com/typicode/lowdb
>>1019453Завтра утром пиши, если ещё актуально.
Здравствуйте. Сегодня первый раз в карьере использовал group by rollup.Испытал настоящий оргазм от того, что я это знаю и что решил проблему так красиво.Все же стоит изучать вещи, которые не пригождаются почти никогда, именно ради тех ситуаций, когда они нужны.
>>1018841Ну вот смотри.Я не пизжу с заказчиками, я получаю от аналитика ТЗ на отчетик.Я пишу хранимки для этого отчёта, создаю таблицы, кручу джобы. Рисую сам отчетик.Кто я? Лох?
>>1019634Хотелось бы развить эту тему.Вот я божественный разработчик PL/SQL.Однако в вакансиях чистых PL/SQL разработчиков не так много, часто ещё дополнительно какой-нибудь язык нужен.Так вот, какой мне учить?Часто вижу комбинацию delphi + sql, но я же не обиделся на себя, я не буду учить этот язык.C# проскакивает.Есть ещё комбо java + pl/sql, но тут, как мне кажется, нужен прежде всего разработчик java с посредственным знанием sql, ну а я бы хотел оставить базы данных своей специализацией.
>>1020291хз как дела обстоят в целом по больнице, но в нашей конторке интерфейс на php и js состряпан, иногда приходится ковыряться в веб, двухзвенка по сути, в трехзвенке сервер приложений скорее всего на java, если база оракловая.
>>1020287Твоя должность называется зачастую >разработчик корпоративной/аналитической отчетности.Сейчас это уже хуйня, ибо в норм конторах аналитики, все-таки, сами рисуют отчеты.
>>1020291Если оракл бд, то, конечно же, жава, что еще. Сам с оракловскими бд не работал, но уверен, что есть какие-нибудь возможности расширения для них (https://docs.oracle.com/cd/B28359_01/java.111/b31224/oraint.htm) на лжаве. Если не хочется, то можно нагуглить еще информационные системы на оракловских бд и начать изучать их, тоже повысит твой спектр предоставляемых услуг и, соответственно, цену на рынке.Можно начать прокачивать скиллы dba, ведь одного plpgpqpapokpok sql для этого маловато.
>>1020776Да, слышал это выражение. То есть я человек-хуйня на бесперспективной работе? А куда перекатываться?
>>1020788Спасибо. Хочу быть dba. И вообще человеком.
>>1020825Нормальная это работа, пока тебе на ней норм платят, не ссы, чо ты запереживал то?
>>1020868Платят мне нормально очень даже, но есть инсайд инфа, что аналитикам и etl-щикам в моей конторе платят больше.Впрочем, можно будет и к ним попроситься когда-нибудь. Не хочу загадывать, спасибо за поддержку, все хорошо будетЯ сейчас люблю базы данных и хочу развиваться в этом направлении, Кайта читаю.
Сколько запросов к базе приемлимо на 1 запрос к веб странице? На текущем проекте около 10 + около 10 запросов по soap, как-то многовато
>>1021106Открытие одной страницы - 10 запросов? Почему вы не можете уменьшить количество этих запросов? Какого рода запросы?
>>1021106Короче, я не веб-макака и айкью у меня повыше твоего, но все знаю, что чем меньше запросов, тем лучше. Покажи/расскажи свои запросы, скажу, как оптимизировать.
>>1021122>все знаютПрошу прощения.
>>1021116Страница богатая, данных много и требования часто по ним меняются, поэтому проще делать отдельные запросы.Про 10 может и преувеличил, большая часть маленьких справочников давно в памяти.На самом деле, это не такая уж и проблема и точно не узкое место, сервер бд у заказчика - полный фарш.
>>1021106Ты хоть опиши, что у тебя за веб-страница, мб у тебя битрик какой-нибудь, там, ясное дело, и больше может быть.
Не могу понять почему данный запрос ничего не выводит(рис. 1), хотя переменная @diff содержит в себе результаты, соответствующие для вывода(рис. 2).Где я допускаю ошибку?БД - MySqlSELECT lastCheck, nextCheck, @diff := (TO_DAYS(nextCheck) - TO_DAYS(NOW()))/30.5 AS diff FROM ttc WHERE @diff <= 2 ORDER BY diff ASC
>>1021475>:=Никогда такого не видел. Это с какой СУБД?
>>1021475Ага, нашёл.@diff - это переменная? Предполагаю, что последнее значение @diff больше двух.
>>1021508MySQL Workbench 6.3 CEА как надо? Я никогда еще не использовал "динамические" переменные, а то, что ты отметил, - результат со стаковерфлоуа.
>>1021514Во блин. Я последний скрин не заметил.Попробуй просто diff>=2.Да и зачем тебе там @diff?
>>1021512Тогда как сделать так, фильтрация происходила по diff <= 2?
>>1021518> diff <= 2Так и пиши вместо @diff <=2.
>>1021516>>1021516
>>1021523Тогда тебе придётся писать через подзапрос или полностью свою колонку скопировать в WHERE.Тут уже сам смотри.
>>1021523Спасибо. Плохо, что я сам не сообразил.И в чем разница между подзапросом и копировании колонки в WHERE в данном случае?
>>1021524Спасибо. Плохо, что я сам не сообразил.И в чем разница между подзапросом и копировании колонки в WHERE в данном случае?
>>1021530Зависит от реализации СУБД. Большинство умеют похожие выражения распознавать и нормально с вложенными запросами работают. Так что это скорее дело вкуса, но если колонка будет большая, то особого выбора тогда не будет.Таким же образом группировать можно, если не даёт.
Где почитать основы SQL вообще? Возникла нужда, а понять нихуя не могу.
>>1021534Понятия не имею. У меня был курс СУБД в универе + на работе SQL для написания всего используется.
>>1021534Но в интернете есть много чего по запросу "mysql for dummies" и его вариациям.
>>1021535А у меня не было. Но ссука нужда есть, и свалить не на кого.
>>1021534> Где почитать основы SQL вообще?Здесь.Основы SQL:select * from TABLE;Урок окончен. Домашнее задание - выполни этот запрос на любой реляционной БД. Теперь основы ты знаешь, остальное вырастет из этого.
>>1021545Ну блять. Я попытался решить задание типа "Вытащить из таблицы имена всех кораблей, утонувших в Атлантике в 1942 году" на каком-то сайте, и после часа понял, что нихуя не понимаю.
>>1021547Ну делись задачкой что ли.
>>1021533Мне всегда казалось, что БД так же содержит в себе и синтаксис запросов, а СУБД играет инструментальную для пользователя БД роль, так же, как библиотеки, предназначенные для выполнения запросов из программы. Иначе бы каждый разработчик таких библиотек делал синтаксис так, как ему кажется более удобным.
>>1021555Вангую с sql-ex.ru задание.
>>1021472Поискавая выдача по тендерам и госзакупкам.
>>1021475select *from ( SELECT lastCheck, nextCheck, (TO_DAYS(nextCheck) - TO_DAYS(NOW()))/30.5 AS diff FROM ttc ) ttc_with_diffWHERE diff <= 2 ORDER BY diff ASCПопробуй так
Поболтали с начальником щас, рассказал о последнем собеседовании.Такие вопросы лайтовые и такие люди дауны.Тяночка для вывода актуальной зарплаты сотрудника использует три вложенных селекта, вместо использования keep dense_rankНе знает, что вернёт full join по таблицам, в которых id nullНе знает, как работают агрегатные функции на null значениях.Не знает, что вернёт запрос select * from a, bИ это топбанк с зп от 100к
Анон, подскажи, какие книги можно почитать по MySQL? Именно по данной СУБД и с точки зрения разработчика, а не администратора. Хочется углубиться в ее изучение, понять именно те фичи, которые присущи именно ей. А то знания очень разрозненные и нет общей картины. Заранее благодарю.
>>1021783https://www.amazon.com/Understanding-MySQL-Internals-Discovering-Improving/dp/0596009577/
Помогите со структурой базы. Не знаю, как правильно сделать.Есть таблица Order с таким набором полей:order_idorder_address_idorder_codeorder_metro_idorder_equipment_idИ три зависимых таблицAddress, Metro, EquipmentМне приходит файл, данные из которого нужно в эту базу данных поместить. Запилил четыре таблицы, соответственно, для этого.Каждый раз при вставке в таблицу Order мне нужно дёргать из зависимых таблиц (они типа справочники, но справочники, которые тоже постоянно пополняются) id. И если такого значения в зависимой таблице нет (ну допустим нет такого адреса ещё в таблице Address), нужно добавить эту запись в таблицу Address и уже потом вернуть её id, а если запись уже есть, то нужно просто вернуть id существующей записи. Как это с точки зрения архитектуры лучше реализовать? Используется PostgreSQL если что.
>>1021954И нахуй тебе хранить в основной таблице ид_метро, если одному адресу соответствует одно метро? Храни ид метротв таблице адресов, не засирай базу.
>>1021961Оператор может привязать один адрес (то есть дом) к разным метро для разных заказов, потому что некоторые адреса располагаются равноудалённо от станций и выбор станции метро отдаётся на откуп оператора. Да и вообще особой роли не играет. В общем твоё замечание несущественно.
>>1021962Твоя жизнь несущественна.Нравится хаос разводить - живи как хочешь, мне похуй.
>>1021966Какой хаос?>одному адресу соответствует одно метро?Я тебе ответил, что это не так. К тому же по делу ты не ответил, лишь сагрился на пустом месте.
>>1021967Я тебе сказал, что ты ебучий гуманитарий.И человек будет хранить либо строго одно метро для одного адреса, либо 1,2,3 ближайших в зависимости от потребностей, а не вводить тупые допущения.Кому-то может понадобиться аналитика по конкретным станциям, а у тебя один и тот же адрес привязан к разным метро.Метро в заказе - формальность, это не значит, что курьер будет ехать конкретно до этого метро, он будет ехать как ему удобно.Как ты будешь обрабатывать открытие нового метро? Нормальный человек проапдейтит адреса и проставит им новое метро, ты будешь на половине адресов хранить старое ближайшее, на половине новое.Ты мусор, говно и говнокодер, я тебя презираю, я бы вас просто убивал всех.
>>1021970Ты вообще кажется не понял, что требуется. И тупые допущения исходят только от тебя.Не понимаю твоего баттхерта. Окей. Изменю условия. Теперь таблицы Metro нет и нет соответствующей колонки в таблице Order. По делу таки есть что сказать?
>>1021974Теперь у тебя нормализованная база данных и больше мне сказать нечего.
>>1021979Ты спросил по поводу СТРУКТУРЫ базы данных. Я сказал, чем твоя структура говно, и сказал как сделать по-человечески.
>>1021811Благодарю
>2017>не пользоваться графовыми базами
>>1022122Хранилище тоже на базе будешь делать?
>>1022223>на графовой базе
Кто-нибудь использует job scheduler в БД оракд?Что мне нужно записать в качестве частоты выполнения, чтобы жоб отрабатывал один раз в неделю по понедельникам?
>>1024082https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse004.htm#ADMIN10040
>>1024085Извини, пожалуйста, что пришлось гуглить за меня, я зря это спросил. Спасибо, снимается.
>>1016781Из всего списка читал первые две. Сам работаю dbd с Oracle 9i.Учитывая, что тебе надо 12c 2ю книгу ищи 6го издания. Я бы начал с нее (Фейерштейн), там по сути основы. Кайт это уже более продвинутое, нюансы и т.п.
>>1024856Большое спасибо!Расскажешь побольше о своей работе? Алсо, не чувствуешь себя старпером, сидя на 9 оракле?
>>1024857Крупное гос предприятие (не РФ). По-поводу 9i: выбирать не приходиться, что есть с тем и работаем. Закупка и переход на более новые версии не планируется.Работаю уже 10 лет. В обязанности в основном входит разработка приложений на Oracle Forms и Reports для нужд предприятия и всякой отчетности в другие гос структуры. Также приходится иногда работать с MS SQL Server 2012 (купили ПО работающее на этой БД) и каким-то языком похожим на 1С, ISBL называется.Когда приходил ничего совсем не знал, думал уволят после испытательного срока. Сейчас освоился, засиделся, но уходить не особо хочется, хотя предлагали попробовать (это не факт, что взяли бы) в место где платили бы в 2-2.5 раза больше (ибо там зп привязана к доллару), там работа по оптимизации и хранилища данных. Но там и работать пришлось бы: не так как я сейчас, сидя тут. Все-таки гос есть гос.По зарплате у меня в 2 раза больше чем в среднем по моему региону. Не знаю что еще рассказать. Глянул мельком эту тему, увидел упоминания про хинты, вот серьезно, не знаю о них ничего, сам не применял, но на работе в запросах (не моих) встречались.Если бы вернулся во времена универа, то больше бы внимание уделил учебе, а потом бы свалил на какую java. А так забивал на учебу (и вообще на программирование) и на текущую работу по сути по родственным связям брали.
>>1024893Понимаю.Я тоже ничего не делал в универе и работа с базами данных была единственной, на которую меня взяли, так и определился мой путь. Но я с шилом в жопе, меняю работы и хочу расти (хотя бы в зарплате).
>>1024914Кек, сеймщит, после универа устроился эникеем, среди прочего приходилось чистить oracle db, оценил перспективы и решил на нем остановиться. За 5 лет работы сейчас уже на третьей, вот думаю обмазаться книгами и подаваться в банки. Но какая же скука все-таки, уже год одни и те же задачи. Вообще какие перспективы ораклиста? Может как писали выше в треде попробовать выучить язык и перекатываться? Или стать крутым спецом по БД, но никак не могу представить, как из sqlщика вырасти до техдира или тимлида. Какой потолок, если знать только sql и pl/sql?
>>1024966В банках хорошо и рост есть. Только лучше быть etl-щиком, а просто запросы писать. Иначе будешь клепать одни отчетики и вот тогда совсем охуеешь от однообразия и рутины.Да, книжки дело хорошее, ты читай, я тоже читаю. Все же перекатываться совсем мне день, так что планирую поучить устройство бд и быть кем-то более крутым, чем писатель sql-запросов.
Сейчас голову сломаю, помогите, как будет выглядеть эта задача для MSSQL:Найти производителей, которые выпускают более одной модели, при этом все выпускаемые производителем модели являются продуктами одного типа.Вывести: maker, typeВ подсказке виду GROUP BY и HAVING, но ничего с ними путного не пишется. Подлное условие:Схема БД состоит из четырех таблиц:Product(maker, model, type)PC(code, model, speed, ram, hd, cd, price)Laptop(code, model, speed, ram, hd, price, screen)Printer(code, model, color, type, price)Таблица Product представляет производителя (maker), номер модели (model) и тип ('PC' - ПК, 'Laptop' - ПК-блокнот или 'Printer' - принтер). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов. В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость - speed (процессора в мегагерцах), объем памяти - ram (в мегабайтах), размер диска - hd (в гигабайтах), скорость считывающего устройства - cd (например, '4x') и цена - price. Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах). В таблице Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена - price.
Есть такой запрос:select from t1 union all select from t2Как создать в, созданной этим запросом, таблице дополнительную колонку и занести туда название той таблицы, откуда была взята строка?
>>1024979Не подскажешь как в etl-щики можно перекатиться ораклисту? В своей практике сталкивалсятолько с клепанием отчетиков и рзаработкой логики на pl/sql, загрузка данных из внешних таблиц разве что.
>>1024993Запрос динамически составляется? Если нет, то можно же статично прописатьselect t1., 't1' t_nameunion allselect t., 't2' from t2;
>>1024997Спасибо, а на будущее, как бы выглядел динамический запрос?
SELECT id, length(my_field) AS len FROM blah WHERE len > 3;как?если так:SELECT id, length(my_field) AS len FROM blah WHERE length(my_field) > 3;то для n записей, length(my_field) вызовется 2n раз. проверял не с length, а добавил свою процедуру которая выводит в консоль при вызове.
>>1025004Если oracle, то например можно такdeclarel_t1 varchar2(32 char); -- название таблицы t1l_t2 varchar2(32 char); -- название таблицы t2begin/ здесь получаем названия таблиц, например из системных справочников /execute immediate 'create table t3 asselect t1.id, ' || l_t1 || ' name union all select t2.id, ' || l_t2 || ' from t2';end;Если не ощибаюсь вообще так вставлять переменные в код запроса это моветон, лучшеиспользовать using t1, t2
>>1025014оплошал с двойными кавычками, но суть не меняется
>>1025008понял.https://stackoverflow.com/questions/11182339/reference-alias-calculated-in-select-in-where-clause
>>1024991select maker, type from (select maker, type, count() from product group by maker, type having count() > 1)
>>1024994Не знаю, не перекатывался.В планах через полгодика попиздеть с начальниками и сказать, давайте мне 150к и переводите к интеграторам, иначе свалю.Проблема в том, что я на отчетиках уже довольно незаменимый человек и начальник меня просто так не отпустит. В принципе, и на отчетиках посижу за 150.
Господи, почему у вы спрашиваете задачи именно в вечер пятницы, когда я поддатый, а всю неделю молчите
>>1025024Чет с count() ошибка, надо в нем писать что-то. Пишу туда model, выдает ошибку синтаксиса.
>>1025051Звездочку в count засунь.Здесь она как italic текст пошла
>>1025056Да, только дошло, спасибо. Все равно ошибка с синтаксисом.
>>1024991Бля, а в вашей базе аналитические функции есть?Все равно красиво это не сделать, только через подзапросы.Либо применяй аналитические функции, первая count(*) over (partition by product_type, proizvoditel), вторая over(partition by proizvoditel) и селекте оттуда те где первый каунт = 1 а второй больше 1.Либо юзай group by rollup (proizvoditel, product_type) но тоже не упростит сильно.Бля проще даже не изъебываться а просто первым запросом отсеять тех, у которых типов продуктов меньше двух, а вторым тех у кого количество меньше двух.
>>1025058В оба count звезду вставил?На чем ошибку выдает? Кидай сюда. Может для MS SQL какая ошибка, я писал больше для Oracle, хотя тут такой синтаксис что должно прокатывать и там.Вот это тоже с ошибкой выполняется? :select maker, type, count(звезда) from product group by maker, type having count(звезда) > 1Здесь чисто лишнее поле на вывод.
>>1025061Бля, брат, твой запрос не отсеит тех, у кого больше одного типа продукта
>>1025064Я понял условие как должны быть показаны те у кого более одного ПК или более одного лаптопа и т.д. И не важно что у того у кого 3 ПК, есть еще по 1му лаптопу и принтеру, всеарвно вывести эту фирму с пометкой ПК, разве не так?
>>1025067Условие: вывести тех производителей, которые производят продукты одного типа и продуктов у них больше одного. Ты о другом.
>>1025060Это просто задачка из sql-ex ru, я хз. Попробую как ты сказал.>>1025061Этот работает, но, очевидно, не то ищет.
>>1025068То есть:1 тип продукта, 2 продукта - выводим2 типа продукта, 3 разных продукта - не выводим.Я художник, я так понял задачу. Без подзапросов нерешаемо.
Бля, батя придумалSelect proizvoditelFrom chetotamGroup by proizvoditelHaving count (distinct product_type) <= 1 and count(product) > 1
>>1025093Какой же я охуенный и охуевший.Нет компа, чтобы проверить, что два хевинга работают, но я почти уверен.топ ораклист из топ10-банка зп 120к
>>1025093>>1025094Select makerFrom ProductGroup by makerHaving count (distinct type) <= 1 AND count(model) > 1Это находит верного maker, но не дает дописать к нему type. Надо maker, type
>>1025096Max(type), min(type), tvoyamama(type), все что угодно пиши, найдёт
>>1025098Но это прикольно только в ситуации когда у тебя строго один тип продукта выводится, а если 2 или 3 то уже думать надо. Не хочу думать, батя решил задачу и пошел дальше бухать
>>1025093>>1025094>>1025098Ты крут. Подчерпнул для себя кое-что нового (конкретно не знал что в having можно такое писать, использовал там раньше только то, что в select описано). Не думал что так можно и не встречал раньше. Ну на то у меня и зп не 120к.Кстати вариант с подзапросами у меня >>1025067 такой вышел:select a.maker, a.typefrom ( --здесь выборка тех у кого больше одной модели но несколько продуктовselect maker, typefrom product group by maker, type having count(звезда) > 1) a, ( select maker --выборка тех у кого один тип продукта from ( select distinct maker, case when type = 'PC' then 1 else 0 end as k_pc, case when type = 'Laptop' then 1 else 0 end as k_lap, case when type = 'Printer' then 1 else 0 end as k_pr from product ) group by maker having sum(k_pc+k_lap+k_pr) = 1 ) bwhere a.maker = b.maker;
>>1025118Что-то засрало табуляцией весь код, да и хрен с ним.
>>1025118Чет дохуя сложный вариант. Я понимаю, что там костыльное решение было с Max(type), но такое как у тебя скорее всего не подразумевалось.
>>1015789 (OP)Как в SQLite выводить сообщение SQL об отработке команды, сколько строк изменено и пр.Использую SQLite в Python 3
>>1025137Не знаю, не разбираюсь в этом, но может быть sql%rowcount поможет
>>1025137sqlite3_changes()https://sqlite.org/c3ref/changes.html
>>1025154changes()
>>1015789 (OP)Sqlite в Python3 и SQLite studio.Команда типа ("INSERT INTO total (aaa, bbb, ccc) VALUES (111, 555, 999)")команда работает в Sqlite Studio и изменяет 1 строку, но не работает из питона, то есть cur.execute(command) + con.commit ничего не изменяетВ чём может быть дело ?
>>1025211Ещё почему в SQLite Studio не выполняются подрядк командыINSERT INTO total (aaa, bbb, ccc) VALUES (111, 555, 999) - ОКПодряд строки INSERT INTO total (aaa, bbb, ccc) VALUES (11, 55, 99)INSERT INTO total (aaa, bbb, ccc) VALUES (1, 5, 9)возвращает ошибку near "INSERT": syntax error:
>>1025211con = sqlite3.connect("db_test.db")cur = con.cursor()cur.execute("INSERT INTO total (aaa, bbb, ccc) VALUES (111, 555, 999)")con.commit()Так не работает?>>1025224INSERT INTO total (aaa, bbb, ccc) VALUES (11, 55, 99);INSERT INTO total (aaa, bbb, ccc) VALUES (1, 5, 9);
>>1025229ступил, забыл про ;
>>1025229да, конечно, там con.commit после cur.executeОшибки соединения нет, Select, например, нормально работает, возвращает строки. Ошибки database is locked также нет.
>>1025239а так:cur.execute("INSERT INTO total (aaa, bbb, ccc) VALUES (:a, :b, :c)", {"a": 111, "b": 555, "c": 999})
>>1025118
>>1025118Да от души, не жалко. Вы почаще в тред пишите, я люблю задачки решать.
>>1015789 (OP)Postgres или Firebird?
>>1025399notepad
Анончики, подскажите, есть вообще что-нибудь юзабельное для постгреса, типа Mysql Workbench? Мне нужно диаграммки построить, в воркбенче классный редактор, умеющий экспортировать схему из базы. Хочется такого же для постгреса.Алсо, вангую, что нету нихуя и тогда следующий вопрос, где лучше всего строить схемы?
>>1025641Как вариант https://dbdesigner.net/
>>1025659Не, во-первых, не хватит бесплатной версии (у меня 100 таблиц). А во-вторых, воркбенч хотя бы открытый и всем доступен, а тут создаешь модель, которую сможешь открыть только онлайн в их веб-приложении предварительно зарегистрировавшись.
>>1025641ДБобер.
А щас можно даунский вопрос? На работе есть схемы баз данных в power designer. Можно смотреть и изучать и искать что-нибудь. Вот. А как создание этих схем происходит? Там можно подрубиться к базе данных и выцеплять структуры из нее, или же это все тупо вручную рисуется?
>>1026121Можно тупо вручную, а можно и подрубиться и сделать схему. (Она будет полноценной, если созданы все требуемые для связей таблиц ключи, в двх, например, их редко создают).Конечно, второй вариант круче, так как не нужно тратить время на документацию, однако, если ты сначала пишешь тз, а потом по нему делают бд, то, разумеется, в таком случае схема первична.
>>1025662У меня в закладках еще такое, но сам не пользовался:http://dbdsgnr.appspot.com/https://www.draw.io/
>>1026230Спасибо, сам кто по специализации?Dwh - хранилище, то есть не oltp система? Да, слышал, что там не создают индексы и ключи обычно.
>>1026252Сам - разработчик двх, как раз.Ключи создают, но в основном только праймари.Индексы тоже создают, конечно, а вот foreign key, как раз, нет, ибо хуевенько инсерт начинает работать, да и время на изменение структуры потом больше тратится.Хранилище - олтп зачастую, но бывают и исключения. Если ты думаешь про олап, то нет, олап - это херь, которая из хранилища заполняется и позволяет всяким там аналитикам быстро и удобно смотреть данные.
>>1017976>>1018007>>1018025>>1019699смотрю я на эти адовые схемы и не могу понять: вот если корзина сохраняется, по какой-то причине и эдитор меняет цены у книги, то изменится ли цена корзины? валидно ли это с точки зрения бизнеса ее менять?как по мне это все фейл.
>>1026289А это уже вопрос к бизнесу. Хочет ли он соблюдать принципы историчности или нет. Нас, простых посонов, это не касается, наше дело только спросить и сделать, как сказано.
>>1026292мне пришлось избавиться от этого принципа
Програмач, приветВозможно, обоссыте, но надеюсь, подскажете. Позвали работать в отдел операционнх рисков, pl/sql, скрипты, возможно sas, dwh и витрины, но последние 3 не точно. +написание тз, прототиповСтоит идти?
>>1026303А кем позвали то? Аналитиком?
>>1026303Нет, не стоит. Не иди ни в коем случае.
>>1026303Откуда я знаю... Почему ты сам не уверен, чем придется заниматься? Надо спрашивать такие вещи... Если по бабосу и почему все ок, то иди...
>>1026340>прочемуНо лучше все равно побольше нам расскажи.
>>1026327Аналитик, да>>1026338Почему?
>>1026353Если тебе нравится пиздеть с заказяиками, постоянно сраться на тему кто, что и когда должен сделать, политика и написание документации(эти дела будут занимать половину раб.времени, помимо скл и отчеты), то вперед. Лично мне все это остопизденило.
>>1026357С таким багажом знаний есть возможность переката в Европу? Вопрос уровня б, просто есть еще одна работа.
>>1026359Не знаю, мне кажется в Европе такой хуйней не страдают, которую я тут написал. Но это мои домыслы, я ж там не работал. Найди аналог hh.сру, только какой-нибудь европейский и ищи data analyst, смотри, что там требуется.
>>1025243Странно. Сегодня тот же самый код заработал.
>>1026371fix нет. не заработал, хотя, например, что-нибудь с Update из скрипта работает, а print (con.total_changes) выдаёт нужное число измененных строк. Но когда смотрю содержимое таблицы, оно без изменений
>>1026271Расскажи, пожалуйста, подробнее про работу. Что на практиrе представляет собой ETL? Что для этого нужно знать? Какие подводные камни?
Братишки, помогите с одной хуевиной, долбоебу.Есть таблица в майэсскуэль. В ней лежат пятимутные замеры длины пинуса.`datetime`|`mm`'2017-07-17 06:00:00' | '100''2017-07-17 06:05:00' | '280''2017-07-17 06:30:00' | '70''2017-07-17 06:35:00' | '80'Но бывают по техническим причинам проебы в замерах, и ряд пятиминуток рвется, как показано выше-проебалось 25 минут.Таки вопрос, каким запросом можно выцепить разрывы? Чтобы в итоге, на выходе было что-то вроде:'2017-07-17 06:05:00' | 2017-07-17 06:30:00'
>>1026384Но это а оракле, как у вас сам гугли.with t as( select to_date('17.07.2017 15:00','dd.mm.yyyy hh24:mi') sdate from dual union all select to_date('17.07.2017 15:05','dd.mm.yyyy hh24:mi') sdate from dual union all select to_date('17.07.2017 15:30','dd.mm.yyyy hh24:mi') sdate from dual union all select to_date('17.07.2017 15:35','dd.mm.yyyy hh24:mi') sdate from dual),basis as(select sdate as cur_date, min(sdate) over(order by sdate rows between 1 preceding and current row) as prev_date from t)select cur_date, prev_date, cur_date - prev_date from basis where cur_date - prev_date >= 0.004
>>1026384Тебе только средствами мускуля надо справиться?Могу решение на пхп дать просто.
>>1026395Блядь, простие, я думал я в прикрепленном треде, уебываю.
Есть две базы. Одна рабочая, вторая для тестирования доработок. Обе долдны быть идентичны. И вот мне стало интеренсо. Можно как то сделать ALTER хранимой процедуре в одной базе содержимым из другой? Синхронизировать их так сказать.
>>1026410Если оракл, то можно пробануть dblink. Подключаешься к тестовой базе и копируешь код процедуры во временную таблицу, потом компилишь процедуру на боевой. Но это извращение какое-то
>>1026387Общее направление понял, попробую.>>1026395Не критично, пхп тоже подойдет, не съебывай, брат.
>>1026413mssqlХотелось бы без извращений. Для извращений уже есть visual studio генеррирующая километр скрипта.
>>1026414А тогда такой вопрос, тайминги всегда секунда в секунду? Или может быть что-то в духе:'2017-07-17 06:00:01' | '100''2017-07-17 06:04:59' | '280''2017-07-17 06:30:00' | '70''2017-07-17 06:35:00' | '80'И разрыв может быть больше часа в таком проебе? Вангую что офк может, да? Проеб у оборудования и в сутки может быть в итоге?
>>1026423Секунды всегда 00. Проебы случаются и больше суток.
>>1026423И минуты всегда кратны 5.
На работе есть таблица, в которой хранится вся информация о сотрудниках. Дата рождения, ссылка на фотографию, вот это всё.Хочу сделать средствами моих отчетиков аналог тиндера для компании. В параметры отчёта передавать желаемый пол и возраст, подтягивать фоточки, сохранять где-нибудь лайки. В случае взаимного лайка отправлять на почту обоим письмо с предложением пообщаться. Охуенно же, прям вот уже вижу, как это все реализовать. Только боюсь меня выгонят с работы если я начну так нагло юзать личную информацию. Да и не надо это никому.
>>1026425>>1026426http://ideone.com/qMPG1aНе знаю в каком формате тебе нужно выводить результат. Говори что подправить если что.
>>1026440Спасибо, от души. Править вроде нечего. Респект.
Сап, програмач.Аноны, помогите пожалуйста с SQL-запросом. Пикрилейтед - структура БД (на самом деле только её кусок). В таблице "Заказ" на самом деле больше полей и я хочу написать запрос на выборку всего из неё, но нужно чтобы делалась проверка на существование записи в таблице "(Соединительная таблица)". Типа если в ней есть запись, где id_пользователя совпадает с id_пользователя в таблице "Заказ", то нужно запись в таблице "Скидка", которое ей соответствует по id_скидки, взять поле "значение скидки" и умножить его на поле "Цена", затем вернуть результат. Как написать запрос?То есть по сути, что-то типа того:SELECT ...Заказ.Цена * Скидка.значение_скидки,...FROM Заказ ...Помогите пожалуйста, я в SQL ещё не разбирался, планирую только потом, но мне сейчас нужно такую фичу сделать.
>>1026469Не доглядел. В соединительной таблице на картинке вместо "id_товара" должно быть "id_скидки".
>>1026469Я тебе уже писал этот запрос, мог бы и отмотать тред.
>>1026475Пролистал. Мне из запросов только это писали --> >>1018020
>>1026479И? Что тебе нужно?
>>1026480То что написал. Типа у пользователя есть скидка, то нужно сделать:SELECT Заказ.Цена - Скидка.значение_скидки,иначе не умножать, а просто вернуть цену.
>>1026481>если у пользователя есть скидкаФикс.
>>1026481Сьеби с треда, тебе уже достаточно написали. Если тебе лень названия полей поменять и запятую на умножение, то мне тем более лень тебе отвечать.
>>1026481>не вычитатьБлять, опять фикс.
>>1026483Да нихуя мне не лень. Я просто не вдупляю нихера. Запись в соединительной таблице может быть, а может и не быть. Вытащить то я умею, если она есть, и тогда и скидку отнять смогу. А если типа у юзера нет скидок - вот эту херь не знаю как провернуть.
>>1026487L E F T J O I N уже подразумевает эту ситуацию и не отсечет строки... Вместо прямого значения скидки написать nvl(skidka, 1). Тогда если есть скидка, он домножит на нее, если нет на единицу
>>1025243Такая конструкция заработала, но только после того, я как сохранил базу под другим именем. До этого скрипт также писал, что всё ОК и выдавал число изменённых строк, но не менял.Возможно, это был какой-то глюк в SQlite.
>>1026431Во многих компаниях, особенно крупных, не приветствуются отношения между сотрудниками. Тимбилдинг, корпоративчики - да, а няшенье под пледиком - нет.
>>1026494Да оно и разумно, в принципе, нехуй переносить личные отношения на работу...
>>1026488Спасибо большое. Всё получилось! Про NVL() не знал, а ведь это и было решением моей проблемы.
>>1026503От души.Ставь вопросы конкретнее, чтобы я не злился на то, что ты вынуждаешь меня повторяться.Скажи потом свою зарплату чтобы я пригорел.
>>1026382>>1026382Ок. Я работаю с ms sql server. Для него etl это:1. SSIS-пакеты, создаваемые в вижуал студии (data tools) и деплоящиеся на сервак. Они отвечают за загрузку данных из всяких других субд (из других систем) в промежуточную бд, именуемую staging2. Это хранимые процедуры, которые делятся на 2 части: a. загрузка данных в хранилище из staging бдb. Преобразование данных в хранилище для их удобного использования3. Скриптописательство, в основном, c#, используется для 2 целей:а. Clr - функционал c# в ms sql сервереb. Загрузка данных из всяких веб-сервисов (api, ftp и т.п.), которую невозможно реализовть стандартными компонентами vs data tools.Что еще.. иногда еще нужно хуярить данные в олап, так что придется прохаваться в том, что это и с чем его едят. Ну и индексы, оче важно, чтоб все быстро оаботало.Как-то так.
>>1027081Сколько платят?
>>1027536Сотен, дс, если шо. С августа перекат на 120.
>>1026232Короче перевел на мускуль и экспортнул в воркбенч.Но draw.io очень классная штука. Минус только в том, что это больше рисовалка - таблички нужно будет заполнять перетягивая строки в нее, ну и связи тоже будут нарисованными, а не определены по ключам а еще он захлебнется скорее всего от моих 100 таблиц. Но вообще это оч классный редактор.
Влез в отдел логистика складская который работает на oracle и pl/sql, в основном занимается написанием запросов-отчетов как у этого анона >>1017574.Подскажите литературу и тд, где можно набраться начальных знаний, опыта работы с бд= 0. За 2 недели аутирования освоил только простейшие запросы и содержания таблиц.
>>10277851. Гуглишь.2. Просишь меня решать задачи.Тебе же нет смысла читать Кайта или даже Фейерштейна, просто найди какой-нибудь интернет-ресурт, где вкрации пишут про sql.
>>1022122Двочую. Графовые базы решают абсолютно все проблемы релятивного говна. Они самоописываемые, а значит могут хранить метаинформацию (ограничения и проверки типов, например) в самой базе и получать доступ к ним через стандартные запросы.Они универсальны. Например, язык программирования шестого уровня будут хранить абстрактное дерево синтаксиса в графовой базе.Отказывайтесь от говна мамонта, оно уже окаменело.
Аноны, привет. Очень годный тред. Хотел бы обратиться за советом.ЗАкончил ВУЗ, зовут на работу аналитиком BI (не глоубайт). Опыта работы серьезного нет, sql знаю, погромирование тоже. Работал до этого в сапе.Насколько это годная идея в 2017? Хочется, конечно, и архитектором стать и в Европу и на хуй сесть.
Работаю с QSLite в связке с Qt. Надо выполнять много похожих запросов, в которых различается только один параметр. Запросы связывают несколько таблиц. Как это удобно реализовать без хранимых процедур с минимумальным количеством строк в коде?
Привет, аналитики, может кто-то с tableau работает? У меня есть в таблице широта и долгота, табло их понимает как географические параметры, но я не понимаю, как мне отобразить эти точки на карте.Как мне ограничить карту, чтобы мне только карту Москвы показывало?>>1027894Я не советую.
>>1027944почему:
>>1027952Скучно, неинтересно, прогать веселее.Все зависит от твоих личных качеств, предпочтений, оффера. Нет смысла скипать работу, которая тебе по всем параметрам подходит, из-за того что на дваче так сказали.
>>1027973Да хер знает. Архитектор знакомый уебал за бугор-вот и мотивация
>>1028006Архитектор БД или системный архитектор?
>>10280611, но знаю и второго, только ему сложнее из-за специфики РФ
Сап, посоны, нубас не умеющий в погромирование итт за помощью зашел. Есть Одна Таблица. Вней много данных, которые надо рассортировать в отдельные таблицы и сохранить в отдельные файлы.Я уже нашел макрос как делить на листы и сортировать и макрос как листы в файлы сохранять.Осталось только засунуть макрос, который будет переименовывать листы, впихивая в название данные из ячеек.Название листа должно быть такое:F1_"Данные из ячейки AF2"_"Данные из ячейки A2"_190717Плиз, помогите, не хочу как лах завтра сидеть открывать каждый лист смотреть что там написанно и переименовывать в ручную.
>>1028096Туда ли ты зашел, системный администратор microsoft word, excel, photoshop?
>>1028100> ЕДИНЫЙ БАЗ ДАННЫХ ТХРЕАД> ExcelДа я туда зашел. Блин, посоны, ну хотя бы дайте ссыль где есть макросы на любой вкус и цвет. Только гуглить не гоните ок да? Я и так это делаю сейчас.
>>1028103> > ЕДИНЫЙ БАЗ ДАННЫХ ТХРЕАД> > Excel> Да я туда зашел.Ты не перепутал эксель с аксессом?Какие нахуй макросы? Давай ты лучше засунешь этот эксель себе в sql сервер и мы тебе составим запрос.
>>1028096нагугли как в VBA работает цикл и в цикле парси таблицу, там же все просто, что-то на уровнеЛист1.('R2C2'), только вместо номера строки и номера столбца подставляй i и j. Эх, напомнил свою первую работу, где в эксель макросом тянул данные по ODBC из БД.
>>1017935Java
Здравствуй, анон. На связи >>1017574 .Есть один запрос, по ссылке, который считает к-во паллет созданных в определенное время. Что нужно подставить, чтобы результат был такой: к-во паллет на каждую дату, то есть на 01.01 - 150, 02.01 - 148 и т.д?https://pastebin.com/jkFDaLsb Спасибо.
Нуб в этом итт треде.Стоит ли, по вашему, вкатываться разработчиком/консультантом ms sql?
>>1028275Да, конечно.
>>1028261Не свовсем понятно, что ты хочешь? Ты же и так уже получил группировку по TRUNC(lu.c_date).Если возможна ситуация, что в твоем текущем отчете появятся строки с одинаковой датой создания, то выкидывай все колонки, кроме количества палетов и даты создания. Или тебе в этом же отчете еще одну колонку нужно получить с общим количеством палетов на дату создания?
>>1028278можешь, пожалуйста, пояснить за плюсы?
>>1028285Плюсы: Ты получишь ценный олпыт, который и определяет твою функциональную грамотность.
>>1028261Sum(kolvo) over(order by create_date).Покажет для каждой строки суммарное количество на дату этой строки.Только я не уверен, что с твоими группировками это прокатит, я бы весь запрос через аналитические функции переписал, но делать этого я, конечно, не буду.Как вариант приджойнить эту таблицу саму к себе и в качестве суммы на текущий день брать sum(case when t1.date <= t2.date them kolvo end)
>>1028281Короче, я налажал с объяснением.Нужно на каждую дату делать запись, на 09:00 скажем, по кол-ву мест из таблицы, группируя по поставщику.Возможно такое сделать с помощью sql?
>>1028318Понятнее не стало.Вряд ли можно осилить язык структурированных запросов, если не осилил русский язык.
Анон, много рабочего времени у тебя действительно занимает работа? Остается время на чтение доков, книжек или же задач столько, что приходится брать сверхурочные?
>>1028376Чому именно в базотреде спрашиваешь?У меня все по настроению. Могу за день ебануть то, на что начальник отводил неделю, могу весь день курить, кофебрейкать и двачевать.Жёстких дедлайнов у меня нет, на работе засиживаюсь, только если работа прёт.Уровень загруженности влияет только на то, как именно я решаю задачу. Если задач мало, могу придумать что-нибудь творческое и оптимизаторское, потратить больше времени, но сделать лучше. Если задач много, зачастую делаю первым доступным способом и не особо переживаю за красоту своей работы.Читаю доки на работе только если это непосредственная часть моих задач. Если мне нужно пользоваться новым софтом или же я просто не знаю как сделать то, что от меня требуется. Саморазвиваться нужно дома.топовый-ораклист-120к
>>1028376Бывают конечно и завалы, но редко. Так что лично у меня время есть, но мне тупо лень на работе этим заниматься (неудобно как то). Домой прихожу желание появляется.Но я работаю в гос организации, различие безусловно есть. Я могу месяц ничего не делать (если никто доставать не будет) и получу столько же как если бы времени на посцать сходить не было.За своего друга скажу (раньше со мной работал, но ушел в другое место). Теперь он в фирме и времени у него значительно меньше стало (свободен только в обед), по первой работу на дом и выходные брал. Но у него и зарплата в раза полтора - два больше.
>>1028396долго рос до такой зп?
>>1028403Чуть меньше двух лет. Начинал с малого.
>>1028396Тому что ораклистом работаю, задач обычно дофига и работа есть всегда, причем нагрузка рассчитывается иногда так, что времени на кофейбрейки не остается. Единственное спасает, что сам время оцениваю на выполнение, поэтому иногда закладываю время с учетом капчевания. Почему нужно развиваться дома, если у тебя на работе полно времени? У меня после рабочего дня еще бывает куча дел, и часок-полтора на чтение остается.>>1028397Тоже работал в госконторе, безделие доконало и никаких перспектив.
>>1028423А перекатиться из рашки не думал?
>>1028439Я военнообязанный + с языком не очень. Ближе к 30 мб, пока не особо думаю.
>>1028446А какие еще скиллы есть, кроме чисто оракловых: sql, pl/sql, concepts? что нужно знать, чтобы работать топом. Мне вот кажется, топовый - тот, кто может с нуля спроектировать слой БД для какой-нибудь информационной системы, уровня АБС. Поясни, пожалйста.
>>1028448Да лол, какие скиллы, нет скиллов, я просто зарплатой похвастался
Можете вкратце объяснить мимокрокодилу, что сейчас с монгой? Никогда с ней не работал, но слышал, что с одной стороны у него скалабилити, производительность и nosql, с другой, что запись у него по принципу "мамой клянусь"и вообще незрелый (да, я смотрел тот мультик с медвежонком).Какой у вас вообще стейт оф арт? Год назад для говна на коленках это было нода+експресс+монга, как оно сейчас (бд конкретно)?
>>1028471Можете вкратце объяснить мимокрокодилу, что сейчас с BTrieve? Никогда с ней не работал, но слышал, что с одной стороны у него скалабилити, производительность и nosql, с другой, что запись у него по принципу "мамой клянусь" и вообще незрелый (да, я смотрел тот мультик с медвежонком).Какой у вас вообще стейт оф арт? Год назад для говна на коленках это было кобол+фортран+посраль, как оно сейчас (бд конкретно)?
>>1028624> Какой у вас вообще стейт оф арт? Год назад для говна на коленках это было кобол+фортран+посраль, как оно сейчас (бд конкретно)?Год назад? Ты из какого столетия, папаша?
>>1028471Cassandra и DynamoDB прекрасно масштабируются и используются в высоконагруженных проектах, а Mongo это так, чисто поиграться. Для кэша же лучше что-нибудь попроще, типа memcached/Redis.
После перезагрузки сервера не могу подключится к БД MySql удаленно. Пользователь записан как 'user'@'%', bind-address включен и имеет значение 127.0.0.1. В чем может быть проблема?
>>1028718База установлена на Windows 7.
Часто вижу в описании вакансий требование опыта работы с большим объемом данных, вопрос что считать большим объемом? Таблица с несколькими миллионами строк и сотней колонок - это большой объем? В чем специфика работы с такими таблицами?
>>1028767Специфика в том, что в таких «вакансиях» з/п не указана, вот в чём специфика.
Пацаны, вот если у меня есть таблица с данными где id соответствует какое-то значение на определенные даты, то есть id, value, date_begin, date_end, то как мне найти все задвоения по датам?То есть на определенную дату задвоение это count по строкам where sysdate between date_begin and date_end.А как мне одним запросом за все даты посмотреть? Пока в голову не приходит ничего лучше, кроме как запускать этот запрос за каждую дату, но ведь есть что-то оптимальнее?Ща с курилки вернусь, покажу как делаю.
>>1028795Вот все задвоения за текущий год, например.Я знаю, что это чертовски неоптимально, потому что по сути выполняю свой запрос для каждой даты. Таблица маленькая, но даже на ней это долго отрабатывает. Как лучше, я пока не придумал.
>>1028784Намекаешь на то, что все индивидуально и зависит от ебанутости работодателя? Или на то, что чем больше объемы БД, тем больше и з/п, кек?
>>1028835По-моему, он намекал на то, что фраза "умение работать с высоконагруженными бд" это что-то такое же шаблонное как техническое образование или английский язык и не передает сути.
>>1028841Похоже на то, походу такие вакансии как раз для меня
>>1028795>>1028806Я вам больше никогда отвечать не буду.топ-ораклист-120к
>>1028806>>1028795Если правильно понял, тебе нужно найти дни, для которых в таблице t существует больше одной записи для определенного t.id. Можно пробануть так решить задачу: найти все интервалы date_from - date_to из таблицы t которые друг с другом пересекаются, потом уже искать по ним дубли, если интервалы одинаковые и у них одинаковый t.id, то в эти дни как раз и было "задвоение". Решение на оптимальное не претендует и я его не проверял, но по крайней мере не нужно для каждой даты логику повторять.
>>1028901Чому? Очень полезные ответы, я думаю многие в треде тебе благодарны.Олсо, завтра иду на собеседоввание в ТОП-10 банк на разработчика анальных хранилищ и клепателя отчетиков, что посоветуете повторить? Какие вопросы могут быть?
>>1028905А мне-то блядь никто не помог, когда надо было.Сдеанонь банк, мб колегами будем. Алсо я вот тут про собес к нам рассказывал: >>1021772>>1028903Спасибо за ответ, я чуть попозже посмотрю, с телефона вообще не могу в код вдуплять.
>>1028909Я в ДС2, а ты видимо в ДС, судя по ЗП
>>1028913А, прикольно, не знал что топбанки в ДС2 имеют что-то кроме отделений.Удачи на собеседовании!
>>1028915Спасибо! В ДС2 довольно часто ИТ-вакансии банков висят. Те же СБербанк-технологии и просто сбер, центоробанк, альфа.
Возможно я зеленый даун, но программист oracle-тот, кто пишет pl/sql? Вышел первый день на работу (днищенская), слышал в коридорах разговор, но так до конца и не понял.Не ссыте только
>>1028999Верно. SQL - универсальный язык запросов к БД, Oracle - компания, создавшая СУБД (систему управления базами данных) с одноименным названием, PL/SQL - процедурное расширение (то есть способ превратить SQL почти в нормальный язык программирования), разработанный корпорацией Oracle. Разработчик Oracle и разработчик PL/SQL - практически синонимы, разве что в первое иногда ещё вкладывается смысл разработки и проектирования хранилища Oracle.Как ты попал на работу, если не знаешь этого?
>>1029011у меня должность, можно сказать, квалифицированный НИКТО. Работаю с экселем. Теперь вот думаю, что у них годная работа
>>1029013Не понял сразу. Поблагодари меня за развернутый ответ и можешь дальше спрашивать, что тебя интересует. Работа у нас охуевшая, да.
>>1029015Спасибо за подробный ответ, анон.В метро успел почитать, что для вката оркал не рекомендуют, мол двухзвенная архитектура катится к хуем и тому подобное. Либо джаву, либо mssql. ПОнимаю, что первое вообще не про то. Так ли все тухло и не стоит пытаться вкатиться?
>>1029017До этого момента не знал, что такое двухзвеная архитектура.Никто себе на ставит цели вкат конкретно в oracle или mssql. Если тебе интересны базы данных, просто учи sql на базовом уровне, потому что он везде +- одинаковый, а потом ищи работу. Куда возьмут туда и возьмут.
>>1029019Поясните, пожалуйста, кто нибудь за выражение KEEP в аналитических функциях. Для чего оно нужно, и зачем в нем указывать порядок сортировки, если порядок и так указывается в описании окна. Желательно с толковым примером.
>>1029022Так, епту бля, какие-то слишком заумные вопросы для вкатывальщика.Смотри.В конструкции keep order означает просто сортировку, то есть keep(dense_rank last order by param) для каждой строки выведет тебе последнее значение упорядоченное по значению param.Наличие order в конструкции over() означает, что аналитическая функция становится оконной. Оконная - то есть применяется не ко всем данным. Например, sum(value) over(order by date) для первой даты выведет только сумму на эту дату, для второй - сумму на первую и на вторую дату и так далее.Придумывать примеры я, конечно, не буду. Пример определяется реальной задачей, которую тебе нужно решить.
>>1029026Я не тот анон-вкатывальщик, просто случайно кликнул сссылку на его пост. Вот смотри, есть пример: https://ideone.com/u1AwEXТам в коде селекта получаю min и max значения зарплаты по департаменту тремя разными способами с использованием оконных функций. Все три возвращают одинаковые значения. Тогда как например изменить пример таким образом, чтобыkeep dense_rank first только выдавал правильный результат? Как понять, что именно его нужно применять, блждад? Выше в треде приводили пример с собеседования, где нужно было вывести топовую зарплату сотрудника за период. И анон говорил, что нужно делать через keep dense_rank, вместо трех вложенных селектов. Ок, но получается есть еще способ решить эту задачу через другие оконные функции.Извините, если сумбурно пишу, завтра собеседование, а на предыдущей работе аналитические функции почти не встречались.
>>1029040Это я и был.Не бойся, отвечай на любой мой пост, все равно я тут один.1. MIN(sal) и MAX(sal) KEEP (DENSE_RANK FIRST ORDER BY sal) действительно всегда вернут одно и то же. И это не ошибка, просто бессмысленно делать keep и max по одному и тому же параметру sal. keep() уже выделяет из всех значений значения с минимальной ЗП. А минимум и максимум по одному значению и будет это значение. Если бы мы брали min(chtototam) и max(chtototam) KEEP (DENSE_RANK FIRST ORDER BY sal), то это бы вернуло минимальное и максимальное значение параметра chetotam ТОЛЬКО среди тех значений, у которых минимальное sal.2. Да, по сути применение over(order by sal) означает использование оконной функции и накопительный итог, однако размеры окна можно корректировать. В этом случае, хоть функция и оконная, но используется >range between unbounded preceding and unbounded followingкоторое означает, что для любой строчки окно - все значения. Потому и получается одинаково.топ-ораклист-120к
>>1029040Анон, кажется начал понимать, keep(dense_rank) вообще можно использовать без over(), но чет не очень понимаю для чего.
>>1029049>>1029050Спасибо, анон, картина еще четче стала. Подводя все вышесказнное тобой, придумал следубщий пример: нужно вывести максимальную сумму платежа, среди всех платежей, поступивших в последний день текущего месяца:select max(t.price) keep(dense_rank last order by t.paydate)from paymentswhere trunc(paydate, 'mm') = trunc(sysdate, 'mm');Верно?
>>1029052Да, верно.
>>1029055Спасибо огромное! Разжевал то, что в никак не гуглилось уже пару часов.
>>1029059От души. Все приходит с опытом, не все гуглится.
>>1029059Напиши завтра, как все пройдет.Ещё раз удачи.
>>1029017Oracle это не всегда двухзвенка, в крупных интеграционнах решениях как раз трехзвенка. Другое дело, что задач по поддержке легаси, больше, чем стартапов и развивающихся проектов.
>>1029065Спасибо, прошло удачно. Была дана схема из трех таблиц с описанием полей и связей между таблицами, необходимо было написать несколько простых запросов. Несколько аналитических, с использованием оконных функций (респект анону, который вчера разжевал эту тему). Еще, как мне показалось, хитрое задание на удаление дублей по полю, условием было оставить записи с самой поздней датой, тоже через аналитические функции сделал.Ну и несколько вопросов по теории совсем простых, например какой план покажет запрос по таблице, где в условии фильтр по не индексированному полю и что сделать, чтобы его ускорить. По схеме спросили является ли эти три таблицы нормализованными и вообще в чем проблема этой схемы, тут я чет тупанул, т.к. привык, что в OLTP-базах все более менее нормализовано, и сказал, что да, хотя там не было ключей и вообще можно только предполагать о связи по одинаковому названию полей. Ну и был вопросик на понимание работы автономных транзакций. Еще про пайплановые функции спросили, слышал ли о них вообще.
Есть такой сайт:http://sql-ex.ruсижу на нем пытаюсь постичь простые запросы мускульные. раньше думал что джойны это всё что нужно обычной веб-макаке типо меня, но сейчас не осилив и 5% от тамошних упражнений уже охреневаю.Кто-то мб проходил? Или местные знатоки захотят размяться и пройти залпом все упражнения? Сам дико сосу и не понимаю каких-то похоже простейших основ. Например 8 упражнение не понимаю даже головой как должно быть решено. Мб хотите вместе пообсасывать?
>>1029543Как хорошо, будешь теперь больше меня зарабатывать.Что такое пайплановые функции?тот который разжевал
>>1029665сарказм. я бы сказал на треть меньше, предлагают, кстати это банк самыц днищенский по зп среди топ, ну и то что это региональный офис наверное роль играет.пайплановые функции могут возвращать коллекцию не дожидаясь конца выполнения всего тела функции, например, внутри цикла можно возвращать клиенту элементы коллекции
>>1029683pipelined
>>1029683Услышал, спасибо.На третье меньше это 80к получается?Ну для бандитского вполне норм. Хотя от опыта ещё зависит, конечно, сколько у тебя?Держи в курсе, интересно. Сейчас работаешь где-то? Как думаешь, позовут в это место?
>>1029662http://www.sql-tutorial.ru/book_exercise_8.htmlвот здесь комментарий к этой задаче, который объясняет две самые распространенные ошибки.Сам попался на второй ошибке: суть в том, что наличие модели ПК в таблице product, совсем не означает, что она есть в таблице PC, и наоборот.Так же строка с моделью в Laptop может не имееть соответвия в таблице product. Короче в этой схеме данных могут остуствовать значения внешних ключей.
>>1029697Если чисто оракл, то 3.5 года, из них 1.5 -протирание штанов, а остальные - 2 быдлокодинг.Сейчас читаю книжки, понимаю, какое я быдло, лол, так что может по сеньке и шапка.https://www.ozon.ru/context/detail/id/5522775/вот эта оказалась ультрагодной, описаны моменты, которые слышал только от более опытных коллег, видимо они ее раньше прочитали.
>>1029697>>1029837Да, сейчас пишу запросики и процедурки в OLTP-базе, но уже наверное год рутина сплошная.
>>1029837Люто плюсую, отличная вещь. Тоже начинал читать, правда потом купил бумажного Кайта и перескочил на него. Но и эту тоже читну в скором времени, а скорее всего и в бумаге приобрету.
Добрый вечер, аноны.Хотел бы услышать совет, пожалуйста.Я довольно великозворастный планктон-сапер, хочу уебать со своей работ, от которой мне дико пичот. Смотрю в сторону, как раз, БД. Проблема в том, что не могу позволить себе стажерские и джуновские зарплаты (не из-за запросов). Есть ли какие-то шансы в свободное время изучить mysql/tsql/oracle/, пройти какую-то сертификацию, что угодно, чтоб потом взяли на работу с уровнем мидла? (~70к)В общем, как-то самому попытаться освоить все.Звучит, конечно, будто я ебаный дебил.
>>1029936Почему не хочешь джаву? Джуниорские зарплаты в районе 800-1000$, не сильно ужмешься по деньгам.
>>1029953Как я понял, на нее нужно убить тонну времени, гораздо больше.
>>1029958Ну смотри, скажу за оракл, в идеале мидл должен знать многое из того, что обсуждалось в этом треде, прочитать и усвоить пару-тройку книжек специализированных, ну и просто шарить в бд. В принципе думаю за полгода это реально осилить, если хоть какой-то опыт есть в программировании/БД. По БД редко встречаются джуниорские вакансии, но работа для не топ-специалистов есть. Если совсем нулевый, то базовый SQL и теорию можно выучить за месяц. Еще для тебя вариант аналитиком пойти, там вроде как раз скиллы манагера пригодятся, а требования к тех. подготовке ниже, потом пробануть перекатиться в разрабы.
>>1029962Спасибо за ответ!Меня зовут в одну контору аналитиком, будет сас (не глоубайт) и вроде sql, но я толком не понял, какой он там и насколько много.Да я и сам думаю про скил манагера-надо ли?На моей текущей работе есть архитектор-бывший ораклист. Имеет 3 гражданства, дом в Австралии и прочее. Меня эта стори как-то пиздец смотивировала. Да и тянка только за. Кулстори прохладную рассказал.
>>1029662Ты уже работаешь или только вкатываешься?
>>1029936В моем топбанке на самой стартовой позиции без опыта 80к платят.Так что не отчаивайся.Другой вопрос в том, нужны ли на работе великовозрастные без опыта. И сможешь ли ты хоть как-то сносно изучить sql самостоятельно, может быть ты там совсем отупел на своей планктон-работе.
>>1030069Случайно не ОТП?
>>1030076>56 в рейтинге>топбанкНет.
Вопрос к ораклистам, что можно и нужно почитать по использованию хинтов в запросах и про распараллеливание выполнения?
>>1030069Ну мне 24, но я думаю, что уже довольно взрослый, блэдь.Ну вот я за 2 дня прорешал первые 30 задач на sql-ex, усвоил теорию реляционных бд, отношений, нормальнх форм и прочее-вроде ничего сложного. Но это я хз, показетель ли.Спасибо и тебе за ответ
>>1030131Мне 27, сейчас пытаюсь вкатится в банки, до этого три года опыта по БД в шаражках, так что не вижу каких-то проблем возрастных у тебя. Реляционные БД, имхо, это не тема для молодых шутливых, большие деньги поднимают престарелые дяди с богатым опытом. Проекты в основном по поддержке и вряд ли в ближайшем времени свернутся, т.к. корпоративные системы очень неповоротливы - нужно очень захотеть и постараться, чтобы перескочит огромной ИС на другой стек технологий или вендора.
>>1030150Как вкатываешься? Ходил уже на собеседования куда-нибудь? Сколько денег хочешь?
>>1030069банк не скажешь?
>>1030256Ну нет, деанон же, вы что.
>>1030261Лол, ну а какие-то ключевые слова в вакании тоже? Кроме "sql"
>>1030268Целеустремленность и стрессоустойчивость, лол? Я не помню свою вакансию.
кек
>>1030193выше писал по треду, тот, кому помогли с аналитическими функциями. Хочу сотку, лол, но похоже не стою пока
7 издание Дейта сильно хуже 8го? Нашел на Авито за копейки, думаю взять.
Здравствуйте, ораклисты.Order sublings by делает сортировку в иерархическом запросе, свою на каждом уровне.Я этого не знал, а теперь знаю. И вы тоже знаете, даже если не знали.
>>1030569>siblingsПрошу прощения.
Прошу совета, двач .Девушка 17 еарс олд. Делаю робота ,встал вопрос с сайтом ,БД . На сайт идет трансляция с вебки и осуществляется управление .Все этапы выполнены, встала в ступор,кто расскажет устройство БД и работу с ними,конкретнее решаю вопрос связи кнопок и gpio портов на малинке для управления двигателями . Работаю с raspberry pi . хелпТелега @kkkkkkkkate или скайп ,пишите , буду рада помощи
>>1030636>>1030631Пожалуйста просто умри
>>1030639большого ума ответ
>>1030636Какая же ты тупорылая. Нахуй тебе это программирование, иди лучше борща мне свари.
>>1030652повторяюсь,не можешь сказать ничего поумнее, иди на тред для дрочеров,там твой уровень развития. Если ты умнее меня ,как ты и думаешь,то напиши хоть что-нибудь или много слов непонятных ? Могу попроще
>>1030636Если кратко, то тебе там не нужна бд.
>>1030636толсто
>>1030729а если подробнее
>>1030775А если подробнее иди на хуй из моего треда.
>>1030775Если подробнее, то можешь спросить в ардуино-треде в ra.Не стоит начинать с того, что ты тянучка и тебе 17 лет, а потом сверху кидать краткое описание своего проекта, вместо самой проблемы, которую не можешь решить.Хотя, тебе наверняка нравятся такие тёплые приёмы.
Я пишу запросы не рукой, я пишу их сердцем. Ибо тот, кто пишет запросы рукой, забыл лицо своего начальника.
Возможно ли в таблице MySql хранить дату, которая бы состояла из месяца и года? Если возможно, то как?
>>1031478обрезать до месяца дату и хранить первый день месяца?
>>1031481Вообще обрезать без дней, например, май 20017 года хранить в таком виде: 05.2017
>>1031486Вообще без дней, например, май 2017 года хранить в виде: 05.2017fix
>>1031488в связи с чем такая необходимость?
>>1031494В связи с тем, что нет необходимости в днях. Как посредством программы, по средством которой данные через действия пользователя попадают в таблицу бд, я могу добавлять необходимое количество дней, но, предполагая, что существует возможность хранить дату без дней по средствам MySql, решил уточнить, прежде чем реализовывать необходимое для добавления даты. Если бы такая возможность была в mysql, то она бы уменьшила количество работы будущей программы и время на реализацию такой программы.
>>1031539Тебе говорили, что ты очень косноязычно пишешь? Нихуя не понял. Канцелярит + бессвязность, жуткое сочетание.
>>1031570двачую>>1031539можно приводить месяц и год, которые выбирает пользователь, к формату 01.mm.yyyy и хранить как обычную дату
>>1031478Mysql предлагает хранить для твоего случая 00 в качестве дней в типе Date сам не пробовал, это из мануалов, как '2017-07-00', '2016-08-00', а получать их обратно ты сможешь с помощью функций YEAR(), DATE(), DATE_FORMAT(); при этом вся функциональность типа Date сохраняется. Попробуй и отпишись, плз.
>>1031752Да, это работает. Спасибо.
Как называются IDE для работы с базами данных? А то у меня с опенсервером идет в комплекте только phpmyadmin и я бы хотел его заменить. Что посоветуете?
Нужны ли за рубежом базовики? Сколько платят?
>>1031792Ага, велкам!
>>1031752Не DATE(), a MONTH(), конечно же, описАлся>>1031792
Всё по клавишам стучите, программисты мамкины? В лагеря трудовые вас всех сослать надо нахуй, тунеядцы!
>>1031869Нужны, знакомый недавно скидывал:"MUST HAVE: Oracle DB with Oracle RAC and Data Guard, Performance Tuning ищут админа 60-65 К в год, гросс"
Вопрос в целом о проектировании приложений или систем, использующих слой БД не только для хранения данных, но и для ИХ обработки. Есть общий подход к проектированию с разбиением на звенья: двузвенные и трехзвенные. Как определить, какая модель больше подходит и как распределить функциональность между слоями?Как, не принимая во внимание 2х или 3х звенность, грамотно спроектировать саму БД и функциональность, в ней заключенную. Например, нужно ли писать get и set методы в самой БД для каждой сущности хранимой в БД? Как наладить взаимодействие между сущностями? Какие есть шаблоны и какие нужно обязательно знать? (по аналогии с шаблонами проектирования для джавистов)Если не лень, опишите плс как бы вы подошли к проектированию ИС, которая принимает заявки с левого сервера по почте например, несколько пользователей могут через интерфейс их обрабатывать, далее заявки передаются на другой сервер. Мне это нужно, не для собеседования или начальника, а просто для понимания как с высоты смотреть на разработку. Ну или накидайте литературы по теме, рекомендовали "Совершенный код", но там скорее пособие для кодеров, а не для архитекторов.
Норм?
А ну быстро пояснили мне, как мигрировать на БД? Я вот насоздавал sql текстовых файлов, которые весят десятки мегабайт. Но даже самые мелкие из них импортируются по 10 минут на локалхосте. Как делать, чтобы не ждать столько?
>>1031880Ща тебе Путин цифровой экономики так навернёт за обе щёки, сам по лагерям пойдёшь несмешно мда
>>1031991копировать бд, таблицы в raw формате.
>>1032009Стучать в офисе по клавишам — это не труд, а хуйня полная. И уж точно это не стоит 100К+. Это просто возмутительно. За такое надо сажать в тюрьму.
>>1032017Блядь, КАК?
>>1032020какая у тебя БД?
>>1032045sqlite
>>1032048>>1031991кажется проблема в том, что ты как бы делаешь поштучный инсерт, общий прогресс которого в фейсе отображается. Попробуй сделать выгрузку в csv и импортировать способом, описанным здесь:https://www.sqlite.org/cvstrac/wiki?p=ImportingFiles
>>1032018Что поделать, жизнь жестока.
>>1032048sqlite это же просто один файл, копируй его целиком, если надо.Ну а всяких модных master-slave репликаций в sqlite просто не будет по определению, она для небольших приложений.
>>1032018Ти тралл
>>1032018Кормлю.Деньги платят за скилл и уровень ответственности.Какой скилл у дворника, какая у него ответственность? Нахуя ему больше платить?Физический труд не стоит ничего. Стучание по клавишам - верхушка айсберга.
Чет нихуя не пойму, локальный запрос занимает столько времени, хотя в самой большой табличке gloss всего-лишь 600к строк. Подобные запросы на сайте вроде этого http://jisho.org/search/school занимают милисекунды. Что я делаю не так?
Сап, аноны. Лень пока проверять опытным путем, спрошу заранее - на каких объемах таблиц (количество записей) mysql начинает тормозить на выборках?
>>1032147Ну хуля, индексов небось нет, нихуя нет.И select * возвращает все столбцы всех заджойненных таблиц, что тоже может тормозить работу на говномашине, если столбцов дохуя
>>1032157Индексы есть, всё прекрасно работает включая select * на sqlite, но дико тормозит на mysql. Что может быть не так?
>>1032157>если столбцов дохуяАлсо, если выбирать пару столбцов, то нихуя не меняется.
Смотрите, что на Авито урвал за 300р.Вы мне не ответили, сильно ли 7 издание хуже 8, узнаю опытным путем.
>>1032157Вот еще пара тестов. Первая пикча sqlite, вторая mysql.
>>1032166Ну епт, отклеилось. Список индексов по большой табличке.
>>1032167>>1032166Попробуй вместо where написать and. Если не проканает, я отказываюсь играть в вангу.
>>1032187Да, кстати, мне совершенно непонятно, почему ты делаешь left join таблицы, но при этом накладываешь условия на ее значения? Почему не inner в этой ситуации?
>>1032199Вот почему.>>1032187Попробуй через несколько часов, отпишусь.
>>1032199Делай для двух последних таблиц inner join, я скозал. Смысл left join'a, если ты потом в части where все равно отсеиваешь незаджойненные значения? И очень плохо, знаешь ли, не понимать то, что ты пишешь. Твою проблему с производительностью я вряд ли решу, но могу авторитетно заявить, что ты бездарь и говнодел. Тьфу на тебя.
>>1032201>ПопробуюФикс
>>1032202>ты бездарь и говнодел>на тебяА теперь давай снова, на того, кто писал официальную документацию.
>>1032205Да, долбоебина, в селекте на скрине условие в части where накладывается на основную таблицу. А ты накладываешь условие на таблицу, присоединенную через двойной лефт джойн.И что я должен был увидеть из твоего скрина? Автор осмысленно использует left join, а ты лезешь ко мне с аргументами уровня ВОТ ТУТ ТАК, когда на самом деле нихуя не так.В дальнейшей дискуссии смысла не вижу.
>>1032209Тебе стоит проверить голову у врача, тут читается явный психоз. Щас бы ньюфага обзывать бездарем и долбоебом в разделе об изучении программирования.
>>1032216Найс съехал, просто найс.Сначала пытаться доказать мне, что я неправ, а потом говорить Я НЬЮФАГ.Какие психозы? Я ЧСВ и ненавижу людей, но в остальном у меня все в порядке.
Если у кого будет похожая проблема, то я её решил заменой движка InnoDB на MyISAM и установкой полнотекстового индекса на колонку с кучей текста (https://stackoverflow.com/a/18166954). Время запроса уменишилось в ~10 раз.
>>1032218Тот пост не я тебе писал, если что.
>>1030048Работал полтора года в мутных конторках, писал хуету на фреймворке. Сейчас съебал в закат на лето в надежде подтянуть знания и попинать хуи с пользой, что бы в цивильное место вкатиться.
>>1031951Ты совсем долбаёб, бизнес логику реализовать в бд? Или просто извращенец??
>>1032644Обоснуй свою позицию, а я тебе потом посикаю на лицо.
>>1032647Ты уже себе в штаны нассал, даун.
>>1032644>БД-тред>логика в БД = извращенецтуда ли ты зашел
>>1032644надеюсь, тебе есть как аргументировать свою позицию по существу, иначе ты просто агрессивный быдлан
У меня похожая база на эту >>1032201, помогите пожалуйста составить запрос чтобы выбрать Element с айди 1, который будет включать все значения из таблиц, которые соответствуют этому айди. Например, Element это пользователь с айдишником 1, у которого несколько постов в content_one и content_two, где у каждого поста несколько картинок и видео (co_child_one и co_child_two).Два часа в фотошопе.
>>1032694Пацан, а в чем помощь заключается? Вы там совсем охуели все? Ты мне предлагаешь руками за тебя переписать названия таблиц и полей? Это для тебя сложно слишком?
>>1032704Ну я понимаю как выбрать только одну из веток:>SELECT * FROM elements>LEFT JOIN content_one ON elements.id = content_one.elements_id>LEFT JOIN co_child_one ON content_one.id = co_child_one.content_one_id>WHERE elements.id = 1Но как сюда добавить остальные ветки? Если просто такими же джойнами, то получается каша. Напиши, пожалуйста, такой запрос.
>>1032715И с хуев каша? Джойнишь точно такими же строчками content_two к elements, а co_child_two - к таблице content_one. Какая каша? Нет никакой каши. Ну да, у тебя там один ко многим, записи задвоиться могут, ну а хуле ты хотел? Если тебе нужны все дочерние, соответствующие родительским? Каша, блядь. Это БД ебаный в рот.
>>1032742>Джойнишь точно такими же строчками content_two к elements, а co_child_two - к таблице content_oneКак заджойнить именно к нужной таблице? Напиши запрос, пожалуйста, я же три раза уже попросил. Мне так будет проще понять, да и тебе быстрее, не нужно писать сопутствующий текст.
Аноны, покидайте, пожалуйста, вопросы с собеседований или задания на позицию БД-разраба, сейчас активно их прохожу, желательно Оракл. От себя тоже есть что добавить.
Сделайте себе шапку уже наконец.И посоветуйте чего почитать по MySql для начинающего.
>>1032871Документацию Postgres
>>1032747Ты совсем, что ли?>>1032853Тред полистай, например.
Интересно, у этого треда есть какая-то постоянная аудитория? Вот бы чат в телеге создать, писать селекты и ебаться в жеппы.
>>1032853Расскажи, куда ходишь, какой опыт, сколько денег хочешь, что спрашивают.Я рассказывал следующее в этом треде:>>1021772>>1017580
>>1033097Да все тот же чел, который был на собеседовании в банке, побывал еще в одной хорошей конторе, где важна скорость работы кода, т.е. специфика иная нежели в dwh, там сказали, что через недельку дадут ответ, это после тестового задания и очного собеседования за жизнь. Сейчас планируется собеседование в одну из топовых it компаний на позицию ораклиста, подозреваю, что будут шерстить по архитектуре, теории БД и pl/sql. В последнем тестовом задании нужно было сделать запрос топ 10 с группировкой, затем этот же запрос использовать в процедуре, которая получает на вход номер потока и общее число потоков, нужно сделать так, чтобы каждому потоку запрос возвращал только предназначенные для этого потока записи, ну и простое задание на понимание работы цикла, исключений и транзакций.
>>1033115Какой-то ты крутой.Мне ещё расти и расти... Рассказывай об успехах, интересно.
>>1033119на самом деле нет, пробелов куча, просто пытаюсь попасть туда, где требуется знать больше, чем на текущей работе
>>1033115>>1033119Под потоками подразумевается абстрактные цифры, например3 й поток из 4х. Это значит, что функция должна вернуть каждую строку начиная с третьей с шагом. Но задание интересным показалось, по работе с таким не сталкивался
>>1033121Молодец, стремишься.А у меня вроде бы все в порядке. Думаю, до осени как минимум на своей работе посижу. А осенью отсрочка от армии будет готова, можно будет снова куда-нибудь сходить. Откликнулся недавно на вакансию со 150к, причем нормально им подходил, но отказали. Расстроился немного. Мб потому что я сразу в отклике написал, что нахожусь далеко от них и не смогу в нормальное время на собеседование приехать, потому что работаю. Лучше бы не писал такого и по телефону обкашливал такие вопросики. Или надо резюме себе поприличнее сделать, а то там как-то мало написано. Отложу до осени, все равно сейчас не особо хочется работу менять
>>1033126Тебе еще нет 27, если вопрос с армией стоит?Чем занимаешься сейчас по работе?
>>1033131Мне 23, магистратуру закончил.Отчетики на Oracle.
>>1033132ты разбираешься например в pl/sql, как его оптимизировать или какие бывают индексы и когда какой применять, оптимизировать запросы применять хинты и т.п. Я например в 23 этого не знал всего этого. Спрашиваю потому, что пытаюсь понять, что на рынке делается вообще, кек.
>>1033138Разбираюсь.А за рыночек я тебе не скажу. Кем ты хочешь быть? Худшим мусором-недоаналитиком-отчетником, как я? Просто умей писать запросы, имей в этом опыт и знай всякие приколюхи. Очень сомневаюсь, что на аналогичной работе тебе нужно будет знать, как работает индекс по типу B-дерева.Дальше идут всякие боги, разработчики ETL, разработчики DWH, архитекторы, DBA. Какие к ним требования, я не знаю.
>>1033144Можно предположить, что если для написания отчетиков нужно понимать как работает b-tree индекс, то шансы на дальнейшее мое трудоустройство на место повыше резко падают, лол. ты не топ-ораклист-120к случаем?
>>1033149Я.
>>1033158Как думаешь для чего листы в B-дереве индексассылаются на каждый следующий?Пока в голову ничего толком не пришло. Может для запросов с условием вида id > 500, чтобы сразу из индекса выбирать значения, найдя только нижнюю границу?
>>1033186Ну падажжи.Чем тебя в принципе концепция б-дерева смущает и как бы ты сделал?У тебя есть запрос и ты перескакиваешь с ветки на ветку. Таким образом, вместо полного сканирования таблицы ты скачешь по веткам. Если у тебя запрос вида x > 100, то ты идёшь на ветку, где х > 100 и не сканируешь ветки дальше. Если у тебя запрос х = 100, то ты идёшь по веткам до самого конца. Я это как-то так вижу.
>>1033193Ну то есть ты на каждом шагу отсекаешь заведомо ненужные значения и это быстрее полного сканирования.
>>1033193Не, я против концепции ничего не имею, понятно, что искать по дереву, это суть бинарный поиск и это круто. Мне было непонятно почему листы помимо связи с узлами верхнего уровня еще и связаны друг с другом,т.е. например есть лист в котором занчения 1..5, ссылается на лист с значениями 6..10 и т.д. Вот у Кайта только что прочитал, что так и есть. Например для запроса с условиемwhere x between 20 and 30, будет найден лист, где есть ключ со значением 20, а дальше идет горизонтальный поиск, где просто, листы просматриваются один за другим пока до 30 не дойдет, это и есть index_range_scan. Т.е. по дереву пройти нужно только 1 раз, дальше по горизонтали.
>>1033196Наверное, это для ситуации, когда у тебя листы 11..20 и 21..30, а тебе надо between 15 and 25. Если бы горизонтальной связи между листами не было, ты бы дважды бежал по дереву за каждым куском, а так ты находишь первый лист, а второй от него по горизонтали.
>>1033197Кек, ну я короче пересказал то, что у тебя написано. Посыл был в том, что это должно быть быстрее, чем несколько раз ходить по дереву.
>>1033200>>1033194Правда не совсем понятно, зачем об этом иметь представление на таком уровне, если задача писать отчеты или процедуры простые.
>>1033204Так я ж тебе про то и говорил изначально, что от меня этого никто не спрашивал и не требовал, это я чисто для себя дрочу, потому что более осмысленную работу, плотнее связанную с базами данных
>>1033205Тогда еще один вопрос по теме, если интересно. Если реверсивный индекс позволяет сократить издержки на инсерт, то почему бы не использовать его повсеместно для индексации ключа, который генерится по последовательности?. Т.е. например у нас есть таблицы, в которую ежесекундно выполняется по 100 инсертовЮ, при этом первичный ключ увеличивается на 1 для каждой следующей строки.
>>1033214Не знаю, не разбираюсь в этом.Почитал, навскидку - есть подозрение, что на всех прочих операциях этот индекс будет работать работать медленнее.Чувак на скрине пишет, что данные будут разбросаны по диску. Это значит, что потребуется больше времени для селекта к этой таблице, джойна этой таблицы и тд.Так что в моем понимании такой индекс подходит только таблице, в которую часто что-то инсертят, но при этом редко апдейтят и вообще используют.
>>1033220Возможно, это подойдёт для какой-нибудь таблицы логов, в которой всё фиксируют, но лезут в нее раз в год, когда что-нибудь наебнется.Вешать такой индекс на регулярно используемую таблицу я бы побоялся. Выиграешь на инсертах, но проебешь на всем остальном.
>>1033220Что за чтиво на пикрелейтеде?
>>1033235Рандом статья из гугла.
Итак, коллеги. Вечером планирую сделать перекат, может быть напишу что-нибудь дельное в шапку, но только по ораклу, остальное как-нибудь сами, мб напишете в тред и в следующий перекат сделаем
>>1033291Можешь написать, что нуфагам в треде не рады, на вопросы не отвечают, с просьбами о помощи не помогают, отправляют нахуй и в гугл.
>>1033314Покажи свои посты, обиженка.Помощь - это ответить на вопрос и подсказать. Писать за тебя запросы - это не помощь и я на это не подписывался.
>>1033319->>>1032871>>1032747>>1031951>>1032160>>1032155>>1031850>>1030540>>1030085Дальше лень листать. Тут не только мои посты, конечно же. По факту в треде отвечают по существу на 30% вопросов, остальные либо игнорируются, либо посылают в гугл. Может просто здесь сидит один вахтер, который портит воздух и создает такое впечатление, но это факт. Тред по пхп просто небо и земля.
>>1033329Ура, ни одного вопроса без ответа по ораклу, видите какой я охуенный.На вопрос про хинты не стал отвечать, потому что это был бы дефолтный посыл в гугол, я и сам других источников не знаю и по этому вопросу предпочитаю гугл.искренне ваш,топ-ораклист-120кАлсо, с вот этой неблагодарной чмохи я сгорел и горю до сих пор >>1032747Я разжевываю, пишу, что и как нужно делать, а ему (может, тебе?) даже прочитать впадлу, он требует, чтобы я писал за него запрос. Я уже сказал, что и через какие поля джойнить, это же так сложно написать джойн таблицы, когда тебе уже сказали, что джойнить и через что. Почему ты не можешь САМ написать свой вопрос и спросить, ДРУЗЬЯ, ПРАВИЛЬНО ЛИ Я НАПИСАЛ ЭТОТ ЗАПРОС? Почему вы считаете, что другие должны делать за вас абсолютно всё?Да, у меня нет никакого желания помогать ТАКИМ ньюфагам, и меньше всего на свете я хочу, чтобы вы научились писать запросы, устроились говноаналитиками в свои говноконторы и по каждой проблеме писали в этот тред. Без малейшего уважения к чужому времени и труду.Спасибо за дизмораль, у меня снова нет желания отвечать кому-либо в этом треде. И перекат я вам делать не буду.
>>1033220Спасибо, пишут везде, что условие с диапазоном работать не будет, но не ясно, почему не будет работать такое условие where reverse(x) > 15.
Можно ли в Postgres назначить срок хранения данных в таблице? Хочу внести данные в таблицу и удалить по истечению 36 часов.
>>1033400Не слышал о таком. Мне кажется только джобом.
>>1015789 (OP)Привет, я только начал изучать SQL, поэтому не бейте пожалуйста.Я скачал 2 книжки:-Ицик Бен-Ган - MS SQL-Секреты oracle sql автора не помню, а искать не вижу смыслаВ первой книжке 'inner join' пишется как просто "join", во второй написано, что "inner join" стандарт именно "oracle ANSI". Но при этом на всяких форумах пишут, что inner join и join это одно и тоже и для обоих СУБД.
>>1033462Забыл написать вопрос.Так ли это?Если нет то в чем отличие?
И еще один вопрос. https://www.youtube.com/watch?v=EHvzvwAv7RU&t=1s - тут мужик говорит, что join быстрее чем просто where это мне кажется более правильным А в книге написано, что join лучше только потому, что он помогает избежать перекрёстного декартового произведения.
>>1033462Синонимы. Пиши как хочешь.Точно так же, как left join синоним left outer join.>>1033472Не быстрее.Пиши как хочешь.Предпочитаю писать join, потому что это тупо нагляднее. И пишешь рядом с таблицей не только условие связки, но и ограничения, накладываемые конкретно на эту таблицу.
>>1033462>>1033463>>1033472Спасибо, если ты тот топ ораклист, то не стоит зацикливаться на каких-то уёбков, их можно просто игнорировать и они сами уйдут в свой пхп тред. Добра тебе.
Посаны, предлагаю все же запилить перекат, если топ-ораклист-кун бугуртит и не будет его делать.
Предлагайте, что нужно добавить в шапку, от себя могу порекомендовать парочку книг по ораклу
Двач, есть алгоритм, который записывает определённые данные, которые выбирает пользователь в процессе взаимодействия с элементами страницы. Эти данные я записываю в базу Postgre в таблицу (id SERIAL PRIMARY KEY, data JSONB NOT NULL). Но теперь я хочу написать админку со статистикой, чтобы можно было составить графики и секции для отображения часто выбираемых данных. И есть два стула:1) Либо я перебираю таблицу и все поля data и достаю данные в виде JSON из таблицы, и уже на клиенте их сортирую/составляю графики/etc.2) Либо я делаю ещё одну таблицу, в которой будут лежать те же данные, но только кладу в неё уже не JSON, а распихиваю данные по разным полям, чтобы потом можно было делать выборку прямо из таблицы.Что скажете? Мне больше нравится идея с одной таблицей, но не пожалею ли я потом?
ПЕРЕКАТ ПОСОНЫhttps://2ch.hk/pr/res/1034303.htmlПЕРЕКАТ ПОСОНЫhttps://2ch.hk/pr/res/1034303.htmlПЕРЕКАТ ПОСОНЫhttps://2ch.hk/pr/res/1034303.html
>>1029662Дошёл до 58 уровня и забросил.