И снова это неиндексированный баз данных тред!Тут мы решаем ультраважные вопросы о том, как правильно хранить динамические атрибуты сущностей: в полях или в строках,Рассказываем, как работаем аналитиками и мечтаем стать разработчиками,Строим АНАЛИТИЧЕСКИЕ отчеты в экселе, выгружая по миллиону строк, а потом фильтруя,Дружно не понимаем, ЗОЧЕМ ЖИ НУЖИН ОЛАП, ЕСЛИ И ТАК ВСЕ РАБОТАЕТ ЗАЕБИСЯ,Ищем ошибки в аббривиатурах MDX DMX XMLA,Доебываемся до эс - ку - элей наших же потенциальных конкурентов>Select id from tbl_table_with_id where id = (select max(id) from tbl_table_with_id)>ЧТО НЕ ТАК-ТО У МЕНЯ?Удивляемся, как за знания, приобретаемые за 4 месяца на sql-ex, могут платить по 100к, и бугуртим, что ниасилили и 100к не получаем.А так же:Постгре или постгрес?Май эс ку эль или мускуль?Эс ку эль или сиквел?В общем, это очередной баз данных тред, поехали!Награда светит не посмертною медалью, отнюдьЭто храм старого формата, так предали огнюИ скоптили небо старики, что слышны с Невской рекиМы видим дым от костра - "Да здравствуют базовики!" #sql #бд #базы данных
Почему у вас нет гайдо-шапки? Хочу подтянуть теорию, что читать?
>>1087057Дейта читай, если по-серьезному.
Посоветуйте где лучше хранить память для нейроночки, какая БД лучше, там SQL или же текстовый документ, а мб и вовсе в формате json?
https://arhivach.org/thread/305983/Предыдущий.
ебаные функции какого хуя нихуя не работает блядь
>>1087127Ты бы хоть вопрос задал... А тебе бы кто-нибудь гениальный помог. Я, например
>>1087300да я уже разобралсяпросто язык ущербный пездос
>>1086747 (OP)Где вкатится?Что читать
>>1086747 (OP)В смысле ПРОСТО ПЕРЕКАТИЛ, ирод?! А придумать тупую пикчу и дибильное описание для Оп-топика? >>1087068смотря, какие данные. если у тебя места жопой жуй, можешь в джей соне хранить, да, однако, данные зачастую используются еще какими-то системами, так что скорее всего, они уже где-то собраны(в бд), а тебе их просто нужно грамотно представить и запихнуть в свою нейросеть на пайтонеВопрос, честно говоря, ни о чем. Это как >на каком языке программировать?
>>1087370иди в sqlzoo, потом порешай немного sqlexпотом если хочешь работать с хранилищами данных, врубись в основную терминологию этой хуйни, ну там измерения и факты всякиеесли научишься юзать ETL-инструмент, или что-то для аналитики вроде Business Objects или хз че ещё есть, можешь больше получать
Да как так-то блядьПочему у меня запрос отрабатывает быстро, а когда я пишу инсерт с этим запросом - виснетЕбаный ораклОн чё хинты выключает или чтоУхххх сука бля
>>1089116На базе, с которой я беру данные, все ок. И селект и инсерт.Я прописываю в свой запрос driving_siteСелект работает так же быстро, как на основной базе, а инсерт виситЧто за хуйня
>>1089118Л О Г И Р О В А Н И ЕОГИРОВАНИЕ
>>1089121А зачем ты это высрал? Я не понял с одного слова, поясни
>>1089118Что значит "висит", ебаный ты в рот?Висит, в смысле, вообще ни одной строки не инсертит? Если да, у меня для тебя плохие новостиблокировкиЕсли нет, и просто инсертится ооооооочень медленно, у меня для тебя плохие новостидиски скорость фрагментация кококо
Народ, такой вопрос.Только начинаю прошаривать бд, для своего личного проекта. Имеет ли смысл писать сервер на с++, и из него через сторонние библиотеки делать запросы к sql-серверуpostgresql в частности?Смысл такой, что клиент на питоне шлет запросы, с++ сервер принимает, вытаскивает какие-то данные из БД, прогоняет их через питоний скрипт на своей стороне(какой - зависит от пользователя, их типо много) и возвращает ответ клиенту. Или все это можно сделать как-то на самом SQL сервере? Я понимаю что наверно нет, но меня словосочетание sql сервер смутило, типо из с++ сервера обращаться в другой сервер... хз Что скажете? Остальное все уже продумано и частично написано.inb4: Не ньюфаг, с++ знаю относительно хорошо, python тоже неплохо.
>>1089673>Что скажете? 1) Том Кайт — «Oracle для профессионалов»2) К. МакДональд, Х. Кац, К. Бек, Д. Кальман, Д. Нокс — «Oracle PL/SQL для профессионалов»
>>1089673>клиент на питонене нужен, эта задача решается средствами веб интерфейсаесли все-таки нужен, то для него не нужен сервер на c++, эта задача решается прямым обращением к базе/sql_серверу из клиентаежели таки нужно и то и другое, то необязательно писать сервер на c++, можешь писать его на том же питоне>из с++ сервера обращаться в другой сервермировая практика, иначе при наличии овер9к клиентов с исходящими 100500 запросов/сек. к базе от каждого, твой сервер просто ЗДОХНЕТ, ЯСКОЗАЛ
>>1089688Да мне собственно сама sql мне не особо нужна, там вся база это 2 таблицы с 4 столбцами каждая, но на книги обязательно гляну
>>1089896Понял, спасибо. На счет сервера на питоне подумаю, все же привычнее на плюсах, да и наработки есть ну и распространненное мнение/заблуждение что плюсы априори быстре, а собственно ради скорости отдельный сервер и затевался
Сап, аноны, пришел к вам за помощью. В универе дали задание - придумать 1) 3 ненормализованных таблицы, 2) 3 таблицы в 1НФ с аномалиями, 3) три таблицы во 2НФ с аномалиями и 4) 3 таблицы без аномалий. Если с 1, 2 и 4 все понятно, то вот с 3 я нихуя не понимаю. Какие аномалии могут быть в 2НФ, если эти самые аномалии 2НФ и фиксятся? >Такие неприятные явления называются аномалиями схемы отношения или коллизиями. Эти недостатки реляционных отношений устраняются путем нормализации по 2НФ.Уже час голову ломаю, ничего придумать не могу.
>>1090069Аутист плес, зачем вообще на ИТ пошёл? По специальности собираешься работать?
>>1090069Чего? Я же не на проектировщика БД учусь.
>>1090073=>>>1090072
>>1090069Блядь, на Википедии примеры есть
Чет вообще не вдупляю пацаны, есть крч пайплайн функция. Как мне заселектить эту таблицу которую в пайпроу выбрасывает?
>>1090144select * from table(твоя_функция(аргуменнты_к_ней))
Что означает prior в oracle?SELECT employee_id, last_name, manager_id FROM employees CONNECT BY PRIOR employee_id = manager_id;EMPLOYEE_ID LAST_NAME MANAGER_ID----------- ------------------------- ---------- 101 Kochhar 100 108 Greenberg 101 109 Faviet 108 110 Chen 108 111 Sciarra 108 112 Urman 108 113 Popp 108 200 Whalen 101...есть некий работник и мы его соединяем таким образом, что б manager_id следующего по level (иерархии) работника была равна employee_id текущего?А если так:SELECT employee_id, last_name, manager_id FROM employees CONNECT BY employee_id = PRIOR manager_id;Что конкретно означает PRIOR ?
>>1091885*нормальная разметка аутпута
SQLite3 /тред
>>1091885То поле перед которым PRIOR будет считать своим родителем другое поле равенства.habrahabr.ru/post/43955/Хотя как по мне, лучше бы PRIOR ставили перед родителем.
Нубовопрос по jpql.Есть статусы пользователя, 1, 2, 3, и условно еще один, из всех остальных, но не этих трех (4, 5, 6, 7, 8)Я строю такой запрос: ... WHERE e.status IN (1, 2, 3), получается первые три статусавсе 4 имеющиеся - WHERE e.status IN (1, 2, 3, 4, 5, 6, 7, 8 ), но, это как-то не правильно, и получается, надо написатьWHERE e.status IN (1, 2, 3) and e.status NOT IN (1, 2, 3), я прав? Хотя я где-то объебался.
>>1091974Перечитал твой пост три раза и нихуя не понял :/ можешь ещё раз объяснить? Опиши какие строки ты хочешь на выходе получить
>>1092458Есть четыре чекбокса, соответственно статусы 1, 2, 3, а у четвертого чекбокса все остальные. Мне нужно получить запрос, чтобы достать соответствующих пользователей.
>>1091974Прост селект таблицы делаешь без условий.
Либо я даун, либо условие непонятное. 3 пункт я не понял, что делать. Может кто поможет понять, что пытался донести до меня автор?>Месяцу совпадающему с таблицей kek3>Что?1. В зависимости от того, существует ли уже таблица с именем kek1 в БД, создать или удалить и создать.Поля таблицы допускают пустые значения- Data тип дата-время- ID тип целый- TankID тип символьный, длина 10.- Mass плавающий- Vol плавающийПрисвоить значения массе и объему (300 и 150), а TankID равное дате текущего дня месяца.2. Создать функцию Plot с двумя переменными Mass_F и Vol_F.Вычислить значение функции, взяв данные из таблицы kek1.3. Занести вычисленное значение плотности в таблицу kek2 для резервуара TankID совпадающий с TankID из kek1 и месяцу из Date, совпадающему с таблицей kek3. (Связанные поля пишутся одинаково)
Есть ли тян или знатоки женщин в треде?Хочу подарить знакомой, которая занимается ораклом бусы или браслет, как в официальной документации,толковая мысль?
>>1093225Я и второй-то пункт ниасилил. Что функция должна делать то, лол?
>>1093378Она типа вся такая гик/нерд? Если нет то хуже подарка придумать нельзя
Посоветуйте фундаментальную книгу по SQL, которой хватило бы для вкатывания в БД.
Посоны, есть 2 таблицы, А и Б, в них колонки А.а, и Б.б, надо объеденить эти колонки в одну, при этом не добавляя повторяющиеся(то есть если у нас в обоих колонках есть число 2, то не добавлять его, а добавлять только те числа, которые есть только в одной колонке).Пока придумал, что простой метод это объединить две колонки в одну и потом удалить повторяющиеся, но это 2 запроса, как одним это сделать?
>>1093646Хоть бы скинул, что получилось. По условию нифига не понял.
>>1093675Ну вот. Объеденить столбцы A и B и получится столбец D, в котором есть только неповторяющиеся значения.
>>1093701SELECT DISTINCT A.AFROM AUNIONSELECT DISTINCT B.BFROM BMINUS(SELECT DISTINCT A.AFROM AINTERSECTSELECT DISTINCT B.BFROM B);Собственно, это и есть столбец D, а дальше уже что хочешь с ним делай.Если что, я кроме Оракла ничего не знаю, поэтому хз прокатит ли такой скрипт на других платформах
>>1093735Запрос, если быть точнее.
>>1093735>A.A^_^>ВЫБРАТЬ РАЙОН ИЗ А ОБЪЕДИНЕНИЕx_x
>>1093829>>A.A>^_^Он сказал, что >>1093646>есть 2 таблицы, А и Б, в них колонки А.а, и Б.б,>>1093829>>ВЫБРАТЬ РАЙОН ИЗ А ОБЪЕДИНЕНИЕ>x_x И как бы ты их сджоинил, если нет одинаковых столбцов?
Создать запрос для вывода только правильно написанных выражений со скобками (количество открывающих и закрывающих скобок должно быть одинаково, каждой открывающей скобке должна соответствовать закрывающая, первая скобка в выражении не должна быть закрывающей). Примеры неправильных выражений:((((a)g)q)z)(s)((((f)e)w))(h(g(w))))((Есть даже решение, в котором не могу разобраться начиная со вспомогательной таблицы RESULT (14я строка):https://pastebin.com/uYLZYuytесли строка "правильная", то она выводится, в противном случае не выводится ничего или nullПо мотивам этого решения написал своё:https://pastebin.com/iWBYa7z5Но моё плохо тем, что считает правильным такую строку))((потому что я просто считаю количество ) за 1 и ( за -1, а остальное за 0 и складываю, вывожу, если итог 0.А как мне учесть такое )( не могу сообразить. Буду благодарен, если кто напишет комментарий к 1му решению, подскажет мне как улучшить моё или представит работающее своё.
>>1093566Бамп. Вроде, какого-то Дейтела всем советуют, а я нагуглить не могу.
>>1093911>DE_STRING AS( > SELECT STR, SUBSTR(STR,LEVEL,1) SS, ROWNUM RN> FROM STRING> CONNECT BY LEVEL <= LENGTH(STR)),Разбивает на буквы строку.>PARENTHESIS AS( > SELECT STR, SS, ROWNUM R> FROM DE_STRING> WHERE SS IN ('(',')')> ORDER BY RN),Забирает из разбитой строки только скобочки.>DE_PARENTHESIS AS( > SELECT STR, TO_NUMBER(CASE SS WHEN '(' THEN 1 ELSE -1 END) AS SS, R FROM >PARENTHESIS),Заменяет скобочки на цифры.>RESULT AS( > SELECT STR, SS, R, (SELECT SUM(SS) FROM DE_PARENTHESIS WHERE R<=EXT.R) AS >RESULT FROM DE_PARENTHESIS EXT> START WITH R = 1> CONNECT BY PRIOR R = R-1),Кумулятивная сумма чисел скобочек. То есть сначала первая скобка, потом 12, потом 123 и т.д..Потом автор взял за основу 2 условия адекватности выражения.Выражение адекватно, если:1. Сумма чисел скобочек в строке = 0, что очевидно.2. Никакое из значений кумулятивной суммы не меньше 0, что эквивалентно наличию лишней закрывающей скобочки. Можно понять, что из такого выражения уже никак не получить адекватное.
Здравствуйте, ананасы. У меня не хватает мозгов чтобы корректно составить запрос. Суть такова: есть база с CDR-записями Asterisk. Я на нее повесил веб-интерфейс Asterisk-CDR-Viewer-Mod. Он, в принципе, то что мне нужно, но расход средств показывает не совсем в таком виде, в каком нужно. Хотелось бы видеть выборку как на первом пике. Фильтрация направлений звонков производится условиями на втором пике. Поможите составить запрос, аноны.
>>1094860Забыл добавить что стоимость тарифа не хранится в базе, а лежит в CSV-файле. Но на нее внимания можете не обращать, мне хотя бы выборку по направлениям сделать чтобы считалась общее количество секунд по указанному периоду для мобильных, городских и т.д.
>>1094860Так тут можно обычные sql запросы делать? Это бы всё ускорило. Если нет, то можешь в самом скрипте суммировать данные.
Почему возникает такая ошибка?Хочу отобразить повторяющиеся слова в строке.
>>1086747 (OP)Сап аноны! На связи кун энихуйщик (по совместительству - полный ноль в БД) с мухосранска. Ношу подносы с новыми клавиатурами Обслуживаю 25 пекарен в конторке, занимающейся отчасти лабораторными испытаниями. В срочные сроки поставлена задача ввинтить результаты лабораторных испытаний (задним числом есесссна) в базу данных оборудования для испытаний (одно из этих чуд - Хромос ГХ-1000). Собственно вопрос - реально ли?Результат беглого осмотра - из того что называется Базами данных найден лишь файл мелкомягких .mdb с заготовленными заголовками, формулами и прочей хуергой для занесения данных, то есть пользовательских данных в нем нет. А собственно сами результаты вместе с хромотограммами пишутся в отдельные файлы с расширением .stg (которые естественно открываются только прогой идущей к прибору).Исходного кода этого чудо ПО ясен хуй нету. Как быть? ВНИМАНИЕ! Анончик, дорогой! Я знаю ты можешь помочь советом и поэтому, если предложишь 100% рабочий вариант решения моего вопроса, я гарантирую оплату деньгами на ништяки, пивас, пару шлюх и немного кокаина (ну или на пару гантель, штанг и абонементов в тренажерку, если ты больше по ЗОЖу например)! Вопрос жизни, целостности моего ебальника, моей работы и твоих, возможно, очень даже нихуевых выходных, анон!
>>1093991
>>1095053Не знаю, как тебе помочь.Попробуй с этого, может что-нибудь прояснится.http://www.anchem.ru/forum/read.asp?id=21976
>>1095053Если есть ПО Бакса могу подсказать, как что хранится, базы данных там нет, все в бинарных файлах. Наверняка в Хромосе все то же самое. Попробуй посмотреть работает ли их ПО как OLE сервер, можно попробовать дизассемблировать, если c# или джава то шансов понять, что надизассемблируешь больше. Ты конечно тут всем покушать принес, братишка.
>>1095134Хммм. Конвертнуть туды суды в принципе вариант, но там объем адовый. Но спасибо за ссыль, покопаю.
>>1095137> Если есть ПО Бакса могу подсказать, как что хранится, базы данных там нет, все в бинарных файлах. Наверняка в Хромосе все то же самое. Попробуй посмотреть работает ли их ПО как OLE серверЕсли ты про НТФ "БАКС", то нет, их оборудования и соответственно ПО нет.Проблема в том, что там настолько кастрированные настройки, что кроме как указать пути к хранению баз, методов и хроматограмм ничего не представляется возможным. Да и установлен прибор локально, то есть комп и прибор, сервера для хроматографа нет. Вообще мне кажется там ole ни к чему, там даже никакого особого форматирования нету - тупо цифры в поля вбивает юзверь, они потом выводятся в отчетах. Если бы хотя бы экспорт в эксель был... А про дизассемблер, это ты имеешь ввиду раскомпилировать экзешник? Это одно и тоже? Если да, то мне кажется это импоссибль(
>>1086747 (OP)Я тут уже полтора треда засрал и пришел к такому выводу что мне нужно именно сюда:Посоветуйте тему для курсача, MsSql, знаний мало.Где базы данных нужны и какой с их помощью можно сделать йоба курсач и не обосраться?
>>1095429бля, проще сказать где базы данных НЕ нужны. В крайнем случае просто возьми стандартный пример с школой, пусть у тебя будет таблицы: учителя, школьники, оценки там. Нормализуй(т.е. смотри чтобы соблюдались норм. формы). Наложи какие-то констрейнты, ну типа чтобы оценка могла быть в пределах от 1 до 5, даже на таком уровне.
>>1095588Мне кажется просто что много где достаточно как раз таки обойтись сериализацией тупо в файл и так даже будет удобнее.А в повседневной жизни нужно только всем сортам продаванов товаров и услуг и то не везде.> стандартный пример с школойСлишком просто, желательно что-то посложнее.
базаны, 5 миллионов записей в таблице это же мало или уже средняя БД?
>>1096339Это хуита. Увеличь в 20 раз - получишь среднюю по размерам бд.
Никто не помнит название книги по базам данных, которую я читал несколько лет назад. Особенность книги заключалась в том, что там параллельно изучению SQL была еще и интересная история про некую принцессу, которой король кажется дал задание, сделать базу данных для неких массивов информации. Задача читателя, вместе с принцессой освоить SQL и сделать необходимую БД для короля.
>>1096557https://www.amazon.com/Manga-Guide-Databases-Mana-Takahashi/dp/1593271905
>>1096569Да, это она. Спасибо большое за помощь.
Помогите, пожалуйста с задачей\tСоздать запрос для выделения из символьной строки повторяющихся, стоящих рядом слов.Примеры:Кулон лон слон слон слон Книга книга \tслон слонКнига книгаМама мыла раму раму мыла мама\tраму рамупока что есть такое решениеhttps://pastebin.com/45xhHR08но это всё равно не до конца верно, потму что строка'ER ER erer erer er er erer ererer erer erererer erererer'обрабатывается некорректно
>>1097260
Более-менее знаю SQL pl/sql,ms sql и админство БД, баловался с машобом.Насколько направления BI/ETL перспективны? Есть ли смысл изучать и возможно ли вообще это самостоятельно, не имея доступа к инструментам корпоративного уровня? Реально ли найти удалённую работу такого рода или разумнее продолжить изучать Java (которая не очень нравится и по большей части просто использовалась вместо скриптов для всяких задачек по работе с данным) и конкурировать с армией индийцев?
>>1100486Учи пистон
Если ты даун.
>>1097260Вот, пожалуйста, не благодарите, заодно и оппик новый будет.Сори, у меня рабочий день кончился, не успел нормально сделать. Работает только с двумя повторяющимися словами)))))
>>1092516>у четвертого чекбокса все остальныеПервое фундаментальное свойство отношений - отсутствие атомарных атрибутов, а это значит, что ты не можешь присвоить четвертому чекбоксу несколько статусов.
>>1086747 (OP)Если я сделал 50 заданий на sql-ex, знаю реляционную теорию, знаю основы T-SQL, я могу вкатываться на джуниорские должности или мне нужно что-то еще?
>>1101555Да
только у меня pgAdmin4 такой глючный?Третий хотя-бы работал корректно, часто вылетая при этом.Четвёртый же просто не работает в рамках своей бизнес-логики.Поля не переименовывает, ибо генерирует косячный sql для этого.Выполняю скриптом insert - он рапортует что успешно, хотя оно не успешно. И я не знаю причину почему не успешно.НЕНАВИСТЬ
>>1101645БЛЯТЬ.Поставил третий пгадмин, а он не работает под десятой посгре
>>1101645С чего начать изучение баз данных?
>>1101645У меня в одно время тоже были проблемы, помогло следующее:%папка постгреса%\data\postgresql.confв этом файле есть строка:lc_messages = 'Russian_Russia.1251' # locale for system error messageНадо было заменить ее на:#lc_messages = 'Russian_Russia.1251' # locale for system error messagelc_messages = 'en_GB.UTF-8' # locale for system error messageВ моем случае пгАдмин4 не показывал ошибки, в любом случае писал success и ничего не происходило.
>>1101676да, помогло, спасибо.Случайно создал базу в win1251
>>1101672
>>1101738Это понятно.
У Oracle XE производительность сильно выше, чем у 12c?
Только изучаю базы данных, поэтому прошу сильно не стукать.Допустим у меня есть файл с БД. Я открываю его в MySQL Workbench. И вот, у меня вопрос. Как посмотреть эту базу данных, если я уже ее открыл. Скриншот.
>>1101828сам майэскуэл это такая служба без графического интерфейса. К ней по сети делаются запросы, она возвращает результат.Данные оно хранит в файле. И этот файл нужен только это службе, никому другому.Чтобы через интерфейс пощупать базу, тебе надо запустить эту службу, и чтобы эта служба захавала этот свой внутренний файлхотя может я не понял вопрос
Аноны, выручайте! Добавляю в базу юзера, если юзер уже есть кидается исключение. При этом первичный ключ увеличивается, даже если пользователь не добавился, можно ли как-то пофиксить это?
>>1102516Похожая проблема. Бампую вопрос.
>>1102516https://stackoverflow.com/a/13297724Последствие этого решения - замедление базы данных. Но не могу сказать, в каких пределах.Для тестов и лаб норм.
Пжаласта не шифруйте пароли в бд сайтов с солью, мне тяжело их сливать! Не шифруйте пароли вопше! Пажаалуста!
Аноны, а есть какая-нибудь вводная литература по СУБД, где сразу рассматривалось бы несколько СУБД и анализировалось, что в них хорошо, что плохо и для каких задач стоит применять ту или иную СУБД? Может, посоветуете что-то подобное? Конкретно интересуют MongoDB, Redis, PostgreSQL, MySQL.
Анон помоги.Представь вот такую табличку num action date_time 43252 DELETE 20170825 15:55:45.68 43252 DELETE 20170825 15:58:02.57 43252 DELETE 20170825 15:59:14.77 43252 DELETE 20170825 16:01:20.35 43252 DELETE 20170825 18:23:41.91как сгруппировать ее так что бы он учитывал промежуток во времени только 1 час?тоесть должно получиться так первые 4 строки группируются а пятая нет т.к она совершалась позже чем через час начиная с минимальной даты из первых 4-х строк,тоесть в группу должны попасть все записи в промежутке между 15:55:45.68 - 16:55:45.68вот так 43252 DELETE 20170825 15:55:45.68 43252 DELETE 20170825 18:23:41.91одна запись сгруппировалась по времени в промежутке за 1 час а другая в этот промежуток не влезла и осталась
>>1103988А что ты понимаешь под словом сгруппировать?
>>1104399group byиз таблички в примере group by должен выглядить примерно такgroup by [num],[action],{date_time в промежутке от первой строки 15:55:45.68 до dateadd(hh,1, 15:55:45.68) }
>>1104460А с остальными строками что делать?
>>1103705Сам себе посоветую - может, ещё кому пригодится:Eric Redmond, Jim R. Wilson - Seven Databases in Seven Weeks - A Guide to Modern Databases and the NoSQL Movement.Почти то, что нужно.
Суть такая, есть 11g oracle db xe, dev suite 10g, все в виртуалке на xp.Oracle designer как минимум не терпит кириллицу в диаграммере, с NLS-LANG ебался, не помогает, кастомайз сосет.Не хочу сидеть в корпусе для того, чтобы сделать лабу, выручайте, как суппостата ебнуть, чтобы кириллицу поддерживал?
>>1086747 (OP)В чём разница между репликацией и зеркалированием БД? Натыкался на разные определения и цели у обеих технологий, но чё то они похоже все одинаковые. Единственная разница, которую я находил - зеркалирование нужно, чтобы обеспечивать максимальную доступность: сначала ебошит мастер и все транзакции тем или иным способом транслирует слейвам, а потом если мастер отвалится, то до его восстановления мастером становится какой то другой слейв, но тем не менее в один и тот же момент времени работает только один сервер. В репликации же одновременно работают и мастер и все слейвы, только вот операции write/delete идут через мастера, а read - через наиболее удобного слейва, что позволяет не только увеличить доступность, но еще и снять нагрузку с мастера. Иными словами, цель репликации: доступность поддержка большей нагрузки, а зеркалирование - просто доступность БД?
>>1104674INSERT INTO anus
>>1086747 (OP)Есть две таблицы, в обоих у записей одинаковые id. В одной 100 записей, в другой 30. Как из первой выбрать только те, которых нет во второй ?
>>1105432select * from table1 t1 left outer join table2 t2 on t1.id = t2.id where t2.id is null
>>1105432select * from table1 t1where not exists ( select 1 from table2 t2 where t1.id = t2.id)
>>1105432Select id from t1MinusSelect id from t2
Посоны, советов мудрых ищу. Суть токова: хочу делать оналитику. Есть эвенты примерно 10 видов. В них довольно разные поля, причём в них есть ещё вложенные на 2—3 уровня объекты. В сыром виде эти эвенты ещё объединены в массивы пачками штук по 100 и этими пачками и хранятся.На этих эвентах хочется делать всякую оналитику, считать разные funnel-retention, обогащать их ещё данными из внешнего мира, считать какие-то композитные метрики.В общем сходу пришла идея, что сырые данные из-за их разрозненной структуры удобно хранить в NoSQL виде (пока недолго думая засунул их в монгу). Потом каким-нибудь ETL выгружать их в преобразованном плоском виде в SQL (сходу, опять же, взял постгрес). Ну и потом уже писать запросы-запросики, JOINы и т.д.Что не нравится в текущей схеме:1) Монга медленная сука на bulk reads. Считать миллион или несколько лямов документов за раз — ждать охуеешь.2) Постгрес тоже не самый быстрый для ОЛАП запросов (но в принципе в какой-то степени это решается через пре-вычисленные и обновляемые materialized views)Советов мудрых прошу:1) Что лучше использовать, чем монгу, для сырых неструктурированных данных, чтоб они читались быстро в ETL?2) Что лучше юзать для ETL?3) Какая БД заебок для OLAP? Слышал про Vertica или опен-сорсный Druid, а в друиде нет joinов. Redshift? Данных вроде не безумно много, пока ~10 лямов эвентов, но будет расти. Думаю до 100 млн дорастёт в обозримое время.Рассматриваю как опен-сорс, так и вариант с отстегиванием бабла империалистическим расовым буржуям.
>>1106434Монга не предназначена для хранения связанных данных.
>>1106457Блин, я не знаю, зачем это написал.
>>1106457Так они ж не связаны. Просто последовательность неструктурированных JSON-like объектов с несколькими уровнями вложенности.
>>1106460Apache Kylin?
>>1106461Вроде бы может подойти, но чото ОЧЕНЬ сложно. Тут технологический стек из десятка наименований, с каждым из которых надо разбираться, поднимать, поддерживать.Я надеялся на какое-то решение попроще. Ну и для моего невеликого массива данных я не уверен что сразу надо бросаться в дебри Hadoop-экосистемы.Но если лучше идей нет, может и придётся конечно.
Нужен совет. Есть программа, обрабатывающая запросы клиентов и формирующая на их основе mysql запросы. Замечено, если сформировался запрос добавить 2500 строчек в БД, программа подвисает секунд на 10, добавляя данные в БД. Клиенты в это время ждут своей очереди. Так не пойму в чём проблема. Кажется дело в конфигурации mysql. Что нужно поменять, чтобы быстрее работал сервер mysql?
>>1107034https://dev.mysql.com/doc/refman/5.7/en/innodb-consistent-read.html
Добрый вечер. Как настроить мускуль чтобы он не гоун эвэй от каждого чиха.Пытаюсь через php записать 23 строки в таблицу, и получаю в ответ MySQL server has gone away. Отчего может быть, чем лечить?
Призываю всех вкатывальщиков, бездельников, интересующихся.Давайте я вам порешаю какие-нибудь интересные задачи по SQL или отвечу на какие-то вопросы по БД Oracle
>>1107318Как вкатиться?
>>1107334Если обитателю /pr/ отрубить голову, он ещё 10 секунд будет спрашивать, как вкатиться.Ладно, один хуй с похмелья не работается, можно и попиздеть.Ты ведёшь себя неуважительно, потому что спрашиваешь, как вкатиться, не давая при этом никаких вводных: возраст, образование, опыт.Все ситуации индивидуальны. Я не вкатывался в это дело целенаправленно, я просто искал работу, будучи студентом, который не умеет ничего. Так уж вышло, что человек я одаренный, но очень неустойчивый, у меня не получается изучать что-то самостоятельно дома, мне нужны реальные задачи.На первую мою работу меня взяли за отличный физико-математический бекнраунд и сообразительность. Это было не слишком серьезно, можно сказать, что это подработка для студента. За копейки, кстати. Но тем не менее там я впервые познакомился с sql и ораклом, полюбил, сделал это своей специализацией. После свалил в хорошее место.Спустя пару лет я великолепный разработчик отчётности, имею психологические 100к в месяц и очень доволен жизнью.
>>1107351И да, я все же больше хотел попиздеть о технических вопросах, а не о карьере. Селектики там пописать, ну вы понимаете.
Да хуле вы такие мертвыеМне вот и чатик по sql в телеге не впадлу было бы создать, но никому не интересно ведь будет, да?
>>1107923Создавай! @aminazinn и в шапку треда надо будет запилить
>>1107923Поехали@database2ch
>>1086747 (OP)Есть база данных на хостинге. У меня есть логин и пароль. Работаю с ней через программы вроде HeidiSQL. Сейчас надо подключиться скриптом php (5.6 и 7, в составе WAMP64), юзаю mysqli, а он выдаёт ошибкуmysqli_connect(): (HY000/2000): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.и предлагает обновить пароль командой. Но эта база используется в одном довольно старом сервисе, и трогать пароли не хотелось бы. Поиск решений с этой ошибкой даёт аналогичные советы - обновить пароль.Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf fileМожно ли как-то приконнектиться к базе ?
>>1089118Может там на инсерт какие-то триггеры работают?
>>1102516Избавься от автоинкрементального ключа и сделай ключ генерируемым.
>>1086747 (OP)Научите пользоваться индексами. Зачем они нужны? Когда и какие использовать? Хотелось бы с примерами из настоящей практики.
>>1102516>можно ли как-то пофиксить этоА собственно, зачем?
>>1109060Да не, я в свою таблицу инсентил, на ней ничего не было.Если честно, уже не помню, в чем там оказалась проблема, но все решилось
>>1089916Ты узнай, что такое PL/SQL для начала.
Вопрос по логическому проектированию бд.Есть сущность Работники. ID - первичный ключ. И есть отдельная сущность должности. Она создана, дабы избежать аномалии удаления. Так вот вопрос - является ли сущность работники слабой?
>>1109186Гуглить можешь? Да, является. А вот нахуй тебе этот вопрос сдался вообще, я ее понимаю. Это охуенно просто. Человек приходит выебнуться интеллектом и тем, что знает термин "слабая сущность", но интеллекта на пользование гуглом ему не хватает.
>>1109226Ну давай разберем по частям, тобою написанное )) Складывается впечатление что ты реально контуженный , обиженный жизнью имбицил )) Могу тебе и в глаза сказать, готов приехать послушать?) Вся та хуйня тобою написанное это простое пиздабольство , рембо ты комнатный)) от того что ты много написал, жизнь твоя лучше не станет)) пиздеть не мешки ворочить, много вас таких по весне оттаяло )) Про таких как ты говорят: Мама не хотела, папа не старался) Вникай в моё послание тебе< постарайся проанализировать и сделать выводы для себя)
Привет, котоны. Не могу правильно составить запрос. Есть таблицы на пикриле, а суть такова: есть таблица с моделями коммутаторов, таблица с типами скриптов и собственно таблица со скриптами. Типов скриптов примерно 15, для каждой модели коммутатора скрипт определенного типа свой. Если для определенной модели коммутатора занесены скрипты, то запрос с пикрила 2 вернет то что на третьем пикриле. Но если в таблице со скриптами нет ни одной записи для определенной модели коммутатора, то запрос вернет пустой результат.Как бы составить запрос так, что если бы в таблице скриптов не было записей с определенной моделью коммутатора, то все равно вывелись бы все типы скриптов как на пикриле 4, например?
>>1109598Разобрался.
Какой тип данных в sql может отобразить время выполнения какой-либо операции? time не подходит, там 24-часовой формат, да и вообще не про то. Например, производственный цикл длился 80 часов 20 минут хуй секунд. Что выбрать?
>>1109679Миллисекунды и типом большую чиселку.
>>1109679Interval
Откуда можно скачать набор функций, которые потом можно встроить в SQL Management Studio? Помню, на предыдущей работе видел функцию для красивого вывода даты-времени, которая принимала в себя переменную типа даты, шаблон dвода информации, и шаблон вывода информации. Что то типа такого:function("01.05.17 15:46:32", "dd.mm.yy hh:minmin:ss", "mm/dd hh:minmin")Данная функция принимает в себя определенную дату-время и выводит через слэш число месяца/месяц и часы с минутами. Ну, то есть чтоб я вбил в неё переменную даты и вывел эту дату в формате каком хочу. И наоборот - если я хочу вбить строковую переменную, которая содержит в себе дату-время и шаблон(в котором указано, какой символ, какой единице даты принадлежит) и чтобы система перевела данную строчку в тип дата-время. Думаю, такие функции можно ведь где-то скачать.
>>1086747 (OP)Так зачем же нужен OLAP?
Сап. Помогите, совсем зарапортавался.Есть таблица Производство и таблица Материалы. Как мне вывести Имя материала и количество раз, которое этот материал используется в производствах?
>>1110199Или задам вопрос проще - как выбрать кортежи, у которых один атрибут одинаковый?
>>1110199Запрос ИмяМатериала, НЗЧ(количество(МатериалыУк), 0)из Материалылевый союз Производство на Материалы.Ук равно Производство.МатериалыУкборда /po ИмяМатериала
>>1110204Спасибо большое, анончикБуду пробовать
>>1110204Что такое НЗЧ?
>>1110204Получилось! Спасибо, что навел на правильную мысль Обнял
>>1110118https://msdn.microsoft.com/ru-ru/library/ms187928(v=sql.120).aspx
>>1110207Подумой.
ЧЯДНТ? Создаю триггер на уменьшение количества определенного материала на складе при добавлении записи в другую таблицу с айдишником этого материала - пикрил 1Инсертаю запись - пикрил 2И выдает ошибку - пикрил 3
>>1110323Все, с этим разобрался. А как сделать триггер на отмену вставки при определенном условии? Например, если количество материала равно 0, отменяет вставку производства с этим материалом.В какую сторону копать?
Я же прогрессивный хуесос, ха-ха-ха вы еще руками запросы пишете, нахуй старое говно - пришло будущее, вот я такой охуенный, у меня Code-First подходы, LINQ to Entity, смотрите как я могу с лямбдами хуяк-хуяк.БЛЯДЬ ДВОЕ СУТОК НА ЭТОЙ ЕБОЛЕ НЕ МОГУ СОСТАВИТЬ ЗАПРОС, как что-то сложнее пары уровней вложенности, все, пиздец.Надо выбрать из первой таблицы строки, для которых в дочерней таблице выполняется ряд условий. И я блять не понимаю как к этой еболе подходить.Условно, есть две таблицы. Покупатель и покупки, с отношением один ко многим соответственно. Мне надо выбрать тех покупателей, у которых последняя покупка была "путь будет чайник".Еслиб это был голый SQL, то я бы объединил две таблицы, сделал бы Group By, выбрал только последние и сравнил покупки с искомой покупкой.Как это сделать на Linq, я не понимаю. Как вообще на нем такие запросы делаются, пойду еще почитаю документацию, такое ощущению что я какую-то техническую деталь пропускаю, и не могу понять какую. Include какой-нить или еще что-нить в этом роде.Надо понимать что в таблице покупателей, не лежат ID их покупок. Все что там есть, это public virtual List<покупки>, который в таблицу то не отображается, а транслируется фреймворком в какие-то понятные ему связи. Есть только обратные индексы в дочерней таблице, но мне её DbContext конечно же не показывает - "ибо совсем охуел, мы ему фреймворки с интерфейсами, а он куда-то глубже пидор руки свои тянет".Кто-нить работает/работал с LINQ to Entity, вроде бы рядовая задача, а что делать я не знаю.
>>1110345Двачую Тебе скорее всего join нужен
>>1110345Что нибудь в духеfrom c in ctx.Customersfrom s in ctx.Salesgroup s by s.CustomerID into sglet sgr = new { ID = sg.Key, LastSale = sg.Max(sg=>sg.Date)}where sgr.ID= c.IDselect new {Customer = c, Sale = sqr.LastSale}Хотя может выйдет и так:from c in ctx.Customersselect new {Customer = c, Sale = c.Sales.OrderByDescending(s=>s.Date).FirstOrDefault()}
>>1110344Бефор инсерт триггер на твою таблицу, в котором ты лезешь по айдишнику в таблицу, в которой количество ресурса, если там ноль, ничего не делаешьДля верности ограничение на таблицу, что меньше нуля быть не может
>>1110369И вообще ты пидрильство какое-то разводишь и головой не думаешь.Что будет, если два человека одновременно внесут данные?Меняй эту таблицу до
>>1110372Ладно, расскажу, как человек бы сделал.Прежде чем внести ресурс в какую-то таблицу, ты делаешь апдейт таблицы склада по номеру ресурса, попутно проверяя, что там достаточно ресурсов. Лучше, если условие на то, что ресурса должно быть больше нуля, будет зашито в ограничении на таблицу склада. Тогда тебе будет выскакивать ошибка сразу же при апдейте, которую ты сможешь успешно обработать эксепшеном.Важно: коммит ты при этом не делаешь. Это значит, что ты блокируешь строку с ресурсом на себя и второй пользователь не сможет поменять количество этого ресурса на складе, пока ты не закончишь свои манипуляции.Потом ты делаешь инсерт в свою таблицу и только потом фиксируешь изменения.Если во время твоим манипуляций, второй пользователь попробует добавить тот же ресурс, то у него повиснет блокировка. Когда ты закончишь, у него блокировка отвиснет.
>>1110369Before insert не работает в T-SQL
>>1110422Простите ради бога, я всё с точки зрения оракла написал.Я знаю, что такие вопросы сильно по-разному работают в этих базах.Простите меня.
>>1110451Ты няша Мне все равно следующую работу в Oracle Apex делать
Оракл-кун, подскажи, в чем ошибка>INSERT INTO Orders values(1, 15000, 'Mirror', '20160508'), (2, 15000, 'Glass', '20160507'),(3, 45000, 'Mirrors', '20160508'), (4, 32155, 'Glass', '20160507'),(5, 17000, 'Glass', '20160508'),(6, 33213, 'Mirrors', '20160507'),(7, 9000, 'Glass', '20160607'),(8, 34500, 'Glass', '20160608'),(9, 19800, 'Glass', '20160507'),(10, 5000, 'Glass', '20160608'),(11, 7200, 'Mirror', '20160507'),(12, 19800, 'Glass', '20160507'),(13, 8800, 'Glass', '20160508'),(14, 5000, 'Mirrors', '20160509'),(15, 50000, 'Glass and mirror', '20170507');> ORA-00933: SQL command not properly ended
>>1110554А вот нихуя так не работает в оракле.Тупо по строчкеInsert into t() values();Insert into t() values();Insert into t() values();
>>1110559Ебаный в ротСпасибо
>>1110561@database2chНа правах рекламы
>>1110563Вот почему нельзя было обычный синтаксис T-SQl сделать? Теперь еще все даты менять, в таком >20160508виде он их вставлять не хочет.
>>1110565Некоторые форматы даты он понимает, '21.12.2017' бы пропустил.А вообще всегда хорошим тоном считается объявлять маску. В твоём случае to_date('20171221','yyyymmdd'). Должен схавать
Жалко, что ты уже заинсертил, можно было бы попробовать поменять формат даты в сессии на твой...
Есть тут специалисты MongoDB? Чем у вас зоны от тегов отличаются? Читаю мануалыhttps://docs.mongodb.com/v3.0/tutorial/administer-shard-tags/https://docs.mongodb.com/manual/tutorial/manage-shard-zone/и вижу, что обе этих технологии настраиваются одними и теми же командами, и сама документация совпадает за исключением, что в одной статье tags, а в другой zones. Что за хуйня?
>>1110829Забыл уточнить, зоны и теги в контексте шардинга.
>>1110345Рот ебал этой хуйни.Сходу нихуя не разобрался, проебал срок тест задания пока читал базу про LINQ, ебанный Entity, ламбдахуямбда, ссаные статьи о работе ORM 21 ВЕК КОКОКО.Все оказалось очень просто в итоге:Iqueryable costomersList = from cost in db.Costomerswhere cost.Orders.OrderByDescending(order => order.ID).FirstOrDefault().Item == OrderItems.Itemselect cost;Выбрать тех покупателей у которых последняя покупка была OrderItems.Item.Решение на столько простое, что я практически плачу не понимая как на это ушло почти 3 дня.Единственное что я так и не понял, метод FirstOrDefault генерирует обращение к базе сразу, или таки это будет уже сделано потом, по факту обращения в момент использования costomersList.ToList().
>>1110829> MongoDBГовнище.
Какой вариант скрипта для процедуры более эффективный с точки зрения скорости работы, если в таблицах по несколько десятков миллионов записей?UPDATE t3 SET t3.t2ID = t2.IDFROM [dbo].[Table3] t3 (nolock)JOIN [dbo].[Table1] t1 (nolock) on t3.t1GUID = t1.GUIDJOIN [dbo].[Table2] t2 (nolock) on t1.GUID = t2.t1GUIDWHERE t3.t2ID IS NULL AND-------------------------------------------------------t3.t1GUID in ( SELECT tt1.GUID FROM [dbo].[Table1] tt1 (nolock) JOIN [dbo].[Table2] tt2 (nolock) on tt1.GUID = tt2.tt1GUID WHERE t1.GUID = tt1.GUID GROUP BY tt1.GUID HAVING count(tt1.GUID) = 1-------------------------------------------------------EXISTS ( SELECT 1 FROM [dbo].[Table1] tt1 (nolock) JOIN [dbo].[Table2] tt2 (nolock) on tt1.GUID = tt2.tt1GUID WHERE t1.GUID = tt1.GUID GROUP BY tt1.GUID HAVING count(tt1.GUID) = 1)Он будет быстрее отрабатывать через EXISTS или через IN? На stackoverflow пишут, что через EXISTS.
>>1111523Предлагаю тебе еще один вариант:Выбрать дистинктом все гуиды во временную таблицу (операция выполняется всего один раз в отличии от двух твоих примеров, в которых запрос выполняется для каждой строчки), проиндексировать временную таблицу по гуид, а потом переиннерджойниться с ней.
В базе все таблицы-справочники называются dim_*От какого это слова?
>>1112110Dimension, видимо.
>>1112363Может быть, я тоже об этом думал.Но как-то нелогично, dimension это измерение же.Вообще лучше у коллег спрошу, простите, что я такой хикка и омега.
Если я планирую изучать T-SQL, то кроме него что ещё мне полезно знать? Устройство SQL Server'а и Microsoft Windows? Имеет ли смысл поставить виртуальную машину с виндовс сервером и sql сервером?
>>1112542dim - dimension - все верно Анон выше сказал. А база ваша - скорее всего, хранилище данных. Покури теорию по хранилищам, измерение - распространенный термин.
поиск в таблице из 300.000 строк даст пасасать такому же хэшу?
>>1090069взбугуртну, пожалуй>2кило7надцатый>нормализовать бд>экономить место>дип джоины(мимо веб-дебилушка требует быстрых ответов от бд)
>>1089673>клиент на питонепочему сервер не на питоне?
>>1089673>народСлава достижениям народного пердолинга!
>>1089920>априорисука блять чаем подавился
>>1113270Если ты планируешь быть потом обычным девелопером, а не сидеть около базы DBA кодером онли. То посмотреть как работает LINQ to Entity Framework, что бы, как говориться быть в "тренде". И не обосраться как этот товарищ, когда перед тобой реальную задачу поставят >>1110345, хотя он вроде справился тремя постами ниже.
Суп базаны, поставили такую задачу, сделать на локальной БД агрегированые копии таблиц с удаленной базы. Каждый день, ночью агрегаты должны обновлятся, чтобы утром все получили 100500 своих отчётиков в екселе куда будут зашиты селекты на локальную базу. Удалённая Постгре, локально мускл запустил из-за простоты связывания с екселем, посоветуйте пожалуйста как лучше наладить этот процесс, и что почитать, т.к. такое проворачиваю впервые.
>>1113772а что, из постгреса csv не выгружается?
>>1113362если у тебя апдейтов нет, то можешь не нормализоывать.
>>1113772Положняк изменился, теперь у меня Постгре удаленная и постгре локальная. И сейчас не могу через дблинк законектить. >>1113971Конечно выгружается, но получается, мне придется выгружать 10 цсвх каждый день, а потом читать из них ради создания аггрегированых таблиц. Я то не против, но это точно самый удобный вариант и я смогу хоть как-то его автоматизировать?
Насоветуйте учебник по SQL/Рел.БД, чтобы нормально освоить базовые вещи. Глубоко дрочить БД не собираюсь, поэтому талмуд Дейта с 1.5к страниц идёт нахуй.Но мне норм если реляционная теория будет затрагиваться, даже если математически-строго.Собирался читать "SQL и реляционная теория" того же Дейта, но в предисловии написано что она рассчитана на ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ СУБД.Ещё пытаюсь осилить пиздоновскую ORM - SQLAlchemy, чтобы на самом Сикеле не писать. Но чтобы осилить её нужно Сикель базово знать.
>>1117459Алан Бьюли, «Изучаем SQL».
Анон, помоги советом. Только вкатываюсь в SQL и тут такой трабл возник:нужно сделать бд с данными по макроэкономике и всякими данными по наебизнес показателям и прикрутить к этому лёгкий интерфейс, чтобы вбил в поиск показатель и/или год итд, и инфа выгружалась в эксель для дальнейшей работы.От чего отталкиваться в плане выгрузки в эксель инфы и написания интерфейса? (На сервере стоит postgres)
>>1117937Выбираешь юр фейворит ленгвич нейм. Пилишь на нем круд. Для выгрузки в эксель гуглишь юр фейворит ленгвич нейм эксель. Делаешь.
Пацаны, я тупой. Есть две таблицы, нужно искать в них по определенному столбцу %запрос%. Столбец называется по-разному, таблицы между собой никак не связаны. Нужно просто поискать в них всех.Делаю так: переименовываю столбцы на лету, чтоб было одинаково (description).SELECT count(*) FROM (SELECT block_content as description FROM text_blocks) as table1, (SELECT news_text as description FROM news) as table2;SQL мне джойнит этим запросом небо и даже аллаха, и я получаю полмиллиона строк. Как их заджойнить последовательно, чтобы просто был столбец description, в котором сначала было бы содержимое text_blocks.block_content, а затем news.news_text?
>>1118493union
>>1118507Спасибо
Есть у меня задумка финансового приложения. Помогите развеять некоторую неопределённость. По задумке, надо будет хранить поступающие тикеры раз в минуту с пары бирж. Ещё ордера схоронять. Плюс логин-пароль от бирж. Ну и логирование. Вроде всё.Насколько я понимаю, со всем этим запросто справится SQLite. Но кванты со stackexchange запугали тем, что тикеры (как временные ряды) лучше хранить в MongoDB. Но ведь это для миллиардов тикеров. Тобишь, покуда у меня не тонны данных, мне стоит просто использовать ту же SQLite и не привлекать внимания санитаров?
>>1118538Единственный вывод, который может быть сделан из случайных данных — это что данные были случайны. Нет никакой разницы, где их хранить.
>>1118538>лучше хранить в монго дб>лучше sqliteТы хоть поясни, что ты с этими данными собираешься делать потом. Если строить аналитику, то монга - не лучшее решение, если просто доставать по ключу и показывать, тогда монга, наверное, лучше. Ты же не собираешься хранить ПРОСТО ТАК?
https://www.youtube.com/watch?v=lvTp2RqSm58
>>1111198Why?
Подскажите норм тему для доклада по базам данных, плез
>>1121068Плюсы и минусы объектно- ориентированных БД
>>1121068Расскажи про NoSql-моделиИли про бигдату.
Аноны, выручайте. В чем отличия DECIMAL и DOUBLE? И что где лучше использовать. Поясните пожалуйста. Желательно с примерами. С меня как обычно большое спасибо
>>1122048>DECIMAL и DOUBLE?Дабл это расширеный FLOAT, то есть число с плавающей точкой. Если ты будешь сравнивать флоаты, есть неиллюзорный шанс соснуть, потому что вроде бы одинаковые числа не будут одинаковые по мнению БД.Децимал потребляет больше памяти, но хранит точное значение числа, и с ним проблем при сравнении не будет.Используй децимал.
>>1122048float - тип данных для работы с приближенными числами при использовании с числовыми данными с плавающей точкой.ПримерМы помним случай, когда клиент использовал тип данных FLOAT для представления номе-ров штрихкода продуктов и был очень удивлен, когда при сканировании он получал не тотпродукт. Также недавно мы получили запрос о конвертации величины с типом FLOAT в типNUMERIC, дающий на выходе не ту величину, которая была введена. Вот этот запрос.DECLARE @f AS FLOAT = '29545428.022495';SELECT CAST(@f AS NUMERIC(28, 14)) AS value;Можете догадаться, что получилось на выходе этого кода? Посмотрите.Value---------------------------------------29545428.02249500200000
>>1122458Замени float на double, смысл останется тем же.
в постгре не работает upper lower на русском текстеselect lower('ЫВАПЫВ SDFSDF')выдаёт "ЫВАПЫВ sdfsdf"куда копать?
>>1123057Нужен кластер в UTF-8.
>>1123067текущая база:CREATE DATABASE jnom WITH OWNER = jnom ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'C' LC_CTYPE = 'C' CONNECTION LIMIT = -1;
>>1123070да, и постгре стоит на винде с локалью win1251
>>1123072кароч сделал резервную копию и переустановил постгре с collation 'Russian_Russia.1251'
>>1123097Есть ещё хорошее расширение CITEXT. Можешь поставить его и забыть про все эти lowercase, uppercase
>>1123291> Essentially, it internally calls lower when comparing valuesбыла бы такая-же проблема
Но хотя штука интересная, да. В мануале пишут, что оно делает регистронезависимый индекс
Помогите пожалуйста спроектировать оптимальную архитектуру в mysql для хранения примерно таких поступающих данных: [ mark: 4.77, timestamp: 1516785655, { question_text: 'some text', answers_text: ['some', 'array', 'with', 'text', 'values'], selected_answers: [0, 2], }, { question_text: 'some other text', answers_text: ['some', 'other', 'array', 'with', 'text', 'values'], selected_answers: [1, 2], }]Сам бы сделал что-то вроде такого: sessions(id: unsigned_bigint, mark: decimal[1,2], timestamp: timestamp), questions(id: unsigned_bigint, session_id: unsigned_bigint, text: text), answers(id: unsigned_bigint, question_id: unsigned_bigint, text: text), selected_answers(id: unsigned_bigint, question_id: unsigned_bigint, value: unsigned_smallint).Насколько пригодна в реальном мире предложенная мной структура?
>>1125429с джисоном чуть проебался, но не суть{mark:1.33, timestamp: 1511111111, [{},{}]}
>>1125429Почему у тебя вопросы завязаны на сессии? Вопросы же это справочник, по идее. Селектед насверлил должны быть со ссылкой на сессию.Не Бд подгоняй под входящие значения, а наоборот.
не закидывайте говном, знаю вопрос максимально аутистичный, но просто я очкую, вроде это и понимаю и знаю но все же, идти на собес нужно и что я долджен знать когда написано у работодателя что вот это нужно на их курсы мб кто четко пояснит:Базовые знания теории реляционных СУБДБазовые знания языка запросов SQLЗнание основ сетей и технологий виртуализациии где лучше брать материалы и почему готовиться, нужно к понедельнику вот.
Поясните за горизонтальное шардирование, Лучше на уровне программы шардировать или через триггеры и настройки баз?
>>1125629sql-ex.ru
>>1125665Если данные позволяют шардировать на уровне БД, то лучше так и сделать. Не придется внутреннюю логику хранения тащить в приложение.
Привет, программач.Прошу помощи с одной ебалой.Есть таблица [activites] с активностью по клиентам. [date_] - дата, id - id клиента, cnt - количество действий совершенных клиентов. Задача в том, чтобы запилить отдельный столбец который будет начинаться с каждого клиента заново, то есть partition by id и количество подряд идущих 0 в таблице между активностями. То есть если была активность (любое ненулевое в cnt) счетчик должен сбрасываться на 0.То есть считаем нули между ненулями по cnt. Как пример должно выглядеть как на втором пикрелейтеде.Программач, выручай.
>>1125902Тебе что конкретно надо. Сделать отчет в таком виде (столбец будет в отчете, а не в БД) или добавить столбец на рабочую БД (которая пополняется и там должен быть тот столбец с правильными значениями)? Отчет и программными средствами можно запилить. Текущую БД можно апдейтнуть скриптом. Если нужно чтоб при инсерте новой записи правильно заполнялся тот столбец - добавляешь триггер.
>>1125961Сделать это в отчете, да. Прав на редактирование БД у меня нет. Поэтому надо выкручиваться агрегатными функциям и LAG-LEAD'ами.
>>1125962Там у тебя чистый SQL или скриптец какой накидать можно? Скриптом без проблем делается, вроде как. Я просто бэкэнд-макака и в SQL настолько не силен.
>>1125967T-SQL там, но надо выполнить в форме привычного запроса select/from/where
>>1125902https://pastebin.com/p6G1bfwr
Че, котаны, задачка.Есть два стула две даты.Например, 01.01.2138 и 01.01.2139.Или 01.01.2138 и 01.02.2138.Есть частота дискретизации - неделька, месяц.Как получить колонку с первыми числами каждого месяца или колонку с понедельниками каждой недели?оракл
>>1126287Огромное спасибо тебе, анон. Приду - запущу.
>>1126586Обычно это решается предварительной генерацией таблицы с датами.
>>1126586>колонку с первыми числами каждого месяцаэто будет первое число, или что ты хотел? День недели?
Приветствую, аноны. У меня такой вопрос: нужно одним запросом выбрать все строки из таблицы И максимальное значение. Такое возможно сделать?
>>1126649Максимальное значение чего?select * from [table] - это все записиmax([colName]) - это агрегатор для максимального значения
>>1126586select add_months(to_date('2138-01-01', 'YYYY-MM-DD'), rownum-1)from dual connect by level <= months_between(to_date('2139-01-01', 'YYYY-MM-DD'), to_date('2138-01-01', 'YYYY-MM-DD')) + 1order by 1;С неделями пока лень возиться.
>>1125629А не в епам ли ты собрался, а пидр?
Так, господа сертифицированные специалисты, мне нужно выбрать базу данных для хранения результатов прогонов хитрого алгоритма.Суть токова:Есть много данных, данные побиты на кусочки. Количество кусочков - десятки/сотни тысяч. Кусочки могут иметь версии (~единицы - десятки версий).Есть алгоритм. Алгоритм тоже может иметь версии (~десятки версий).Алгоритм жрет кусочки данных и высирает результат - объект состоящий из нескольких массивов байт и списка интов, общим размером до 300-500 кб (часто намного меньше).Хочется выбрать БД в которой я буду хранить эти результаты обработки и делать запросы вида:"достать все результаты для такой-то версии алгоритма и такой-то версии данных для заданного множества кусочков данных"Хочется чтобы выбранная БД- легко поднималась на амазоновском облаке прям по хардкору на спот инстансах с автоподнятием убитых нод даже аутистом далеким от БД- отдавала результаты пиздец быстро и с минимальной задержкой- имелись SDK под кресты и пистон- [опционально] была стильной модной молодежнойПока смотрел только MongoDB, но я в бд нихуя не разбираюсь а потому это как пальцем в небо. Посоветуйте годноты, аноны.Домен - ML и анализ данных.
>>1126864Если кусочки между собой никак не связаны или это не имеет значения, то монга подходит.Гугли Документоориентированная СУБД, Document-oriented database.
чем отличается rank() от row_number() в аналитических функциях в оракле?
>>1127221>ROW_NUMBER and RANK are similar. ROW_NUMBER numbers all rows sequentially (for example 1, 2, 3, 4, 5). RANK provides the same numeric value for ties (for example 1, 2, 2, 4, 5).
>>1127221>>1127221Если в пределах одной секции у двух записей совпадает ключ сортировки, они получают один ранг. При этом следующий ранг после них может назначаться по номеру записи в секции (ф-ция rank()) — из-за чего в последовательности рангов могут возникать пропуски— или как инкремент последнего ранга (dense_rank()) — такое «плотное» ранжирование наращивает номера рангов последовательно.Примеры у анона выше. Для dense_rank() соответственно будет (1, 2, 2, 3, 4)В отличие от обеих rank-функций, row_number() гарантирует уникальность значений в пределах секции и просто нумерует строки согласно условию сортировки. При этом, если ключ сортировки у записей совпадает, ты получаешь вообще говоря недетерминированную нумерацию.
Это структура таблицы словаря данных ораклаUSER_CONSTRAINTSили ALL_constraints,структура у них одинаковая, только данные могут быть разнымичем отличаются выделенные столбцы между собой?
>>1128184Названием?
>>1128237нет
>>1128184Там же написано всё. R_ для ссылочной целостности, внешние ключи — вот это всё.
>>1126649>select *, case when row_number() over (order by id) then max(value) over () else null end as max_value from t_table такие дела, в первую строчку вставим это максимальное значение, а все остальные оставим пустыми, чтобы меньше данных передавать в dataset.
Ребят не нашёл инфы как сделать запрос отвечающий данным условиям: " В таблице А столбец В имеет тип «Date» Как вывести все значения столбца В в формате ГГГГДДММ ". Подскажите пожалуйста запросом! Не знаю как вывести именно в таком формате.
>>1129456ms sqldeclare @d date = getdate();select format(@d, 'yyyyddMM') as FormattedDateТы студент что ли?
OracleКакова максимальная длина выражения в execute immediate?Хочу туда захуячить 'create or replace package body', но в варчаре это не вариант, пушто слишком дохуяМожно clob туда делать? Такую пиздатую шнягу придумал эх.
молю
>>1129666Смотри, вариантов решить проблему несколько.И все они мне не нравятся.Эту задачу точно нужно решать средствами БД?По-хорошему, я бы считал нужное тебе значение при попадании записи в БД, а не городил бы ебенячий запрос.
>>1129748мненужно именно средствами БД, а именно оракла,это на регулярки задачка мне её прям сейчас очень нужно решить, поможешь?
>>1129748так поможешь, анон?
>>1129761Ну я смотрю регулярки, только не оракловые.Пока решения не нашел.
>>1129666https://regex101.com/r/vrMpLC/1
>>1129808спасибо
concat( lpad(dayofmonth(birthday), 2, '00') , lpad(month(birthday), 2, '00') ) = concat( lpad(dayofmonth(date(#{dateStart})),2,'00') , lpad(month(date(#{dateStart})),2, '00') ) )
Парни, сердечно прошу, намутите нормальную шапку для треда.Для начала сойдет и просто описание краткое самых популярных бд, чтобы анон понимал, для чего конкретная бд используется чаще всего.А то смотришь иногда вакансии, там тебе и монга, и постгрес, и редис, и рэббитмкью. Ладно первые две, но вот последние хуй знает для чего используются конкретно, с чем варятся, и как едятся. Плюсы, минусы какие-нибудь. Может поискать сравнительные статейки.
>>1130011ПС: я бы тоже, может, поучаствовал, полезно в качестве самообразования
>>1109064Я обычно использую для оптимизации своих отчетов. В отчете пару временных таблиц которые используются потом для подсчета. Так вот создаю кластеризованные индексы для того поля по которому потом обращаюсь.
PL/SQL vs T-SQLПривет, анонасы. Больше года проработал разрабочиком отчетов под ms sql server. Есть хорошая аналогичная должность в одном банке, но там oracle. Вопрос: какие есть отличия в синтаксисе? Что можно использовать в oracle чего нельзя ms server и наоборот?Уже понял что сама парадигма основного синтаксиса sql похожа, но различаются именно в диалекте t-sql / pl.
>>1130045могу сказать главное T-SQL сосёт ХУИ.Серьёзно. Диалект отличается, да, и стоит изучения, а так норм идея.
>>1130045Погуглить-то что мешает?https://stackoverflow.com/questions/7283828/what-are-the-major-differences-between-the-mysql-and-oracle-sql-dialectsЕбашь в банк, если место норм, а то так и будешь всю жизнь ключи подавать.
>>1130045https://docs.oracle.com/cd/E10405_01/appdev.120/e10379/ss_oracle_compared.htm
>>1130128Может в сравнении с оркалом и не очень. Но у меня с базами мелкомягких проблем не было. Правда мне приходилось сидеть на 2005. Всё равно намного лучше, чем какой-нибудь мускуль пятый.
>>1130284это другой анон
>>1130284MySQL сервер такое себе. Если хочешь что-то на уровне ms или oracle то гляди в сторону постгре. Она топ.
Аноны, мне тут 1 человек скинул прошивку для навигатора, я чет очкую ставить ее. Онлайн антивирусы говорят - что вируса нет. Но боюсь получить кирпич из навигатора.Кто может пояснить за код прошивки? Тут всего 3 файла с охуллиардом строк. Код имеет вид:08f0 9fe5 0a4e 6321 bca3 e220 a616 2a21 и таких строк просто до сраки.
Анон, короч есть задание - сделать ер диаграмму базы данных для отчета по 2ндфл за 2016 год, я нахуевертил вот это, пока без связей, но чую что хуйня полная, направьте в нужное русло
Аноны, приветРешил сменить вектор деятельности. Почитав форумы и поспрашивав понял, что многие советуют пидорить в бд, изучать pl и прочее. Насколько это грамотное решение?
>>1131242SQL в любом случае спрашивают на собеседованиях.Глубоко можешь не копать, поехавшие БД-админы иногда рисуют на бумажке таблицу из двух колонок, и требуют её джойнить/группировать с ней же самой, но в этот момент надо вежливо уйти с собеседования.А вот запрос о количестве чего-либо в заданное время «от/до» с пустыми клетками — можешь мне не верить, но спрашивали даже там, где SQL вовсе не было.
Ребята, мне выпилиться или такие запросы - это норма?
>>1131518Не вижу ничего плохого.Prepared Statements были бы лучше, но у аффтара они не...— Тяжело тебе, Данила-мастер?— Ох, тяжелооооо— Не выходит у тебя, Данила-мастер, каменный цветок?— Не выхоо ооо оо ооооооо
>>1131518ХЗ, детский сад какой-то. Что-то похожее писал будучи перваком. И вообще, клеить так запросы это bad practice, лучше уж какой-нибудь arg-list.
>>1131601>>1131537Ну тут названия таблиц динамически подставляются, через подготовку не получится сделать.Через какой костыль такой функционал можно сделать лучше?
>>1131601Спасибо, а как надо писать?
>>1086747 (OP)Анон, у кого-нибудь был опыт работы с распределенными файловыми системами (hdfs, ceph), как с бэкэндом для баз данных, поддерживающие тип LSM-tree(leveldb, rocksdb)? Очень интересно узнать про какое-нибудь решениие, которое позволяет читать\писать в такие базы, но чтобы все в пиздец не скатилось.
Посоветуйте онлайн-обучалку по SQL. Бесплатную и интерактивную (а-ля htmlacademy, но можно на английском), желательно с рассасыванием различий в диалектах MySQL/PostgreSQL.
>>1125902Ради опыта решил проверить решение >>1126287-анона - не работает. Если кому пригодится, у меня решить получилось так - https://pastebin.com/SNyNxBAW.Правда думаю, что можно и оптимальнее сделать.
>>1131759sql-ex.ru
>>1131791А что не так с тем решением?
>>1129604ХУЯЧЬ@ПРОВЕРЯЙ
>>1095054Кто-нибудь уже запиливал трушные БД с точки зрения этой книги? Или везде SQL?
>>1131807Оно не работает, очевидно.
>>1131920Мне интересно, как именно оно не работает. Синтаксическая ошибка, данные не те выводит (тут было бы неплохо фоточку).
>>1131933И синтаксическая и логическая, т.к. скрипт не учитывает конкретного юзера.
>>1132034>>1125902https://pastebin.com/2bziW0p0В этот раз я проверил)
>>1132089Теперь правильно, только работает, если -1 заменить на '1900-01-01'.
>>1132089>>1132112Забыл сказать спасибо. Когда сам пытался делать, аналогично в APPLY хотел ограничение на tt.date_ сделать через ISNULL с максимальной датой, но неправильно сравнивал даты внутри селекта, т.е. у тебя ttt.date_ < t.date_, а я делал ttt.date_< tt.date_ и у меня счетчик не обнулялся.
Сценарий.Вставляются записи в таблицу А. На одном из столбцов ограничение по внешнему ключу, который ссылается на таблицу Б. Если такой записи в таблице Б ещё нету, то запись нужно создать, данных на входе достаточно.Собственно как в приличном обществе поступают?1. Перед записью в таблицу А всегда делать запись в таблицу Б если её ещё нет.2. Как-то ловить неудавшуюся из-за ограничителя запись в таблицу А, и дальше уже что-то там делать.3. Какой-нибудь особый паттерн специально для таких случаев.4. Не выёбываться, потому что внешний ключ для того и сделали чтобы ограничивать всякое левое говно.pg если это имеет значение
>>1133074первое
>>1133074В мускуле можно не ссылаться на строку, то есть вместо id записать NULL.Попробуй, может тебе тоже так можно.
Всё, конецЯ не могу селект написать...Мне кажется, что я деградировал от алкоголя и теперь меня уволятЕсть таблица номер договора, дата, сумма просрочки (0 - просрочки нет). УпрощённоПо каждому договору на каждую дату есть записьМне нужно выделить из таблицы все непрерывные периоды просрочки, то есть получить историю:Договор, дата начала просрочки, дата окончания просрочкиСпасибо!
>>1133361> Всё, конец>Я не могу селект написать...>Мне кажется, что я деградировал от алкоголя и теперь меня уволят>>Есть таблица номер договора, дата, сумма просрочки (0 - просрочки нет). Упрощённо>По каждому договору на каждую дату есть запись>Мне нужно выделить из таблицы все непрерывные периоды просрочки, то есть получить историю:>Договор, дата начала просрочки, дата окончания просрочки>>Спасибо!max(), min() over (partition by docid), не?
>>1133362Может быть больше одного периода по договоруТо есть сначала есть сумма долга, потом нет, потом опять есть и ТДНе знаю, как это обрабатывать
>>1133361Все гениальное просто, вот как надо.Не буду присваивать чужие заслуги, мне подсказали.
>>1086747 (OP)Где можно почитать про оптимизацию SQL?
>>1135855MS SQL*
http://postgresql.leopard.in.ua/http://repo.postgrespro.ru/doc/pgsql/10.1/ru/postgres-A4-fop.pdfДля вкатывальщиков.
>>1118538Очевидно же, что ты по тикерам потом захочешь строить себе графики. Однозначно надо SQL.
БампДайте задачек порешаю, мне делать нехуй
>>1138220На какой диалект?
>>1138295Оракл
>>1138321Напиши свертывание диапазонов.Дано:12345791011121322Надо получить:1-579-1322
>>1133418>>1138323Отвечу тебе вторым моим постом, эту задачу я уже решал по своим нуждамНадеюсь не нужно совсем адаптировать, почти слово в слово всё то же самоеЭто классическая задача "start of group"Этапы такие:1. Проставляешь 1 там, где у тебя разрыв в данных2. Делаешь упорядоченное суммирование этого показателя по росту значения. Получится, что у первого диапазона 1, у второго 2 и тд3. Потом делаешь обычную группировку по показателю из п2, находя минимальное и максимальное значение
>>1138321ДаноТаблица A - начало и окончание линии(line_id; line_begin;line_end)Таблица B - разрывы в линии (break_id; line_id, begin, end)Все разрывы лежат внутри линии (т.е. линия не начинается и не заканчивается разрывом) и не пересекаются между собой. Разрывов может и не быть.На выходе нужно получить отрезки, на которые распадается линия.
>>1138325А без lag() сможешь?
>>1138331Смогу, но ведь это некрасиво.lag можно заметить на селект в селекте (select max(value) from table t where t.value < table.value)>>1138330Прикольно, я подумаю.
>>1138340>lag можно заметить на селект в селекте (select max(value) from table t where t.value < table.value)Еще можно с иерархическим запросом сделать.А с оконными функциями можно и без суммирования сделать>Прикольно, я подумаю.Завтра напишу вторую часть задачи.
>>1138342Как с оконными функциями, если сразу границы окна не знаешь? Напиши
>>1138373>Как с оконными функциямиОпечатался, с аналитическими. С lag и с lead.
Существует ли бд которая может быстро сортировать большой датасет ~1гб ?монго крашит с лимитом 32 мб
>>1139040Существует.Вопрос вообще некорректный.Быстро - это сколько? На каком железе?Какова природа и структуры данных?
>>1139040А что значит сортировать?Тебе ведь сортировка для чего-то нужна. Для чего тебе сортировать 1 Гб, да еще и быстро?
>>1138340>Прикольно, я подумаю.Как успехи? Получилось решить?
>>1139372любая реляционная субд с поддержкой индексов.
>>1139407Времени не было особо, сегодня вечером потуплю под винишкоКстати, мой мертворождённый чатик в телеграме, заходите @database2ch
Как привязать таблицу график загрузки тренера к другим? И в группе тренер и в индивидуальном, а как это вместе чекнуть?
>>1143040Вопрос нормально сформулируй для всех.
Как выполнять insert, если в таблице только один столбец ID, который PK AUTOINCREMENT?
>>1143087Давай внимательно разберем по частям тобою написанное.Зачем тебе таблица, которая не хранит никакой информации? Если ты планируешь инсертить те же значения в какую-то другую таблицу, то сделай их первичным ключом в той таблице. А если ты планируешь инсертить значения типа "Я покакал" и важно тебе будет только количество записей в этой таблице, то и первичный ключ на ней не нужен.
>>1143143Кстати, мой божественный 12 оракл умеет делать так.Но в более ранних версиях так не получится, там как минимум нельзя делать значение сиквенса значением по умолчанию.Разве что инсертить что-нибудь и обрабатывать через триггер before_insert, чтобы вставлялось значение сиквенса.Но просто ответь НАХУЯ, заинтриговал.
>>1143155Я делаю чатик. На сервере ведется количество всех бесед, чтобы каждая беседа была уникальна. Собственно, все, что мне нужно - только ее идентификатор. Каких-то названий, описаний, и т.д. у нее нет. Также на сервере есть таблица, в которой указано какой юзер в какой беседе участвует. Когда я отправляю сообщение, в нем указан ID беседы, сервер смотрит всех ее участников и каждому отправляет это сообщение. Именно поэтому и обязательно, чтобы ID был уникальным. Я хуй знает, как это сделать по-другому. Может, есть идеи упростить эту хуету?
Анончики, а есть хорошие книжки по Cache русскоязычные?
>>1143166В таблицу беседа можно добавить:Тип беседы (открытая/по приглашениям/видимость для поиска и т.п.)Дату созданияДату удаленияДату последнего сообщенияИ еще кучу всего можно напридумыватьТак что смело делать т0бличку
>>1143155Что-то типа синтаксического сахара получается.Какой профит от подобной фичи?
>>1143466Но ему же НИНУЖНО>>1143471Что ты имеешь в виду? Чем тебе не понравился мой божественный код? Почему ты задаешь вопросы мне, а не автору поста? Ему нужно было инсертить в таблицу с единственным столбцом, который автоинкрементарный ключ, я это реализовал и показал, что ещё?
>>1143490>Чем тебе не понравился мой божественный код?Да все ок, просто спросил, может, какие-то не очевидные с первого взгляда бонусы есть.Сам на 11 сижу.
>>1143495Так я и говорю, что на 11 нельзя сделать сиквенс значением по умолчанию. Поэтому приходится плодить тривиальные триггеры бефор инсерт, которые будут проставлять значение сиквенса в столбецВ 12 мега удобнее, потому что дефолтное значение ты сразу видишь, глядя на таблицы, а про триггеры ты и забыть можешь
>>1143502Зачем триггеры?insert into talk (talk_id) values (sq_talk.nextval);
>>1143506Но ведь дефолтное значение надёжнее
>>1143510Насколько я понимаю, никто не мешает вставить недефолтное.Да и мест, где инсертится обычно не сильно много.Но в плане того, что залез в табличку и увидел сиквенс для нее - удобно, да. Особенно в том случае когда не соблюдаются правила "одна таблица - один сиквенс" и "сиквенс называется префикс_таблица ".
>>1143076Выходной документ: график загрузки тренера в тренажерном зале.
>>1143564Ты действительно считаешь, что общество будет тратить на ответ тебе больше слов, чем ты потратил на вопрос?Иди на хуй. Спросить нормально не можешь.
>>1143593Ты действительно не можешь понять? Мне в БД нужна таблица, по запросу которой, нужно выводить график загрузки определенного тренера. Как тут еще КОНТРЕТНЕЙ-то объяснить?
>>1143614Я не обязан ничего понимать и помогать тебе. Ты просто ведёшь себя неуважительно
>>1143614Глянул твою схему. Не понял, зачем отдельная таблица для загрузки тренера, если эту информацию можно брать из индивидуального расписания учеников. Как по мне, дублирование информации получается.
>>1143040В чём пилятся такие связи?
>>1143944http://dbdesigner.net>>1143735> Не понял, зачем отдельная таблица для загрузки тренера, если эту информацию можно брать из индивидуального расписания учениковДа, я как раз решаю эту проблему. Спасибо.
Как выучить SQL за месяц
>>1144507Дрочи теорию, потом ищи задачи и ебошь. Можешь матан писать на сиквеле. За месяц в джуниора превратишься, если по 8 часов в день будешь уделять.
>>1144507Для чего и на каком уровне?
>>1144507ставишь postgresрешаешь 100 (даже 50 хватит) задач на sql-ex.ruпараллельно читаешь там же теорию и проверяешь её в postgresи статью про джойны на википедии прочитайза месяц точно можно успеть
есть норм литература по SQL*Plus и MySql?
Че почитать, чтоб в оракле было проще делать бд? Только недавно вкатился, пока туго идет, особенно скл код чет сложновато писать
>>1146276Что именно вызывает сложности?
Дана одна таблица.В ней два столбцаID и DateЗадача: вывести оба столбца, но:1) не выводя строке где Date c NULL2) выводить только 2017-й годС первой задачей справился. Остается вторая, но как только не писал. И date LIKE '%2017', и date BETWEEN '01.01.2017 AND '31.12.2017' - не работает. В чем может быть проблема? создавал БД сам, в Acceess
>>1146682Дата у тебя скорее всего имеет тип Date, а ты пытаешься работать с ней как со строкой.https://accesshelp.ru/funkcija-datepart-v-zaprosah-access/
Аноны, есть задача запилить бд в аксессе, но опыта работы с б.д. нет практически совсем. Есть шарящие господа, которые могут помочь составить логику работы?
>>1146682YEAR([Date])=2017
Бля, почаны. Присутствуют тут опытные NoSQL бояре?Есть реляционный Postgres монстр на пятьсот таблиц. Ебаные джойны и CTE душат пиздец. Пол базы в оперативной памяти. Траффик кеша десять гигабит пробил. Как это говно денормализовать? Как поддерживать консистентность потом при большом количестве апдейтов? Я просто закостеневший уебан, который не может перестроить свое мышление с реляцонных рельс?Наставьте на путь истинный долбаеба.
>>1148059Тебе нужен редис. или любая другая хуйня, которая позволяет делать 2 вещи:1. хранить данные в памяти2. складывать их в нужном формате на диск.
>>11481091. Че будет с редисом если память таки кончится? Есть вероятность свалиться в конский своп? Как редис из таких ситуаций выгребает?2. Я так понимаю что если он приляжет, то тому что было в памяти пизда и нужно все-таки хранить данные еще и в более надежном хранилище.3. Главный вопрос в каком виде хранить данные. Если есть ебическая выборка по которой матвьюшка строится десять часов и которая меняется от любого пердежа, то как такое хранить и поддерживать в том же редисе?Обновлять все чего коснулись изменения сразу? Раз денормализовано, то и мест таких будет по идее больше. Redis выдержит такую напругу? А если периодически, то чем вообще такие отложенные обновления производятся и в чем отличие от того же построения матвьюшки?
Недавно пришла в голову мысль запилить БД на файликах. Без мускула и каких-то серверов, всё хранить открывая/записывая/закрывая файлы. С форматом не опредился, yaml, json, xml, csv иили вообще свой придумаю. Как идея, взлетит?
>>1148304>Недавно пришла в голову мысль запилить БД на файликах. Без мускула и каких-то серверов, всё хранить открывая/записывая/закрывая файлы. С форматом не опредился, yaml, json, xml, csv иили вообще свой придумаю. > впизду твои костыли, уже есть sqlite
>>1148304впизду твои костыли, уже есть sqlite
Можете пояснить, почему на форме не работает поле РЕЗУЛЬТАТ? Вот сама БД, если что http://dropmefiles.com/Ygvjk
Как с помощью MS SQL оптимизировать запрос, в котором нужно по двум численным колонкам в одной таблице и двум в другой произвести расчеты по таблице и сохранить это все?Ну там тип этих колонок, индексы-хуиндексы?
Странный вопрос, но потом продублирую на стак. В оракле есть функция по взятию хэша. Мне нужно взять хэши процедур, пакетов, триггеров и вьюшек. Как это сделать легко и просто? Я помню что тексты процедур и функций хранятся в одном из представлений системных. А где триггеры и прочее? Или есть какая-то крутая фича, которая считает все сразу?
Primary key - это универсальный ключ, который ни разу не повторятся.У меня не слишком их много?
>>1150232Суррогатных ключей никогда не бывает много.
Кто может подсказать хорошую литру или курс по построениям баз данных? Хочу освежить знания( а занимались по учебнику из 80-ых)
Делаю телеграм бота, он должен хранить имена пользователей, несколько свойств этих пользователей, а также кучу расписаний на неделю. Например, если у пользователя такое то свойство, то у него такое то расписание на каждый день. Что для этого использовать? Sqlite, SQL? До этого ничего общего с бд не имел. Использую сишарп если что.
ЧЯДНТ?
>>1150763Разобрался
Чет я испытываю траблы. Как мне в Group work передать массив клиентов? А то получается, что я по одному ввожу.
>>1150923Не понятно, что ты хочешь.
>>1150923Какая у тебя СУБД? Используешь ли хранимые процедуры?
>>1150923сделай структуру
какой нужен запрос чтобы выбрать чувака с именем васян и задать ему школу номер 228?
>>1151964-Эй, база, дай всех с именем васян-на-вот этому сет скул 228-окей
Ананасики, помогите пожалуйста! Вот задание:Перенести продукты из одной категории в другую.То есть мне нужно в одной таблице присвоить запись другой категории записей. Как это сделать?То есть, было "Chocolate, Desert", а стало "Chocolate, Beverages". Как это сделать? Я нихуя не могу понять, а в гугле нахожу только перенос из одной таблицы в другую. Мне же все надо сделать в единственной таблице.Спасибо заранее.
>>1152007http://sqlfiddle.com/#!4/d6d1f/1Что-то в таком духе, если я правильно тебя понял.
Может кто-нибудь писал бд "Реализация готовой продукции"? Подойдет и просто пример того как должны выглядеть таблицы и связи между ними в идеале. Но если есть и mysql код -- тоже замечательно. Спасибо
Нужно изучить SQL на уровне самого базового понимания и умения делать простые запросы. Есть ли какой-нибудь интерактивный материал где кратко объяснен синтаксис и есть упражнения?
>>1153946Тред почитать? Загуглить? Совсем даун что ли?
>>1153946sql-ex.ru
Судя по треду, лучше вкатываться в oracle, чем в ms sql, верно?
По бабосам - да, в мускл больше шансов вкатится если скил сиквел не особо высокий.
>>1154440PostgreSQL
Котаны, есть одна MS SQL база.1. Как в ней устроные индексы? В виде сбалансированного дерева или нет?2. Если есть составной индекс, но я ищу только по одному из полей, будет ли он работать и как быстро по сравнение с простым индексом на этом поле?3. Чем, блять, скан от сика отличается?
>>1154931Вскукарекну из-под шконочки:1) Да, B/B+-деревья.2) Работать он в любом случае будет, но вряд ли быстрее обычного индекса по конкретному одному полю (и в плане поиска и в плане вставки/удаления/обновления). Зависит от того, какие данные в полях составного индекса хранятся и в каком порядке поля указаны. Кмк, чем более уникальна комбинация, чем "легче" тип данных (int'овое значение быстрее ищется, чем nvarchar'овое), и какой порядок (есть разница между int-nvarchar или nvarchar-int), тем быстрее он будет работать. Ну и в вопросе не уточняется, кластеризованный или некластеризованный индекс.3) Не хочу напиздеть, но scan вроде двух видов может быть, т.е. table scan - перебор всех строк в таблице (когда в таблице нет индекса и поиск идет по всем строкам), index scan - перебор всех значений / ссылок на значения на узлах дерева (индекса) (когда в таблице есть индекс и поиск идет по всем значениям / ссылкам на значения). (Index) seek же относится только к индексу - поиск идёт по конкретным узлам дерева (индекса) для поиска конкретных значений / ссылок на значения.
Можно ли создавать таблицы как тип внутри других таблиц? Или я долбаеб и так делать не надо? Тогда в чем мне хранить маленькое расписание, в хмл?
f
>>1155579Так делать можно, но тебе, скорее всего, так делать не нужно.
Ребята спасайте, ебусь со схемойЕсть викторины, есть игроки, есть вопросы и у вопросов варианты ответов (пока можно не смотреть даже).Как приебланить ответы игроковПрикрепляю схему, там вроде всё понятно по замыслуСпасайте братцы
>>1155837Таблицы Question_in_quiz и Players_in_quiz объединить в одну и добавить в неё ansrewId.
Сап базонюхи, подсобите кабанчиком. Я про SQL прочитал несколько статей на вики, не провентилировал темку еще, но надо маленькую мутку мутануть: - есть в базе данных таблица, из которой надо ебнуть ненужные записи и оставить нужные. На данный момент мне удалось сделать DELETE FROM НАХУЙ, то есть выбираю ненужные записи и удаляю ихЧо мне надо: я хочу сделать наоборот - выбрать из таблицы нужные записи (их немного) во вспомогательную таблицу, потом ТРУНКАНУТЬ всю основную таблицу и догрузить в нее нужно из вспомогательной. Но скрипт типа SELECT * INTO <вспомогательная таблица> FROM не срабатывает, ошибку выдает какую-то (выполняю из сторонней программы скрипт подключением к внешней базе). Я так подозреваю, вспомогательную таблицу надо сперва создать, а потом в нее пердолить данные? А что, если я в душе не ебу, какая структура у этой таблицы и мне нужно как-то динамически создавать вспомогательную копию с той же структурой как и у основной, что для этого писать в запросе?
>>1155951Делай инсерт а не селект инту.Инсери инто бла бла селеки фром блаблабла.Кайта чтоли прочитал?
>>1155951Насчет создания второй структуры: бери ддл таблицы и создавай по ней новую. Вродн все норм программы для рабоиы с субд умеют вынимать ддл
>>1155974С инсертом хуйня 100% не работает, потому что инсертит только в существующую таблицу. С селектом тоже.>>1155975Да ты мне скажи конкретный пример чо писать английскими словами. В душе не ебу, как твой ддл брать. Нагуглить я могу и сам, было бы время. Мне бы щас просто написать, чтоб работало, а разбираться потом будем.
>>1155639Ну сматри, у меня есть таблица с классами, у каждого класса есть расписание. Расписание состоит из урока, дня урока и его номера за списком.Кроме таблицы в таблицы и хмл был вариант записать все эти уроки в одну таблицу, привязав к им класс, но чет это не очень оптимизировано. И ещё один вопрос: допустим, у меня есть таблица, в которой хранятся некоторые файлы. По какому то иденфикатору мне надо найти фотку. Как это лучше сделать, одной таблицей или двумя? Мне кажется, что в первом случае пикрл 1 при поиске фотки СУБД будет загружать в ОЗУ каждую фотку в таблице, а во втором случае пикрл 2 и 3 сразу выдаст нужную фотку. Пока писал это, появился вопрос, как можно хранить лист фоток, которые привязаны к одному объекту, в бд?Этот лист будет состоять ну максимум из 5-10 фоток, чаще всего будет одна фотка или их вообще не будет.
>>1155951Какая СУБД? У каждой есть синтаксис для селекта во временную таблицу, но у всех немного отличается.На мускуле что-то такое:https://stackoverflow.com/a/5859469На ms sql просто селект.
>>1086747 (OP)
>>1155993Выбери в просмотрщике таблиц нужную таблицу, выгрузи ддл. Либо ебашь адовую массу типа create table tablename select * from tablebasr where null; потом инсертишь в эту таблицу селектом. Insert into tablename select blabla from tablebase where blabka. Если запрос с созданием не работает, то делает крейт тейбл tablename like tablebase
>>1156035>просто селектпросто селект блять просто селектит, а мне надо во временную таблицу>>1156049да какой впизду просмотрщик, у меня есть oledb соединение с базой и имя таблицы, а что на сервере творится, я не ебу, мне нужно прямым запросом очистить эту таблицу, но не всю. Короче я понял, тут базотред уровня /b. Попробую чистить без задней мысли, может прокатит.
>1156012во вложенные таблицы стоит складывать не очень важные данные, по которым не будет поиска и джойнов. Уроки - это самая важная часть, поэтому она должна быть отдельной таблицей. Количество записей тебя не должно смущать, для СУБД это семечки (при условии что ты правильно сделал индексы). Ну и про внешние ключи не забываем.Если ты делаешь уроки полем какой-то таблицы ты создаешь себе офигенные проблемы - будет просто нереально с этим что-то сделать.По второму вопросу второй вариант вообще бессмысленный, он никак тебе не поможет. Насчет памяти не переживай, если для поиска ты не будешь поле LOB использовать, то оно никак не помешает. Если ты ищешь по ID, то там уникальный индекс, он вообще в таблицу не полезет при поиске, только когда данные будет отдавать.
>>1156012>>1156082Проебался с разметкой
>>1156012>хранить лист фоток, которые привязаны к одному объектуВ табличке PHOTO есть колонка object_id, которая содержит ссылку на запись OBJECT. Для нее должен быть сделан foreign key и индекс.
>>1156077Бля я тебе решение дал с креэйтом, хуле ты такой долбоеб, блядь?Оледб хуе мое. У тебя значит есть логин/пароль, зайди в бд через какой-нибудь тоад и глянь свою таблицу, вот пиздец, ленивый обмудок.
>>1155837Навскидку я бы так предложил.Question quiz можно убрать, если в каждой викторине вопросы уникальные. Ссылка answer на question - для удобства поиска, ответ ведь не меняется, поэтому можно сразу сохранить все поля. Меньше джойнов потом будет.
>>1155951insert into vspomojitelnaya (col1, col2 .. coln)select col1, col2..coln from osnovnayawhere col1488 = %yoba_uslovie%;commit;truncate table osnovnaya;insert into osnovnaya (col1, col2 .. coln)select col1, col2..coln from vspomojitelnaya;commit;
>>1156086Я тоже так думал, но после >Для СУБД количетсво данных семечки Наверное так и сделаю: таблицу всех фоток, в которых будет содержатся ид хуйни, к которой они привязаны, и таблица всех уроков на все расписания для всех школ. Спасибо, анон.
>>1156098а блять, у тебя нет вспомогательной, тогда вместо первого селектатак: create table vspomojitelnaya as (select * from osnovnaya where ....);Ну это если есть права на создание таблиц.
>>1156090Ёбик, хули ты такой ограниченный, не программист что ли? Решение должно быть универсальным - подсунул любую таблицу, она обрабатывается. Из-за тебе сука походу придется читать структуру таблицы и криэйтом динамически заебенивать копию. Но мне лень, может есть какой-нибудь простой способ в три хода.
>>1156101О, вот это заебочек. Только поясни, create делает прямо новую таблицу на диске, а не временную в темпдб? И че мне после последнего инсерта надо ее дропать? Алсо что за коммит, нахуя коммит? Нигде не видел чтоб его использовали, транзакции вроде нету же, или эта хуита как бы разделяет операции просто?
>>1156116Да, дропнуть нужно будет вспомогательную.Коммиты можешь убрать, что там у вас для запуска скрипта, GO? После каждого выражения тогда GO пиши.create делает просто таблицу, в SQL Server вроде префикс # указывает, что ее нужно создавать в tempdb (т.е. create table #zzz создаст ее в темпдб). Дропнуть все равно нужно будет.
>>1156082бля, немного читал тебя жопой ибо был в шкалке.>Уроки - это самая важная часть, поэтому она должна быть отдельной таблицей.Но само рассписание, которое мне надо получить, содержит только список уроков на неделю, в котором будет около 30 записей, в которых я могу разобратся, просто выгрузив все рассписание в свою програму.И как делать "правильную" выборку по ид? Или SELECT * WHERE id = 228 будет достаточно, т.е оно не будет чекать каждый элемент и сравнивать его ид с 228? как разобратся в этих йоба графиках на твоих пиках?
>>1156129Не работает. И с # в том числе. Возможно действительно прав нет на создание таблиц.
>>1156139Список уроков на неделю - это лишь частный случай.Допустим, ты захочешь сгенерировать для каждого учителя его план занятий на четверть или посчитать количество часов по тому или иному предмету или увидеть наиболее или наименее загруженное время в школе. В этом случае вложенные таблицы будут очень неэффективными.Если ты захочешь сохранять информацию о перенесенных или отмененных уроках - тоже непросто будет. Или если класс на английский язык на две группы разделяется. Или если на физкультуре мальчики отдельно, девочки отдельно.Проектирование схемы данных - очень важный этап, нужно предусмотреть очень многое и заложить потенциал для развития и расширения.Схему читать очень просто - квадратики это таблицы, стрелочки означают что в таблице есть ключ из другой таблицы (на которую показывает стрелочка), вот кстати опечатка у меня - стрелка от lesson должна идти к teacher. Это значит, что в таблице lesson есть поле teacher_id (преподаватель, который ведет урок. Это решение подходит, если урок ведет один преподаватель. Если из больше, то нужно делать еще одну таблицу TEACHER_LESSON). Если стрелка на саму таблицу указывает, то это значит, что в таблице т.е. одно из полей ссылается на другое поле в этой же таблице.> SELECT * WHERE id = 228 будет достаточноДостаточно, если у тебя есть индекс по полю id. СУБД прошерстит индекс (он отсортирован, конкретный id найдется очень быстро), и из индекса возьмет информацию о физическом расположении записи.Т.е. индекс как оглавление в книге (или предметный указатель), если его нет, то чтобы найти главу по названию, тебе придется последовательно пролистать все страницы, пока не найдешь нужную. А с оглавлением ты сразу знаешь номер страницы.
>>1156140что пишет?Если данных немного, то может тупо выгрузить в файл, а потом загрузить обратно?
>>1156156А ничего, я вслепую скрипты выполняю, они либо выполняются, либо нет. Походу надо на сервере логи смотреть.
>>1156154Спасибо анон. Не ожидал, что на дваче мне-долбаебу все так грамотно розжуют
Пагни, можно ли в MS SQL из одного соединения откатить транзакцию другого соединения? Суть токова: подключается к базе соединение А в момент t1. В момент t2 к базе подключается соединение Б и начинает в ней вычислять сладкий хлеб, помоить таблицы. Нужно каким-то образом из-под соединения А в момент t3 взять и откатиться к состоянию t1, как будто соединение Б ничего не делало. При этом соединения должны оставаться активны, т.е. ручной бэкап не прокатит, все должно выполняться скриптом. Я охуел или так можно?
>>1156562А в чем задача-то? Сеанс А и Б одновременно редактируют одни и те же данные? Если сеанс Б зафиксировал изменения, то все, фарш назад не провернешь, если только копия где-то не осталась.
>>1156564У меня есть состояние t1 базы. Я хочу в любой момент вернуться в это состояние, только не ручным бэкапом. Само собой в момент возврата никто в базу ничего писать не будет, но соединения будут висеть. Нужно только сбросить все форшмаки, которые после t1 наделали.
>>1156567В оракле есть технология flashback, глянь такую же в мс, небось есть
>>1156569Короче я заколхозил моментальный снимок базы, но при попытке восстановиться из него говорит = при помощи операции RESTORE не удалось выполнить обработку базы sladkiy_hleb, так как она используется в этом сеансе. Рекомендуется для выполнения этой операции использовать базу данных master. И че?
А что скажете про триггеры? Есть такой функционал у MSSQL, что например, я какую-то условную табличку записываю, срабатывает триггер и вызывает процидурку мне нужную?
>>1156588Мех, у тебя должны быть включены архивлоги, которые снимаются каждые 10-15 минут. И как бы ты понимаешь что у тебя разные scn поэтому ругается на данный момент на реплику.
>>1156639Create or replace trigger blabla after create on schemaOrCreate trigger blabla on db for create_table
>>1156644Кароч у меня есть таблица lykovie_oladji, я в нее буду писать 1 и база должна в этот момент выполнить нужную мне строчку кода. Базарь.
>>1156645Create or replace triger schema( я хуй знает какая рна у тебя).lykovie_oladji_trigger after insert or update on lykovie_oladji Описывай Бегин ЭндНо я тебе не на транзакте писал, я им 1 раз пользовался и ебал его в рот
Аноны, такая хуйня по поводу SQL. Как сделать триггер, который, мол, если 2 поля уже существуют в таблице - то всё предложенное на внос отклонять?
>>1087060Книгу 75-го года, вы серьезно? Я понимаю, что в России нет науки, и приходится читать переводы 50-летней давности, но неужели никто не владеет английским?
>>1158600Поясни вопрос примером. Что на входе, что ты хочешь на выходе.
>>1158640А ты серьезно не понимаешь сути теории? Мне Евклида с его геометрией в пример привести?
>>1158658В базе есть запись ("дом1, номер2, улица3")Если на вход подается запись ("дом1, номер2"), то отклонить.Мол, первые два параметра (не знаю, какой термин подобрать) совпадают с тем, что есть в базе, то такое пропускать нельзя.
>>1158703Я твой синтаксис не понимаю.>("дом1, номер2, улица3")Сколько полей в этой записи?>("дом1, номер2")А в этой?Короче, либо unique constraint, либо trigger.
>>1158756> Я твой синтаксис не понимаю.В общем, есть три колонки, и, если данные с первых двух совпадают с теми, что подают на вход, то отклонить.Пример записи -"Пушкина" "Колотушкина" "12"И, если подается на вход"Пушкина" "Колотушкина" "4918"То это вносить нельзя.
>>1158758Unique constraint делай.Не надо триггер, зачем велосипед изобретать.Все уже придумано.
>>1158759> Unique constraint делай.Эх, если б я знал, куда его и как делать. Ну да ладно, спасибо, погуглю.
>>1158760Вбиваешь в гугл название своей субд и рядом unique constraint.Переходишь на страницу с документацией, смотришь там пример.
>>1158763Я использую DB Browser, и за то время, что я там ковырялся, даже не смог понять как правильно создать триггер. Там есть окошко для ввода и исполнения SQL когда, но он постоянно ругался на синтаксис, хотя я тупо копировал с гугла и подставлял значения своей БД.
>>1158764> для ввода и исполнения SQL когдаКода*
>>1158763Вроде бы разобрался, спасибо еще раз!
Еще вопросик - сколько одновременно рыл может делать запросы к БД? Возможно ли это как-то расширить? Планируется компов 300 одновременно.
>>1159022Больше нуля, если бд в работоспособном состоянии.
>>1159087Есть одна маленькая .db, значит, её трогать может одновременно неограниченное количество рыл?
>>1159096Да, конечно. Ведь это же реляционная база данных. От слова relations множественные связи со множеством клиентов. Тут главное, чтобы RAM хватало.
>>1159107> Тут главное, чтобы RAM хватало.Где? На сервере? А если я без сервера?
>>1159131Где лежит .db
>>1159149На компьютере.
>>1159150 Это было утверждение, а не вопрос.
>>1159157А, понял. Спасибо!А можно еще узнать, от чего зависит требования к оперативной памяти? Если ~300 компьютеров сделают 2-5 insert запросов, сколько нужно RAM?
>>1159186Примерно полтора мегабайта на инсерт.
>>1159208Вроде как хватает. Еще раз спасибо.
>>1159216Пожалуйста. Обращайся. Здесь все твои друзья.
Сап, анонче. Хотелось бы услышать мнения. Если бы вы писали что-то вроде семантического рабочего стола\семантической оболочки ОС, то какую бы СУБД выбрали в качестве хранилища метаинформации? Считай это все семантические связи между типа объектов, аналитическая информация, статистика, и прочее. НО. Это десктоп. То есть объемы, а самое главное, нагрузка не серверная - клиенты лишь сами сервисы\демоны одного пользователя\может пары девайсов, с учетом шаринга информации между ними. При этом есть потребность хранить\отслеживать отношения (следовательно можно задуматься о рдбмс), в тоже время данные - это в сущности объекты ссылающиеся друг на друга и храняшие друг друга (можно задуматься о графовых бд), есть так же потребность в атомарности записей, а потом приходится сомневать насчет носкюл-решений, ведь придется городить ее поверх. Есть кому что сказать?
>>1159361SQLite?
Возможно ли создание mysql ndb-кластера между машинами, когда на одной ubuntu и mysql, а на другой debian и mariadb?
Объясните, пожалуйста, partial functional dependence и transitive functional dependence.
Здравствуйте, аноны.Есть допустим таблица сообщений от пользователей.id userId text timestampКакой селект написать, что бы выцепить по последнему сообщению каждого юзера? Желательно с пояснением, что бы я смог запомнить принцип работы и больше не тупить на этом, потому что уже второй раз сталкиваюсь с подобным, и совсем не помню как решал в прошлый раз :(
>>1159677https://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-columnhttps://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/
>>1159693Спасибо, думал что там всё немного проще, а оказывается такие вот сложности для типовых решений.
>>1159699Можешь сохранять дату последнего сообщения отдельно, например, колонку заведи в таблице пользователей. Небольшие издержки при вставке, но зато не надо лопатить большую таблицу.
>>1159929Пиздец. У меня бугурт с твоей нормализации. 8 нормальная уровня pr, блядьДелается по max(id сообщения). Индекс "user_id, id desc"
>>1159677если твоя субд умеет в over, тоselect select id, userId, text, timestamp from ( select id, userId, text, timestamp, row_number() over (partition by userId order by timestamp desc) as rn from tbl_message) mwhere rn = 1Если не поддерживает, тогда нужно вытаскивать через самоджойны, но это не гарантирует тебе того, что ты получишь по 1 сообщению на каждого юзера:select id, userId, text, timestampfrom tbl_message tminner join ( select userId, max (timestamp) as max_ts from tbl_message) max_t on tm.userId = max_t.userId and tm.timestamp = max_t.max_ts
>>1159930Как будто денормализация - что-то плохое. Разумеется, можно и как ты говоришь сделать и еще другими вариантами. От контекста и условий зависит, от количества записей, которые он выгребает, какие у него джойны еще там есть. Я подъебнулся, кстати, не дату, а id, конечно.Если ему нужен текст или дата, то в твоем варианте ему два раза надо к таблице сходить, а в моем - один.А так мне нравится вариант с not exists, сразу все поля из таблицы получаются.Иногда аналитическая функция удобна, вариантов масса.
>>1159968Есть где почитать, где стоит использовать денормализацию? А то то как с ооп, если все денормализовать, получится неподдерживаемая хуета вместо базы, если все нормализовать - тоже не есть гуд.
А я бы хотел узнать зачем вообще существует релятивистская система в базах?Я вот помню вкатился когда на первую работу, увидел там базу из несвязанных таблиц и с горящими глазами давай её связывать.В итоге это всё было нахуй не нужно и когда ты пытался что-то из какой-то таблицы вычистить, то у тебя только сыпались эроры, что нужно вот еще вот то говно вычестить перед этим, потому что в том говне сидит id этого говна. И на этом собственно всё.Полагаю что в огромных реально проектах это роляет, но когда у тебя простая система таблиц из: юзеры, сообщения юзеров, балансы, посты, картинки, объявления, лог_действий_юзеров ну и максимум еще пара таблиц, то там в принципе наплевать.Кто-то на работе сталкивался с реальной необходимостью?
>>1086747 (OP)Суп, аноны. Думаю писать чатбота который будет анализировать сообщения в чате, потом сопостовлять по регексу с набором разнообразных заготовок вроде "[Заорал|Орнул в голосину|Проорал]" и другими условиями вроде время>22:00 и отвечать "Какого дьявола ты здесь ШУМИШЬ!", ну в зависимости от сообщения.Имеет ли мне смысл изучать для такого базы данных?Как вообще пишется бэкенд для всяких "умных" чатботов?
>>1160262Для тебя есть монгодб.
>>1160454Базы данных здесь вообще не нужны. У тебя всё равно будет линейный перебор по всем регексам с твоим алгоритмом. Ну разве что ты захочешь как-то хранить этот список регексов отдельно или не перезапускать бота. Тебе нужно будет просигналить как-то что обновление случилось чтобы бот заново из базы вытащил весь список.
>>1160075> если все нормализовать - тоже не есть гудПочему?
>>1086747 (OP)Подскажите есть ли задачник для MS SQL Server?
>>1160537sql-ex.ru
>>1160262>пытался что-то из какой-то таблицы вычистить, то у тебя только сыпались эроры, что нужно вот еще вот то говно вычестить перед этим, потому что в том говне сидит id этого говна. И на этом собственно всё.Я так понял в итоге все говно в таблицах и осталось. https://technet.microsoft.com/en-us/library/ms186973(v=sql.105).aspx
>>1160472Кешировать (сохранять) уже рассчитанные данные иногда хорошо (см. устройство хранилища 1с, например). Но это противоречит концепции нормализации. Бай зе вей, хранить рассчитанный адрес "улица пушкена дом колотушкена" хуже червя пидора. Поэтому мы подходим к вопросу гуд практиз.
>>1160471Ну можно линейно перебирать, а можно было бы взять тот же список строк, загнать в несколько потоков и уже их парсить, при этом не выгружая из памяти.Например сходу разбить файл из 80 строк на 8 частей по 10 строк и уже эти 10 строк парсить в своих потоках. Сработает ли такой подход?
Котаны, как сделать ограничение на количество обновлений за час? У пользователя есть поле 'coins', которое хранит кол-во монет. На сервере есть функция 'reward', которая даёт пользователю монеты (увеличивает значение coins). Нужно сделать так, чтобы нельзя было получать награду чаще, чем 10 раз в час.Я так понял, нужно дополнительно два поля добавить. Одно поле будет счётчиком 'rewardCount'. Другое поле будет хранить дату и время 'rewardLastUpdated'.
>>1160574Сработает. Но будет то же самое что и несколько независимых нод под лоад балансером, каждый из которых переваривает целые куски из 80 строк. Тебе лучше какой-то индекс построить, например разбить на слова и каждое слово искать в маппинге. Либо применить банальный парсинг с последовательным проходом по символам + префиксное дерево чтобы в один проход по тексту найти все нужные вхождения.
>>1160565Тогда лучше логически отделить БД как source of truth и кэша, которые наверное лучше поместить в NoSQL. Транзакции и констрейнты вещи достаточно дорогие, но при этом необходимые.
yo ребзя, есть постгрес база в которой в одной из колонок хранятся данные в json, приблизительно так {"age_range":{"max":57,"min":43},"gender":"male"}Как разпарсить и селектнуть gender из строк?На вскидку пробовал json_value - но не находит такую функцию. Халп.
>>1160578Так как данные временные и некритичные, почему бы вообще не елозить диск понапрасну? Например если записывать в редис, можно установить определённый expire time для ключа, в твоём случае час. И просто обновлять число по этому ключу. Если больше 10, то не добавлять coins. Если ключа нет это равносильно 0. Фишечка в том что такое решение ты можешь закрутить ещё во много разных мест, например для защиты от брутфорса, и работать оно будет достаточно быстро.
>>1160608SELECT jfield->'gender' FROM table;
>>1160611Или я тупой или шутка такая. Попробую еще раз:Есть база постгрес, в которой в одной из таблиц, кроме остальных полей редяционных таблиц есть поле в котором хранится строка json которая так выглядит: {"age_range":{"max":57,"min":43},"gender":"male"} Знатоки, вопрос: как мне из строки json селектом вывести в отдельную колонку (чтобы потом в цсв выгрузить) gender
>>1160615Разобрался, так:select jsonfield::json -> 'gender' from table
>>1160619Может лучше ALTER TABLE сделать? Всё равно жсоны лежат.
Шапки с материалом у вас нету, поэтому прошу :Посоветуйте гайды по MongoDB и Mongoose
>>1160628Ридонли права я АНАЛитик, хотя и локальная мини-копия есть, но не хочу перезапускать репликацию.
>>1160609Челик, ебани пожалуйста на твиче стрим как вывести кеш на редис с рдмс.Мы подонатим всем тредом если покажешь сиськи
>>1160739*рдбс. И не кеш, а инкапсуляцию логики. фаст фикс
Мне нужно делать лабу вместе с другом, у него на компе есть часть начала базы данных, можно ли как-то настроить доступ к ней, чтобы я со своего компьютера могла добавлять в нее свой код и она обновлялась у друга на компе
захостите базу на какой-нибудь бесплатной параше по типуhttp://000webhost.com/и работайте оба с ней через phpmyadmin (у вас mysql база надеюсь)
>>1160874>>1160898
>>1160874Пускай друг порты откроет у себя.
Просьба о помощи: В общем мне надо провести работу по документированию mysql базы, описав её структуру в doc (см пик). Пытался сделать через HeidiSQL, но это зараза хоть и отображает то что надо (см тот же пик) , но при копировании вставке выдаёт блин опять таки структуру в виде "create table". Прошу помощи - есть ли какие-то программные средства не вносить вручную в таблички doc структуру mysql таблиц?
>>11610111. https://dev.mysql.com/doc/refman/5.7/en/show-columns.html2. Можешь попробовать экспортнуть в csv:SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';Потом открыть его экселем и копировать в ворд. Но имхо, гемороя только добавится.
В универе поставили задачку перенести бд с MySQL в Postgresql, какие пути решения? желательно без левых программВ универе поставили задачку перенести бд с MySQL в Postgresql, какие пути решения? Гугл выдет всякие программки-конверторы, есть ли решение не прибегаю к использованию других программ?
>>1161224Выгрузить ддл же. Ты получишь огромный sql файл. ( по хорошему выгрузи сначала таблцы) и в ручную замени величины на те, что есть в постгресс, потом так же делай с триггерами, и прочим. Функции переделывать придется полностью скорее всего. А потом комплияй и прочее.В вики постгре есть тулзы для миграции, тебе не пойдут?
>>1161030спасибо, но сцуко всё таки не совсем то. буду искать.
>>1161313Да нет другого решения. Все крутится вокруг одного - выгружаешь описание схемы из MySQL (DDL - скрипт, анон выше про то же самое пишет) и загружаешь в postgresql. Другого глобуса у нас нет.Можно поискать утилитки которая отрежет MySQL -специфичные штучки, чтобы получился максимально простой DDL. Можно самому написать выгрузку из словаря MySQL, можно найти готовые скрипты выгрузки и допилить их чтобы лишнее не выгружали.
>>1161011Попробуй Navicat. Если веб макака, то у Jetbrains тоже есть инструмент для построения диаграмм.
Как имитировать работу с огроменной бд, если в ней на самом деле всего 20 записей?
Мне кажется SQL - это ошибка.
>>1161495Мне кажется твое рождение - это ошибка.
>>1161492Так добавь туда пару миллионов записей и не еби нам мозги.
>>1161495Попробуй Tutorial D.
>>1161492Запусти приложение в поток двадцать, которое будет инсертитб, селектить, апдейтить какую-нибудь хуйню постоянно. И залей миллион записей.
>>1159677В MSSQL можно через CROSS APPLY.
Всем привет. вопрос по монге, хочу получить значение максимально близкое к нужной дате. сначала попробовал через mongoose, но там запрос не отрабатывал как надо, потому полез в консоль руками пробовать. но возникла проблема - монга не выполняет команду, будто она не завершена, хотя запрос полностью написан, но она только новую строку создает чтобы ввести символ. если введешь - ошибка лишнего символазаметил что это только тогда, когда я использую $gte или $lt, вплоть до того что пытался выполнить следующий запрос: db.collection.find({time:{$gte:"2018-03-26T18:38:00.457Z"}})посоветуйте плз что сделать или ткните в ошибку
Привет, погромач.Очень годный тред, хотелось бы ваш совет.Я уебываю со своей работы (аналитик) и хочу вкатиться к вам. Хуйня в том, что я не особо секу за направления. То есть я знаю, что разработчик бд-чаще всего пилит etl (надеюсь все верно), а еще есть администратор бд. У меня есть порядка пары месяцев на изучение документации и погружения. Знал когда-то неплохо sql и вот думаю про изучение tsql с установкой mssql и работы. Куда податься? Админ, разраб? Конечно, хотелось бы больше зп, но вангую, что на мне розовые очки и вообще хуй меня кто возьмет. Спасибо!
>>1163442>>mssql Good luck
Как сделать, чтобы при определенном условии выводилось сообщение? Например, сравниваются столбец1 и столбец2, надо чтобы выводилось следующее "столбец1 | столбец2 | сообщение". Я так понимаю, для сообщения надо запилить свой столбец и писать туда сообщения. Мб в мускл можно сделать как-то проще?
>>1163507У тебя каша в голове, братишка. Какое сообщение? Откуда вывоилось и куда? Сравниваются - это "равняется" или больше/меньше? А если не равны, то что? Хорошо сформулированный вопрос - залог успеха!
>>1163507select столбец1, столбец2, N'сообщение'from таблицаwhere столбец1 <> столбец2это если твои столбцы в одной таблице. Если в разных, надо использовать join.
Анон выручай я криворукий жопохуй какой-то.Есть SQL база данных postgres и mysql вся хуйня, что требуется реализовать для двух баз данных, заказчик хотел ещё mssql но я убедил, что ему она не нужна. Выбора между двумя более чем достаточноЕсть таблица в которой есть три числовых поля условно A, B, C, есть и другие поля но они нас не интересуют.Мы вставляем в таблицу данные при этом мы знаем значения для полей A и B, в C мы должны вставить инкрементальное значение. Сложность в том, что счётчик должен быть уникален для каждой пары A и Bто есть вставляем(0, 0, ?) => (0, 0, 1)(0, 0, ?) => (0, 0, 2)(0, 0, ?) => (0, 0, 3)(0, 1, ?) => (0, 0, 1)(0, 1, ?) => (0, 0, 2)(0, 0, ?) => (0, 0, 4)(7, 9, ?) => (0, 0, 1)(0, 1, ?) => (0, 0, 3)(0, 0, ?) => (0, 0, 1)
>>1164153Ну так вычисляй сам значение инкремента для пары, залочив перед этим таблицу на запись.
>>1164153Триггер напиши, который проверяет пары данных.Благо расширенный sql умеет в ветвление
>>1164173>>1164180Звучит не плохо, вот только в них я нихера не умею. Да и даже с ветвлением не очень понятно как это сделать. без нескольких дополнительных запросов.
>>1164204триггер позволяет обрабатывать данные для INSERT, через nvl ебашишь данные и всё. гляди вот такая структура :new.stolb1 :new.stolb2 :new.stolb3 обрабатываешь через nvl, например. create or replace trigger kartopler before insert on belorus_tablefor each row DECLAREтут что-то объявляешьBEGINif :new.stolb1 is not null ( или ебашишь обработку с nvl дабы ускорить перебор и точно не попасть в жопу) then if then belorus_kartopler1:= belorus_kartopler1 + 1;и не забывай закрывать ветвления ENDIFEND;
>>1164223Меня смущает момент генерации нового значения, так как инкремента должна расти, то нужно хранить информацию о последнем её значение в другой таблице или дёргать из этой, но в случае удаления записей счётчик может сбиться или повториться и второе насколько это будет медленно?
>>1164297>>1164297Ну так это повод узнать что-то новое.Зачем и как лочить таблицы.Как делать триггер.Как делать индексы на таблицу, чтобы было быстрее.Насчет быстрее - ты ведь не финтех приложение пишешь, я надеюсь? Так что делай обычный селект для вычисления инкремента.Насчет удаления - либо делай только пометку об удалении, либо действительно храни инкременты для пар в отдельной таблице.
>>1164297Почитай теорию. Хоть не постгресс - Том Кайт с его томиком
>>1163457А что с ним не так7
>>116460Рынок же проебали.
>>1164297ну пиздец, pragma ебани. Почитай про индексы. По сути ты можешь создать представление с индексами и ебашить их туда и назад, благо расширенный sql предлагает ебашить и не такое
Как обратиться к строке таблицы по индексу? Например, удалить именно 5 строку.
>>1165441В общем случае - никак.В таблице нет как таковых номеров строк.Ты можешь отсортировать таблицу по какому-нибудь критерию и взять уже в сортированном наборе строчку №5.
Как мне теперь триггер создать на то, что, если quanity < 0 - то больше не пихать людей?
>>1086747 (OP)Топ ораклист, перекати тред.
>>1166929НУ И ЧТО С ВАМИ ДЕЛАТЬ?ЕХАЙТЕ>>1167018 (OP)>>1167018 (OP)>>1167018 (OP)>>1167018 (OP)>>1167018 (OP)>>1167018 (OP)>>1167018 (OP)>>1167018 (OP)
>>1167019Обнял няшу :3
>>1154797не слушайте его. эти мудаки форсят и создают вокруг postgresql необоснованный хайп. только вот работать потом и семью кормить вам а не им. postgresql до оракла и mssql еще очень очень далеко технически. это во-первых. кроме того (и что кстати куда важнее), 99% проектов с postgresql это дауны с нищеебскими задачами. не замечать этого, не догадаться логически - это надо быть идиотом. карьера постгресиста - это глупость, такого вообще бывает, (полтора инвалида на весь мир в расчет можно не брать). исключение те компании/инсталляции где покупают EDBPostgres, Citus или рашкенский PostgresPro.
>>1180023> 99% проектов с postgresql это дауны с нищеебскими задачамиПроиграл с этого. Нищеебские проекты как раз таки делают на дерьме простых субд на вроде майэскюэль.А крупные проекты с миллионами+ записей делают на божественном постгресе. Скайп например.
>>1180023Пфф, да ты, вообще, как СУБД-шник должен шарить и в мс скл, и в май скл, и в постгресе, хотя бы на уровне тех фич, которыми эти системы выделяются.