Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - it_skills_ua
Added 14 Jul 2024

it_skills_ua

@it_skills_ua
Number of subscribers: 2 075
Photos: 407
Videos: 279
Links: 253
Description:
Привіт, мене звати Костя і я прокачаю твої скіли в SQL та БД. Мій інстаграм: instagram.com/it_skills_ua Мій сайт: it-skills.in.ua Чат де можна потеревенити про SQL: t.me/+HE-teCeWFJNlMDhi linkedin.com/in/kostiantyn-nadiezhdin

👥 Number of subscribers

2 075
Average/Day:: +7
Average/Week:: +11
Average/Month:: +5

📊 Messages per Day

0.2
Last day: 0
Week average: 0.3
Average per day: 0.2

Logo change history

Status change history

Officially not confirmed 2024-07-14

Wall

Telegram statistics channel

👁 1,260 26-04-03 13:35
5 причин використовувати Common Table Expressions (CTE) в SQL:1️⃣ Читабельність та структура: CTE дозволяють розбивати складну логіку на іменовані та зрозумілі шари SQL коду.2️⃣ Покрокове налагодження (Debugging): CTE дозволяють перевіряти логіку запиту етап за етапом. Ви можете легко змінити фінальний SELECT, щоб вивести результат конкретного блоку (разом із тими, від яких він залежить), що значно спрощує локалізацію помилок порівняно з глибоко вкладеними підзапитами.3️⃣ Усунення дублювання: Ви можете визначити підзапит один раз, а потім неодноразово звертатися до нього в основному запиті, уникаючи копіювання коду.4️⃣ Рекурсія: CTE — це єдиний зручний спосіб реалізації рекурсивних запитів (наприклад, для обходу ієрархій або дерев). Винятком є тільки БД Oracle, де окрім CTE існує такий механізм рекурсивних запитів як CONNECT BY PRIOR.5️⃣ Дані з CTE можна матеріалізувати, записавши їх в оперативну пам'ять: опція матеріалізації результатів запиту може значно підвищити продуктивність. Проте є низка випадків, коли це, навпаки, уповільнює весь запит - тоді за допомогою хінтів можна включити режим inline. Але є нюанси які залежать від конкретної БД.PS:На моєму ютуб каналі є відео про СТЕ table, де я також розповідаю про хінти INLINE та MATERIALIZE#about_sql
👁 1,450 25-09-21 16:16
Функція NULLIF в Oracle SQLOracle SQL функція NULLIF порівнює expr1 та expr2. Якщо expr1 і expr2 дорівнюють, функція NULLIF повертає NULL. Інакше вона повертає expr1.Синтаксис Oracle SQL функції NULLIF:NULLIF( expr1, expr2 ) Реальні кейси використання функції NULLIF:1. Уникнення помилки при діленні на нульSELECT order_id, discount, price / NULLIF(discount, 0) AS discount_ratioFROM orders; Якщо discount = 0, замість помилки ORA-01476: divisor is equal to zero ми отримаємо NULL і помилки не буде2. Визначити, чи змінилось значенняSELECT product_id, NULLIF(new_price, old_price) AS price_changedFROM products; Якщо ціна не змінилась → поверне NULL. Якщо ціна інша → поверне значення із new_price. Це зручно, щоб бачити тільки ті товари, де є зміна.3. Спрощення SQL синтаксису, щоб не використовувати CASEЗамість довгого коду:CASE WHEN status = 'active' THEN NULL ELSE statusEND Можна написати простіше:NULLIF(status, 'active') NULLIF — невелика, але дуже корисна функція, яка рятує від зайвого коду та помилок.#sql_code
👁 2,029 25-07-26 15:37
SQL задача:В таблиці logs по колонці log_text знайти всі рядки де зустрічається IP адреси від 192.168.0.​201 до 192.168.0.​204. В колонці log_text маємо текст такого формату: «User connected from 192.168.0.​202 at PC».Варіант рішення через LIKE:SELECT *FROM logsWHERE (log_text LIKE '%192.168.0.201%' OR log_text LIKE '%192.168.0.202%' OR log_text LIKE '%192.168.0.203%' OR log_text LIKE '%192.168.0.204%'); Варіант рішення через REGEXP_LIKE:SELECT *FROM logsWHERE REGEXP_LIKE(log_text, '192\.168\.0\.20[1-4]'); Головний мінус LIKE в тому, що при пошуку наприклад 100 IP адрес, треба буде прописувати 100 LIKE умов через OR. Але LIKE швидший в на великих обʼємах.Головний мінус REGEXP_LIKE, це те, що на великих обʼємах скоріш за все буде працювати довше. Але REGEXP_LIKE компактний та гнучкий, легко адаптувати під інші шаблони (наприклад, IP + порт).PS:REGEXP_LIKE це SQL-функція, яка дозволяє перевіряти, чи текст відповідає регулярному виразу. Регулярний вираз (англ. regular expression, regex) - це спеціальний шаблон для пошуку відповідності в тексті.REGEXP_LIKE повністю підтримується в Oracle БД, та MySQL починаючи з 8 версії (до цього був аналог REGEXP), в БД PostgreSQL немає REGEXP_LIKE, але є аналог через regex match. В SQL Server вбудованої підтримки регулярних виразів немає.#sql_code
👁 1,840 25-06-22 10:56
Розбираємо різницю в SQL між конструкціями !=, NOT, NOT IN🔹 Про !=!= це базовий спосіб порівняння в SQL, коли треба знайти щось, що не дорівнює певному значенню. Наприклад, усіх, хто не має певного тарифу або знижки. Але важливо знати, якщо у стовпчику є значення NULL, то будь-яке порівняння з ним буде невизначеним, і такий рядок просто не потрапить у результат. Тобто дані втрачаються. Це один із найпоширеніших підводних каменів у SQL: думаєш, що виключаєш значення, а насправді ще й пропускаєш всі NULL значення.🔹 Про NOTNOT це просто інверсія умови, тобто це зворотня дія для якоїсь умови. Хоча технічно це зручно, на практиці NOT часто ускладнює читання запиту. Наприклад, NOT (a != b) виглядає складніше, ніж просто a = b. Але є кейси, де NOT це зручно, коли потрібно інвертувати одразу кілька умов одночасно. Уяви, що треба виключити комбінацію з кількох значень, отут NOT справді зручний. І ще нюанс: якщо в умовах є NULL, і ти використовуєш NOT, може бути той самий ефект, що й з !=, результат частково втрачається, якщо не обробити NULL.🔹 Про NOT INNOT IN - виключення зі списку, це зручно, коли треба виключити одразу кілька значень: наприклад, усіх, у кого знижка не 10, 15 або 20. Але є дуже критична особливість, якщо в цьому списку значень або в колонці є хоча б один NULL, результат буде пустим - поверенеться 0 рядків (це називається пустий набір даних). Щоб NOT IN працював надійно, потрібно завжди враховувати NULL або очищати список, або підміняти NULL на значення за замовчуванням (наприклад, 0). NOT IN також часто використовують у зв'язці з підзапитами, коли треба виключити все, що вже є в іншому наборі даних. Але там теж треба пильнувати будь-який NULL у підзапиті, бо можна зламати весь результат.Більш детально у відео, максимальна якість на ютуб каналі#sql_code
👁 1,510 25-06-17 17:20
5 років досвіду в IT, це що? Рівень синьйора?🧐Якщо ти думаєш, що стаж у роках показує чи є спеціаліст вже сеньйором чи ні - зупинись! Бо роки - це просто фон, а рівень визначається не часом, а відповідальністю.🤯 Ти не станеш Senior спеціалістом лише тому, що 5 років кодиш на якійсь мові програмування. Синьйор - це не про «скільки», це про «як» і «заради чого».Хто ж такий справжній синьйор?🔹Той, хто вміє сказати «ні» дурному технічному завданню - аргументовано, обґрунтовано, з розумінням про продукт.🔹Той, хто не тягне все на собі, але допомагає іншому зростати - менторить, підказує, дає напрямок для розвитку. 🔹Той, хто бачить наслідки розробленого коду для всієї системи, а не тільки для однієї конкретної задачки із Jira.🔹Той, хто бере на себе технічний борг — не закриває очі, а вирішує, перероблює, оптимізує.🔹Той, хто ініціює зміни в архітектурі, бо бачить слабкі місця і не мовчить.📢 Справжній сеньйор це не просто статус в LinkedIn. Це вибір бути відповідальним, думати наперед, менторити і будувати сильну команду, а не просто розробляти якісний код.Пишіть свої думки в коментарях👇#about_it