Сохранен 522
https://2ch.hk/pr/res/1015789.html

ЕДИНЫЙ БАЗ ДАННЫХ ТХРЕАД

 Аноним 03/07/17 Пнд 19:51:54 #1 №1015789 
14922443119350[1].jpg
В этом итт ай-ти треде собираются все любители Баз данных, гордо именующие себя айтишниками.
Доказываем друг другу, что
>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 SQL
MS SQL
PostgreSQL
ORACLE
MongoDB
SQLite
Excel
И даже Google Docs!
В общем, это очередной баз данных тред.
Аноним 03/07/17 Пнд 22:01:21 #2 №1015897 
>>1015789 (OP)
Что же ты наделал, ирод! А как же придумать новую охуительную шапку? А как же картинка?
Ты, ты просто перекатил, как жить теперь?
Аноним 03/07/17 Пнд 22:05:07 #3 №1015900 
>>1015789 (OP)
Бамп годному треду с отзывчивыми анонами!
Аноним 03/07/17 Пнд 22:56:11 #4 №1015917 
>>1015897
Перекатывайте сами...
Аноним 04/07/17 Втр 07:26:11 #5 №1015989 
Господа, установил я AdventureWorks. При попытке сформировать диаграмму бд - выдает пикрелейтед. Пользователь dbo создан. В чем ещё может быть проблема?
Аноним 04/07/17 Втр 07:54:39 #6 №1015993 
1.png
>>1015989
Аноним 04/07/17 Втр 10:44:02 #7 №1016057 
exp(sum(ln(nullif(coeff_increase,0)))) over (partition by date_begin,tab_num)

сууука, почему не работает, не хочу вложенные запросы делать.
если экспоненту убрать, все ок
Аноним 04/07/17 Втр 10:44:58 #8 №1016058 
>>1016057
Прошу прощения, ебаный дебил, надо было over под экспоненту добавить.
Аноним 04/07/17 Втр 13:45:52 #9 №1016146 
>>1015993
Для начала переустанови SSMS на английскую. Я серьезно.
Аноним 04/07/17 Втр 13:53:10 #10 №1016150 
>>1016146
А после этого все твои проблемы будут решаться за минуту гуглением. https://stackoverflow.com/questions/13823354/sql-server-principal-dbo-does-not-exist
Эти ебучие локализации, забудь про них вообще, обходи за километр.
Аноним 04/07/17 Втр 15:32:33 #11 №1016210 
Пытаюсь использовать PyQt5 + MySql 5.7. С помощью QSql.QSqlDatabase не могу подключится в MySql. lastError выводит driver not loaded, хотя драйвер и в списке drivers() есть, и физически присутствует в необходимой папке, установки хоста, логина, пароля, и имени бд правильны, что проверялось не один раз. Что необходимо сделать, чтобы установить подключение с БД?
Аноним 04/07/17 Втр 16:23:50 #12 №1016241 
>>1014847
>Привет, не самый частый гость здесь!
>Стаж почти два года, работаю в топ-10 банке (без подробностей, деанон), зп чуть больше сотки чистыми.
>Ты dba? А расскажи пожалуйста про свою работу побольше, мне это очень интересно. Сам я чистый dbd, к администрированию никакого отношения не имею, но подозреваю, что рано или поздно моя любовь к базам данных и желание углубиться в тему приведут к тому, что я стану администратором бд или архитектором.

Ответ на пост из предыдущего треда. Нет, я тоже oracle dbd, и немного подправляю интерфейсную часть php/js/xslмакака, лол. Просто твой пост навел на мысль, что свернул я где-то не туда, до этого 3 года был околопрограммером, немного админил, поднимал standby сервер и базу из бэкапа восстанавливал, по-хорошему занимаюсь разработкой последние 2 года на проекте в ноунейм конторке. Вот думаю надо двигаться дальше, т.к. задачи и зарплата уже не соответствуют ожиданиям. Расскажи, если не трудно, чем приходится заниматься по работе, какие скиллы прокачаны по части оракла и в целом по теории БД? Как попал в ТОП-10 банк?
Аноним 04/07/17 Втр 16:35:12 #13 №1016250 
>>1016241
Это я.

Мне тоже кажется, что я свернул никуда, потому что на нормальных вакансиях требуется бд + что-нибудь, а я только бд знаю. Никакими языками программирования я так и не овладел. Так всю жизнь и буду недопрограммистом. В отделе тоже есть люди, которые пилят интерфейсы на js/c#, но я делаю строго отчетики. То есть я не etl-щик даже, не админ, просто пишу запросики в sql.
Работа состоит из двух этапов: сделать процедуры, которые собирают нудные данные, что-нибудь считают и тп. Дальше нарисовать отчетик в MSRS.
Скиллы? Ну так, между делом читаю что-нибудь, интересуюсь.
Как попал? Ну во-первых вышка хорошая, во-вторых, опыта набрался нормально за полтора года. На собеседовании почти только sql спрашивали, всякие в меру сложные запросы. Попасть в банк не так уж сложно, на хедхантере куча вакансий, я мониторю.
Аноним 04/07/17 Втр 16:44:04 #14 №1016260 
>>1016250
Расскажи, пожалуйста, о том где набирался опыта и о в меру сложных запросах на собеседованиях в банк.
Мимо другой аноно
Аноним 04/07/17 Втр 21:58:39 #15 №1016429 
А есть тут кто, кто занимается аналитической отчетностью, OLAP-кубами, SSIS, SSAS. Вот это все.

Где взять мануалы и инфу по данной тематике? Хочу тоже научиться.
Аноним 04/07/17 Втр 21:59:21 #16 №1016430 
>>1016260
Привет.
Зашёл в бар поссать, взял пива. Рассказать историю жизни? Попробую.
Началось все, конечно, с лучшего технического вуза этой страны. Не спрашивайте, какого, я же всё-таки сохраняю анонимность. Я уже говорил, что считаю образование одной из причин моего относительного успеха.
Интерес к учебе я потерял быстро, последние семестры бакалавриата уже скорее доучивался, недели учился. В итоге средний балл по диплому 4, хотя первые семестры были даже на стипендию закрыты.
Решил, что хватит это терпеть, в магистратуре решил работать. Выбрал себе в магистратуре кафедру похалявнее и стал искать работу. Был в нескольких местах, пошел по сути в первое, в которое взяли. Я нихуя не умел, вот вообще нихуя, и вместо того, чтобы на последних курсах задрачивать что-то полезное, я сидел и деградировал в интернете. У конторы, в которую я в итоге попал, была такая политика: берём молодых ребят, которые нихуя не умеют, но при этом умные и желательно с топовым образованием, и учим всему сами. Вот меня туда взяли. Тут я впервые познакомился с sql и бд оракл, понравилось, и это определило мой дальнейший путь.
Как там Том Кайт говорил? Сначала сделай в оракле, если не можешь, сделай в джаве, если не можешь в джаве сделай в си, а если не можешь и в си, то задумайся, нужно ли тебе это делать. Так вот, к чему я. В этой конторе работа происходила приблизительно по такому же принципу, только вместо си - делфи (на котором работали чистые погромисты и меня он не касался), а вместо джавы свой обоссанный язык программирования, который был разработан специально там, по синтаксису очень похожий на Паскаль, но с добавлением всяких своих приколюх. В общем, работа состояла где-то 50/50 из оракла и этого говна, и это говно очень угнетало тем, что оно бесполезное.
Спустя чуть больше года, словил жёсткую депрессию и уволился буквально в первое место, в которое позвали, чтобы заниматься чистым ораклом. На собеседовании показалось, что ребята серьезные, много интересного спрашивали, казалось, что я там сильно скилл оракла прокачаю, но нет. Свелось все к тому, что первые пару недель я читал доки оракла и прочие книжки по sql (дохуя нового узнал, кстати, от души, спасибо). А реальных задач мне так и не давали. Ну и в целом контора была очень днищная и убогая (топ-50 банк). Прошло 3 месяца, заканчивался испытательный, я всерьёз думал, что меня могут уволить, потому что я нихуя не делал (как оказалось, нет, начальник был мной доволен и даже пообещал поднять зп через пару месяцев, если останусь), решил сходить куда-нибудь на собеседование. И вот меня пригласили в первое место, в которое я сходил, и сделали поистине восхитительный оффер, вполне соответствующий моему скиллу, возрасту и амбициям. Ну и я съебал. Недавно вот испытательный тут закончился, зп стала 120к до налогов, доволен как черт.
Таким образом, к моменту окончания магистратуры имею такую восхитительную зарплату и хочу расти дальше, хоть и не знаю, как именно.

Что на собеседованиях спрашивают?
Ничего конкретного не вспомню сейчас. Какие нормальные формы бд знаешь? Ну короче именно по теории бд достаточно статей на Википедии почитать, глубже никто не копает. В основном аналитические функции спрашивают (кстати, в моих отчетиках в топ-10 банке они постоянно используются, охуенная штука). Про хинты спрашивают, ну типа какие знаешь, какие тут будешь использовать, какие тут. Про джойны много вопросов. Хоть убейте, не помню конкретные примеры. И вообще у меня пиво закончилось, пока я писал, пойду домой.
Аноним 04/07/17 Втр 22:26:21 #17 №1016438 
>>1016430
Спасибо за развернутый ответ!
Если обобщить, написанное тобой выше, то получается, что зная только sql и теорию БД на уверенном уровне можно претендовать на 120к? Образование сильно роль играет в топовых конторах? Вообще как мне кажется аналитические функции и использование хинтов - это продвинутый уровень, может поэтому я и получаю в 2 раза меньше, лол.
Аноним 04/07/17 Втр 22:27:06 #18 №1016439 
>>1016429
удваиваю, как в это вообще вкатиться
Аноним 04/07/17 Втр 22:38:55 #19 №1016446 
>>1016438
А ещё быть эрудированным и няшным пидорком, чтобы понравиться на собеседовании.
Не такой уж продвинутый. Если ты занимаешься sql постольку поскольку, то в резюме будет написано "базовое знакомство с sql, базовые навыки написания запросов в sql". А если ты пробуешься на вакансию именно разработчика оракла, то всю эту хуйню надо знать.
Аноним 04/07/17 Втр 22:46:34 #20 №1016451 
>>1016438
Про образование я тебе не ответил.
Влияет, конечно. Не как главный фактор, а просто как одно из твоих достоинств. Но ты вполне можешь брать другим.
Это не самое главное. Когда я искал первую работу, я четко осознал, что за один только диплом меня никто не возьмет, важно, что я из себя представляю. Как мне кажется, диплом влияет на вероятность того, что тебя позовут на собеседование. Если ты закончил какой-нибудь МухГУ, тебя с меньшей вероятностью позовут на собеседование, чем меня. Ну а на самом собеседовании уже как себя покажешь. В моем подразделении, например, процентов 70 из МГУ/МФТИ/МИФИ/МГТУ, но и из ноунейм заведений тоже есть люди.
Аноним 04/07/17 Втр 23:05:43 #21 №1016473 
a1c857d2b403141c309f123da7f5f267.jpg
>>1016451
Т.е. конкуренция есть, прояснил некоторые моменты, держи няшку. Еще один вопросик, как качать скиллы оракловые, хинты и т.п.? По своей работе с хинтами никогда не сталкивался, всегда было достаточно грамотно написать запрос, чтобы индексы цеплялись, иногда смотрю планы, анализирую, но применить что-то новое не получается, да и просто смысла не имеет. Ну и аналатика так или иначе сводилась к использованию агрегатных функций. Судя по твоему опыту предыдущему, то ты тоже это не использовал, получается, что просто читал книжки и запоминал? Можешь порекомендовать что-то конкретное и прикладное, вроде Тома Кайта(у него скорее обобщенная инфа, чего не стоит делать программисту в оракл бд и как делать грамотно). Например по аналитическим функциям или по тем же хинтам. Конечно можно просто доку зазубривать по oracle sql.
Аноним 04/07/17 Втр 23:11:02 #22 №1016480 
>>1016473
Ну да, на первой работе я в принципе не знал, что такое хинты.
Вообще, все мое изучение оракла сводится к гуглу. Либо мне что-то нужно сделать и я это гуглю, либо мне что-то интересно и я это гуглю.
Книжек целенаправленно не читал.
Недавно списался с барыгой на Авито, хочу у него Кайта прикупить. Начну серьезное изучение.
Аноним 05/07/17 Срд 09:53:57 #23 №1016761 
Бамп
Аноним 05/07/17 Срд 11:15:18 #24 №1016781 
Коллеги, посмотрите, пожалуйста, что из этого можно купить почитать?
Я хотел пункт 1, разумеется, но он не в наличии. Что ещё годно? Меня в основном 11g/12c интересует.

1. Т.Кайт. Oracle для профессионалов, 3-е издание (2 тома) /600

2. С.Фейерштейн, Б.Прибыл. Oracle PL/SQL для профессионалов, 3-е издание /300

3. К.МакДональд и др. Oracle PL/SQL для профессионалов: практические решения /300

4. С.Урман. Oracle9i - Программирование на языке PL/SQL /300

5. К.Луни. Oracle Database 10g - Полный справочник (2 тома) /600

6. Т.Кайт. Эффективное проектирование приложений Oracle /300

7. А.Адколи, Р.Велпури. Oracle9i для Windows /300

8. С.Джесси и др. Oracle9i для Windows 2000 - Советы и методы /300

9. М.Терьо и др. Oracle9i 101 - Администрирование баз данных /250

10. К.Смит, С.Хейсли. Oracle 101 - Резервное копирование и восстановление /200

11. М.Терьо, А.Ньюмен. Oracle - Руководство по безопасности /250

12. Л.Хоббс. Oracle9i - Разработка и эксплуатация хранилищ баз данных /200

13. Р.Нимик, Б.Браун. Oracle9i - Оптимизация производительности - Советы и методы /300

14. Д.Льюис. Oracle - Основы стоимостной оптимизации /300

15. К.Милсап, Д.Хольт. Oracle - Оптимизация производительности /300

16. Д.Тоу. Настройка SQL для профессионалов /150

17. Д.Селко. SQL для профессионалов /200

18. Д.Генник. SQL - Карманный справочник
С.Фейерштейн. Oracle PL/SQL - Карманный справочник
Д.Генник. Oracle SQL*Plus - Карманный справочник /100 (за 3 кн.)

19. P.Corrigan, M.Curry. Oracle Performance Tuning
D.Shasha. Database Tuning - A Principled Approach
S.Bobrowski. Mastering Oracle7 & Client/Server Computing /бесплатно (в придачу)

Аноним 05/07/17 Срд 11:37:50 #25 №1016791 
>>1016781
Давеча Дэйта читать пытался. Чуть не заснул, такое унылое говно эти базы данных.
Аноним 05/07/17 Срд 13:53:10 #26 №1016870 
>>1016781
Если бы ты хотел, то давно бы уже скачал любую книгу с торрентов и прочитал. Не еби мозги.
Аноним 05/07/17 Срд 13:54:27 #27 №1016872 
>>1016870
Спасибо, хейтер!
Мне неприятно читать техническую литературу в электронном формате.
Аноним 05/07/17 Срд 17:28:40 #28 №1016987 
>extract(hour from sysdate)
А вы знали, что это не работает? Работает только из systimestamp.

Так что остается два варианта:
>extract(hour from systimestamp) + extract(timezone_hour from systimestamp)
>to_number(to_char(sysdate,'hh24'))

Сами выбирайте, что из этого наименее зашкварно.
Аноним 05/07/17 Срд 21:54:34 #29 №1017132 
Посоветуйте хорошую книгу по базам данных.
Главное что нужно - небольшой объем. Нет, я не ленивый, но сейчас другие приоритеты, но и знания по базам подтянуть надо. Начал читать Дейта, но сильно затянуто. Мне такой объем ни к чему. Цель - научиться оптимизировать запросы, знать какую базу и где применить, понять что такое индексы и т.д.
У меня сейчас уроверь select,insert,join. sql знаю, MySQL на уровне php разраба - insert/select/join и прочая хрень
Аноним 05/07/17 Срд 22:18:09 #30 №1017158 
>>1017132
Ну советую просто синтаксис рабочей базы учить глубже.
Например, гуглишь про join, там у него опций куча. Смотришь описание опций. Если нашёл что-то интересное, то можно отдельно загуглить статей каких-нибудь именно по ней.
Или можешь не читать подряд книгу, а читать именно то, что цепляет щас.
Аноним 05/07/17 Срд 22:33:49 #31 №1017167 
>>1017132
И вот ещё что:
https://dev.mysql.com/doc/refman/5.7/en/optimization.html
Аноним 05/07/17 Срд 23:22:49 #32 №1017191 
>>1016429
Бамп вопросу.
Аноним 05/07/17 Срд 23:54:38 #33 №1017217 
Robo3T-1.12017-07-0523-44-17.png
Суп программач, я в замешательстве.

