fa
Feedback
Пишем на SQL

Пишем на SQL

رفتن به کانال در Telegram

Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql Мой курс по SQL и базам данных: https://prime-soft.biz/courses/sql Связь со мной @iliahohlov

نمایش بیشتر
1 901
مشترکین
-124 ساعت
+17 روز
-130 روز
آرشیو پست ها
Друзья, подскажите, был бы интересен интенсивный курс по "Разработке в MySql"? Чему мы научимся: - разрабатывать высоконагруженные базы данных (Database design); - программировать на языке SQL/PSM (внутреннем языке программирования MySQL, который аналогичен языку T-SQL в MS SQL Server и PL/SQL в ORACLE); - создавать хранимые процедуры, функции, триггеры; - использовать преимущества MyISAM и InnoDB таблицы для решения разных задач; - выявлять ошибки в коде и бизнес-логике. Использовать для этого стандартные средства СУБД MySQL, которые она поставляет. Начиная от версии 5 и до 8ой; - выявлять проблемные и долговыполняющиеся SQL-запросы и оптимизировать их; - пользоваться транзакциями правильно, как это делают в больших софтверных компаниях; - бороться с взаимными блокировками (DeadLocks); - пользоваться вычислениями в запросах (аналоги аналитических / оконных функций); - конфигурировать MySql, правильно выставлять параметры, обеспечивая максимальную производительность. Какие нужны предварительные знания: - разумеется базовые навыки SQL (умение писать запросы, пользоваться командами SELECT, INSERT, UPDATE и DELETE); - желательно понимать что такое индексы и как ими пользоваться; - навыки создания таблиц. Идеальная подготовка - наш базовый курс "SQL. Базы данных. ORA­CLE. MS SQL Server. MySQL". Формат курса: - 12 он-лайн занятий (вебинары) три раза в неделю (пн, чт в 19:30 и сб в 9:00) по 1.5 часа; - вебинары будут доступны в записи; - самостоятельные практические задачи (д/з) с проверкой и разбором работ; - закрытая группа в Телеграмм. Предварительно стоимость обучения будет 12.000. Пока планируется начать с 8го января. Оставляйте вопросы в комментариях под этим постом.

Есть SQL запрос: SELECT NAME FROM CUSTOMER WHERE STATE = 'VA' Какой из запросов ниже будет возвращать идентичный результат?
Anonymous voting

Здравствуйте, друзья! Всем хорошего старта в новой рабочей (учебной) неделе! Предлагаю небольшую задачу по SQL (базовый уровень). Будет ниже 🙂

photo content

18:00! Пятница 🙂 И немного айти юмора

Всем спасибо за активное участие! Чтобы решение работало во всех СУБД, воспользуемся CASE: UPDATE TBL SET NMBR = CASE WHEN NMBR = 0 THEN NMBR + 2 ELSE NMBR + 3 END

Здравствуйте, дорогие друзья! Как насчёт небольшой задачи по SQL? Имеется таблица TBL, имеющая, среди прочих, столбец NMBR. В столбце есть только значения 1 и 0. Требуется к числу NMBR прибавить 2 для строк, где оно равно 0, и прибавить 3, где оно равно 1. В конце дня напишу правильный ответ!

Здравствуйте, друзья! Иногда, при написании SQL-запросов, нам бывает нужно использовать конкретную дату при выборе данных (например, выбирать платежи, которые были сделаны начиная от такой-то даты). Нельзя вписывать дату в запрос в удобном нам ("человеческом") виде (представлении). Нельзя писать, например, так: SELECT * FROM PAYMENTS WHERE DATE_CREATE > 20.12.2021 Нельзя писать и так: SELECT * FROM PAYMENTS WHERE DATE_CREATE > '20.дек.2021' Несмотря на то, что нам (людям) любое из этих представлений даты понятны, СУБД должна точно распознавать дату. Что в дате указывает на число, что на месяц и что на год. Есть нсколько способов как вписать нужную дату в SQL-запрос. Эти способы могут быть немного отличаться в разных СУБД (с датами работаем всегда осторожно). В ORACLE мы можем использовать функцию to_date для преобразования в дату из введённый текстовой информации. SELECT * FROM PAYMENTS WHERE DATE_CREATE > to_date('20.12.2021', 'dd.mm.yyyy') Вот так много нужно написать, чтобы Оракл правильно принял дату в SQL-запрос. Используем функцию to_date, которой сначала указываем непосредственно дату, понятную нам, а затем указываем маску как эту дату распознавать. Почти всегда есть несколько способов написания даты в SQL-запрос. И для ORACLE есть способ покороче: SELECT * FROM PAYMENTS WHERE DATE_CREATE > DATE '2021-12-20' При использовании фразы DATE не нужно указывать маску распознавания даты, но саму дату придётся вписывать только в формате год-месяц-день.

