Запросить имена городов с указанием страны

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

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

Введение

В этом проекте вы научитесь выполнять запрос на равное соединение таблиц city, country и countrylanguage в MySQL. Цель - получить название города, соответствующее название страны и язык из этих таблиц.

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

MariaDB [world]> SOURCE /home/labex/project/getCountryNameAndLanguage.sql;
+----------------+-------------+------------+
| CityName       | CountryName | Language   |
+----------------+-------------+------------+
| Ораньестад      | Аруба       | Нидерландский |
| Ораньестад      | Аруба       | Английский   |
| Ораньестад      | Аруба       | Папьяменто   |
| Ораньестад      | Аруба       | Испанский    |
| Кабул           | Афганистан   | Балучи      |
| Кандагар        | Афганистан   | Балучи      |
| Херат           | Афганистан   | Балучи      |
| Мазар-е-Шариф   | Афганистан   | Балучи      |
| Кабул           | Афганистан   | Дари        |
| Кандагар        | Афганистан   | Дари        |
+----------------+-------------+------------+
10 rows in set (0.001 sec)

🎯 Задачи

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

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

🏆 Достижения

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

  • Разобраться в концепции SQL-совмещений и как эффективно их использовать
  • Получать данные из нескольких таблиц в реляционной базе данных
  • Применять SQL-запросы для фильтрации и ограничения результатов по необходимости
  • Получить практический опыт работы с базами данных MySQL

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) 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") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") sql/AdvancedDataOperationsGroup -.-> sql/join("JOIN operations") subgraph Lab Skills mysql/use_database -.-> lab-301382{{"Запросить имена городов с указанием страны"}} sql/select -.-> lab-301382{{"Запросить имена городов с указанием страны"}} sql/insert -.-> lab-301382{{"Запросить имена городов с указанием страны"}} mysql/select -.-> lab-301382{{"Запросить имена городов с указанием страны"}} mysql/source -.-> lab-301382{{"Запросить имена городов с указанием страны"}} sql/create_table -.-> lab-301382{{"Запросить имена городов с указанием страны"}} sql/where -.-> lab-301382{{"Запросить имена городов с указанием страны"}} mysql/database -.-> lab-301382{{"Запросить имена городов с указанием страны"}} sql/join -.-> lab-301382{{"Запросить имена городов с указанием страны"}} end

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

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

  1. Запустите службу MySQL:
sudo service mysql start
  1. Подключитесь к MySQL:
sudo mysql
  1. Импортируйте данные из скрипта world.sql:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

Выполнить запрос на соединение

В этом шаге вы научитесь выполнять запрос на равное соединение, чтобы получить название города, соответствующее название страны и язык из таблиц city, country и countrylanguage.

  1. Откройте файл getCountryNameAndLanguage.sql.
  2. Добавьте следующий код в файл getCountryNameAndLanguage.sql:
SELECT ci.Name AS CityName, co.Name AS CountryName, col.Language
FROM city AS ci
JOIN country AS co ON ci.CountryCode = co.Code
JOIN countrylanguage AS col ON co.Code = col.CountryCode
LIMIT 10;

Этот запрос выполняет равное соединение между таблицами city, country и countrylanguage и ограничивает результаты первыми 10 строками. Вывод запроса включает заголовки CityName, CountryName и Language.

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

В этом шаге вы научитесь запускать скрипт getCountryNameAndLanguage.sql в MySQL.

  1. В提示符 MySQL выполните следующую команду для выполнения скрипта:
MariaDB [world]> SOURCE /home/labex/project/getCountryNameAndLanguage.sql;

Это выполнит запрос и выведет результаты в提示符 MySQL.

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

+----------------+-------------+------------+
| CityName       | CountryName | Language   |
+----------------+-------------+------------+
| Ораньестад      | Аруба       | Нидерландский |
| Ораньестад      | Аруба       | Английский   |
| Ораньестад      | Аруба       | Папьяменто   |
| Ораньестад      | Аруба       | Испанский    |
| Кабул           | Афганистан   | Балучи      |
| Кандагар        | Афганистан   | Балучи      |
| Херат           | Афганистан   | Балучи      |
| Мазар-е-Шариф   | Афганистан   | Балучи      |
| Кабул           | Афганистан   | Дари        |
| Кандагар        | Афганистан   | Дари        |
+----------------+-------------+------------+
10 rows in set (0.001 sec)

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

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

Резюме

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