В общем, есть одна коллекция в 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 будет быстрее?
Аноним 06/07/17 Чтв 00:04:32 #34 №1017222 
>>1017217
Скорее всего, нормально, это же главный отсос Монги: дико медленная аггрегация.
Аноним 06/07/17 Чтв 00:09:07 #35 №1017226 
>>1017222
а какая БД позволит сделать указанную задачу быстрее? я в общем-то не привязан пока к конкретной, так, колупаю все подряд. ну и желательно чтобы app engine поддерживал
Аноним 06/07/17 Чтв 00:20:24 #36 №1017233 
>>1017226
Нам Clickhouse от Яндекса помог, оче быстро работает, там правда column-store и немного обрезанный SQL , но нам подошло.
А так хз, что тебе советовать, мало какие БД пробовал.
Недавно вот разве что очень приятно работалось с JSON в Postgres.
Аноним 06/07/17 Чтв 08:33:42 #37 №1017291 
>>1017132
Охуел что ли? Либо ты усваиваиваешь большой объем информации или 'ехай, ехай нахуй'!
Аноним 06/07/17 Чтв 09:55:26 #38 №1017312 
>>1017132
Алан Бьюли, но там ни разу не кратко.
Аноним 06/07/17 Чтв 12:27:51 #39 №1017346 
Пацаны, помогите.
Предлагают второе издание Кайта + Льюис Основы стоимостной оптимизации за 1.5к вместе. Нормально или торговаться? Состояние у книг отличное.
Аноним 06/07/17 Чтв 13:23:08 #40 №1017375 
>>1017346
Полное собрание Гарднера бери. Хоть почитаешь.
Аноним 06/07/17 Чтв 13:37:14 #41 №1017385 
Screenshot2017-07-06-13-36-17-780com.android.chrome.png
>>1017375
Шутишь так, да?
А за что? Что я тебе сделал?
Аноним 06/07/17 Чтв 13:58:42 #42 №1017396 
>>1017385
В каждой шутке есть доля шутки.
Аноним 06/07/17 Чтв 14:05:05 #43 №1017401 
А есть какая-то база данных, где мол можно указать, что сюда я больше буду писать, туда читать, и тд и ты короч мне оптимизируй под это?
Аноним 06/07/17 Чтв 14:49:54 #44 №1017421 
Найс ТЗшки пишешь, научи, плес
>to_date('01.'||to_char(s_date,'MM.YYYY'),'dd.mm.yyyy')
Аноним 06/07/17 Чтв 19:02:23 #45 №1017563 
1499356928841.jpg
>>1017346
Взял.
Аноним 06/07/17 Чтв 19:19:49 #46 №1017574 
Снимок.PNG
Аноны, помогите мне запрос написать. У меня в универе ничего подобного не было. Даже когда две таблицы связывали, неприпомню, чтобы одно и тоже поле (фамилия) два раза выводилось. Как это сделать это вообще?
Аноним 06/07/17 Чтв 19:27:48 #47 №1017576 
>>1017574
Ну ты чего, дурашка.
Берёшь основную таблицу и к ней дважды прицепляешь таблицу юзеров.
Select u1.name, u2.name, t.sum
From таблица_платежей t
Left join таблица_юзеров u1 on t.user_id1 = u1.user_id
Left join таблица_юзеров u2 on t.user_id2 = u2.user_id
Аноним 06/07/17 Чтв 19:33:33 #48 №1017577 
>>1017576
Спасибо, анон, надеюсь завтра возьмут на работу
Аноним 06/07/17 Чтв 19:35:12 #49 №1017578 
>>1017577
Сомневаюсь, но удачи ладно, возьмут, смотря на кого, это я тут топовый оракловщик, а если тебя будут простейшие запросы спрашивать, то возьмут
Давай ещё задачки
Аноним 06/07/17 Чтв 19:41:10 #50 №1017580 
1499359250625.jpg
Кстати, вот задачки с собеседования в одну говноконтору год назад. 60к на старте давали, но не пошел офк.
Аноним 06/07/17 Чтв 22:29:37 #51 №1017705 
>>1017580
Все задания изи, только непонятно "одним запросом" - это что, без использования подзапросов? Если да, то второе не изи.
Аноним 07/07/17 Птн 00:50:29 #52 №1017818 
Аноны, я сейчас выпилюсь нахуй. Значит есть база в 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 все цифрами то даёт вставить строку.
Может кто знает как это поправить?
Аноним 07/07/17 Птн 01:44:33 #53 №1017842 
>>1017705
А как совсем без подзапросов?
Как по мне, самое красивое:
delete from t
where t.rowid <> (select max(t2.rowid) from t t2 where t2.a = t.a and t2.b = t.b)
Аноним 07/07/17 Птн 01:44:51 #54 №1017843 
>>1017818
Что такое

У тебя?
Мб ты текст хочешь вставить? Тогда
>insert into users (login, password) values('a',3);
Аноним 07/07/17 Птн 01:47:02 #55 №1017844 

>>1017842
А rowid ты откуда взял?
Аноним 07/07/17 Птн 06:38:42 #56 №1017876 
посоветуйте пиздатых книг по БД
Аноним 07/07/17 Птн 08:06:58 #57 №1017887 
>>1017844
Это уникальный идентификатор строки в БД оракл и он есть всегда. Простите, ради бога, как в других базах это работает я не знаю...
Аноним 07/07/17 Птн 09:04:12 #58 №1017897 
>>1017843
Точно, спасибо
Аноним 07/07/17 Птн 09:42:45 #59 №1017903 
>>1017580
60к на старте и такие лёгкие задания? Что за город и должность?
Я сейчас в банке за эти же деньги работаю в ДС.
Аноним 07/07/17 Птн 09:56:14 #60 №1017910 
>>1017903
Ещё обещали рост до 80 в течение полугода, но все равно не пошел.
Город ДС, конечно.
Разработчик PL/SQL.
Хз, в каком ты банке работаешь, в моих банках на самой стартовой позиции платят 80-90.
Аноним 07/07/17 Птн 10:07:48 #61 №1017918 
>>1017910
Может потому что у меня sql server, а не оракл.
Аноним 07/07/17 Птн 10:21:37 #62 №1017923 
>>1017918
В чем состоит твоя работа? Ты просто пишешь запросы?
Аноним 07/07/17 Птн 10:28:09 #63 №1017924 
>>1017923
Оналитик. Кубы, витрины.
Аноним 07/07/17 Птн 10:30:26 #64 №1017925 
>>1017924
Прикольно. Ну мы разные. Но ты все равно нищенка и ищи норм зп.
Аноним 07/07/17 Птн 11:15:28 #65 №1017935 
Что сейчас нужно для работы с базами данных?
Какие системы управления базами данных (СУБД) сейчас популярны?
Какие средства, технологии, библиотеки нужно знать?
Что спрашивают работодатели на собеседованиях про базы данных?
Какие средства популярны сейчас для работы с базами данных на различных языках программирования (C++, Java, C# и т.д.)?
Аноним 07/07/17 Птн 11:27:39 #66 №1017940 
db.jpg
Sup, программач.
Помогите пожалуйста спроектировать БД. Представьте есть интернет-магазин книг. Юзер заходит (по своим логину и паролю) и добавляет книги себе в корзину. Если у него есть купон на скидку (например, 15%), то он его вводит и после этого у него на все книги скидка 15%. Какие таблицы создавать и какие связи между ними?

Вот понятно, что будет таблица "Книга", а что делать со всем остальным? Типа создать таблицу "Купон на скидку", отдельно таблицу "Скидка", где будет храниться размер скидки в процентах? Или как? А как реализовать корзину? Помогите, ребят.
Аноним 07/07/17 Птн 12:02:45 #67 №1017958 
>>1017940
Купон только один на весь заказ?
Будут такие таблицы
Пользователи (ид, ид_купон)
Книги
Прайсы книг (ид книги, цена, дата начала действия цены, дата окончания действия цены)
Таблица корзин (ид пользователя, ид книги, цена, скидка (1 по дефолту и выводишь в интерфейсе произведение цены на скидку))
Купоны (ид, дата начала, дата конца)
При добавлении книги в корзину добавляешь ее актуальную стоимость в таблицу для корзины, 1 в качестве скидки)
При вводе купона проверяешь наличие актуального купона в таблице купонов и делаешь апдейт поля скидка по юзеру
Аноним 07/07/17 Птн 12:12:49 #68 №1017964 
>>1017958
И если книга добавляется после ввода купона, то в качестве скидки можно сразу подтягивать скидку из таблицы купонов.
А при удалении купона ставить везде скидку 1.
Также на моменте окончательного сохранения заказа нужно проверять, действует ли купон, иначе удалять и проставлять скидку 1.
Спасибо за интересную задачу, попробую на домашний бд реализовать под пивас.
Аноним 07/07/17 Птн 12:21:32 #69 №1017967 
>>1017958
Знаешь что... Лучше не храни в таблице корзины ничего... Пусть там будут только ид пользователя и ид книги, а все остальное актуальное подтягивай...
Аноним 07/07/17 Птн 12:21:43 #70 №1017968 
>>1017958
нахуя ид купона у пользователя?

логичнее у купона сделать ссылку на пользователя.

пользователь (ид, имя, имя мамки)
купон (ид, ид пользователя)
Аноним 07/07/17 Птн 12:25:12 #71 №1017970 
>>1017958
>>1017964
>>1017967
>>1017968
Спасибо большое, аноны. Не уходите никуда, пожалуйста, я сейчас БД нарисую и вам скрин скину на проверку.
Аноним 07/07/17 Птн 12:26:55 #72 №1017972 
>>1017968
Ну я подумал, один купон может быть у нескольких пользователей. Ну типа промокод.
Аноним 07/07/17 Птн 12:27:15 #73 №1017973 
>>1017970
В чем рисуешь?
Аноним 07/07/17 Птн 12:30:36 #74 №1017974 
>>1017972
наверно если пойти еще дальше то у пользователя может быть несколько купонов а не 1 на всю жизнь, тогда нужен many 2 many типо так:

user (id, name, imya_mamki)
coupon (id, description)

и связть many 2 many:
user_coupon (user_id, coupon_id)
Аноним 07/07/17 Птн 12:32:37 #75 №1017975 
>>1017972
Ну короче я думал, что это не персональная хуйня, а типа введите промокод 'TIPIDOR' и получите скидку 15%.
Тогда при вводе промокода будет делаться запрос к таблице промокодов и проверяться, если ли такой промокод с нужными сроками действия.
И сохраняться для юзера.
1 юзер, ему соответствует 1 купон.
Моя схема будет поддерживать как персональные купоны, так и массовые.
Аноним 07/07/17 Птн 12:37:56 #76 №1017976 
123.PNG
>>1017958
>>1017968
>>1017970
Вот, смотрите, это то, что я понял с ваших постов:
Аноним 07/07/17 Птн 12:38:18 #77 №1017977 
>>1017973
В пэинте.
Аноним 07/07/17 Птн 12:43:07 #78 №1017979 
>>1017976
Чёто я намудрил. Там между корзиной и книгами должна быть связь "many-to-many".
Аноним 07/07/17 Птн 12:49:20 #79 №1017984 
>>1017979
И как ты себе представляешь наличие нескольких корзин у одного пользователя? Пользователь должен видеть при заходе на сайт результат запроса select * from таблица корзин по ид_пользователя.
Аноним 07/07/17 Птн 12:53:03 #80 №1017988 
>>1017984
Ну, я исходит из того, что у пользователя только одна корзина. А если так, как ты говоришь, нужна связь между "Пользователи" и "Корзины" один-к-одному?
Аноним 07/07/17 Птн 12:53:34 #81 №1017989 
>>1017988
>один-ко-многим
Фикс.
Аноним 07/07/17 Птн 12:54:17 #82 №1017991 
>>1017984
Я полагал, что таблица для корзины будет динамической, добавлять и удалять книги. И пользователь будет видеть то, что у него добавлено по его ид. После оформления заказа удалить из нее записи пользователя. Ид в этой таблице - не ид корзины, просто ид строки
Аноним 07/07/17 Птн 13:01:22 #83 №1017994 
>>1017991
>Я полагал, что таблица для корзины будет динамической, добавлять и удалять книги. И пользователь будет видеть то, что у него добавлено по его ид. После оформления заказа удалить из нее записи пользователя.
Правильно ты полагал, я именно так и хотел.

>Ид в этой таблице - не ид корзины, просто ид строки
Строки для каждой книги в таблице? То есть, к примеру, user1 заказал книгу Пушкина и книгу Лермонтова. По итогу у него в корзине 2 книги, а это 2 записи в таблице "Корзина" c одним id_пользователя, но разными id_корзины. Ну, да, по идее правильно было бы переименовать "id_корзины" в "id_строки". Ты ведь это имеешь в виду?
Аноним 07/07/17 Птн 13:11:41 #84 №1018003 
>>1017994
Да, ид строки, ид_пользователя, ид_книги. Для каждый книге в корзине своя запись
Аноним 07/07/17 Птн 13:28:43 #85 №1018007 
123.PNG
>>1018003
Посмотри, анон. Это уже более конечный вариант. Только я не могу придумать как правильно реализовать такую фичу, что пользователь вводит промокод и у него на всё появляется скидка. То есть должна ведь существовать таблица скидок (как на моей пикче)? А в ней промокод так же, как и на отдельном купоне. И потом делать сравнение, типа если промокод совпадает, то из таблицы "Скидки" вытаскиваем конкретное значение скидки в процентах? Или как? Даже не знаю...
Аноним 07/07/17 Птн 13:32:10 #86 №1018008 
Почему я предлагаю использовать таблицу юзер_купон.
При заходе на сайт пользователь должен видеть 'у вас введен такой-то купон, даёт вам такие плюшки' как результат селекта из этой таблицы.
Если купон уже не актуален, удаляем строку. Если вводим новый - merge в эту таблицу. При оформлении заказа тоже чистим.
Я вообще сначала это хотел в таблице юзеров хранить, но там будут всякие личные данные, нехуй ее лишний раз логировать
Аноним 07/07/17 Птн 13:40:35 #87 №1018018 
>>1018008
Ага, понял. Значит я добавлю таблицу "юзер_купон" как соединительную типа. А что делать с величиной скидки? Скидка же должна быть отдельной таблицей? Ну, типа для того, что сделать проверка авось юзер введёт промокод, которого нет и никакая скидка этому промокоду не соответствует. Я прав, неправ?
Аноним 07/07/17 Птн 13:42:09 #88 №1018020 
>>1018007
Тебе не нужна таблица скидок.
В таблице - справочнике купонов ты будешь хранить его ид, его сроки действия и скидку, которую он даёт.
Логику хранения купона по юзеру я тебе вроде как описал.
Процедуры, которые выводят содержимое корзины и формируют заказ, должны выгдядеть следующим образом:
Select t.id_user, t.id_knigi, p.price, s.skidka
From таблица корзины
Left join таблица прайсов p on p.id_knigi = t.id_knigi (и условие на даты)
Left join таблица пользователь_купон pk on t.id_user = pk.id_iser
Left join таблица купонов s on s.id_kupon = pk.id_kupon (и здесь условие на даты)
Where t.id_user = ты
Аноним 07/07/17 Птн 13:48:24 #89 №1018021 
>>1018020
А как тогда проверяется промокод? Вдруг он введён неправильно?
Вообще говоря, это тестовый проект, поэтому я включал сюда таблицу прайсов, которую ты предлагаешь, я все прайсы сохраняю тупо в таблицу книг как поле. То же самое по поводу дат - они в задании не нужны. Предполагается, что они типа действует всегда для конкретного юзера.
Аноним 07/07/17 Птн 13:50:29 #90 №1018022 
>>1018021
Ой, подожди, анон, кажется я допёр как промокод проверяется. Не уходи никуда, пожалуйста, я сейчас перерисую БД и покажу на всякий случай.
Аноним 07/07/17 Птн 13:51:14 #91 №1018023 
>>1018021
Foreign key
Аноним 07/07/17 Птн 13:52:10 #92 №1018024 
>>1018021
Тестовый проект?
То есть ты сейчас устроишься на интересную работу и будешь зарабатывать больше, чем я?
Аноним 07/07/17 Птн 13:58:17 #93 №1018025 
123.PNG
>>1018020
Вот как-то так. Надеюсь правильно. Я хоть правильно связи расставил?
Аноним 07/07/17 Птн 13:59:37 #94 №1018026 
>>1018024
>То есть ты сейчас устроишься на интересную работу и будешь зарабатывать больше, чем я?
А ты что мало зарабатываешь? Тыж праграмист.
Аноним 07/07/17 Птн 14:03:04 #95 №1018028 
>>1018026
Смотря что для тебя мало. Сколько зп ты хочешь на своей работе? Что за должность?

>>1018025
Ну я об этом говорил, да.
Аноним 07/07/17 Птн 14:05:55 #96 №1018031 
>>1018028
>Смотря что для тебя мало. Сколько зп ты хочешь на своей работе? Что за должность?
Я, вообще говоря, студент ещё, опыта работы нет, так что вряд ли мне станут много платить. Вот пытаюсь впервые устроиться Java-программистом.
Аноним 07/07/17 Птн 14:08:01 #97 №1018032 
>>1018031
Тогда ты молодец, удачи.
Я не программист, я sql-щик.
Аноним 07/07/17 Птн 14:08:49 #98 №1018033 
>>1018028
>Ну я об этом говорил, да.
Спасибо большое, анон. Ты прям выручил меня. Надеюсь этот тред ты посещаешь часто? Можно я тебе тут же потом ещё отпишу на тот случай, если будут какие-то проблемы с SQL-запросами?
Аноним 07/07/17 Птн 14:09:28 #99 №1018035 
>>1018033
Разумеется, частенько мониторю.
Не за что.
Аноним 07/07/17 Птн 14:09:51 #100 №1018036 
>>1018032
>я sql-щик
По-моему, базисты - это одно из самых главных звеньев в в IT-конторе. Тебе прям обязаны много платить.
Аноним 07/07/17 Птн 14:13:41 #101 №1018037 
>>1018036
Да нет, я лох просто. Сижу, отчетики обоссанные рисую. А вечерами читаю Тома Кайта, мечтаю стать большим специалистом по базам данных и тихо плачу...
Аноним 07/07/17 Птн 15:38:20 #102 №1018055 
>>1018037
Просто изучи, как работают индексы и ssis-пакеты, и иди разработчиком двх, я так сделал, раньше тоже был аналитиком. Ни о чем не жалею.
Аноним 07/07/17 Птн 15:44:49 #103 №1018059 
>>1018055
Как давно работаешь, сколько зп?
Я знаю, что рано или поздно буду перекатываться во что-то такое.
Аноним 07/07/17 Птн 19:16:52 #104 №1018179 
>>1018059
Разработчиком ms sql, дс.
100к в месяц.
Аноним 07/07/17 Птн 19:18:38 #105 №1018181 
>>1018179
Да, работаю с ноября 2к16.
До этого несколько лет пахал аналитиком по отчетности.
Аноним 07/07/17 Птн 19:52:08 #106 №1018212 
>>1018181
В ЗП потерял или выиграл со сменой работы? Я на отчетиках больше получаю...
Алсо, терминология очень мутная. Можешь как-то конкретизировать спектр задач? Я считаю аналитиками тех, кто пишет мне ТЗшки, а разработчиком того, кто создает всякие процедуры и реализует всю хуйню, то есть себя. Но понятно, что в разработчик dwh другой смысл вкладывается, мне бы понять, какой. Я короче какая-то промежуточная и паразитирующая хуйня, которая и не аналитик, и не разработчик.
Аноним 08/07/17 Суб 19:46:19 #107 №1018841 
>>1018212
Аналитик - чел, который строит отчеты, пиздит с заказчиком, формирует требования к витринам данных. Если речь идет о хранилище.
А разраб - хуярит витрины, процедуры по наполнению хранилища, оптимтзирует запросы (пок, пок, юзернейм, посмотри, у меня там вьюшка что-то долго работает
>left join tbl_oche_bolshaya_tablica obt on 1=1
)
ну и, чего греха таить, тоже пилит отчетики, сейчас граница, вообще, очень размыта, например, я разраб, но сервак тоже я админю почему-то, а, когда руководителя аналитического отдела нет, я же еще и пизжу с заказчиками, вот такой пиздец.
Аноним 08/07/17 Суб 19:47:32 #108 №1018842 
>>1018212
В зп выйграл, причем уверенно, почти в 2 раза.
Аналитиком на прошлую работу пришел на 40, когда перешел в разрабы, получал 60, теперь соточка.
Дс, если что.
Аноним 08/07/17 Суб 20:11:12 #109 №1018866 
Вы тут наркоманы все.
Корзину не надо в БД хранить, это нинужно, лучше в пользовательской сессии, это временные данные.
Зачем купоны привязывать к пользователям? Кто ИРЛ их будет каждому пользователю в соответствии ставить?
Нужно, обратно же в сессии сделать переменную для идентификатора купона. И интерфейсик - пользователь вводит код купона и если он правильный - купон идет в сессию, начинают работать скидки.