Здравствуйте, дорогие друзья! Пришла пятница! 🙂 По традиции немного юмора. Нашёл несколько анекдотов на айти тему: Приходит администратор баз данных к окулисту. Тот его усаживает напротив таблицы, берет указку: — Читайте! — БНОПНЯ... Доктор, у вас что—то не то с кодировкой! 🙂🙂🙂 Жена разбудила ночью мужа—программиста: — Дорогой, у нас мышь пищит, мне страшно! — Так ты выдерни её из системника! 🙂🙂🙂 Программист после напряженного трудового дня залезает в холодильник, достает пачку масла, читает на обертке: — Масло сливочное. 72%. В голове быстрая мысль: — О! Скоро загрузится! Возвращает масло в холодильник. Закрывает дверцу.

В середине октября опубликовал свои первые бесплатные курсы по MS Excel на stepik-е (ссылки на курсы выше в истории от 20го октября) и собрал уже более 1.500 учеников и ещё много хороших отзывов 🙏🎉 Спасибо за активное участие! 🤗 Сегодня публикуем наш курс "SQL. Базы данных. ORA­CLE. MS SQL. MySQL" на платформе. Теперь курс будет доступен и на Stepik-е😌 Ссылка на курс: https://stepik.org/course/183400 Начальная стоимость курса значительно ниже, чем у нас на сайте, но цена будет актуальна для первых 20ти человек! ☝️ Пройти весь курс можно всего за 4.990 р. В эту стоимость входит огромное количество уроков (мы изучим SQL с нуля до уровня специалиста с трёхлетним стажем), все уроки сопровождаются практикой, мы будем работать в реальной базе данных, будет много самостоятельных практических задач, выполнение которых мы будем контролировать (проверять Ваши решения, помогать оптимизировать код, находить ошибки), и ещё снабдили курс автоматическими тестами по теории. Правильность ответов будет проверять сама платформа! По завершению обучения - сертификат Stepik-а. Доступ к курсу бессрочный! Будем Вас ждать!

Добрый день, друзья! Предлагаю рассмотреть очередную задачу с собеседования! В базе данных имеется таблица CLIENTS со столбцами: ID_CLIENT, NAME_CLIENT, ADDR_CLIENT. Какой будет результат работы запроса: SELECT ID_CLIENT FROM CLIENTS ORDER BY 2 DESC
Anonymous voting

Всем доброй пятницы и хороших выходных! Нашёл картиночку в интернете на тему айти юмора!
Всем доброй пятницы и хороших выходных! Нашёл картиночку в интернете на тему айти юмора!

Доброе утро! Сделал небольшое видео с разбором нескольких последних задач: https://dzen.ru/video/watch/653a031f9519254e281467e9

У нас новый прекрасный отзыв на курс SQL от Дмитрия! 🤗 Дмитрий, спасибо Вам большое! ... ... ... Вот и настала моя очередь подводить итоги! Юлия, спасибо Вам большое за помощь, старания объяснить, там где нужно разжевать, за ваше терпение и проделанную работу. Я рад, что у меня был именно такой ментор. Спасибо!) Курс отлично подходит для новичков, с плавным и детальным погружением в дальнейший материал курса. Четкие и грамотные объяснения, сразу заметно, что Илья, вместе с командой потратили много сил и времени на создание этого курса. И за это ему огромный респект 👍 Илья, вам отдельное спасибо за этот курс! Реально достойный проект!! Желаю вам и вашей команде удачи и успехов во всех ваших начинаниях!!!

