ChatGPT – настоящий помощник в изучении SQL
или как использовать этот чудо инструмент для прокачки навыков SQL
ChatGPT может делать много классных вещей, в том числе писать коды. Вcе что Вам нужно, это дать чат-боту правильные инструкции.
Если Вы хотите изучить SQL, ChatGPT может стать отличным помощником в этом деле! Он поможет составить SQL – запросы, используя естественный язык, найти ответы на вопросы и объяснить то, что никак не поддается Вашему пониманию.
В этой статье мы поговорим о том, как можно использовать ChatGPT для изучения SQL и стать настоящим профи в этом деле.
Давайте разбираться вместе!
Во-первых, … что такое ChatGPT?
ChatGPT – это большая языковая модель, разработанная компанией OpenAI. Она в состоянии составлять тексты, отвечать на вопросы и участвовать в беседах с людьми.
Мы можем воспользоваться знаниями этой модели — и ее способностью общаться с нами на человеческом языке — для того, чтобы лучше понять, то такое SQL и разобраться в данном вопросе.
#Шаг 1: Установка ChatGPT
Для того, чтобы начать работу с ChatGPT, необходимо зарегистрироваться здесь.
Затем необходимо ввести Ваш email и номер телефона.
#Шаг 2: Начните общение с ChatGPT
Как только Вы получите доступ к ChatGPT, Вы увидите следующее:
Для того, чтобы начать общаться с ChatGPT, можете написать что угодно в поле ввода внизу экрана. Поскольку я собираюсь потревожить ее — или его — на всякий случай заранее попрошу прощения за беспокойство ;)
#Шаг 3: Спросите все, что угодно — и она Вам ответит.
Теперь можем начинать задавать свои вопросы. Меня интересует изучение SQL. Я бы порекомендовал сфокусироваться на 5 основных вещах, вполне подвластных ChatGPT.
1. Объяснение команд SQL
Всякий раз при знакомстве с новым языком программирования, как правило, у нас возникает множество вопросов и сомнений по поводу той или иной команды. ChatGPT может помочь понять абсолютно любую команду при помощи достаточно простых объяснений и дать нам столько примеров ее использования, сколько нужно.
Начнем с базовой команды SELECT
.
Объясни мне вкратце, что такое команда SELECT
, и покажи пример, как ее можно использовать.
ChatGPT коротко ответит о том, что такое команда SELECT
и предоставит самый простой пример ее использования: SELECT * FROM
Я могу продолжить задавать вопросы о команде SELECT
.
Объясни мне, что такое команда SELECT
, и покажи мне несколько примеров того, как ее можно использовать
Как показано на картинке ниже, ChatGPT предоставит базовую информацию о команде, а также несколько примеров ее использования.
Можете спросить модель о совершенно любой команде, которая Вас интересует, а пока я поговорю с ней о HAVING.
Приведи мне несколько примеров команды HAVING
ChatGPT выдаст следующие примеры:
-
Для того, чтобы найти ФИО и зарплаты всех сотрудников, чья зарплата больше среднего значения по компании, используйте следующий запрос:
SELECT name, salary FROM employees GROUP BY name HAVING salary > (SELECT AVG(salary) FROM employees);
2. Для того, чтобы найти ФИО всех покупателей, которые сделали более 10 заказов за прошлый год, используйте следующий запрос:
SELECT name FROM customers WHERE customer_id IN ( SELECT customer_id FROM orders WHERE date >= DATEADD(year, -1, GETDATE()) GROUP BY customer_id HAVING COUNT(*) > 10 );
Безусловно, Вы можете попросить показать Вам и другие объяснения и примеры. Попробуйте спросить о любой интересующей Вас команде, и Вы сразу же получите ответ.
2. Вы можете спросить ChatGPT о том, как сделать что-либо в SQL, и чат-бот сразу же подскажет Вам, какую команду (или команды) необходимо использовать.
Я хочу объединить две таблицы, какую команду SQL я должен использовать?
Ответ ChatGPT можно будет увидеть на картинке ниже.
Но мне нужно объединить две таблицы таким образом, чтобы строки имели совпадающие значения в определенных столбцах. В этом случае я могу задать вопрос еще раз и узнать, какую именно команду мне следует использовать в этом случае.
Тогда ChatGPT ответит мне только про INNER
JOIN
:
И предоставит мне соответствующий запрос:
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id AND table1.name = table2.name;
3. Вы можете попросить ChatGPT создать запрос с использованием естественного языка.
Представим, что я знаю результат, который мне нужен, но я и понятия не имею о том, как сформулировать запрос. В этом случае я просто могу объяснить ChatGPT, что я хочу сделать, и модель предоставит мне необходимую инструкцию.
Объясни мне, как создать запрос SQL , который вычислит самые дорогие города Европы на основе таблицы, содержащей цены на разные товары в каждом городе.
ChatGPT сразу же даст мне следующий ответ:
ChatGPT предоставит мне пример запроса и объяснит, как он работает.
4. Можете попросить ChatGPT объяснить Вам, как работает запрос.
Представим такую ситуацию: Вам необходимо сделать работу за коллегу, который на данный момент находится на больничном, но Вы не понимаете его запросы — некоторые люди пишут коды беспорядочно, или Вам просто лень, и Вы не хотите тратить много времени на понимание запросов других людей.
Это совершенно нормально — используйте ChatGPT, он придет Вам на помощь.
Что делает следующий запрос: [вставьте запрос сюда]
WITH -- Structure------------------------------------------------------------------------------------------ Neighbourhood_List AS ( SELECT DISTINCT neighbourhood FROM bcn_airbnb_dataset ), -- Info BY neighbourhood ------------------------------------------------------------------------------------------ Data_by_neighbourhood_BCN AS ( SELECT DISTINCT neighbourhood, COUNT(DISTINCT id) AS num_apartments, COUNT(DISTINCT host_id) AS num_hosts, ROUND(CAST(COUNT(DISTINCT id) AS FLOAT)/COUNT(DISTINCT host_id),2) AS mean_apartments_by_host, ROUND(AVG(price),2) AS AVG_price, ROUND(AVG(review_cleanliness),2) AS AVG_cleanliness, ROUND(AVG(review_location),2) AS AVG_location FROM bcn_airbnb_dataset GROUP BY 1 ORDER BY 2 DESC ), -- Global Info------------------------------------------------------------------------------------------ Data_global_BCN AS ( SELECT DISTINCT COUNT(DISTINCT id) AS num_apartments, COUNT(DISTINCT host_id) AS num_hosts, ROUND(CAST(COUNT(DISTINCT id) AS FLOAT)/COUNT(DISTINCT host_id),2) AS mean_apartments_by_host, ROUND(AVG(price),2) AS AVG_price, ROUND(AVG(review_cleanliness),2) AS AVG_cleanliness, ROUND(AVG(review_location),2) AS AVG_location FROM bcn_airbnb_dataset ORDER BY 1 DESC ) -- Final Query---------------------------------------------------------------------------------------- SELECT Structure.neighbourhood, T1.num_apartments, 100*T1.num_apartments/T2.num_apartments AS comp_apartments, T1.num_hosts, 100*T1.num_hosts/T2.num_hosts AS comp_hosts, T1.mean_apartments_by_host, T1.AVG_price, CASE WHEN T1.AVG_price > T2.AVG_price THEN "Above" WHEN T1.AVG_price = T2.AVG_price THEN "Equals" WHEN T1.AVG_price < T2.AVG_price THEN "Below" END AS "Price_comparison_to_city", T1.AVG_cleanliness, CASE WHEN T1.AVG_cleanliness > T2.AVG_cleanliness THEN "Above" WHEN T1.AVG_cleanliness = T2.AVG_cleanliness THEN "Equals" WHEN T1.AVG_cleanliness < T2.AVG_cleanliness THEN "Below" END AS "Clean_Comparison_to_city", T1.AVG_location, CASE WHEN T1.AVG_location > T2.AVG_location THEN "Above" WHEN T1.AVG_location = T2.AVG_location THEN "Equals" WHEN T1.AVG_location < T2.AVG_location THEN "Below" END AS "Location_Comparison_to_city" FROM Neighbourhood_List AS Structure LEFT JOIN Data_by_neighbourhood_BCN AS T1 ON Structure.neighbourhood = T1.neighbourhood CROSS JOIN Data_global_BCN AS T2
ChatGPT сразу же ответит Вам:
Как видно на изображении выше, ChatGPT шаг за шагом объяснит, что делает данный запрос.
Во-первых, он объясняет все содержащиеся подзапросы и то, что они делают. Во-вторых, он объясняет окончательный запрос и то, как он использует предыдущие подзапросы для объединения всех данных. Мы даже можем запросить более подробные объяснения в заданном подзапросе.
Что делает второй подзапрос предыдущего запроса?
Как показано на картинке выше, ChatGPT подробно объясняет, что делает второй подзапрос.
Можете спросить ChatGPT о совершенно любом запросе!
5. Можете попросить ChatGPT «помучить» Вас упражнениями.
На мой взгляд, самая приятная функция ChatGPT – тестирование Ваших способностей. Модель даже в состоянии отметить то, что Вы делаете хорошо, а что — плохо.
Дай мне, пожалуйста, упражнения, чтобы попрактиковаться в SQL.
Теперь ChatGPT говорит мне, какие задачи я должен выполнить. В этом случае я могу попытаться решить первую из них и спросить модель, верно ли мое решение.
Верен ли следующий запрос в качестве ответа на первое упражнение: [вставить запрос]
ChatGPT даст ответ, а также уточнит, верен ли Ваш вариант и почему.
Я могу попросить правильный ответ на каждый из предыдущих примеров:
Можешь дать мне правильный ответ на предыдущие упражнения?
Как Вы можете видеть ниже, ChatGPT даст мне все правильные ответы.
Обратите внимание, что ответ, который дает мне ChatGPT, и тот, который дал я для проверки, совершенно разные.
Заключение
SQL — ценный навык в современном мире, основанном на данных. Используя ChatGPT, Вы сможете освоить его с легкостью. Продолжая учиться и практиковаться, благодаря этому умному инструменту Вы наверняка расширите свои умения и совершите серьезный скачок в карьере.