далее. Нужно организовать таблицу сейлс и сейлс лист - это то, что пользователь заапрувил корзиночные данные, то есть согласился купить.
сейлс - идентификатор, ид_пользователя, датавремя, адресдоставки, купон
сейлс_лист - идентификатор, идентификатор_сейла, идентификатор книги, конечная цена ( с учетом купонов )
Аноним 08/07/17 Суб 20:40:25 #110 №1018881 
>>1018866
>корзину не надо в бд хранить
Проиграл с этого.
Аноним 08/07/17 Суб 20:45:24 #111 №1018883 
>>1018866
Чёто как-то мутно всё. Вроде понял, а вроде и нет. Можешь написать, пожалуйста, сколько у меня всего будет таблиц и с какими полями?
Аноним 08/07/17 Суб 23:39:20 #112 №1018997 
>>1018881
Нахуй она там нужна, дебил ебанный?
Аноним 08/07/17 Суб 23:45:55 #113 №1019005 
>>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)
Как то так
Аноним 08/07/17 Суб 23:50:13 #114 №1019008 
Анон, доставь книжек по проектированию и нормализации бд.
Аноним 09/07/17 Вск 10:03:52 #115 №1019116 
>>1015789 (OP)
>Excel
>СУБД
Аноним 09/07/17 Вск 10:06:50 #116 №1019117 
>>1017577
Взяли?
Аноним 09/07/17 Вск 11:22:06 #117 №1019125 
>>1019008
Крис Дейт - введение в бд
Аноним 09/07/17 Вск 12:18:40 #118 №1019170 
>>1017576
Зачем тут left join? Inner же достаточно.
Аноним 09/07/17 Вск 12:53:35 #119 №1019199 
>>1019170
Напиши, сам запрос
Аноним 09/07/17 Вск 13:38:30 #120 №1019269 
>>1019199
Наркоман что ли? То же самое, но с inner join.
Аноним 09/07/17 Вск 15:24:55 #121 №1019453 
>>1018035
Анон, ты здесь?
Мне нужна твоя помощь...
Аноним 09/07/17 Вск 17:43:16 #122 №1019617 
>>1018842
Как устроиться разработчиком, если я недоаналитик? Пилю несложные отчеты и пишу хранимки.
Что нужно уметь, чтобы быть именно "Разработчиком MS SQL"?
Аноним 09/07/17 Вск 17:59:25 #123 №1019634 
>>1019617
>>1018055
+ советую похавать C#, потому что есть такие вещи, которые рядовым sql сделать либо сложно, либо невозможно. (Clr, ssis script tasks, боты о работе бд для телеграмма и пр. свистелки)
Но это необязательно.
Аноним 09/07/17 Вск 18:48:03 #124 №1019672 
>>1018025
Почему у пользователя с корзиной один к одному? Он может сделать только один заказ?
Аноним 09/07/17 Вск 19:01:16 #125 №1019678 
>>1018025
>>1019672
И "купоны" тебе нужно соединять с "корзиной" один ко многим. У тебя получится, что в таблице "корзина" может быть запись с одним пользователем, который может купить две разные книги по разным купонам.
Аноним 09/07/17 Вск 19:29:45 #126 №1019699 
Бд.png
>>1019678
Как-то так
Аноним 10/07/17 Пнд 00:25:28 #127 №1020010 
Реквестирую базу данных, которая хранит инфу в json файле и не требует сервера (т.е. монго не катит).
Аноним 10/07/17 Пнд 00:31:31 #128 №1020019 
>>1020010
Блокнот
Аноним 10/07/17 Пнд 00:43:17 #129 №1020032 
>>1020010
Что значит "не требует сервера"? Что-то вроде sqlite?
Аноним 10/07/17 Пнд 01:10:16 #130 №1020047 
>>1020010
первая ссылка из гугла
https://github.com/typicode/lowdb
Аноним 10/07/17 Пнд 02:36:35 #131 №1020096 
>>1019453
Завтра утром пиши, если ещё актуально.
Аноним 10/07/17 Пнд 11:25:05 #132 №1020225 
Здравствуйте.
Сегодня первый раз в карьере использовал group by rollup.
Испытал настоящий оргазм от того, что я это знаю и что решил проблему так красиво.
Все же стоит изучать вещи, которые не пригождаются почти никогда, именно ради тех ситуаций, когда они нужны.
Аноним 10/07/17 Пнд 12:26:10 #133 №1020287 
>>1018841
Ну вот смотри.
Я не пизжу с заказчиками, я получаю от аналитика ТЗ на отчетик.
Я пишу хранимки для этого отчёта, создаю таблицы, кручу джобы. Рисую сам отчетик.
Кто я? Лох?
Аноним 10/07/17 Пнд 12:35:36 #134 №1020291 
>>1019634
Хотелось бы развить эту тему.
Вот я божественный разработчик PL/SQL.
Однако в вакансиях чистых PL/SQL разработчиков не так много, часто ещё дополнительно какой-нибудь язык нужен.
Так вот, какой мне учить?
Часто вижу комбинацию delphi + sql, но я же не обиделся на себя, я не буду учить этот язык.
C# проскакивает.
Есть ещё комбо java + pl/sql, но тут, как мне кажется, нужен прежде всего разработчик java с посредственным знанием sql, ну а я бы хотел оставить базы данных своей специализацией.
Аноним 10/07/17 Пнд 14:29:50 #135 №1020366 
>>1020291
хз как дела обстоят в целом по больнице, но в нашей конторке интерфейс на php и js состряпан, иногда приходится ковыряться в веб, двухзвенка по сути, в трехзвенке сервер приложений скорее всего на java, если база оракловая.
Аноним 10/07/17 Пнд 22:04:22 #136 №1020776 
>>1020287
Твоя должность называется зачастую
>разработчик корпоративной/аналитической отчетности.
Сейчас это уже хуйня, ибо в норм конторах аналитики, все-таки, сами рисуют отчеты.
Аноним 10/07/17 Пнд 22:10:51 #137 №1020788 
>>1020291
Если оракл бд, то, конечно же, жава, что еще. Сам с оракловскими бд не работал, но уверен, что есть какие-нибудь возможности расширения для них (https://docs.oracle.com/cd/B28359_01/java.111/b31224/oraint.htm) на лжаве.
Если не хочется, то можно нагуглить еще информационные системы на оракловских бд и начать изучать их, тоже повысит твой спектр предоставляемых услуг и, соответственно, цену на рынке.
Можно начать прокачивать скиллы dba, ведь одного plpgpqpapokpok sql для этого маловато.
Аноним 10/07/17 Пнд 22:42:17 #138 №1020825 
>>1020776
Да, слышал это выражение. То есть я человек-хуйня на бесперспективной работе? А куда перекатываться?
Аноним 10/07/17 Пнд 22:44:39 #139 №1020830 
>>1020788
Спасибо. Хочу быть dba. И вообще человеком.
Аноним 10/07/17 Пнд 23:37:26 #140 №1020868 
>>1020825
Нормальная это работа, пока тебе на ней норм платят, не ссы, чо ты запереживал то?
Аноним 10/07/17 Пнд 23:40:24 #141 №1020869 
>>1020868
Платят мне нормально очень даже, но есть инсайд инфа, что аналитикам и etl-щикам в моей конторе платят больше.
Впрочем, можно будет и к ним попроситься когда-нибудь. Не хочу загадывать, спасибо за поддержку, все хорошо будет
Я сейчас люблю базы данных и хочу развиваться в этом направлении, Кайта читаю.
Аноним 11/07/17 Втр 12:32:50 #142 №1021106 
Сколько запросов к базе приемлимо на 1 запрос к веб странице? На текущем проекте около 10 + около 10 запросов по soap, как-то многовато
Аноним 11/07/17 Втр 12:44:23 #143 №1021116 
>>1021106
Открытие одной страницы - 10 запросов? Почему вы не можете уменьшить количество этих запросов? Какого рода запросы?
Аноним 11/07/17 Втр 12:46:37 #144 №1021122 
>>1021106
Короче, я не веб-макака и айкью у меня повыше твоего, но все знаю, что чем меньше запросов, тем лучше. Покажи/расскажи свои запросы, скажу, как оптимизировать.
Аноним 11/07/17 Втр 12:46:59 #145 №1021123 
>>1021122
>все знают
Прошу прощения.
Аноним 11/07/17 Втр 12:58:18 #146 №1021141 
>>1021116
Страница богатая, данных много и требования часто по ним меняются, поэтому проще делать отдельные запросы.
Про 10 может и преувеличил, большая часть маленьких справочников давно в памяти.
На самом деле, это не такая уж и проблема и точно не узкое место, сервер бд у заказчика - полный фарш.
Аноним 11/07/17 Втр 20:09:16 #147 №1021472 
>>1021106
Ты хоть опиши, что у тебя за веб-страница, мб у тебя битрик какой-нибудь, там, ясное дело, и больше может быть.
Аноним 11/07/17 Втр 20:11:32 #148 №1021475 
1.png
2.png
Не могу понять почему данный запрос ничего не выводит(рис. 1), хотя переменная @diff содержит в себе результаты, соответствующие для вывода(рис. 2).
Где я допускаю ошибку?
БД - MySql
SELECT lastCheck, nextCheck,
@diff := (TO_DAYS(nextCheck) - TO_DAYS(NOW()))/30.5 AS diff
FROM ttc WHERE @diff <= 2 ORDER BY diff ASC
Аноним 11/07/17 Втр 20:42:41 #149 №1021508 
>>1021475
>:=
Никогда такого не видел. Это с какой СУБД?
Аноним 11/07/17 Втр 20:45:38 #150 №1021512 
>>1021475
Ага, нашёл.
@diff - это переменная? Предполагаю, что последнее значение @diff больше двух.
Аноним 11/07/17 Втр 20:47:09 #151 №1021514 
>>1021508
MySQL Workbench 6.3 CE
А как надо? Я никогда еще не использовал "динамические" переменные, а то, что ты отметил, - результат со стаковерфлоуа.
Аноним 11/07/17 Втр 20:49:22 #152 №1021516 
>>1021514
Во блин. Я последний скрин не заметил.
Попробуй просто diff>=2.
Да и зачем тебе там @diff?
Аноним 11/07/17 Втр 20:50:45 #153 №1021518 
>>1021512
Тогда как сделать так, фильтрация происходила по diff <= 2?
Аноним 11/07/17 Втр 20:52:08 #154 №1021521 
>>1021518
> diff <= 2
Так и пиши вместо @diff <=2.
Аноним 11/07/17 Втр 20:53:56 #155 №1021523 
3.png
>>1021516
>>1021516
Аноним 11/07/17 Втр 20:55:10 #156 №1021524 
>>1021523
Тогда тебе придётся писать через подзапрос или полностью свою колонку скопировать в WHERE.
Тут уже сам смотри.
Аноним 11/07/17 Втр 21:00:21 #157 №1021529 
>>1021523
Спасибо. Плохо, что я сам не сообразил.
И в чем разница между подзапросом и копировании колонки в WHERE в данном случае?
Аноним 11/07/17 Втр 21:01:08 #158 №1021530 
4.png
>>1021524
Спасибо. Плохо, что я сам не сообразил.
И в чем разница между подзапросом и копировании колонки в WHERE в данном случае?
Аноним 11/07/17 Втр 21:03:20 #159 №1021533 
>>1021530
Зависит от реализации СУБД. Большинство умеют похожие выражения распознавать и нормально с вложенными запросами работают. Так что это скорее дело вкуса, но если колонка будет большая, то особого выбора тогда не будет.
Таким же образом группировать можно, если не даёт.
Аноним 11/07/17 Втр 21:03:22 #160 №1021534 
Где почитать основы SQL вообще? Возникла нужда, а понять нихуя не могу.
Аноним 11/07/17 Втр 21:04:55 #161 №1021535 
>>1021534
Понятия не имею. У меня был курс СУБД в универе + на работе SQL для написания всего используется.
Аноним 11/07/17 Втр 21:08:16 #162 №1021541 
>>1021534
Но в интернете есть много чего по запросу "mysql for dummies" и его вариациям.
Аноним 11/07/17 Втр 21:08:38 #163 №1021543 
>>1021535
А у меня не было. Но ссука нужда есть, и свалить не на кого.
Аноним 11/07/17 Втр 21:10:08 #164 №1021545 
>>1021534
> Где почитать основы SQL вообще?
Здесь.

Основы SQL:
select * from TABLE;

Урок окончен. Домашнее задание - выполни этот запрос на любой реляционной БД.

Теперь основы ты знаешь, остальное вырастет из этого.
Аноним 11/07/17 Втр 21:11:26 #165 №1021547 
>>1021545
Ну блять. Я попытался решить задание типа "Вытащить из таблицы имена всех кораблей, утонувших в Атлантике в 1942 году" на каком-то сайте, и после часа понял, что нихуя не понимаю.
Аноним 11/07/17 Втр 21:16:35 #166 №1021555 
>>1021547
Ну делись задачкой что ли.
Аноним 11/07/17 Втр 21:20:20 #167 №1021561 
>>1021533
Мне всегда казалось, что БД так же содержит в себе и синтаксис запросов, а СУБД играет инструментальную для пользователя БД роль, так же, как библиотеки, предназначенные для выполнения запросов из программы. Иначе бы каждый разработчик таких библиотек делал синтаксис так, как ему кажется более удобным.
Аноним 12/07/17 Срд 02:06:27 #168 №1021707 
>>1021555
Вангую с sql-ex.ru задание.
Аноним 12/07/17 Срд 08:16:04 #169 №1021735 
>>1021472
Поискавая выдача по тендерам и госзакупкам.
Аноним 12/07/17 Срд 09:55:15 #170 №1021767 
>>1021475
select *
from (
SELECT
lastCheck,
nextCheck,
(TO_DAYS(nextCheck) - TO_DAYS(NOW()))/30.5 AS diff
FROM ttc
) ttc_with_diff
WHERE diff <= 2
ORDER BY diff ASC

Попробуй так
Аноним 12/07/17 Срд 10:06:45 #171 №1021772 
Поболтали с начальником щас, рассказал о последнем собеседовании.
Такие вопросы лайтовые и такие люди дауны.
Тяночка для вывода актуальной зарплаты сотрудника использует три вложенных селекта, вместо использования keep dense_rank
Не знает, что вернёт full join по таблицам, в которых id null
Не знает, как работают агрегатные функции на null значениях.
Не знает, что вернёт запрос select * from a, b

И это топбанк с зп от 100к
Аноним 12/07/17 Срд 10:32:09 #172 №1021783 
Анон, подскажи, какие книги можно почитать по MySQL? Именно по данной СУБД и с точки зрения разработчика, а не администратора. Хочется углубиться в ее изучение, понять именно те фичи, которые присущи именно ей. А то знания очень разрозненные и нет общей картины. Заранее благодарю.
Аноним 12/07/17 Срд 11:53:22 #173 №1021811 
>>1021783
https://www.amazon.com/Understanding-MySQL-Internals-Discovering-Improving/dp/0596009577/
Аноним 12/07/17 Срд 15:44:47 #174 №1021954 
Помогите со структурой базы. Не знаю, как правильно сделать.

Есть таблица Order с таким набором полей:

order_id
order_address_id
order_code
order_metro_id
order_equipment_id

И три зависимых таблиц

Address, Metro, Equipment

Мне приходит файл, данные из которого нужно в эту базу данных поместить. Запилил четыре таблицы, соответственно, для этого.
Каждый раз при вставке в таблицу Order мне нужно дёргать из зависимых таблиц (они типа справочники, но справочники, которые тоже постоянно пополняются) id. И если такого значения в зависимой таблице нет (ну допустим нет такого адреса ещё в таблице Address), нужно добавить эту запись в таблицу Address и уже потом вернуть её id, а если запись уже есть, то нужно просто вернуть id существующей записи. Как это с точки зрения архитектуры лучше реализовать? Используется PostgreSQL если что.
Аноним 12/07/17 Срд 15:51:50 #175 №1021961 
>>1021954
И нахуй тебе хранить в основной таблице ид_метро, если одному адресу соответствует одно метро? Храни ид метротв таблице адресов, не засирай базу.
Аноним 12/07/17 Срд 16:00:02 #176 №1021962 
>>1021961
Оператор может привязать один адрес (то есть дом) к разным метро для разных заказов, потому что некоторые адреса располагаются равноудалённо от станций и выбор станции метро отдаётся на откуп оператора. Да и вообще особой роли не играет. В общем твоё замечание несущественно.
Аноним 12/07/17 Срд 16:07:14 #177 №1021966 
>>1021962
Твоя жизнь несущественна.
Нравится хаос разводить - живи как хочешь, мне похуй.
Аноним 12/07/17 Срд 16:09:29 #178 №1021967 
>>1021966
Какой хаос?
>одному адресу соответствует одно метро?
Я тебе ответил, что это не так. К тому же по делу ты не ответил, лишь сагрился на пустом месте.
Аноним 12/07/17 Срд 16:21:44 #179 №1021970 
>>1021967
Я тебе сказал, что ты ебучий гуманитарий.
И человек будет хранить либо строго одно метро для одного адреса, либо 1,2,3 ближайших в зависимости от потребностей, а не вводить тупые допущения.
Кому-то может понадобиться аналитика по конкретным станциям, а у тебя один и тот же адрес привязан к разным метро.
Метро в заказе - формальность, это не значит, что курьер будет ехать конкретно до этого метро, он будет ехать как ему удобно.
Как ты будешь обрабатывать открытие нового метро? Нормальный человек проапдейтит адреса и проставит им новое метро, ты будешь на половине адресов хранить старое ближайшее, на половине новое.
Ты мусор, говно и говнокодер, я тебя презираю, я бы вас просто убивал всех.
Аноним 12/07/17 Срд 16:28:47 #180 №1021974 
>>1021970
Ты вообще кажется не понял, что требуется. И тупые допущения исходят только от тебя.
Не понимаю твоего баттхерта. Окей. Изменю условия. Теперь таблицы Metro нет и нет соответствующей колонки в таблице Order. По делу таки есть что сказать?
Аноним 12/07/17 Срд 16:51:34 #181 №1021979 
>>1021974
Теперь у тебя нормализованная база данных и больше мне сказать нечего.
Аноним 12/07/17 Срд 16:56:50 #182 №1021981 
>>1021979
Ты спросил по поводу СТРУКТУРЫ базы данных. Я сказал, чем твоя структура говно, и сказал как сделать по-человечески.
Аноним 12/07/17 Срд 18:19:59 #183 №1022014 
>>1021811
Благодарю
Аноним 12/07/17 Срд 21:04:46 #184 №1022122 
>2017
>не пользоваться графовыми базами
Аноним 13/07/17 Чтв 00:14:54 #185 №1022223 
>>1022122
Хранилище тоже на базе будешь делать?
Аноним 13/07/17 Чтв 12:50:28 #186 №1024023 
>>1022223
>на графовой базе
Аноним 13/07/17 Чтв 14:18:14 #187 №1024082 
Кто-нибудь использует job scheduler в БД оракд?
Что мне нужно записать в качестве частоты выполнения, чтобы жоб отрабатывал один раз в неделю по понедельникам?
Аноним 13/07/17 Чтв 14:26:06 #188 №1024085 
>>1024082
https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse004.htm#ADMIN10040
Аноним 13/07/17 Чтв 14:27:23 #189 №1024087 
>>1024085
Извини, пожалуйста, что пришлось гуглить за меня, я зря это спросил. Спасибо, снимается.
Аноним 14/07/17 Птн 14:17:34 #190 №1024856 
>>1016781
Из всего списка читал первые две. Сам работаю dbd с Oracle 9i.
Учитывая, что тебе надо 12c 2ю книгу ищи 6го издания. Я бы начал с нее (Фейерштейн), там по сути основы. Кайт это уже более продвинутое, нюансы и т.п.
Аноним 14/07/17 Птн 14:22:04 #191 №1024857 
>>1024856
Большое спасибо!
Расскажешь побольше о своей работе? Алсо, не чувствуешь себя старпером, сидя на 9 оракле?
Аноним 14/07/17 Птн 15:05:05 #192 №1024893 
>>1024857
Крупное гос предприятие (не РФ). По-поводу 9i: выбирать не приходиться, что есть с тем и работаем. Закупка и переход на более новые версии не планируется.

Работаю уже 10 лет. В обязанности в основном входит разработка приложений на Oracle Forms и Reports для нужд предприятия и всякой отчетности в другие гос структуры. Также приходится иногда работать с MS SQL Server 2012 (купили ПО работающее на этой БД) и каким-то языком похожим на 1С, ISBL называется.

Когда приходил ничего совсем не знал, думал уволят после испытательного срока. Сейчас освоился, засиделся, но уходить не особо хочется, хотя предлагали попробовать (это не факт, что взяли бы) в место где платили бы в 2-2.5 раза больше (ибо там зп привязана к доллару), там работа по оптимизации и хранилища данных. Но там и работать пришлось бы: не так как я сейчас, сидя тут. Все-таки гос есть гос.
По зарплате у меня в 2 раза больше чем в среднем по моему региону.

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

Если бы вернулся во времена универа, то больше бы внимание уделил учебе, а потом бы свалил на какую java. А так забивал на учебу (и вообще на программирование) и на текущую работу по сути по родственным связям брали.
Аноним 14/07/17 Птн 15:35:32 #193 №1024914 
>>1024893
Понимаю.
Я тоже ничего не делал в универе и работа с базами данных была единственной, на которую меня взяли, так и определился мой путь. Но я с шилом в жопе, меняю работы и хочу расти (хотя бы в зарплате).
Аноним 14/07/17 Птн 17:00:10 #194 №1024966 
>>1024914
Кек, сеймщит, после универа устроился эникеем, среди прочего приходилось чистить oracle db, оценил перспективы и решил на нем остановиться. За 5 лет работы сейчас уже на третьей, вот думаю обмазаться книгами и подаваться в банки. Но какая же скука все-таки, уже год одни и те же задачи. Вообще какие перспективы ораклиста? Может как писали выше в треде попробовать выучить язык и перекатываться? Или стать крутым спецом по БД, но никак не могу представить, как из sqlщика вырасти до техдира или тимлида. Какой потолок, если знать только sql и pl/sql?
Аноним 14/07/17 Птн 17:28:07 #195 №1024979 
>>1024966
В банках хорошо и рост есть. Только лучше быть etl-щиком, а просто запросы писать. Иначе будешь клепать одни отчетики и вот тогда совсем охуеешь от однообразия и рутины.
Да, книжки дело хорошее, ты читай, я тоже читаю. Все же перекатываться совсем мне день, так что планирую поучить устройство бд и быть кем-то более крутым, чем писатель sql-запросов.
Аноним 14/07/17 Птн 17:50:16 #196 №1024991 
Сейчас голову сломаю, помогите, как будет выглядеть эта задача для 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.
Аноним 14/07/17 Птн 17:56:20 #197 №1024993 
Есть такой запрос:
select from t1 union all select from t2
Как создать в, созданной этим запросом, таблице дополнительную колонку и занести туда название той таблицы, откуда была взята строка?
Аноним 14/07/17 Птн 17:56:38 #198 №1024994 
>>1024979
Не подскажешь как в etl-щики можно перекатиться ораклисту? В своей практике сталкивался
только с клепанием отчетиков и рзаработкой логики на pl/sql, загрузка данных из внешних таблиц разве что.
Аноним 14/07/17 Птн 17:59:27 #199 №1024997 
>>1024993
Запрос динамически составляется? Если нет, то можно же статично прописать
select t1., 't1' t_name
union all
select t.
, 't2' from t2;
Аноним 14/07/17 Птн 18:08:01 #200 №1025004 
>>1024997
Спасибо, а на будущее, как бы выглядел динамический запрос?
Аноним 14/07/17 Птн 18:15:07 #201 №1025008 
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, а добавил свою процедуру которая выводит в консоль при вызове.
Аноним 14/07/17 Птн 18:34:54 #202 №1025014 
>>1025004
Если oracle, то например можно так
declare
l_t1 varchar2(32 char); -- название таблицы t1
l_t2 varchar2(32 char); -- название таблицы t2
begin
/ здесь получаем названия таблиц, например из системных справочников /
execute immediate '
create table t3 as
select t1.id, ' || l_t1 || ' name union all select t2.id, ' || l_t2 || ' from t2';
end;
Если не ощибаюсь вообще так вставлять переменные в код запроса это моветон, лучше
использовать using t1, t2
Аноним 14/07/17 Птн 18:36:08 #203 №1025016 
>>1025014
оплошал с двойными кавычками, но суть не меняется
sageАноним 14/07/17 Птн 18:37:21 #204 №1025018 
>>1025008
понял.
https://stackoverflow.com/questions/11182339/reference-alias-calculated-in-select-in-where-clause
Аноним 14/07/17 Птн 18:46:02 #205 №1025024 
>>1024991
select maker, type
from (select maker, type, count() from product group by maker, type having count() > 1)
Аноним 14/07/17 Птн 19:22:34 #206 №1025046 
>>1024994
Не знаю, не перекатывался.
В планах через полгодика попиздеть с начальниками и сказать, давайте мне 150к и переводите к интеграторам, иначе свалю.
Проблема в том, что я на отчетиках уже довольно незаменимый человек и начальник меня просто так не отпустит. В принципе, и на отчетиках посижу за 150.
Аноним 14/07/17 Птн 19:29:46 #207 №1025050 
Господи, почему у вы спрашиваете задачи именно в вечер пятницы, когда я поддатый, а всю неделю молчите
Аноним 14/07/17 Птн 19:31:46 #208 №1025051 
>>1025024
Чет с count() ошибка, надо в нем писать что-то. Пишу туда model, выдает ошибку синтаксиса.
Аноним 14/07/17 Птн 19:36:57 #209 №1025056 
>>1025051
Звездочку в count засунь.
Здесь она как italic текст пошла
Аноним 14/07/17 Птн 19:39:05 #210 №1025058 
>>1025056
Да, только дошло, спасибо. Все равно ошибка с синтаксисом.
Аноним 14/07/17 Птн 19:41:07 #211 №1025060 
>>1024991
Бля, а в вашей базе аналитические функции есть?
Все равно красиво это не сделать, только через подзапросы.
Либо применяй аналитические функции, первая count(*) over (partition by product_type, proizvoditel), вторая over(partition by proizvoditel) и селекте оттуда те где первый каунт = 1 а второй больше 1.
Либо юзай group by rollup (proizvoditel, product_type) но тоже не упростит сильно.
Бля проще даже не изъебываться а просто первым запросом отсеять тех, у которых типов продуктов меньше двух, а вторым тех у кого количество меньше двух.
Аноним 14/07/17 Птн 19:42:12 #212 №1025061 
>>1025058
В оба count звезду вставил?
На чем ошибку выдает? Кидай сюда. Может для MS SQL какая ошибка, я писал больше для Oracle, хотя тут такой синтаксис что должно прокатывать и там.
Вот это тоже с ошибкой выполняется? :
select maker, type, count(звезда)
from product
group by maker, type
having count(звезда) > 1
Здесь чисто лишнее поле на вывод.
Аноним 14/07/17 Птн 19:43:37 #213 №1025064 
>>1025061
Бля, брат, твой запрос не отсеит тех, у кого больше одного типа продукта
Аноним 14/07/17 Птн 19:47:06 #214 №1025067 
>>1025064
Я понял условие как должны быть показаны те у кого более одного ПК или более одного лаптопа и т.д. И не важно что у того у кого 3 ПК, есть еще по 1му лаптопу и принтеру, всеарвно вывести эту фирму с пометкой ПК, разве не так?
Аноним 14/07/17 Птн 19:48:34 #215 №1025068 
>>1025067
Условие: вывести тех производителей, которые производят продукты одного типа и продуктов у них больше одного. Ты о другом.
Аноним 14/07/17 Птн 19:49:58 #216 №1025072 
>>1025060
Это просто задачка из sql-ex ru, я хз. Попробую как ты сказал.

>>1025061
Этот работает, но, очевидно, не то ищет.
Аноним 14/07/17 Птн 19:50:25 #217 №1025074 
>>1025068
То есть:
1 тип продукта, 2 продукта - выводим
2 типа продукта, 3 разных продукта - не выводим.
Я художник, я так понял задачу. Без подзапросов нерешаемо.
Аноним 14/07/17 Птн 20:09:24 #218 №1025093 
Бля, батя придумал
Select proizvoditel
From chetotam
Group by proizvoditel
Having count (distinct product_type) <= 1 and count(product) > 1
Аноним 14/07/17 Птн 20:10:25 #219 №1025094 
>>1025093
Какой же я охуенный и охуевший.
Нет компа, чтобы проверить, что два хевинга работают, но я почти уверен.
топ ораклист из топ10-банка зп 120к
Аноним 14/07/17 Птн 20:21:02 #220 №1025096 
>>1025093
>>1025094

Select maker
From Product
Group by maker
Having count (distinct type) <= 1 AND count(model) > 1

Это находит верного maker, но не дает дописать к нему type. Надо maker, type
Аноним 14/07/17 Птн 20:23:43 #221 №1025098 
>>1025096
Max(type), min(type), tvoyamama(type), все что угодно пиши, найдёт
Аноним 14/07/17 Птн 20:28:20 #222 №1025101 
>>1025098
Но это прикольно только в ситуации когда у тебя строго один тип продукта выводится, а если 2 или 3 то уже думать надо. Не хочу думать, батя решил задачу и пошел дальше бухать
Аноним 14/07/17 Птн 21:01:45 #223 №1025118 
>>1025093
>>1025094
>>1025098
Ты крут. Подчерпнул для себя кое-что нового (конкретно не знал что в having можно такое писать, использовал там раньше только то, что в select описано).
Не думал что так можно и не встречал раньше. Ну на то у меня и зп не 120к.
Кстати вариант с подзапросами у меня >>1025067
такой вышел:
select a.maker, a.type
from (
--здесь выборка тех у кого больше одной модели но несколько продуктов
select maker, type
from 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
) b
where a.maker = b.maker;
Аноним 14/07/17 Птн 21:02:29 #224 №1025120 
>>1025118
Что-то засрало табуляцией весь код, да и хрен с ним.
Аноним 14/07/17 Птн 21:10:33 #225 №1025124 
>>1025118
Чет дохуя сложный вариант. Я понимаю, что там костыльное решение было с Max(type), но такое как у тебя скорее всего не подразумевалось.
Аноним 14/07/17 Птн 21:32:48 #226 №1025137 
>>1015789 (OP)
Как в SQLite выводить сообщение SQL об отработке команды, сколько строк изменено и пр.
Использую SQLite в Python 3
Аноним 14/07/17 Птн 21:42:08 #227 №1025145 
>>1025137
Не знаю, не разбираюсь в этом, но может быть sql%rowcount поможет
Аноним 14/07/17 Птн 21:47:54 #228 №1025154 
>>1025137
sqlite3_changes()
https://sqlite.org/c3ref/changes.html
Аноним 14/07/17 Птн 21:49:21 #229 №1025157 
>>1025154
changes()
Аноним 14/07/17 Птн 22:57:51 #230 №1025211 
>>1015789 (OP)
Sqlite в Python3 и SQLite studio.
Команда типа ("INSERT INTO total (aaa, bbb, ccc) VALUES (111, 555, 999)")

команда работает в Sqlite Studio и изменяет 1 строку, но не работает из питона, то есть
cur.execute(command) + con.commit ничего не изменяет

В чём может быть дело ?
Аноним 14/07/17 Птн 23:22:30 #231 №1025224 
>>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:
Аноним 14/07/17 Птн 23:28:02 #232 №1025229 
>>1025211
con = sqlite3.connect("db_test.db")
cur = con.cursor()

cur.execute("INSERT INTO total (aaa, bbb, ccc) VALUES (111, 555, 999)")
con.commit()
Так не работает?

>>1025224
INSERT INTO total (aaa, bbb, ccc) VALUES (11, 55, 99);
INSERT INTO total (aaa, bbb, ccc) VALUES (1, 5, 9);
Аноним 14/07/17 Птн 23:32:59 #233 №1025234 
>>1025229
ступил, забыл про ;
Аноним 14/07/17 Птн 23:39:06 #234 №1025239 
>>1025229
да, конечно, там con.commit после cur.execute
Ошибки соединения нет, Select, например, нормально работает, возвращает строки. Ошибки database is locked также нет.
Аноним 14/07/17 Птн 23:44:56 #235 №1025243 
>>1025239
а так:
cur.execute("INSERT INTO total (aaa, bbb, ccc) VALUES (:a, :b, :c)", {"a": 111, "b": 555, "c": 999})
Аноним 15/07/17 Суб 00:42:45 #236 №1025285 
>>1025118
Аноним 15/07/17 Суб 00:43:16 #237 №1025286 
>>1025118
Да от души, не жалко. Вы почаще в тред пишите, я люблю задачки решать.
Аноним 15/07/17 Суб 14:40:02 #238 №1025399 
>>1015789 (OP)
Postgres или Firebird?
Аноним 15/07/17 Суб 21:22:16 #239 №1025577 
>>1025399
notepad
Аноним 15/07/17 Суб 23:21:28 #240 №1025641 
Снимок.PNG
Анончики, подскажите, есть вообще что-нибудь юзабельное для постгреса, типа Mysql Workbench? Мне нужно диаграммки построить, в воркбенче классный редактор, умеющий экспортировать схему из базы. Хочется такого же для постгреса.
Алсо, вангую, что нету нихуя и тогда следующий вопрос, где лучше всего строить схемы?
Аноним 15/07/17 Суб 23:43:03 #241 №1025659 
>>1025641
Как вариант https://dbdesigner.net/
Аноним 15/07/17 Суб 23:48:05 #242 №1025662 
>>1025659
Не, во-первых, не хватит бесплатной версии (у меня 100 таблиц). А во-вторых, воркбенч хотя бы открытый и всем доступен, а тут создаешь модель, которую сможешь открыть только онлайн в их веб-приложении предварительно зарегистрировавшись.
Аноним 16/07/17 Вск 00:28:37 #243 №1025684 
>>1025641
ДБобер.
Аноним 16/07/17 Вск 17:56:50 #244 №1026121 
А щас можно даунский вопрос? На работе есть схемы баз данных в power designer. Можно смотреть и изучать и искать что-нибудь. Вот. А как создание этих схем происходит? Там можно подрубиться к базе данных и выцеплять структуры из нее, или же это все тупо вручную рисуется?
Аноним 16/07/17 Вск 21:32:35 #245 №1026230 
>>1026121
Можно тупо вручную, а можно и подрубиться и сделать схему. (Она будет полноценной, если созданы все требуемые для связей таблиц ключи, в двх, например, их редко создают).
Конечно, второй вариант круче, так как не нужно тратить время на документацию, однако, если ты сначала пишешь тз, а потом по нему делают бд, то, разумеется, в таком случае схема первична.
Аноним 16/07/17 Вск 21:36:12 #246 №1026232 
>>1025662
У меня в закладках еще такое, но сам не пользовался:
http://dbdsgnr.appspot.com/
https://www.draw.io/
Аноним 16/07/17 Вск 22:29:51 #247 №1026252 
>>1026230
Спасибо, сам кто по специализации?
Dwh - хранилище, то есть не oltp система? Да, слышал, что там не создают индексы и ключи обычно.
Аноним 16/07/17 Вск 23:35:31 #248 №1026271 
>>1026252
Сам - разработчик двх, как раз.
Ключи создают, но в основном только праймари.
Индексы тоже создают, конечно, а вот foreign key, как раз, нет, ибо хуевенько инсерт начинает работать, да и время на изменение структуры потом больше тратится.
Хранилище - олтп зачастую, но бывают и исключения.
Если ты думаешь про олап, то нет, олап - это херь, которая из хранилища заполняется и позволяет всяким там аналитикам быстро и удобно смотреть данные.
Аноним 17/07/17 Пнд 00:00:53 #249 №1026289 
>>1017976
>>1018007
>>1018025
>>1019699
смотрю я на эти адовые схемы и не могу понять: вот если корзина сохраняется, по какой-то причине и эдитор меняет цены у книги, то изменится ли цена корзины? валидно ли это с точки зрения бизнеса ее менять?

как по мне это все фейл.
Аноним 17/07/17 Пнд 00:09:26 #250 №1026292 
>>1026289
А это уже вопрос к бизнесу. Хочет ли он соблюдать принципы историчности или нет. Нас, простых посонов, это не касается, наше дело только спросить и сделать, как сказано.
Аноним 17/07/17 Пнд 00:13:41 #251 №1026295 
>>1026292
мне пришлось избавиться от этого принципа
Аноним 17/07/17 Пнд 00:43:31 #252 №1026303 
Програмач, привет
Возможно, обоссыте, но надеюсь, подскажете. Позвали работать в отдел операционнх рисков, pl/sql, скрипты, возможно sas, dwh и витрины, но последние 3 не точно. +написание тз, прототипов
Стоит идти?
Аноним 17/07/17 Пнд 05:39:52 #253 №1026327 
>>1026303
А кем позвали то? Аналитиком?
Аноним 17/07/17 Пнд 08:22:59 #254 №1026338 
>>1026303
Нет, не стоит. Не иди ни в коем случае.
Аноним 17/07/17 Пнд 08:40:26 #255 №1026340 
>>1026303
Откуда я знаю... Почему ты сам не уверен, чем придется заниматься? Надо спрашивать такие вещи... Если по бабосу и почему все ок, то иди...
Аноним 17/07/17 Пнд 08:40:54 #256 №1026341 
>>1026340
>прочему
Но лучше все равно побольше нам расскажи.
Аноним 17/07/17 Пнд 10:07:44 #257 №1026353 
>>1026327
Аналитик, да
>>1026338
Почему?
Аноним 17/07/17 Пнд 10:15:26 #258 №1026357 
>>1026353
Если тебе нравится пиздеть с заказяиками, постоянно сраться на тему кто, что и когда должен сделать, политика и написание документации(эти дела будут занимать половину раб.времени, помимо скл и отчеты), то вперед. Лично мне все это остопизденило.
Аноним 17/07/17 Пнд 10:18:50 #259 №1026359 
>>1026357
С таким багажом знаний есть возможность переката в Европу? Вопрос уровня б, просто есть еще одна работа.
Аноним 17/07/17 Пнд 10:39:52 #260 №1026365 
>>1026359
Не знаю, мне кажется в Европе такой хуйней не страдают, которую я тут написал. Но это мои домыслы, я ж там не работал. Найди аналог hh.сру, только какой-нибудь европейский и ищи data analyst, смотри, что там требуется.
Аноним 17/07/17 Пнд 11:10:20 #261 №1026371 
>>1025243
Странно. Сегодня тот же самый код заработал.
Аноним 17/07/17 Пнд 11:15:10 #262 №1026375 
>>1026371
fix нет. не заработал, хотя, например, что-нибудь с Update из скрипта работает, а
print (con.total_changes) выдаёт нужное число измененных строк. Но когда смотрю содержимое таблицы, оно без изменений
Аноним 17/07/17 Пнд 11:28:16 #263 №1026382 
>>1026271
Расскажи, пожалуйста, подробнее про работу. Что на практиrе представляет собой ETL? Что для этого нужно знать? Какие подводные камни?
Аноним 17/07/17 Пнд 11:31:39 #264 №1026384 
Братишки, помогите с одной хуевиной, долбоебу.
Есть таблица в майэсскуэль. В ней лежат пятимутные замеры длины пинуса.
`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'
Аноним 17/07/17 Пнд 11:43:19 #265 №1026387 
t.png
>>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
Аноним 17/07/17 Пнд 11:58:58 #266 №1026395 
>>1026384
Тебе только средствами мускуля надо справиться?

Могу решение на пхп дать просто.
Аноним 17/07/17 Пнд 12:05:11 #267 №1026400 
>>1026395
Блядь, простие, я думал я в прикрепленном треде, уебываю.
Аноним 17/07/17 Пнд 12:32:12 #268 №1026410 
Есть две базы. Одна рабочая, вторая для тестирования доработок. Обе долдны быть идентичны. И вот мне стало интеренсо. Можно как то сделать ALTER хранимой процедуре в одной базе содержимым из другой? Синхронизировать их так сказать.
Аноним 17/07/17 Пнд 12:38:01 #269 №1026413 
>>1026410
Если оракл, то можно пробануть dblink. Подключаешься к тестовой базе и копируешь код процедуры во временную таблицу, потом компилишь процедуру на боевой. Но это извращение какое-то
Аноним 17/07/17 Пнд 12:38:46 #270 №1026414 
>>1026387
Общее направление понял, попробую.
>>1026395
Не критично, пхп тоже подойдет, не съебывай, брат.
Аноним 17/07/17 Пнд 12:40:40 #271 №1026415 
>>1026413
mssql
Хотелось бы без извращений. Для извращений уже есть visual studio генеррирующая километр скрипта.
Аноним 17/07/17 Пнд 13:03:03 #272 №1026423 
>>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'

И разрыв может быть больше часа в таком проебе? Вангую что офк может, да? Проеб у оборудования и в сутки может быть в итоге?
Аноним 17/07/17 Пнд 13:10:09 #273 №1026425 
>>1026423
Секунды всегда 00. Проебы случаются и больше суток.
Аноним 17/07/17 Пнд 13:10:37 #274 №1026426 
>>1026423
И минуты всегда кратны 5.
Аноним 17/07/17 Пнд 13:19:57 #275 №1026431 
На работе есть таблица, в которой хранится вся информация о сотрудниках. Дата рождения, ссылка на фотографию, вот это всё.
Хочу сделать средствами моих отчетиков аналог тиндера для компании. В параметры отчёта передавать желаемый пол и возраст, подтягивать фоточки, сохранять где-нибудь лайки. В случае взаимного лайка отправлять на почту обоим письмо с предложением пообщаться. Охуенно же, прям вот уже вижу, как это все реализовать. Только боюсь меня выгонят с работы если я начну так нагло юзать личную информацию. Да и не надо это никому.
Аноним 17/07/17 Пнд 13:33:06 #276 №1026440 
>>1026425
>>1026426
http://ideone.com/qMPG1a

Не знаю в каком формате тебе нужно выводить результат. Говори что подправить если что.
Аноним 17/07/17 Пнд 13:37:46 #277 №1026445 
>>1026440
Спасибо, от души. Править вроде нечего. Респект.
Аноним 17/07/17 Пнд 14:36:32 #278 №1026469 
Снимок экрана от 2017-07-17 14-26-14.png
Сап, програмач.
Аноны, помогите пожалуйста с SQL-запросом. Пикрилейтед - структура БД (на самом деле только её кусок). В таблице "Заказ" на самом деле больше полей и я хочу написать запрос на выборку всего из неё, но нужно чтобы делалась проверка на существование записи в таблице "(Соединительная таблица)". Типа если в ней есть запись, где id_пользователя совпадает с id_пользователя в таблице "Заказ", то нужно запись в таблице "Скидка", которое ей соответствует по id_скидки, взять поле "значение скидки" и умножить его на поле "Цена", затем вернуть результат. Как написать запрос?
То есть по сути, что-то типа того:
SELECT
...
Заказ.Цена * Скидка.значение_скидки,
...
FROM Заказ
...

Помогите пожалуйста, я в SQL ещё не разбирался, планирую только потом, но мне сейчас нужно такую фичу сделать.
Аноним 17/07/17 Пнд 14:37:51 #279 №1026471 
>>1026469
Не доглядел. В соединительной таблице на картинке вместо "id_товара" должно быть "id_скидки".
Аноним 17/07/17 Пнд 14:42:32 #280 №1026475 
>>1026469
Я тебе уже писал этот запрос, мог бы и отмотать тред.
Аноним 17/07/17 Пнд 14:46:38 #281 №1026479 
>>1026475
Пролистал. Мне из запросов только это писали --> >>1018020

Аноним 17/07/17 Пнд 14:49:20 #282 №1026480 
>>1026479
И? Что тебе нужно?
Аноним 17/07/17 Пнд 14:51:16 #283 №1026481 
>>1026480
То что написал. Типа у пользователя есть скидка, то нужно сделать:
SELECT Заказ.Цена - Скидка.значение_скидки,
иначе не умножать, а просто вернуть цену.
Аноним 17/07/17 Пнд 14:51:37 #284 №1026482 
>>1026481
>если у пользователя есть скидка
Фикс.
Аноним 17/07/17 Пнд 14:52:52 #285 №1026483 
>>1026481
Сьеби с треда, тебе уже достаточно написали. Если тебе лень названия полей поменять и запятую на умножение, то мне тем более лень тебе отвечать.
Аноним 17/07/17 Пнд 14:53:09 #286 №1026484 
>>1026481
>не вычитать
Блять, опять фикс.
Аноним 17/07/17 Пнд 14:55:42 #287 №1026487 
>>1026483
Да нихуя мне не лень. Я просто не вдупляю нихера. Запись в соединительной таблице может быть, а может и не быть. Вытащить то я умею, если она есть, и тогда и скидку отнять смогу. А если типа у юзера нет скидок - вот эту херь не знаю как провернуть.
Аноним 17/07/17 Пнд 14:57:15 #288 №1026488 
>>1026487
L E F T J O I N уже подразумевает эту ситуацию и не отсечет строки... Вместо прямого значения скидки написать nvl(skidka, 1). Тогда если есть скидка, он домножит на нее, если нет на единицу
Аноним 17/07/17 Пнд 14:57:26 #289 №1026489 
>>1025243
Такая конструкция заработала, но только после того, я как сохранил базу под другим именем.
До этого скрипт также писал, что всё ОК и выдавал число изменённых строк, но не менял.

Возможно, это был какой-то глюк в SQlite.

Аноним 17/07/17 Пнд 15:09:24 #290 №1026494 
>>1026431
Во многих компаниях, особенно крупных, не приветствуются отношения между сотрудниками. Тимбилдинг, корпоративчики - да, а няшенье под пледиком - нет.
Аноним 17/07/17 Пнд 15:13:45 #291 №1026495 
>>1026494
Да оно и разумно, в принципе, нехуй переносить личные отношения на работу...
Аноним 17/07/17 Пнд 15:27:20 #292 №1026503 
>>1026488
Спасибо большое. Всё получилось! Про NVL() не знал, а ведь это и было решением моей проблемы.
Аноним 17/07/17 Пнд 15:33:14 #293 №1026506 
>>1026503
От души.
Ставь вопросы конкретнее, чтобы я не злился на то, что ты вынуждаешь меня повторяться.
Скажи потом свою зарплату чтобы я пригорел.
Аноним 17/07/17 Пнд 19:42:56 #294 №1027081 
>>1026382
>>1026382
Ок. Я работаю с ms sql server. Для него etl это:
1. SSIS-пакеты, создаваемые в вижуал студии (data tools) и деплоящиеся на сервак. Они отвечают за загрузку данных из всяких других субд (из других систем) в промежуточную бд, именуемую staging
2. Это хранимые процедуры, которые делятся на 2 части: a. загрузка данных в хранилище из staging бд
b. Преобразование данных в хранилище для их удобного использования
3. Скриптописательство, в основном, c#, используется для 2 целей:
а. Clr - функционал c# в ms sql сервере
b. Загрузка данных из всяких веб-сервисов (api, ftp и т.п.), которую невозможно реализовть стандартными компонентами vs data tools.

Что еще.. иногда еще нужно хуярить данные в олап, так что придется прохаваться в том, что это и с чем его едят. Ну и индексы, оче важно, чтоб все быстро оаботало.
Как-то так.
Аноним 17/07/17 Пнд 21:57:32 #295 №1027536 
>>1027081
Сколько платят?
Аноним 17/07/17 Пнд 22:40:07 #296 №1027561 
>>1027536
Сотен, дс, если шо. С августа перекат на 120.
Аноним 18/07/17 Втр 00:50:51 #297 №1027610 
>>1026232
Короче перевел на мускуль и экспортнул в воркбенч.
Но draw.io очень классная штука. Минус только в том, что это больше рисовалка - таблички нужно будет заполнять перетягивая строки в нее, ну и связи тоже будут нарисованными, а не определены по ключам а еще он захлебнется скорее всего от моих 100 таблиц. Но вообще это оч классный редактор.
Аноним 18/07/17 Втр 13:13:33 #298 №1027785 
Влез в отдел логистика складская который работает на oracle и pl/sql, в основном занимается написанием запросов-отчетов как у этого анона >>1017574.
Подскажите литературу и тд, где можно набраться начальных знаний, опыта работы с бд= 0. За 2 недели аутирования освоил только простейшие запросы и содержания таблиц.

Аноним 18/07/17 Втр 13:31:50 #299 №1027806 
>>1027785
1. Гуглишь.
2. Просишь меня решать задачи.
Тебе же нет смысла читать Кайта или даже Фейерштейна, просто найди какой-нибудь интернет-ресурт, где вкрации пишут про sql.
Аноним 18/07/17 Втр 14:17:28 #300 №1027839 
14906966371670.jpg
>>1022122
Двочую. Графовые базы решают абсолютно все проблемы релятивного говна. Они самоописываемые, а значит могут хранить метаинформацию (ограничения и проверки типов, например) в самой базе и получать доступ к ним через стандартные запросы.

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

Отказывайтесь от говна мамонта, оно уже окаменело.
Аноним 18/07/17 Втр 16:57:39 #301 №1027894 
Аноны, привет. Очень годный тред.
Хотел бы обратиться за советом.
ЗАкончил ВУЗ, зовут на работу аналитиком BI (не глоубайт). Опыта работы серьезного нет, sql знаю, погромирование тоже. Работал до этого в сапе.
Насколько это годная идея в 2017? Хочется, конечно, и архитектором стать и в Европу и на хуй сесть.
Аноним 18/07/17 Втр 17:24:15 #302 №1027915 
Работаю с QSLite в связке с Qt. Надо выполнять много похожих запросов, в которых различается только один параметр. Запросы связывают несколько таблиц. Как это удобно реализовать без хранимых процедур с минимумальным количеством строк в коде?
Аноним 18/07/17 Втр 18:24:04 #303 №1027944 
Привет, аналитики, может кто-то с tableau работает? У меня есть в таблице широта и долгота, табло их понимает как географические параметры, но я не понимаю, как мне отобразить эти точки на карте.
Как мне ограничить карту, чтобы мне только карту Москвы показывало?

>>1027894
Я не советую.
Аноним 18/07/17 Втр 18:47:30 #304 №1027952 
>>1027944
почему:
Аноним 18/07/17 Втр 19:39:15 #305 №1027973 
>>1027952
Скучно, неинтересно, прогать веселее.
Все зависит от твоих личных качеств, предпочтений, оффера. Нет смысла скипать работу, которая тебе по всем параметрам подходит, из-за того что на дваче так сказали.
Аноним 18/07/17 Втр 21:02:01 #306 №1028006 
>>1027973
Да хер знает. Архитектор знакомый уебал за бугор-вот и мотивация
Аноним 18/07/17 Втр 22:14:11 #307 №1028061 
>>1028006
Архитектор БД или системный архитектор?
Аноним 18/07/17 Втр 22:32:51 #308 №1028075 
>>1028061
1, но знаю и второго, только ему сложнее из-за специфики РФ
ЕОТ Аноним 18/07/17 Втр 23:02:38 #309 №1028096 
Сап, посоны, нубас не умеющий в погромирование итт за помощью зашел. Есть Одна Таблица. Вней много данных, которые надо рассортировать в отдельные таблицы и сохранить в отдельные файлы.
Я уже нашел макрос как делить на листы и сортировать и макрос как листы в файлы сохранять.
Осталось только засунуть макрос, который будет переименовывать листы, впихивая в название данные из ячеек.
Название листа должно быть такое:
F1_"Данные из ячейки AF2"_"Данные из ячейки A2"_190717

Плиз, помогите, не хочу как лах завтра сидеть открывать каждый лист смотреть что там написанно и переименовывать в ручную.
Аноним 18/07/17 Втр 23:07:41 #310 №1028100 
>>1028096
Туда ли ты зашел, системный администратор microsoft word, excel, photoshop?
ЕОТ Аноним 18/07/17 Втр 23:10:32 #311 №1028103 
>>1028100
> ЕДИНЫЙ БАЗ ДАННЫХ ТХРЕАД
> Excel
Да я туда зашел. Блин, посоны, ну хотя бы дайте ссыль где есть макросы на любой вкус и цвет. Только гуглить не гоните ок да? Я и так это делаю сейчас.
Аноним 18/07/17 Втр 23:36:35 #312 №1028119 
>>1028103
> > ЕДИНЫЙ БАЗ ДАННЫХ ТХРЕАД
> > Excel
> Да я туда зашел.
Ты не перепутал эксель с аксессом?
Какие нахуй макросы? Давай ты лучше засунешь этот эксель себе в sql сервер и мы тебе составим запрос.
Аноним 18/07/17 Втр 23:37:20 #313 №1028121 
>>1028096
нагугли как в VBA работает цикл и в цикле парси таблицу, там же все просто, что-то на уровне
Лист1.('R2C2'), только вместо номера строки и номера столбца подставляй i и j. Эх, напомнил свою первую работу, где в эксель макросом тянул данные по ODBC из БД.
Аноним 19/07/17 Срд 00:49:30 #314 №1028150 
>>1017935
Java
Аноним 19/07/17 Срд 11:16:47 #315 №1028261 
Безымянный1.png
Здравствуй, анон. На связи >>1017574 .
Есть один запрос, по ссылке, который считает к-во паллет созданных в определенное время. Что нужно подставить, чтобы результат был такой: к-во паллет на каждую дату, то есть на 01.01 - 150, 02.01 - 148 и т.д?
https://pastebin.com/jkFDaLsb
Спасибо.
Аноним 19/07/17 Срд 11:52:02 #316 №1028275 
Нуб в этом итт треде.
Стоит ли, по вашему, вкатываться разработчиком/консультантом ms sql?
Аноним 19/07/17 Срд 11:58:39 #317 №1028278 
>>1028275
Да, конечно.
Аноним 19/07/17 Срд 12:06:15 #318 №1028281 
>>1028261
Не свовсем понятно, что ты хочешь? Ты же и так уже получил группировку по TRUNC(lu.c_date).
Если возможна ситуация, что в твоем текущем отчете появятся строки с одинаковой датой создания, то выкидывай все колонки, кроме количества палетов и даты создания. Или тебе в этом же отчете еще одну колонку нужно получить с общим количеством палетов на дату создания?
Аноним 19/07/17 Срд 12:14:53 #319 №1028285 
>>1028278
можешь, пожалуйста, пояснить за плюсы?
Аноним 19/07/17 Срд 12:39:32 #320 №1028291 
>>1028285
Плюсы: Ты получишь ценный олпыт, который и определяет твою функциональную грамотность.
Аноним 19/07/17 Срд 12:40:52 #321 №1028292 
>>1028261
Sum(kolvo) over(order by create_date).
Покажет для каждой строки суммарное количество на дату этой строки.
Только я не уверен, что с твоими группировками это прокатит, я бы весь запрос через аналитические функции переписал, но делать этого я, конечно, не буду.
Как вариант приджойнить эту таблицу саму к себе и в качестве суммы на текущий день брать sum(case when t1.date <= t2.date them kolvo end)
Аноним 19/07/17 Срд 14:10:38 #322 №1028318 

>>1028281
Короче, я налажал с объяснением.
Нужно на каждую дату делать запись, на 09:00 скажем, по кол-ву мест из таблицы, группируя по поставщику.
Возможно такое сделать с помощью sql?
Аноним 19/07/17 Срд 15:40:38 #323 №1028355 
>>1028318
Понятнее не стало.
Вряд ли можно осилить язык структурированных запросов, если не осилил русский язык.
Аноним 19/07/17 Срд 16:40:37 #324 №1028376 
Анон, много рабочего времени у тебя действительно занимает работа? Остается время на чтение доков, книжек или же задач столько, что приходится брать сверхурочные?
Аноним 19/07/17 Срд 17:25:55 #325 №1028396 
>>1028376
Чому именно в базотреде спрашиваешь?
У меня все по настроению. Могу за день ебануть то, на что начальник отводил неделю, могу весь день курить, кофебрейкать и двачевать.
Жёстких дедлайнов у меня нет, на работе засиживаюсь, только если работа прёт.
Уровень загруженности влияет только на то, как именно я решаю задачу. Если задач мало, могу придумать что-нибудь творческое и оптимизаторское, потратить больше времени, но сделать лучше. Если задач много, зачастую делаю первым доступным способом и не особо переживаю за красоту своей работы.
Читаю доки на работе только если это непосредственная часть моих задач. Если мне нужно пользоваться новым софтом или же я просто не знаю как сделать то, что от меня требуется. Саморазвиваться нужно дома.
топовый-ораклист-120к
Аноним 19/07/17 Срд 17:28:51 #326 №1028397 
>>1028376
Бывают конечно и завалы, но редко. Так что лично у меня время есть, но мне тупо лень на работе этим заниматься (неудобно как то). Домой прихожу желание появляется.

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

За своего друга скажу (раньше со мной работал, но ушел в другое место). Теперь он в фирме и времени у него значительно меньше стало (свободен только в обед), по первой работу на дом и выходные брал. Но у него и зарплата в раза полтора - два больше.
Аноним 19/07/17 Срд 17:35:42 #327 №1028403 
>>1028396
долго рос до такой зп?
Аноним 19/07/17 Срд 18:06:10 #328 №1028423 
>>1028403
Чуть меньше двух лет. Начинал с малого.
Аноним 19/07/17 Срд 18:20:00 #329 №1028431 
>>1028396
Тому что ораклистом работаю, задач обычно дофига и работа есть всегда, причем нагрузка рассчитывается иногда так, что времени на кофейбрейки не остается. Единственное спасает, что сам время оцениваю на выполнение, поэтому иногда закладываю время с учетом капчевания. Почему нужно развиваться дома, если у тебя на работе полно времени? У меня после рабочего дня еще бывает куча дел, и часок-полтора на чтение остается.
>>1028397
Тоже работал в госконторе, безделие доконало и никаких перспектив.
Аноним 19/07/17 Срд 18:36:01 #330 №1028439 
>>1028423
А перекатиться из рашки не думал?
Аноним 19/07/17 Срд 18:44:54 #331 №1028446 
>>1028439
Я военнообязанный + с языком не очень. Ближе к 30 мб, пока не особо думаю.
Аноним 19/07/17 Срд 18:52:30 #332 №1028448 
>>1028446
А какие еще скиллы есть, кроме чисто оракловых: sql, pl/sql, concepts? что нужно знать, чтобы работать топом. Мне вот кажется, топовый - тот, кто может с нуля спроектировать слой БД для какой-нибудь информационной системы, уровня АБС. Поясни, пожалйста.
Аноним 19/07/17 Срд 19:32:51 #333 №1028465 
>>1028448
Да лол, какие скиллы, нет скиллов, я просто зарплатой похвастался
Аноним 19/07/17 Срд 19:49:33 #334 №1028471 
Можете вкратце объяснить мимокрокодилу, что сейчас с монгой? Никогда с ней не работал, но слышал, что с одной стороны у него скалабилити, производительность и nosql, с другой, что запись у него по принципу "мамой клянусь"и вообще незрелый (да, я смотрел тот мультик с медвежонком).
Какой у вас вообще стейт оф арт? Год назад для говна на коленках это было нода+експресс+монга, как оно сейчас (бд конкретно)?
Аноним 20/07/17 Чтв 02:10:55 #335 №1028624 
>>1028471
Можете вкратце объяснить мимокрокодилу, что сейчас с BTrieve? Никогда с ней не работал, но слышал, что с одной стороны у него скалабилити, производительность и nosql, с другой, что запись у него по принципу "мамой клянусь" и вообще незрелый (да, я смотрел тот мультик с медвежонком).
Какой у вас вообще стейт оф арт? Год назад для говна на коленках это было кобол+фортран+посраль, как оно сейчас (бд конкретно)?
Аноним 20/07/17 Чтв 02:15:21 #336 №1028627 
>>1028624
> Какой у вас вообще стейт оф арт? Год назад для говна на коленках это было кобол+фортран+посраль, как оно сейчас (бд конкретно)?
Год назад? Ты из какого столетия, папаша?
Аноним 20/07/17 Чтв 02:18:52 #337 №1028629 
>>1028471
Cassandra и DynamoDB прекрасно масштабируются и используются в высоконагруженных проектах, а Mongo это так, чисто поиграться. Для кэша же лучше что-нибудь попроще, типа memcached/Redis.
Аноним 20/07/17 Чтв 11:43:59 #338 №1028718 
После перезагрузки сервера не могу подключится к БД MySql удаленно. Пользователь записан как 'user'@'%', bind-address включен и имеет значение 127.0.0.1. В чем может быть проблема?
Аноним 20/07/17 Чтв 12:36:54 #339 №1028743 
>>1028718
База установлена на Windows 7.
Аноним 20/07/17 Чтв 13:49:18 #340 №1028767 
Часто вижу в описании вакансий требование опыта работы с большим объемом данных, вопрос что считать большим объемом? Таблица с несколькими миллионами строк и сотней колонок - это большой объем? В чем специфика работы с такими таблицами?
Аноним 20/07/17 Чтв 14:22:42 #341 №1028784 
>>1028767
Специфика в том, что в таких «вакансиях» з/п не указана, вот в чём специфика.
Аноним 20/07/17 Чтв 14:41:55 #342 №1028795 
Пацаны, вот если у меня есть таблица с данными где id соответствует какое-то значение на определенные даты, то есть id, value, date_begin, date_end, то как мне найти все задвоения по датам?
То есть на определенную дату задвоение это count по строкам where sysdate between date_begin and date_end.
А как мне одним запросом за все даты посмотреть? Пока в голову не приходит ничего лучше, кроме как запускать этот запрос за каждую дату, но ведь есть что-то оптимальнее?
Ща с курилки вернусь, покажу как делаю.
Аноним 20/07/17 Чтв 14:49:23 #343 №1028806 
dubli.png
>>1028795
Вот все задвоения за текущий год, например.
Я знаю, что это чертовски неоптимально, потому что по сути выполняю свой запрос для каждой даты. Таблица маленькая, но даже на ней это долго отрабатывает. Как лучше, я пока не придумал.
Аноним 20/07/17 Чтв 15:42:04 #344 №1028835 
>>1028784
Намекаешь на то, что все индивидуально и зависит от ебанутости работодателя? Или на то, что чем больше объемы БД, тем больше и з/п, кек?
Аноним 20/07/17 Чтв 15:44:53 #345 №1028841 
>>1028835
По-моему, он намекал на то, что фраза "умение работать с высоконагруженными бд" это что-то такое же шаблонное как техническое образование или английский язык и не передает сути.
Аноним 20/07/17 Чтв 15:52:01 #346 №1028846 
>>1028841
Похоже на то, походу такие вакансии как раз для меня
Аноним 20/07/17 Чтв 17:52:33 #347 №1028901 
>>1028795
>>1028806
Я вам больше никогда отвечать не буду.
топ-ораклист-120к
Аноним 20/07/17 Чтв 17:59:34 #348 №1028903 
говнокод.PNG
>>1028806
>>1028795
Если правильно понял, тебе нужно найти дни, для которых в таблице t существует больше одной записи для определенного t.id. Можно пробануть так решить задачу: найти все интервалы date_from - date_to из таблицы t которые друг с другом пересекаются, потом уже искать по ним дубли, если интервалы одинаковые и у них одинаковый t.id, то в эти дни как раз и было "задвоение". Решение на оптимальное не претендует и я его не проверял, но по крайней мере не нужно для каждой даты логику повторять.
Аноним 20/07/17 Чтв 18:01:23 #349 №1028905 
>>1028901
Чому? Очень полезные ответы, я думаю многие в треде тебе благодарны.
Олсо, завтра иду на собеседоввание в ТОП-10 банк на разработчика анальных хранилищ и клепателя отчетиков, что посоветуете повторить? Какие вопросы могут быть?
Аноним 20/07/17 Чтв 18:08:18 #350 №1028909 
>>1028905
А мне-то блядь никто не помог, когда надо было.
Сдеанонь банк, мб колегами будем.
Алсо я вот тут про собес к нам рассказывал: >>1021772

>>1028903
Спасибо за ответ, я чуть попозже посмотрю, с телефона вообще не могу в код вдуплять.
Аноним 20/07/17 Чтв 18:14:22 #351 №1028913 
>>1028909
Я в ДС2, а ты видимо в ДС, судя по ЗП
Аноним 20/07/17 Чтв 18:20:27 #352 №1028915 
>>1028913
А, прикольно, не знал что топбанки в ДС2 имеют что-то кроме отделений.
Удачи на собеседовании!
Аноним 20/07/17 Чтв 18:31:12 #353 №1028918 
>>1028915
Спасибо! В ДС2 довольно часто ИТ-вакансии банков висят. Те же СБербанк-технологии и просто сбер, центоробанк, альфа.
Аноним 20/07/17 Чтв 21:36:51 #354 №1028999 
Возможно я зеленый даун, но программист oracle-тот, кто пишет pl/sql? Вышел первый день на работу (днищенская), слышал в коридорах разговор, но так до конца и не понял.
Не ссыте только
Аноним 20/07/17 Чтв 21:53:54 #355 №1029011 
>>1028999
Верно. SQL - универсальный язык запросов к БД, Oracle - компания, создавшая СУБД (систему управления базами данных) с одноименным названием, PL/SQL - процедурное расширение (то есть способ превратить SQL почти в нормальный язык программирования), разработанный корпорацией Oracle. Разработчик Oracle и разработчик PL/SQL - практически синонимы, разве что в первое иногда ещё вкладывается смысл разработки и проектирования хранилища Oracle.
Как ты попал на работу, если не знаешь этого?
Аноним 20/07/17 Чтв 21:57:00 #356 №1029013 
>>1029011
у меня должность, можно сказать, квалифицированный НИКТО. Работаю с экселем. Теперь вот думаю, что у них годная работа
Аноним 20/07/17 Чтв 21:57:48 #357 №1029015 
>>1029013
Не понял сразу. Поблагодари меня за развернутый ответ и можешь дальше спрашивать, что тебя интересует. Работа у нас охуевшая, да.
Аноним 20/07/17 Чтв 22:03:10 #358 №1029017 
>>1029015
Спасибо за подробный ответ, анон.
В метро успел почитать, что для вката оркал не рекомендуют, мол двухзвенная архитектура катится к хуем и тому подобное. Либо джаву, либо mssql. ПОнимаю, что первое вообще не про то. Так ли все тухло и не стоит пытаться вкатиться?
Аноним 20/07/17 Чтв 22:07:45 #359 №1029019 
>>1029017
До этого момента не знал, что такое двухзвеная архитектура.
Никто себе на ставит цели вкат конкретно в oracle или mssql. Если тебе интересны базы данных, просто учи sql на базовом уровне, потому что он везде +- одинаковый, а потом ищи работу. Куда возьмут туда и возьмут.
Аноним 20/07/17 Чтв 22:11:39 #360 №1029022 
>>1029019
Поясните, пожалуйста, кто нибудь за выражение KEEP в аналитических функциях. Для чего оно нужно, и зачем в нем указывать порядок сортировки, если порядок и так указывается в описании окна. Желательно с толковым примером.
Аноним 20/07/17 Чтв 22:26:15 #361 №1029026 
>>1029022
Так, епту бля, какие-то слишком заумные вопросы для вкатывальщика.
Смотри.
В конструкции keep order означает просто сортировку, то есть keep(dense_rank last order by param) для каждой строки выведет тебе последнее значение упорядоченное по значению param.
Наличие order в конструкции over() означает, что аналитическая функция становится оконной. Оконная - то есть применяется не ко всем данным. Например, sum(value) over(order by date) для первой даты выведет только сумму на эту дату, для второй - сумму на первую и на вторую дату и так далее.
Придумывать примеры я, конечно, не буду. Пример определяется реальной задачей, которую тебе нужно решить.
Аноним 20/07/17 Чтв 22:48:05 #362 №1029040 
keep.PNG
>>1029026
Я не тот анон-вкатывальщик, просто случайно кликнул сссылку на его пост. Вот смотри, есть пример: https://ideone.com/u1AwEX
Там в коде селекта получаю min и max значения зарплаты по департаменту тремя разными способами с использованием оконных функций. Все три возвращают одинаковые значения. Тогда как например изменить пример таким образом, чтобы
keep dense_rank first только выдавал правильный результат? Как понять, что именно его нужно применять, блждад? Выше в треде приводили пример с собеседования, где нужно было вывести топовую зарплату сотрудника за период. И анон говорил, что нужно делать через keep dense_rank, вместо трех вложенных селектов. Ок, но получается есть еще способ решить эту задачу через другие оконные функции.
Извините, если сумбурно пишу, завтра собеседование, а на предыдущей работе аналитические функции почти не встречались.
Аноним 20/07/17 Чтв 23:01:52 #363 №1029049 
бд.png
>>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к
Аноним 20/07/17 Чтв 23:02:27 #364 №1029050 
>>1029040
Анон, кажется начал понимать, keep(dense_rank) вообще можно использовать без over(), но чет не очень понимаю для чего.
Аноним 20/07/17 Чтв 23:11:27 #365 №1029052 
>>1029049
>>1029050
Спасибо, анон, картина еще четче стала. Подводя все вышесказнное тобой, придумал следубщий пример: нужно вывести максимальную сумму платежа, среди всех платежей, поступивших в последний день текущего месяца:
select
max(t.price) keep(dense_rank last order by t.paydate)
from payments
where trunc(paydate, 'mm') = trunc(sysdate, 'mm');
Верно?
Аноним 20/07/17 Чтв 23:13:26 #366 №1029055 
>>1029052
Да, верно.
Аноним 20/07/17 Чтв 23:16:13 #367 №1029059 
>>1029055
Спасибо огромное! Разжевал то, что в никак не гуглилось уже пару часов.
Аноним 20/07/17 Чтв 23:20:20 #368 №1029064 
>>1029059
От души. Все приходит с опытом, не все гуглится.
Аноним 20/07/17 Чтв 23:26:08 #369 №1029065 
>>1029059
Напиши завтра, как все пройдет.
Ещё раз удачи.
Аноним 20/07/17 Чтв 23:38:01 #370 №1029068 
>>1029017
Oracle это не всегда двухзвенка, в крупных интеграционнах решениях как раз трехзвенка. Другое дело, что задач по поддержке легаси, больше, чем стартапов и развивающихся проектов.
Аноним 22/07/17 Суб 01:17:49 #371 №1029543 
>>1029065
Спасибо, прошло удачно. Была дана схема из трех таблиц с описанием полей и связей между таблицами, необходимо было написать несколько простых запросов. Несколько аналитических, с использованием оконных функций (респект анону, который вчера разжевал эту тему). Еще, как мне показалось, хитрое задание на удаление дублей по полю, условием было оставить записи с самой поздней датой, тоже через аналитические функции сделал.
Ну и несколько вопросов по теории совсем простых, например какой план покажет запрос по таблице, где в условии фильтр по не индексированному полю и что сделать, чтобы его ускорить. По схеме спросили является ли эти три таблицы нормализованными и вообще в чем проблема этой схемы, тут я чет тупанул, т.к. привык, что в OLTP-базах все более менее нормализовано, и сказал, что да, хотя там не было ключей и вообще можно только предполагать о связи по одинаковому названию полей. Ну и был вопросик на понимание работы автономных транзакций. Еще про пайплановые функции спросили, слышал ли о них вообще.
Аноним 22/07/17 Суб 12:28:34 #372 №1029662 
изображение.png
изображение.png
Есть такой сайт:
http://sql-ex.ru
сижу на нем пытаюсь постичь простые запросы мускульные. раньше думал что джойны это всё что нужно обычной веб-макаке типо меня, но сейчас не осилив и 5% от тамошних упражнений уже охреневаю.

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

Сам дико сосу и не понимаю каких-то похоже простейших основ. Например 8 упражнение не понимаю даже головой как должно быть решено. Мб хотите вместе пообсасывать?
Аноним 22/07/17 Суб 12:48:40 #373 №1029665 
>>1029543
Как хорошо, будешь теперь больше меня зарабатывать.
Что такое пайплановые функции?
тот который разжевал
Аноним 22/07/17 Суб 13:38:30 #374 №1029683 
>>1029665
сарказм. я бы сказал на треть меньше, предлагают, кстати это банк самыц днищенский по зп среди топ, ну и то что это региональный офис наверное роль играет.
пайплановые функции могут возвращать коллекцию не дожидаясь конца выполнения всего тела функции, например, внутри цикла можно возвращать клиенту элементы коллекции
Аноним 22/07/17 Суб 13:41:50 #375 №1029686 
>>1029683
pipelined
Аноним 22/07/17 Суб 14:01:20 #376 №1029697 
>>1029683
Услышал, спасибо.
На третье меньше это 80к получается?
Ну для бандитского вполне норм. Хотя от опыта ещё зависит, конечно, сколько у тебя?
Держи в курсе, интересно. Сейчас работаешь где-то? Как думаешь, позовут в это место?
Аноним 22/07/17 Суб 19:34:32 #377 №1029835 
>>1029662
http://www.sql-tutorial.ru/book_exercise_8.html
вот здесь комментарий к этой задаче, который объясняет две самые распространенные ошибки.
Сам попался на второй ошибке: суть в том, что наличие модели ПК в таблице product, совсем не означает, что она есть в таблице PC, и наоборот.
Так же строка с моделью в Laptop может не имееть соответвия в таблице product. Короче в этой схеме данных могут остуствовать значения внешних ключей.
Аноним 22/07/17 Суб 19:39:13 #378 №1029837 
>>1029697
Если чисто оракл, то 3.5 года, из них 1.5 -протирание штанов, а остальные - 2 быдлокодинг.
Сейчас читаю книжки, понимаю, какое я быдло, лол, так что может по сеньке и шапка.
https://www.ozon.ru/context/detail/id/5522775/
вот эта оказалась ультрагодной, описаны моменты, которые слышал только от более опытных коллег, видимо они ее раньше прочитали.
Аноним 22/07/17 Суб 19:51:38 #379 №1029840 
>>1029697
>>1029837
Да, сейчас пишу запросики и процедурки в OLTP-базе, но уже наверное год рутина сплошная.
Аноним 22/07/17 Суб 20:21:59 #380 №1029851 
>>1029837
Люто плюсую, отличная вещь. Тоже начинал читать, правда потом купил бумажного Кайта и перескочил на него. Но и эту тоже читну в скором времени, а скорее всего и в бумаге приобрету.
Аноним 23/07/17 Вск 00:00:25 #381 №1029936 
Добрый вечер, аноны.
Хотел бы услышать совет, пожалуйста.
Я довольно великозворастный планктон-сапер, хочу уебать со своей работ, от которой мне дико пичот. Смотрю в сторону, как раз, БД. Проблема в том, что не могу позволить себе стажерские и джуновские зарплаты (не из-за запросов).
Есть ли какие-то шансы в свободное время изучить mysql/tsql/oracle/, пройти какую-то сертификацию, что угодно, чтоб потом взяли на работу с уровнем мидла? (~70к)
В общем, как-то самому попытаться освоить все.
Звучит, конечно, будто я ебаный дебил.
Аноним 23/07/17 Вск 00:31:09 #382 №1029953 
>>1029936
Почему не хочешь джаву? Джуниорские зарплаты в районе 800-1000$, не сильно ужмешься по деньгам.
Аноним 23/07/17 Вск 00:41:36 #383 №1029958 
>>1029953
Как я понял, на нее нужно убить тонну времени, гораздо больше.
Аноним 23/07/17 Вск 00:59:24 #384 №1029962 
>>1029958
Ну смотри, скажу за оракл, в идеале мидл должен знать многое из того, что обсуждалось в этом треде, прочитать и усвоить пару-тройку книжек специализированных, ну и просто шарить в бд. В принципе думаю за полгода это реально осилить, если хоть какой-то опыт есть в программировании/БД. По БД редко встречаются джуниорские вакансии, но работа для не топ-специалистов есть. Если совсем нулевый, то базовый SQL и теорию можно выучить за месяц. Еще для тебя вариант аналитиком пойти, там вроде как раз скиллы манагера пригодятся, а требования к тех. подготовке ниже, потом пробануть перекатиться в разрабы.
Аноним 23/07/17 Вск 09:48:13 #385 №1030035 
>>1029962
Спасибо за ответ!
Меня зовут в одну контору аналитиком, будет сас (не глоубайт) и вроде sql, но я толком не понял, какой он там и насколько много.
Да я и сам думаю про скил манагера-надо ли?
На моей текущей работе есть архитектор-бывший ораклист. Имеет 3 гражданства, дом в Австралии и прочее. Меня эта стори как-то пиздец смотивировала. Да и тянка только за. Кулстори прохладную рассказал.
Аноним 23/07/17 Вск 10:35:32 #386 №1030048 
>>1029662
Ты уже работаешь или только вкатываешься?
Аноним 23/07/17 Вск 11:58:01 #387 №1030069 
>>1029936
В моем топбанке на самой стартовой позиции без опыта 80к платят.
Так что не отчаивайся.
Другой вопрос в том, нужны ли на работе великовозрастные без опыта. И сможешь ли ты хоть как-то сносно изучить sql самостоятельно, может быть ты там совсем отупел на своей планктон-работе.
Аноним 23/07/17 Вск 12:25:21 #388 №1030076 
>>1030069
Случайно не ОТП?
Аноним 23/07/17 Вск 12:42:45 #389 №1030083 
>>1030076
>56 в рейтинге
>топбанк
Нет.
Аноним 23/07/17 Вск 13:08:05 #390 №1030085 
Вопрос к ораклистам, что можно и нужно почитать по использованию хинтов в запросах и про распараллеливание выполнения?
Аноним 23/07/17 Вск 15:28:48 #391 №1030131 
>>1030069
Ну мне 24, но я думаю, что уже довольно взрослый, блэдь.
Ну вот я за 2 дня прорешал первые 30 задач на sql-ex, усвоил теорию реляционных бд, отношений, нормальнх форм и прочее-вроде ничего сложного. Но это я хз, показетель ли.
Спасибо и тебе за ответ
Аноним 23/07/17 Вск 16:09:22 #392 №1030150 
>>1030131
Мне 27, сейчас пытаюсь вкатится в банки, до этого три года опыта по БД в шаражках, так что не вижу каких-то проблем возрастных у тебя. Реляционные БД, имхо, это не тема для молодых шутливых, большие деньги поднимают престарелые дяди с богатым опытом. Проекты в основном по поддержке и вряд ли в ближайшем времени свернутся, т.к. корпоративные системы очень неповоротливы - нужно очень захотеть и постараться, чтобы перескочит огромной ИС на другой стек технологий или вендора.
Аноним 23/07/17 Вск 17:36:51 #393 №1030193 
>>1030150
Как вкатываешься? Ходил уже на собеседования куда-нибудь? Сколько денег хочешь?
Аноним 23/07/17 Вск 20:28:17 #394 №1030256 
>>1030069
банк не скажешь?
Аноним 23/07/17 Вск 20:34:16 #395 №1030261 
>>1030256
Ну нет, деанон же, вы что.
Аноним 23/07/17 Вск 20:42:47 #396 №1030268 
>>1030261
Лол, ну а какие-то ключевые слова в вакании тоже? Кроме "sql"
Аноним 23/07/17 Вск 21:27:45 #397 №1030300 
>>1030268
Целеустремленность и стрессоустойчивость, лол? Я не помню свою вакансию.
Аноним 24/07/17 Пнд 02:26:11 #398 №1030387 
kek.PNG
кек
Аноним 24/07/17 Пнд 02:31:12 #399 №1030388 
>>1030193
выше писал по треду, тот, кому помогли с аналитическими функциями. Хочу сотку, лол, но похоже не стою пока
Аноним 24/07/17 Пнд 13:33:28 #400 №1030540 
7 издание Дейта сильно хуже 8го? Нашел на Авито за копейки, думаю взять.
Аноним 24/07/17 Пнд 14:15:34 #401 №1030569 
Здравствуйте, ораклисты.
Order sublings by делает сортировку в иерархическом запросе, свою на каждом уровне.
Я этого не знал, а теперь знаю. И вы тоже знаете, даже если не знали.
Аноним 24/07/17 Пнд 14:16:24 #402 №1030570 
>>1030569
>siblings
Прошу прощения.
Аноним 24/07/17 Пнд 16:05:34 #403 №1030631 
Прошу совета, двач .Девушка 17 еарс олд. Делаю робота ,встал вопрос с сайтом ,БД . На сайт идет трансляция с вебки и осуществляется управление .Все этапы
выполнены, встала в ступор,кто расскажет устройство БД и работу с ними,конкретнее решаю вопрос связи кнопок и gpio портов на малинке для управления двигателями .
Работаю с raspberry pi . хелп
Телега @kkkkkkkkate или скайп ,пишите , буду рада помощи
Аноним 24/07/17 Пнд 16:11:09 #404 №1030636 
123.jpg
Прошу совета, двач .Девушка 17 еарс олд. Делаю робота ,встал вопрос с сайтом ,БД . На сайт идет трансляция с вебки и осуществляется управление .Все этапы
выполнены, встала в ступор,кто расскажет устройство БД и работу с ними,конкретнее решаю вопрос связи кнопок и gpio портов на малинке для управления двигателями .
Работаю с raspberry pi . хелп
Телега @kkkkkkkkate или скайп ,пишите , буду рада помощи
Аноним 24/07/17 Пнд 16:15:32 #405 №1030639 
>>1030636
>>1030631
Пожалуйста просто умри
Аноним 24/07/17 Пнд 16:31:06 #406 №1030649 
>>1030639
большого ума ответ
Аноним 24/07/17 Пнд 16:32:47 #407 №1030652 
>>1030636
Какая же ты тупорылая. Нахуй тебе это программирование, иди лучше борща мне свари.
Аноним 24/07/17 Пнд 17:23:32 #408 №1030687 
>>1030652
повторяюсь,не можешь сказать ничего поумнее, иди на тред для дрочеров,там твой уровень развития. Если ты умнее меня ,как ты и думаешь,то напиши хоть что-нибудь или много слов непонятных ? Могу попроще
Аноним 24/07/17 Пнд 18:01:51 #409 №1030729 
>>1030636
Если кратко, то тебе там не нужна бд.
Аноним 24/07/17 Пнд 18:47:12 #410 №1030759 
>>1030636
толсто
Аноним 24/07/17 Пнд 19:27:15 #411 №1030775 
>>1030729
а если подробнее
Аноним 24/07/17 Пнд 20:08:40 #412 №1030795 
>>1030775
А если подробнее иди на хуй из моего треда.
Аноним 24/07/17 Пнд 22:27:57 #413 №1030898 
>>1030775
Если подробнее, то можешь спросить в ардуино-треде в ra.
Не стоит начинать с того, что ты тянучка и тебе 17 лет, а потом сверху кидать краткое описание своего проекта, вместо самой проблемы, которую не можешь решить.
Хотя, тебе наверняка нравятся такие тёплые приёмы.
Аноним 25/07/17 Втр 15:20:52 #414 №1031236 
Я пишу запросы не рукой, я пишу их сердцем. Ибо тот, кто пишет запросы рукой, забыл лицо своего начальника.
Аноним 25/07/17 Втр 19:31:12 #415 №1031478 
Возможно ли в таблице MySql хранить дату, которая бы состояла из месяца и года? Если возможно, то как?
Аноним 25/07/17 Втр 19:33:29 #416 №1031481 
>>1031478
обрезать до месяца дату и хранить первый день месяца?
Аноним 25/07/17 Втр 19:36:23 #417 №1031486 
>>1031481
Вообще обрезать без дней, например, май 20017 года хранить в таком виде: 05.2017
Аноним 25/07/17 Втр 19:37:14 #418 №1031488 
>>1031486
Вообще без дней, например, май 2017 года хранить в виде: 05.2017
fix
Аноним 25/07/17 Втр 19:48:52 #419 №1031494 
>>1031488
в связи с чем такая необходимость?
Аноним 25/07/17 Втр 20:22:45 #420 №1031539 
>>1031494
В связи с тем, что нет необходимости в днях. Как посредством программы, по средством которой данные через действия пользователя попадают в таблицу бд, я могу добавлять необходимое количество дней, но, предполагая, что существует возможность хранить дату без дней по средствам MySql, решил уточнить, прежде чем реализовывать необходимое для добавления даты. Если бы такая возможность была в mysql, то она бы уменьшила количество работы будущей программы и время на реализацию такой программы.
Аноним 25/07/17 Втр 20:40:09 #421 №1031570 
>>1031539
Тебе говорили, что ты очень косноязычно пишешь? Нихуя не понял. Канцелярит + бессвязность, жуткое сочетание.
Аноним 25/07/17 Втр 20:48:10 #422 №1031581 
>>1031570
двачую
>>1031539
можно приводить месяц и год, которые выбирает пользователь, к формату 01.mm.yyyy и хранить как обычную дату
Аноним 26/07/17 Срд 01:06:26 #423 №1031752 
>>1031478
Mysql предлагает хранить для твоего случая 00 в качестве дней в типе Date сам не пробовал, это из мануалов, как '2017-07-00', '2016-08-00', а получать их обратно ты сможешь с помощью функций YEAR(), DATE(), DATE_FORMAT(); при этом вся функциональность типа Date сохраняется. Попробуй и отпишись, плз.
Аноним 26/07/17 Срд 06:43:15 #424 №1031792 
Безымянный.png
>>1031752
Да, это работает. Спасибо.
Аноним 26/07/17 Срд 10:39:08 #425 №1031850 
Как называются IDE для работы с базами данных? А то у меня с опенсервером идет в комплекте только phpmyadmin и я бы хотел его заменить. Что посоветуете?
Аноним 26/07/17 Срд 11:12:16 #426 №1031869 
Нужны ли за рубежом базовики? Сколько платят?
Аноним 26/07/17 Срд 11:19:33 #427 №1031871 
>>1031792
Ага, велкам!
Аноним 26/07/17 Срд 11:25:41 #428 №1031874 
>>1031752
Не DATE(), a MONTH(), конечно же, описАлся
>>1031792
sageАноним 26/07/17 Срд 11:48:51 #429 №1031880 
Всё по клавишам стучите, программисты мамкины? В лагеря трудовые вас всех сослать надо нахуй, тунеядцы!
Аноним 26/07/17 Срд 13:18:06 #430 №1031927 
>>1031869
Нужны, знакомый недавно скидывал:
"MUST HAVE: Oracle DB with Oracle RAC and Data Guard, Performance Tuning
ищут админа
60-65 К в год, гросс"
Аноним 26/07/17 Срд 13:56:39 #431 №1031951 
d72b17d75c4224fc83d9473859fbe336.jpg
Вопрос в целом о проектировании приложений или систем, использующих слой БД не только для хранения данных, но и для ИХ обработки. Есть общий подход к проектированию с разбиением на звенья: двузвенные и трехзвенные. Как определить, какая модель больше подходит и как распределить функциональность между слоями?
Как, не принимая во внимание 2х или 3х звенность, грамотно спроектировать саму БД и функциональность, в ней заключенную. Например, нужно ли писать get и set методы в самой БД для каждой сущности хранимой в БД? Как наладить взаимодействие между сущностями? Какие есть шаблоны и какие нужно обязательно знать? (по аналогии с шаблонами проектирования для джавистов)
Если не лень, опишите плс как бы вы подошли к проектированию ИС, которая принимает заявки с левого сервера по почте например, несколько пользователей могут через интерфейс их обрабатывать, далее заявки передаются на другой сервер. Мне это нужно, не для собеседования или начальника, а просто для понимания как с высоты смотреть на разработку. Ну или накидайте литературы по теме, рекомендовали "Совершенный код", но там скорее пособие для кодеров, а не для архитекторов.
Аноним 26/07/17 Срд 14:35:58 #432 №1031980 
.png
Норм?
Аноним 26/07/17 Срд 14:54:01 #433 №1031991 
.gif
А ну быстро пояснили мне, как мигрировать на БД? Я вот насоздавал sql текстовых файлов, которые весят десятки мегабайт. Но даже самые мелкие из них импортируются по 10 минут на локалхосте. Как делать, чтобы не ждать столько?
Аноним 26/07/17 Срд 15:18:50 #434 №1032009 
>>1031880
Ща тебе Путин цифровой экономики так навернёт за обе щёки, сам по лагерям пойдёшь несмешно мда
Аноним 26/07/17 Срд 15:30:40 #435 №1032017 
>>1031991
копировать бд, таблицы в raw формате.
sageАноним 26/07/17 Срд 15:32:35 #436 №1032018 
>>1032009
Стучать в офисе по клавишам — это не труд, а хуйня полная. И уж точно это не стоит 100К+. Это просто возмутительно. За такое надо сажать в тюрьму.
Аноним 26/07/17 Срд 15:33:16 #437 №1032020 
>>1032017
Блядь, КАК?
Аноним 26/07/17 Срд 16:14:28 #438 №1032045 
>>1032020
какая у тебя БД?
Аноним 26/07/17 Срд 16:16:50 #439 №1032048 
>>1032045
sqlite
Аноним 26/07/17 Срд 16:35:01 #440 №1032061 
>>1032048
>>1031991
кажется проблема в том, что ты как бы делаешь поштучный инсерт, общий прогресс которого в фейсе отображается. Попробуй сделать выгрузку в csv и импортировать способом, описанным здесь:
https://www.sqlite.org/cvstrac/wiki?p=ImportingFiles
Аноним 26/07/17 Срд 16:38:56 #441 №1032065 
>>1032018
Что поделать, жизнь жестока.
Аноним 26/07/17 Срд 16:48:56 #442 №1032076 
>>1032048
sqlite это же просто один файл, копируй его целиком, если надо.

Ну а всяких модных master-slave репликаций в sqlite просто не будет по определению, она для небольших приложений.
Аноним 26/07/17 Срд 16:49:25 #443 №1032078 
>>1032018
Ти тралл
Аноним 26/07/17 Срд 17:25:32 #444 №1032110 
>>1032018
Кормлю.
Деньги платят за скилл и уровень ответственности.
Какой скилл у дворника, какая у него ответственность? Нахуя ему больше платить?
Физический труд не стоит ничего. Стучание по клавишам - верхушка айсберга.
Аноним 26/07/17 Срд 18:38:42 #445 №1032147 
.png
Чет нихуя не пойму, локальный запрос занимает столько времени, хотя в самой большой табличке gloss всего-лишь 600к строк. Подобные запросы на сайте вроде этого http://jisho.org/search/school занимают милисекунды. Что я делаю не так?
Аноним 26/07/17 Срд 19:00:00 #446 №1032155 
Сап, аноны. Лень пока проверять опытным путем, спрошу заранее - на каких объемах таблиц (количество записей) mysql начинает тормозить на выборках?
Аноним 26/07/17 Срд 19:06:43 #447 №1032157 
>>1032147
Ну хуля, индексов небось нет, нихуя нет.
И select * возвращает все столбцы всех заджойненных таблиц, что тоже может тормозить работу на говномашине, если столбцов дохуя
Аноним 26/07/17 Срд 19:12:33 #448 №1032160 
.png
.png
>>1032157
Индексы есть, всё прекрасно работает включая select * на sqlite, но дико тормозит на mysql. Что может быть не так?
Аноним 26/07/17 Срд 19:16:20 #449 №1032163 
>>1032157
>если столбцов дохуя
Алсо, если выбирать пару столбцов, то нихуя не меняется.
Аноним 26/07/17 Срд 19:18:15 #450 №1032164 
IMG20170726191550.jpg
Смотрите, что на Авито урвал за 300р.
Вы мне не ответили, сильно ли 7 издание хуже 8, узнаю опытным путем.
Аноним 26/07/17 Срд 19:18:37 #451 №1032166 
>>1032157
Вот еще пара тестов. Первая пикча sqlite, вторая mysql.
Аноним 26/07/17 Срд 19:19:40 #452 №1032167 
.png
.png
.png
>>1032166
Ну епт, отклеилось. Список индексов по большой табличке.
Аноним 26/07/17 Срд 19:46:42 #453 №1032187 
>>1032167
>>1032166
Попробуй вместо where написать and. Если не проканает, я отказываюсь играть в вангу.
Аноним 26/07/17 Срд 20:00:10 #454 №1032199 
>>1032187
Да, кстати, мне совершенно непонятно, почему ты делаешь left join таблицы, но при этом накладываешь условия на ее значения? Почему не inner в этой ситуации?
Аноним 26/07/17 Срд 20:02:37 #455 №1032201 
.png
>>1032199
Вот почему.

>>1032187
Попробуй через несколько часов, отпишусь.
Аноним 26/07/17 Срд 20:03:08 #456 №1032202 
>>1032199
Делай для двух последних таблиц inner join, я скозал. Смысл left join'a, если ты потом в части where все равно отсеиваешь незаджойненные значения? И очень плохо, знаешь ли, не понимать то, что ты пишешь. Твою проблему с производительностью я вряд ли решу, но могу авторитетно заявить, что ты бездарь и говнодел. Тьфу на тебя.
Аноним 26/07/17 Срд 20:03:28 #457 №1032203 
>>1032201
>Попробую
Фикс
Аноним 26/07/17 Срд 20:04:42 #458 №1032205 
.png
>>1032202
>ты бездарь и говнодел
>на тебя
А теперь давай снова, на того, кто писал официальную документацию.
Аноним 26/07/17 Срд 20:08:57 #459 №1032209 
>>1032205
Да, долбоебина, в селекте на скрине условие в части where накладывается на основную таблицу. А ты накладываешь условие на таблицу, присоединенную через двойной лефт джойн.
И что я должен был увидеть из твоего скрина? Автор осмысленно использует left join, а ты лезешь ко мне с аргументами уровня ВОТ ТУТ ТАК, когда на самом деле нихуя не так.
В дальнейшей дискуссии смысла не вижу.
Аноним 26/07/17 Срд 20:23:30 #460 №1032216 
>>1032209
Тебе стоит проверить голову у врача, тут читается явный психоз. Щас бы ньюфага обзывать бездарем и долбоебом в разделе об изучении программирования.
Аноним 26/07/17 Срд 20:26:06 #461 №1032218 
>>1032216
Найс съехал, просто найс.
Сначала пытаться доказать мне, что я неправ, а потом говорить Я НЬЮФАГ.
Какие психозы? Я ЧСВ и ненавижу людей, но в остальном у меня все в порядке.
Аноним 27/07/17 Чтв 02:17:22 #462 №1032350 
.png
Если у кого будет похожая проблема, то я её решил заменой движка InnoDB на MyISAM и установкой полнотекстового индекса на колонку с кучей текста (https://stackoverflow.com/a/18166954). Время запроса уменишилось в ~10 раз.
Аноним 27/07/17 Чтв 02:21:40 #463 №1032353 
>>1032218
Тот пост не я тебе писал, если что.
Аноним 27/07/17 Чтв 12:10:33 #464 №1032481 
>>1030048
Работал полтора года в мутных конторках, писал хуету на фреймворке. Сейчас съебал в закат на лето в надежде подтянуть знания и попинать хуи с пользой, что бы в цивильное место вкатиться.
Аноним 27/07/17 Чтв 15:38:45 #465 №1032644 
>>1031951
Ты совсем долбаёб, бизнес логику реализовать в бд? Или просто извращенец??
Аноним 27/07/17 Чтв 15:42:31 #466 №1032647 
>>1032644
Обоснуй свою позицию, а я тебе потом посикаю на лицо.
sageАноним 27/07/17 Чтв 15:43:54 #467 №1032649 
>>1032647
Ты уже себе в штаны нассал, даун.
Аноним 27/07/17 Чтв 16:23:41 #468 №1032668 
>>1032644
>БД-тред
>логика в БД = извращенец
туда ли ты зашел
Аноним 27/07/17 Чтв 16:57:44 #469 №1032689 
>>1032644
надеюсь, тебе есть как аргументировать свою позицию по существу, иначе ты просто агрессивный быдлан
Аноним 27/07/17 Чтв 17:12:07 #470 №1032694 
.png
У меня похожая база на эту >>1032201, помогите пожалуйста составить запрос чтобы выбрать Element с айди 1, который будет включать все значения из таблиц, которые соответствуют этому айди. Например, Element это пользователь с айдишником 1, у которого несколько постов в content_one и content_two, где у каждого поста несколько картинок и видео (co_child_one и co_child_two).

Два часа в фотошопе.
Аноним 27/07/17 Чтв 17:27:04 #471 №1032704 
>>1032694
Пацан, а в чем помощь заключается? Вы там совсем охуели все? Ты мне предлагаешь руками за тебя переписать названия таблиц и полей? Это для тебя сложно слишком?
Аноним 27/07/17 Чтв 17:43:42 #472 №1032715 
.png
>>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

Но как сюда добавить остальные ветки? Если просто такими же джойнами, то получается каша. Напиши, пожалуйста, такой запрос.
Аноним 27/07/17 Чтв 18:14:23 #473 №1032742 
>>1032715
И с хуев каша? Джойнишь точно такими же строчками content_two к elements, а co_child_two - к таблице content_one. Какая каша? Нет никакой каши. Ну да, у тебя там один ко многим, записи задвоиться могут, ну а хуле ты хотел? Если тебе нужны все дочерние, соответствующие родительским? Каша, блядь. Это БД ебаный в рот.
Аноним 27/07/17 Чтв 18:18:10 #474 №1032747 
>>1032742
>Джойнишь точно такими же строчками content_two к elements, а co_child_two - к таблице content_one
Как заджойнить именно к нужной таблице? Напиши запрос, пожалуйста, я же три раза уже попросил. Мне так будет проще понять, да и тебе быстрее, не нужно писать сопутствующий текст.
Аноним 27/07/17 Чтв 21:13:37 #475 №1032853 
Аноны, покидайте, пожалуйста, вопросы с собеседований или задания на позицию БД-разраба, сейчас активно их прохожу, желательно Оракл. От себя тоже есть что добавить.
Аноним 27/07/17 Чтв 21:42:15 #476 №1032871 
Сделайте себе шапку уже наконец.
И посоветуйте чего почитать по MySql для начинающего.
Аноним 28/07/17 Птн 01:09:21 #477 №1033012 
>>1032871
Документацию Postgres
Аноним 28/07/17 Птн 07:46:15 #478 №1033058 
>>1032747
Ты совсем, что ли?

>>1032853
Тред полистай, например.
Аноним 28/07/17 Птн 08:06:30 #479 №1033060 
Интересно, у этого треда есть какая-то постоянная аудитория? Вот бы чат в телеге создать, писать селекты и ебаться в жеппы.
Аноним 28/07/17 Птн 10:05:39 #480 №1033097 
>>1032853
Расскажи, куда ходишь, какой опыт, сколько денег хочешь, что спрашивают.
Я рассказывал следующее в этом треде:
>>1021772
>>1017580
Аноним 28/07/17 Птн 10:26:40 #481 №1033115 
>>1033097
Да все тот же чел, который был на собеседовании в банке, побывал еще в одной хорошей конторе, где важна скорость работы кода, т.е. специфика иная нежели в dwh, там сказали, что через недельку дадут ответ, это после тестового задания и очного собеседования за жизнь. Сейчас планируется собеседование в одну из топовых it компаний на позицию ораклиста, подозреваю, что будут шерстить по архитектуре, теории БД и pl/sql. В последнем тестовом задании нужно было сделать запрос топ 10 с группировкой, затем этот же запрос использовать в процедуре, которая получает на вход номер потока и общее число потоков, нужно сделать так, чтобы каждому потоку запрос возвращал только предназначенные для этого потока записи, ну и простое задание на понимание работы цикла, исключений и транзакций.
Аноним 28/07/17 Птн 10:43:00 #482 №1033119 
>>1033115
Какой-то ты крутой.
Мне ещё расти и расти... Рассказывай об успехах, интересно.
Аноним 28/07/17 Птн 10:50:35 #483 №1033121 
>>1033119
на самом деле нет, пробелов куча, просто пытаюсь попасть туда, где требуется знать больше, чем на текущей работе
Аноним 28/07/17 Птн 11:05:02 #484 №1033125 
>>1033115
>>1033119
Под потоками подразумевается абстрактные цифры, например
3 й поток из 4х. Это значит, что функция должна вернуть каждую строку начиная с третьей с шагом. Но задание интересным показалось, по работе с таким не сталкивался
Аноним 28/07/17 Птн 11:08:42 #485 №1033126 
>>1033121
Молодец, стремишься.
А у меня вроде бы все в порядке. Думаю, до осени как минимум на своей работе посижу. А осенью отсрочка от армии будет готова, можно будет снова куда-нибудь сходить. Откликнулся недавно на вакансию со 150к, причем нормально им подходил, но отказали. Расстроился немного. Мб потому что я сразу в отклике написал, что нахожусь далеко от них и не смогу в нормальное время на собеседование приехать, потому что работаю. Лучше бы не писал такого и по телефону обкашливал такие вопросики. Или надо резюме себе поприличнее сделать, а то там как-то мало написано. Отложу до осени, все равно сейчас не особо хочется работу менять
Аноним 28/07/17 Птн 11:15:35 #486 №1033131 
>>1033126
Тебе еще нет 27, если вопрос с армией стоит?
Чем занимаешься сейчас по работе?
Аноним 28/07/17 Птн 11:16:16 #487 №1033132 
>>1033131
Мне 23, магистратуру закончил.
Отчетики на Oracle.
Аноним 28/07/17 Птн 11:26:49 #488 №1033138 
>>1033132
ты разбираешься например в pl/sql, как его оптимизировать или какие бывают индексы и когда какой применять, оптимизировать запросы применять хинты и т.п. Я например в 23 этого не знал всего этого. Спрашиваю потому, что пытаюсь понять, что на рынке делается вообще, кек.
Аноним 28/07/17 Птн 11:43:17 #489 №1033144 
>>1033138
Разбираюсь.
А за рыночек я тебе не скажу. Кем ты хочешь быть? Худшим мусором-недоаналитиком-отчетником, как я? Просто умей писать запросы, имей в этом опыт и знай всякие приколюхи. Очень сомневаюсь, что на аналогичной работе тебе нужно будет знать, как работает индекс по типу B-дерева.
Дальше идут всякие боги, разработчики ETL, разработчики DWH, архитекторы, DBA. Какие к ним требования, я не знаю.
Аноним 28/07/17 Птн 11:55:11 #490 №1033149 
>>1033144
Можно предположить, что если для написания отчетиков нужно понимать как работает b-tree индекс, то шансы на дальнейшее мое трудоустройство на место повыше резко падают, лол. ты не топ-ораклист-120к случаем?
Аноним 28/07/17 Птн 12:10:32 #491 №1033158 
>>1033149
Я.
Аноним 28/07/17 Птн 12:41:15 #492 №1033186 
>>1033158
Как думаешь для чего листы в B-дереве индекса
ссылаются на каждый следующий?Пока в голову ничего толком не пришло. Может для запросов с условием вида
id > 500, чтобы сразу из индекса выбирать значения, найдя только нижнюю границу?
Аноним 28/07/17 Птн 12:48:00 #493 №1033193 
>>1033186
Ну падажжи.
Чем тебя в принципе концепция б-дерева смущает и как бы ты сделал?
У тебя есть запрос и ты перескакиваешь с ветки на ветку. Таким образом, вместо полного сканирования таблицы ты скачешь по веткам. Если у тебя запрос вида x > 100, то ты идёшь на ветку, где х > 100 и не сканируешь ветки дальше. Если у тебя запрос х = 100, то ты идёшь по веткам до самого конца. Я это как-то так вижу.
Аноним 28/07/17 Птн 12:50:26 #494 №1033194 
>>1033193
Ну то есть ты на каждом шагу отсекаешь заведомо ненужные значения и это быстрее полного сканирования.
Аноним 28/07/17 Птн 12:55:56 #495 №1033196 
>>1033193
Не, я против концепции ничего не имею, понятно, что искать по дереву, это суть бинарный поиск и это круто. Мне было непонятно почему листы помимо связи с узлами верхнего уровня еще и связаны друг с другом,
т.е. например есть лист в котором занчения 1..5, ссылается на лист с значениями 6..10 и т.д. Вот у Кайта только что прочитал, что так и есть. Например для запроса с условием
where x between 20 and 30, будет найден лист, где есть ключ со значением 20, а дальше идет горизонтальный поиск, где просто, листы просматриваются один за другим пока до 30 не дойдет, это и есть index_range_scan. Т.е. по дереву пройти нужно только 1 раз, дальше по горизонтали.
Аноним 28/07/17 Птн 13:00:23 #496 №1033197 
>>1033196
Наверное, это для ситуации, когда у тебя листы 11..20 и 21..30, а тебе надо between 15 and 25. Если бы горизонтальной связи между листами не было, ты бы дважды бежал по дереву за каждым куском, а так ты находишь первый лист, а второй от него по горизонтали.
Аноним 28/07/17 Птн 13:01:34 #497 №1033200 
>>1033197
Кек, ну я короче пересказал то, что у тебя написано. Посыл был в том, что это должно быть быстрее, чем несколько раз ходить по дереву.
Аноним 28/07/17 Птн 13:08:39 #498 №1033204 
>>1033200
>>1033194
Правда не совсем понятно, зачем об этом иметь представление на таком уровне, если задача писать отчеты или процедуры простые.
Аноним 28/07/17 Птн 13:10:30 #499 №1033205 
>>1033204
Так я ж тебе про то и говорил изначально, что от меня этого никто не спрашивал и не требовал, это я чисто для себя дрочу, потому что более осмысленную работу, плотнее связанную с базами данных
Аноним 28/07/17 Птн 13:29:09 #500 №1033214 
>>1033205
Тогда еще один вопрос по теме, если интересно. Если реверсивный индекс позволяет сократить издержки на инсерт, то почему бы не использовать его повсеместно для индексации ключа, который генерится по последовательности?. Т.е. например у нас есть таблицы, в которую ежесекундно выполняется по 100 инсертовЮ, при этом первичный ключ увеличивается на 1 для каждой следующей строки.
Аноним 28/07/17 Птн 13:41:51 #501 №1033220 
Screenshot2017-07-28-13-37-39-106com.android.chrome.png
>>1033214
Не знаю, не разбираюсь в этом.
Почитал, навскидку - есть подозрение, что на всех прочих операциях этот индекс будет работать работать медленнее.
Чувак на скрине пишет, что данные будут разбросаны по диску. Это значит, что потребуется больше времени для селекта к этой таблице, джойна этой таблицы и тд.
Так что в моем понимании такой индекс подходит только таблице, в которую часто что-то инсертят, но при этом редко апдейтят и вообще используют.
Аноним 28/07/17 Птн 13:46:14 #502 №1033223 
>>1033220
Возможно, это подойдёт для какой-нибудь таблицы логов, в которой всё фиксируют, но лезут в нее раз в год, когда что-нибудь наебнется.
Вешать такой индекс на регулярно используемую таблицу я бы побоялся.
Выиграешь на инсертах, но проебешь на всем остальном.
Аноним 28/07/17 Птн 14:28:29 #503 №1033235 
>>1033220
Что за чтиво на пикрелейтеде?
Аноним 28/07/17 Птн 14:29:11 #504 №1033236 
>>1033235
Рандом статья из гугла.
Аноним 28/07/17 Птн 15:58:40 #505 №1033291 
Итак, коллеги. Вечером планирую сделать перекат, может быть напишу что-нибудь дельное в шапку, но только по ораклу, остальное как-нибудь сами, мб напишете в тред и в следующий перекат сделаем
Аноним 28/07/17 Птн 16:33:52 #506 №1033314 
>>1033291
Можешь написать, что нуфагам в треде не рады, на вопросы не отвечают, с просьбами о помощи не помогают, отправляют нахуй и в гугл.
Аноним 28/07/17 Птн 16:38:17 #507 №1033319 
>>1033314
Покажи свои посты, обиженка.
Помощь - это ответить на вопрос и подсказать. Писать за тебя запросы - это не помощь и я на это не подписывался.
Аноним 28/07/17 Птн 16:50:42 #508 №1033329 
>>1033319
->
>>1032871
>>1032747
>>1031951
>>1032160
>>1032155
>>1031850
>>1030540
>>1030085

Дальше лень листать. Тут не только мои посты, конечно же. По факту в треде отвечают по существу на 30% вопросов, остальные либо игнорируются, либо посылают в гугл. Может просто здесь сидит один вахтер, который портит воздух и создает такое впечатление, но это факт. Тред по пхп просто небо и земля.
Аноним 28/07/17 Птн 17:08:49 #509 №1033336 
>>1033329
Ура, ни одного вопроса без ответа по ораклу, видите какой я охуенный.
На вопрос про хинты не стал отвечать, потому что это был бы дефолтный посыл в гугол, я и сам других источников не знаю и по этому вопросу предпочитаю гугл.

искренне ваш,
топ-ораклист-120к


Алсо, с вот этой неблагодарной чмохи я сгорел и горю до сих пор >>1032747
Я разжевываю, пишу, что и как нужно делать, а ему (может, тебе?) даже прочитать впадлу, он требует, чтобы я писал за него запрос. Я уже сказал, что и через какие поля джойнить, это же так сложно написать джойн таблицы, когда тебе уже сказали, что джойнить и через что. Почему ты не можешь САМ написать свой вопрос и спросить, ДРУЗЬЯ, ПРАВИЛЬНО ЛИ Я НАПИСАЛ ЭТОТ ЗАПРОС? Почему вы считаете, что другие должны делать за вас абсолютно всё?
Да, у меня нет никакого желания помогать ТАКИМ ньюфагам, и меньше всего на свете я хочу, чтобы вы научились писать запросы, устроились говноаналитиками в свои говноконторы и по каждой проблеме писали в этот тред. Без малейшего уважения к чужому времени и труду.

Спасибо за дизмораль, у меня снова нет желания отвечать кому-либо в этом треде. И перекат я вам делать не буду.
Аноним 28/07/17 Птн 17:56:18 #510 №1033397 
>>1033220
Спасибо, пишут везде, что условие с диапазоном работать не будет, но не ясно, почему не будет работать такое условие where reverse(x) > 15.
Аноним 28/07/17 Птн 17:58:37 #511 №1033400 
Можно ли в Postgres назначить срок хранения данных в таблице? Хочу внести данные в таблицу и удалить по истечению 36 часов.
Аноним 28/07/17 Птн 18:21:02 #512 №1033430 
>>1033400
Не слышал о таком. Мне кажется только джобом.
Аноним 28/07/17 Птн 18:39:27 #513 №1033462 
>>1015789 (OP)
Привет, я только начал изучать SQL, поэтому не бейте пожалуйста.
Я скачал 2 книжки:
-Ицик Бен-Ган - MS SQL
-Секреты oracle sql автора не помню, а искать не вижу смысла
В первой книжке 'inner join' пишется как просто "join", во второй написано, что "inner join" стандарт именно "oracle ANSI". Но при этом на всяких форумах пишут, что inner join и join это одно и тоже и для обоих СУБД.
Аноним 28/07/17 Птн 18:40:50 #514 №1033463 
>>1033462
Забыл написать вопрос.
Так ли это?Если нет то в чем отличие?
Аноним 28/07/17 Птн 18:46:34 #515 №1033472 
И еще один вопрос.
https://www.youtube.com/watch?v=EHvzvwAv7RU&t=1s - тут мужик говорит, что join быстрее чем просто where это мне кажется более правильным А в книге написано, что join лучше только потому, что он помогает избежать перекрёстного декартового произведения.
Аноним 28/07/17 Птн 19:04:41 #516 №1033494 
>>1033462
Синонимы. Пиши как хочешь.
Точно так же, как left join синоним left outer join.

>>1033472
Не быстрее.
Пиши как хочешь.
Предпочитаю писать join, потому что это тупо нагляднее. И пишешь рядом с таблицей не только условие связки, но и ограничения, накладываемые конкретно на эту таблицу.
Аноним 28/07/17 Птн 19:09:40 #517 №1033498 
>>1033462
>>1033463
>>1033472
Спасибо, если ты тот топ ораклист, то не стоит зацикливаться на каких-то уёбков, их можно просто игнорировать и они сами уйдут в свой пхп тред. Добра тебе.
Аноним 29/07/17 Суб 14:16:09 #518 №1033859 
Посаны, предлагаю все же запилить перекат, если топ-ораклист-кун бугуртит и не будет его делать.
Аноним 29/07/17 Суб 14:21:39 #519 №1033866 
Предлагайте, что нужно добавить в шапку, от себя могу порекомендовать парочку книг по ораклу
Аноним 29/07/17 Суб 22:32:41 #520 №1034160 
Двач, есть алгоритм, который записывает определённые данные, которые выбирает пользователь в процессе взаимодействия с элементами страницы. Эти данные я записываю в базу Postgre в таблицу (id SERIAL PRIMARY KEY, data JSONB NOT NULL). Но теперь я хочу написать админку со статистикой, чтобы можно было составить графики и секции для отображения часто выбираемых данных. И есть два стула:

1) Либо я перебираю таблицу и все поля data и достаю данные в виде JSON из таблицы, и уже на клиенте их сортирую/составляю графики/etc.
2) Либо я делаю ещё одну таблицу, в которой будут лежать те же данные, но только кладу в неё уже не JSON, а распихиваю данные по разным полям, чтобы потом можно было делать выборку прямо из таблицы.

Что скажете? Мне больше нравится идея с одной таблицей, но не пожалею ли я потом?
Перекат Аноним 30/07/17 Вск 10:51:31 #521 №1034304 
ПЕРЕКАТ ПОСОНЫ
https://2ch.hk/pr/res/1034303.html

ПЕРЕКАТ ПОСОНЫ
https://2ch.hk/pr/res/1034303.html

ПЕРЕКАТ ПОСОНЫ
https://2ch.hk/pr/res/1034303.html
Аноним 30/07/17 Вск 16:18:39 #522 №1034398 
>>1029662
Дошёл до 58 уровня и забросил.
comments powered by Disqus

Отзывы и предложения