Изучаем SQL с нуля По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning № 4974313625
🖥 Нейросеть ChatGPT собрала подборку топовых каналов, которые понадобятся любому разработчику!
1337 – известное популярное айти медиа о нейросетях, технологиях и интернет-трендах.
Habr Articles – полезные статьи о программировании с известного русскоязычного форума Habr.
ChatGPT-4 – комьюнити фанатов ChatGPT 4 версии. Здесь всё об нейросетях, айти технологиях и не только.
Apple News – актуальная и полезная информация об Apple. Новости, обзоры, секреты, советы и фишки.
Огромный туториал-шпаргалку по SQL с примерами запросов и объяснением
Читать полностью…PostgreSQL ltree: обеспечение целостности данных
Смотреть статью
📌 PostgreSQL — открытая реляционная база данных с высокой производительностью, надежностью и поддержкой стандартов SQL, которая все больше используется в различных проектах.
✅ Для стабильной и безотказной работы приложения крайне важен мониторинг базы данных.
⚠️ 16 мая в 20:00 мск состоится вебинар «Мониторинг PostgreSQL grafana+prometheus».
⬆️На вебинаре мы рассмотрим и настроим мониторинг PostgreSQL с помощью Grafana и Prometheus. Этот вебинар приурочен к старту курса «PostgreSQL для администраторов баз данных и разработчиков», после урока вы сможете продолжить обучение. OTUS предоставляет разные способы оплаты курса.
👉 Готовьте вопросы и записывайтесь на вебинар!
https://otus.pw/xwjB/Нативная интеграция. Информация о продукте www.otus.ru
Получите 4 курса за 0 рублей и попробуйте себя в роли аналитика!
Только сегодня у вас есть возможность погрузиться в особенности специализации и начать решать реальные задачи на живом практикуме.
Перейдя по ссылке, вы получите:
Вводный курс: всё, что вам нужно знать на старте про профессию Аналитика и другие ключевые профессии в IT
Мастер-класс по аналитике: узнаете, как быстро войти в профессию, и решите реальные задачи
Эксклюзивные лекции по основам программирования – знания, которые необходимы для любой IT-профессии
Ну что готовы начать? Жмите на ссылку 👉 ЗДЕСЬ
Реклама
ООО "ГикБреинс"
erid: LjN8KYsBj
Data Secrets — журнал в области науки о данных.
Здесь ребята просто и практично расскажут про Big Data, нейросети, анализ данных и многое другое.
В канале вы найдете:
– Гайд "Как задеплоить модель с помощью FastAPI";
– Интересные трюки по оптимизации памяти;
– Прозрачные обзоры алгоритмов глубокого обучения;
– Математику для Data Science на пальцах;
– Забавные пересказы новых статей.
Присоединяйтесь по ссылке @data_secrets и становитесь экспертом в области науки о данных!
Функция SYSDATE()
Функция SYSDATE()
возвращает текущую дату и время.
Дата и время возвращаются как (строка) "YYYY-MM-DD HH:MM:SS" или как (числовые) YYYYMMDDHHMMSS.
Задача
Даны 3 таблицы: таблица category с полями id и name, таблица sub_category с полями id и name и таблица page с полями id, name и sub_category_id. Достаньте одним запросом все страницы вместе с их подкатегориями и категориями.SELECT * FROM page LEFT JOIN category ON page.catogory_id = category.id
LEFT JOIN sub_category ON category.id = sub_category.category_id
Хотите дорасти до уверенного Middle Data Engineer, но текущего стека не хватает?
На курсе «Инженер данных» от karpov.courses опытные специалисты из VK, Яндекс Go, Sbermarket и Ozon помогут дополнить ваш арсенал современными инструментами для хранения и обработки больших данных.
За 5 месяцев вы научитесь:
● Работать с реляционными и MPP базами данных
● Автоматизировать ETL-пайплайны
● Проектировать традиционные и облачные хранилища
● Применять ML-модели на больших данных
● Строить дашборды для мониторинга DWH платформы
Здесь вас ждут интересные проекты и настоящая инфраструктура: Greenplum, Hadoop, Kubernetes, Spark, Hive, Kafka, Airflow, Tableau.
По итогам обучения вы станете крепким Middle специалистом с широким набором прикладных навыков, а наш HR доведёт вас до оффера в хорошую компанию.
Курс стартует 11 мая, учитесь уже сейчас, так как с 15 мая цена вырастет!
#вопросы_с_собеседований
Что не так с запросом на фото? Исправьте его, если нужно.
В тексте обнаружено неверное выражение BillingYear в условии WHERE. Несмотря на то, что оно было определено как алиас в выборке SELECT перед WHERE, логический порядок обработки условий отличается. Как известно, в T-SQL операторы выполняются в другом порядке, что может привести к неожиданным результатам. Чтобы избежать подобных ошибок, программисты должны учитывать эту особенность при написании кода.
Правильный запрос будет выглядеть так:
SELECT Id, YEAR(BillingDate) AS BillingYear
FROM Invoices
WHERE YEAR(BillingDate) >= 2010;
Шпаргалка по всем базовым командам SQL с пояснением и примерами
Читать полностью…#Вопросы_с_собеседования
❓Почему данный код выведет ошибку?
Код выдаст ошибку, так как в данном случае alias нельзя использовать в операторе WHERE.
Порядок выполнения упомянутого SELECT запроса следующий:
1. FROM
2. WHERE
3. SELECT
Соответственно при выполнении команды WHERE, alias, задаваемый в SELECT еще неизвестен.
Для PostgreSQL или MySQL данную проблему можно решить, например, следующим образом:
WITH ct AS (
SELECT id, name, CONCAT ('EU:', city) AS city_m
FROM customers
)
SELECT ct.*
FROM ct
WHERE ct.city_m = 'EU:Oslo';
#Вопросы_с_собеседования
❓Какие ограничения на целостность данных существуют в SQL?PRIMARY KEY
- набор полей (1 или более), значения которых образуют уникальную комбинацию и используются для однозначной идентификации записи в таблице. Для таблицы может быть создано только одно такое ограничение. Данное ограничение используется для обеспечения целостности сущности, которая описана таблицей.CHECK
используется для ограничения множества значений, которые могут быть помещены в данный столбец. Это ограничение используется для обеспечения целостности предметной области, которую описывают таблицы в базе.UNIQUE
обеспечивает отсутствие дубликатов в столбце или наборе столбцов.FOREIGN KEY
защищает от действий, которые могут нарушить связи между таблицами. FOREIGN KEY
в одной таблице указывает на PRIMARY KEY
в другой. Поэтому данное ограничение нацелено на то, чтобы не было записей FOREIGN KEY
, которым не отвечают записи PRIMARY KEY
.
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи за вторник
Ответ на картинке.
Функция CONCAT_WS()
Функция CONCAT_WS() добавляет два или более выражений вместе с разделителем.
Синтаксис:
CONCAT_WS(separator, expression1, expression2, expression3,...).
Получаем текущее время с помощью SQL
В нашем примере мы получаем текущее время без даты, для этого мы преобразуем результаты GETDATE() в тип данных TIME.
Узнаем размер файла с помощью SQL
В SQL нельзя узнать размер файла напрямую. Однако, если файл находится в базе данных, то можно использовать функцию DATALENGTH
, которая вернет размер данных в байтах.
Где MyFileColumn
- это столбец таблицы, в котором хранится файл, MyTable
- это имя таблицы, а ID = 1
- это условие выборки конкретной записи из таблицы.
#Вопросы_с_собеседования
Назовите SQL-операторы для составления условий
GROUP BY: используется при агрегировании для объединения идентичных данных в группы, предложение GROUP BY следует за предложением WHERE в операторе SELECT. В примере ниже результатом запроса с использованием GROUP BY будет таблица, показывающая количество пользователей (Customers) в каждой стране (Country):SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
HAVING: используется для указания условия поиска в предложении GROUP BY, HAVING может использоваться в отсутствие предложения GROUP BY с помощью предложения WHERE. В примере ниже результатом запроса с использованием HAVING будет таблица, показывающая количество пользователей (Customers) в каждой стране (Country) с числом пользователей больше 5.SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
ORDER BY: сортирует набор результатов в порядке возрастания (по умолчанию) или убывания (при использовании ключевого слова DESC). В примере ниже результатом запроса будет таблица пользователей (Customers), отсортированная по полю «Страна» (Country):SELECT * FROM Customers
ORDER BY Country;
WHERE:
используется для определения условия извлечения записей». В примере ниже результатом запроса будет таблица пользователей (Customers) из Мексики:SELECT * FROM Customers
WHERE Country='Mexico';
#Вопросы_с_собеседования
Проверьте, существует ли значение в массиве Postgres
Ответ на картинке.
Применение оператора MERGE в PostgreSQL
Смотреть статью
#Вопросы_с_собеседования
❓Выбрать студентов, имеющих балл от 82 до 90. Студенты должны быть отсортированы в порядке убывания балла
Ответ на картинке.
Время учить Python. 10 мая старт Подготовительного курса 🐍
✔️Упражняемся в браузерном тренажере — учимся понимать и писать код на Python.
✔️Погружаемся в реальный продакшен — создаем конвертер валют вместе с наставником.
✔️Размещаем изменения на GitHub — получаем основу для своего первого пет-проекта.
База по Python за 14 дней. На практике. За 990 рублей.
🔜 Запишитесь прямо сейчас по ссылке выше или тут —> https://ru.hexlet.io/link/CW5WHk
Сработает ли данный запрос?
Ответ:
Здесь всё очень просто. При вставке строчек в таблицу количество полей при объявлении не соответствует количеству вставляемых значений в конструкции values. Это должен знать даже начинающий SQL-разработчик.
Один день из жизни телеграмщика
Солнечный день на Бали. 8 утра. В России все идут на работу, он лежит в кровати. Встал в 10. Позавтракал. Берет телефон. Продаёт 2 рекламы, 140 тысяч пришло на карту. Идет кайфовать на сёрфинг.
Рабочий ли это день? Да. Загруженный? Совсем нет. Чтобы работать на таком же релаксе, начните читать «Бизнес в Telegram».
Роман протестировал все денежные тематики в телеграме. Теперь простым языком рассказывает, как создать свой канал и начать зарабатывать от 150.000 в месяц.
Здесь о самой денежной нише в интернете, читайте закреп: @RomanBlog
Как создать временную таблицу в sql запросе
Для создания временной таблицы используется ключевое слово TEMPORARY
в команде CREATE TABLE:
CREATE TEMPORARY TABLE название_таблицы
Удобно создавать временную таблицу на выборке из другой таблицы:CREATE TEMPORARY TABLE customer_temp SELECT * FROM customer;
🖥 Как в sql посчитать количество повторяющихся значений
Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY.
Предположим, у нас есть таблица "orders" с колонками "customer_name" и "order_date", и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:SELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name
Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.
#Вопросы_с_собеседования
❓Выберите все записи, где первая буква City начинается с любой буквы от "a" до "f"
Ответ на картинке.
Старый баг в MySQL. Детективная история
Смотреть статью
Что вы знаете о функции STUFF(Transact-SQL)?
Функция STUFF вставляет одну строку в другую, начиная с указанной позиции. При этом в исходной строке, начиная с указанной позиции, удаляются символы в количестве, определенном в параметре Length.
Другими словами STUFF вставляет одну строку в другую. Она удаляет указанное количество символов первой строки в начальной позиции и вставляет на их место вторую строку.
Синтаксис:
STUFF(String1, Position, Length, String2)Здесь String1
— это строка, которая будет перезаписана. Position определяет стартовую позицию для перезаписи строки. Length
— это длина подстроки, которая будет удалена из исходной строки. String2
— это строка, которая будет вставлена в String1.
Пример:SELECT STUFF(‘SQL Tutorial’,1,3,’Python’)
В результате работы функции «SQL Tutorial» превратится в «Python Tutorial».
Результат:Python Tutorial
Количество вхождений строки в поле в MySQL
Есть таблица items
со следующими данными:id desc
1 val test test val
2 val test
3 test test test
4 valvalvalvalval
Напишите MySQL запрос, который подсчитает количество вхождений значения ‘val
‘ для каждого desc
.
Ожидаемый результат:2
1
0
5
Решение:SELECT
ROUND (
(LENGTH (desc) - LENGTH (
REPLACE (desc, ‘val‘,‘‘)
)) / LENGTH(‘val‘)) AS c
FROM items;