Здравствуйте, друзья! Всем хорошего понедельника! Предлагаю повторить разницу между типами данных VARCHAR и VARCHAR2 в ORACLE. А заодно расскажу ещё несколько интересных фактов! Оба типа мы можем использовать в качестве типа данных при создании столбцов в таблице. Тип VARCHAR2 - это аналог VARCHAR (тоже служит для хранения текстовой информации в столбце) и есть только в СУБД ORACLE. ORACLE взял за основу VARCHAR и создал у себя такой же тип данных, но немного оптимизировал его. Итак, VARCHAR2 есть только в ORACLE, то есть это Оракловый тип данных, аналогичный стандартному VARCHAR. Преимущество VARCHAR2 в скорости: поиск по нему ведётся быстрее. Ещё одно преимущество VARCHAR2: с версии ORACLE 12с значительно увеличен максимальный размер, который можно указывать для этого типа данных. Для VARCHAR максимальное количество символов 4.000. Для VARCHAR2 максимальное количество байт 32.767. При создании столбца в таблице, когда мы указываем тип данных для столбца, мы уточняем сколько максимум символов будет в нём храниться. Например: CREATE TABLE CLIENTS ( ID   NUMBER, NAME  VARCHAR(100), INN  VARCHAR(12) ) Для VARCHAR мы указываем в скобочках именно количество символов, а для VARCHAR2 - количество байт. По стандарту, для неюникодных баз данных, 1 байт - это один символ. Но для юникодных баз данных 1 символ кодируется двумя байтами, поэтому для VARCHAR2 в юникодных базах данных нужно указывать размер в два раза больший, чем размер символов, который требуется иметь возможность хранить в столбце. То есть наш пример пришлось бы переделать на: CREATE TABLE CLIENTS ( ID   NUMBER, NAME  VARCHAR2(200), INN  VARCHAR2(24) ) В 2011-ом году, компания Diasoft, поставляющая банковское программное обеспечение, смогла найти клиента в Туркменистане в лице банка Халк Банк. Этот банк стал первым банком с юникодной кодировкой для Diasoft, и фирме пришлось дорабатывать весь софт, расширять максимальное значение VARCHAR2 всех полей всех таблиц в два раза! Итак, повторим: для VARCHAR в скобочках указывается максимальное количество символов, которое можно хранить в столбце, а для VARCHAR2- максимальное количество байт. Для русского, английского языка 1 байт = 1 символ. ORACLE позволяет с помощью NLS параметров указать другую единицу измерения максимальной длины данных. То есть можно настроить, что для VARCHAR2 тоже будет указываться количество символов, а не байт. Можно настроить как удобно! И ещё, при объявлении столбца с типом данных VARCHAR2, можно указывать даже явно единицу измерения: CREATE TABLE CLIENTS ( ID   NUMBER, NAME  VARCHAR2(100 BYTE), INN  VARCHAR2(12 CHAR) ) И напоследок очень важная деталь: для типа данных VARCHAR2 понятие пустой строки и NULL.... это одно и тоже! То есть если в некотором столбце типа данных VARCHAR2 пустая строка, то это NULL. Всех разработчиков это когда то застигает врасплох! Ведь согласно ANSI стандарту пустая строка и NULL - это разные вещи! Но не для VARCHAR2! Дело в том, что ORACLE придумал тип данных VARCHAR2 до того, как появился стандарт ANSI, регламентирующий это. И теперь приходится с этим жить! Всем хорошего начала рабочей и учебной недели!

Всем доброй пятницы, дорогие друзья! Специалистам работы с данными часто необходимы знания нескольких разных инструментов. Например, бывает нужно выгружать данные из базы данных для последующего сравнения, анализа или отчётности в Excel. Я подготовил два бесплатных курса по MS Excel на популярной платформе Stepik. Надо сказать, что это первые два мои курса на этой платформе. Но начало положено! Базовый курс Excel: https://stepik.org/course/185640 Знакомство с программой, ячейки, диапазоны, формулы, относительные и абсолютные адреса ячеек, автозаполнение, промежуточные итоги, самые нужные функции, вставка графиков и т.д. Продвинутый Excel: https://stepik.org/course/185674 Сводные таблицы, функции анализа данных, ВПР, ГПР, ИНДЕКС, ПОИСКПОЗ и т.д. Оба курса сопровождаются практическими файлами и небольшими тестами знания материала. Буду рад Вашему отзыву!

Всем доброго понедельника! Объясню немного ответ по предыдущей задаче😌 Операторы UNION и UNION ALL объединяют наборы данных. Селекты получают таблицы данных, а юнионы их "склеивают" по вертикали. Иначе говоря, можно вторым отдельным запросом SELECT продолжить выводить данные после первого SELECT-а. Первый SELECT вернул таблицу из двух строк (в таблице один столбец): 1 2 Второй запрос SELECT вернул ещё две строчки: 2 2 Написав, UNION между SELECT-ами, мы объединяем строки, полученные первым запросом со строками, которые вернул второй запрос SELECT. Но только объединяем такие строки, которых ещё нет в первом наборе данных. Получается, что ни одну строку из второго набора данных мы не возьмём, так как так во втором наборе данных дубли того, что есть в первом наборе. Если бы у нас были бы дубли строк и в рамках первого набора данных, то они бы тоже исчезли. Осталось бы по одной версии каждой строки. Вот если бы мы использовали не UNION, а UNION ALL, то в результате объединили бы все строки обоих наборов данных БЕЗ проверки на наличие дублей. И получили бы: 1 2 2 2 Буду рад, если стало понятнее 😉

Здравствуйте, друзья! Всем хороших выходных! Небольшое видео про UNION и UNION ALL: https://youtu.be/_NwlRLbPSGw

Какие числа будут получены в результате применения UNION?
Anonymous voting

Здравствуйте, друзья! Готовы решить задачку по SQL несмотря на субботу 🙂? Тогда вот: Запрос SELECT NUM FROM CODES1 возвращает две строки (со значением 1 и 2, соответственно). Запрос SELECT NUM FROM CODES2 возвращает тоже две строки. В каждой строке значение 2. То есть возвращает две одинаковые строчки. Какие числа будут получены в результате применения UNION? SELECT NUM FROM CODES1 UNION SELECT NUM FROM CODES2