Запрос диапазона кодов стран

SQLSQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь получать страны, которые говорят на том же официальном языке, что и страна с кодом страны "FRO", с использованием операции многострочного подзапроса в MySQL.

👀 Предварительный просмотр

MariaDB [world]> SOURCE /home/labex/project/getCountryCode.sql;
+-------------+----------+
| CountryCode | Language |
+-------------+----------+
| DNK         | Датский  |
| FRO         | Датский  |
| FRO         | Фарерский |
| GRL         | Датский  |
+-------------+----------+
4 rows in set (0.002 sec)

🎯 Задачи

В этом проекте вы научитесь:

  • Как обращаться к MySQL с использованием команды sudo без пароля
  • Как импортировать данные из файла world.sql в базу данных MySQL
  • Как писать SQL-запрос с использованием многострочных подзапросов для получения нужной информации
  • Как запускать SQL-запрос в командной строке интерфейсе MySQL

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в концепции многострочных подзапросов в SQL
  • Получать конкретные данные из базы данных с использованием сложных SQL-запросов
  • Применять свои знания SQL для решения реальных задач по извлечению данных

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") sql/BasicSQLCommandsGroup -.-> sql/select("SELECT statements") sql/BasicSQLCommandsGroup -.-> sql/insert("INSERT INTO statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/DataManipulationandQueryingGroup -.-> sql/where("WHERE clause") sql/DataManipulationandQueryingGroup -.-> sql/subqueries("Subqueries") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") subgraph Lab Skills mysql/use_database -.-> lab-301396{{"Запрос диапазона кодов стран"}} sql/select -.-> lab-301396{{"Запрос диапазона кодов стран"}} sql/insert -.-> lab-301396{{"Запрос диапазона кодов стран"}} mysql/select -.-> lab-301396{{"Запрос диапазона кодов стран"}} mysql/source -.-> lab-301396{{"Запрос диапазона кодов стран"}} sql/create_table -.-> lab-301396{{"Запрос диапазона кодов стран"}} sql/where -.-> lab-301396{{"Запрос диапазона кодов стран"}} sql/subqueries -.-> lab-301396{{"Запрос диапазона кодов стран"}} mysql/database -.-> lab-301396{{"Запрос диапазона кодов стран"}} end

Доступ к MySQL и импорт данных

В этом шаге вы научитесь обращаться к MySQL с использованием команды sudo и импортировать данные из world.sql в базу данных world.

  1. Откройте терминал и выполните следующую команду, чтобы запустить службу MySQL:
sudo service mysql start
  1. Доступ к командной строке интерфейсу MySQL с использованием команды sudo:
sudo mysql
  1. Импортируйте данные из world.sql в базу данных MySQL:
MariaDB [None]> SOURCE /home/labex/project/world.sql;

Это импортирует данные из файла world.sql в базу данных MySQL.

Теперь вы успешно подключились к MySQL и импортировали необходимые данные. Перейдем к следующему шагу.

Получить страны с тем же официальным языком, что и FRO

В этом шаге вы напишете SQL-запрос, чтобы получить все страны, которые говорят на том же официальном языке, что и страна с кодом страны FRO.

  1. Откройте файл getCountryCode.sql и добавьте следующий SQL-запрос:
SELECT cl1.CountryCode, cl1.Language
FROM countrylanguage AS cl1
WHERE cl1.Language IN (
    -- Подзапрос для получения языка страны с CountryCode 'FRO' и IsOfficial = 'T'
    SELECT cl2.Language
    FROM countrylanguage AS cl2
    WHERE cl2.CountryCode = 'FRO' AND cl2.IsOfficial = 'T'
)
AND cl1.CountryCode IN (
    -- Подзапрос для получения CountryCode стран, которые имеют такой же язык, как в FRO и IsOfficial = 'T'
    SELECT cl3.CountryCode
    FROM countrylanguage AS cl3
    WHERE cl3.Language IN (
        -- Подзапрос для получения языка страны с CountryCode 'FRO' и IsOfficial = 'T'
        SELECT cl4.Language
        FROM countrylanguage AS cl4
        WHERE cl4.CountryCode = 'FRO' AND cl4.IsOfficial = 'T'
    )
    AND cl3.IsOfficial = 'T'
);

Этот запрос использует многострочный подзапрос, чтобы получить страны, которые говорят на том же официальном языке, что и страна с кодом страны FRO.

  1. Сохраните файл getCountryCode.sql.

Теперь вы создали SQL-запрос для получения нужной информации. В следующем шаге вы запустите запрос в MySQL.

Запустить SQL-запрос

В этом шаге вы запустите SQL-запрос, хранящийся в файле getCountryCode.sql.

  1. Запустите SQL-запрос, хранящийся в файле getCountryCode.sql:
MariaDB [world]> SOURCE /home/labex/project/getCountryCode.sql;

Это выполнит SQL-запрос и выведет результаты в терминал.

Вывод должен выглядеть примерно так:

+-------------+----------+
| CountryCode | Language |
+-------------+----------+
| DNK         | Датский  |
| FRO         | Датский  |
| FRO         | Фарерский |
| GRL         | Датский  |
+-------------+----------+
4 rows in set (0.002 sec)

Запрос успешно извлек countries, которые говорят на том же официальном языке, что и страна с кодом страны FRO.

Поздравляем! Вы завершили проект по запросу диапазона кодов стран с использованием операции многострочного подзапроса.

✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.