НОУ ИНТУИТ | Лекция | Введение в структурированный язык запросов SQL
< Лекция 18 || Лекция 1: 12345
Аннотация: Дается определение структурированного языка запросов SQL. Вводится понятие базы данных, реляционной базы данных, СУБД. Определяется место языка SQL в разработке информационных систем, организованных на основе технологии клиент-сервер. Приводится классификация команд SQL: определение структуры базы данных, манипулирование данными, выборка данных, управление данными, команды администрирования данных и управления транзакциями. Дается описание учебной базы данных.
Ключевые слова: деятельность, база данных, СУБД, Internet, реляционная БД, технология клиент-сервер, запрос, таблица, строка, столбец, первичный ключ, реляционная связь, отношение подчиненности, стандарт языка, SQL, реализация языка, ANSI, сервер, операции, доступ, серверный процесс, клиент, рабочая станция, синтаксис, архитектура, intranet, представление данных, тип команды, управление доступом, администрирование, DCL, data manipulation language, запись, диск, чтение данных, Локальные БД, интерактивный запрос, ПО, внедрение операторов SQL, процедурный язык, информация, remote, Data, RDA, специализированная реализация, transaction, processing, OLTP-технология, принятия решений, OLAP-технология, мультимедиа, конструкция языка, зарезервированное слово, значение, идентификатор, операторы, метаязык, формулы Бэкуса-Науэра, предметной области, покупатель, товар, модель данных, отношение, один-ко-многим, фирма, тип сущности, определение, экземпляр сущности, артикул товара, атрибут, поле
Основные понятия
intuit.ru/2010/edi»>Всякая профессиональная деятельность так или иначе связана с информацией, с организацией ее сбора, хранения, выборки. Можно сказать, что неотъемлемой частью повседневной жизни стали базы данных, для поддержки которых требуется некоторый организационный метод, или механизм. Такой механизм называется системой управления базами данных ( СУБД ). Итак, введем основные понятия.База данных (БД) – совместно используемый набор логически связанных данных (и их описание), предназначенный для удовлетворения информационных потребностей организации.
СУБД (система управления базами данных ) – программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ.
Системы управления базами данных существуют уже много лет, многие из них обязаны своим происхождением системам с неструктурированными файлами на больших ЭВМ. Наряду с общепринятыми современными технологиями в области систем управления базами данных начинают появляться новые направления, что обусловлено требованиями растущего бизнеса, все увеличивающимися объемами корпоративных данных и, конечно же, влиянием технологий Internet.
Реляционные базы данных
Управление основными потоками информации осуществляется с помощью так называемых систем управления реляционными базами данных, которые берут свое начало в традиционных системах управления базами данных. Именно объединение реляционных баз данных и клиент-серверных технологий позволяет современному предприятию успешно управлять собственными данными, оставаясь конкурентоспособным на рынке товаров и услуг.
Реляционные БД имеют мощный теоретический фундамент, основанный на математической теории отношений. Появление теории реляционных баз данных дало толчок к разработке ряда языков запросов, которые можно отнести к двум классам:
- intuit.ru/2010/edi»>алгебраические языки, позволяющие выражать запросы средствами специализированных операторов, применяемых к отношениям;
- языки исчисления предикатов, представляющие собой набор правил для записи выражения, определяющего новое отношение из заданной совокупности существующих отношений. Следовательно, исчисление предикатов есть метод определения того отношения, которое желательно получить как ответ на запрос из отношений, уже имеющихся в базе данных.
В реляционной модели объекты реального мира и взаимосвязи между ними представляются с помощью совокупности связанных между собой таблиц (отношений).
Даже в том случае, когда функции СУБД используются для выбора информации из одной или нескольких таблиц (т.е. выполняется запрос ), результат также представляется в табличном виде. Более того, можно выполнить запрос с применением результатов другого запроса.
Каждая таблица БД представляется как совокупность строк и столбцов, где строки (записи) соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы (поля) – атрибутам (признакам, характеристикам, параметрам) объекта, события, явления.
В каждой таблице БД необходимо наличие первичного ключа – так именуют поле или набор полей, однозначно идентифицирующий каждый экземпляр объекта или запись. Значение первичного ключа в таблице БД должно быть уникальным, т.е. в таблице не допускается наличие двух и более записей с одинаковыми значениями первичного ключа. Он должен быть минимально достаточным, а значит, не содержать полей, удаление которых не отразится на его уникальности.
Реляционные связи между таблицами баз данных
Связи между объектами реального мира могут находить свое отражение в структуре данных, а могут и подразумеваться, т. е. присутствовать на неформальном уровне.
Между двумя или более таблицами базы данных могут существовать отношения подчиненности, которые определяют, что для каждой записи главной таблицы (называемой еще родительской) возможно наличие одной или нескольких записей в подчиненной таблице (называемой еще дочерней).
Выделяют три разновидности связи между таблицами базы данных:
- «один–ко–многим»;
- «один–к–одному»;
- «многие–ко–многим».
Отношение «один–ко–многим»
Отношение «один–ко–многим» имеет место, когда одной записи родительской таблицы может соответствовать несколько записей дочерней. Связь «один–ко–многим» иногда называют связью «многие–к–одному». И в том, и в другом случае сущность связи между таблицами остается неизменной. Связь «один–ко–многим» является самой распространенной для реляционных баз данных. Она позволяет моделировать также иерархические структуры данных.
Отношение «один–к–одному»
Отношение «один–к–одному» имеет место, когда одной записи в родительской таблице соответствует одна запись в дочерней. Это отношение встречается намного реже, чем отношение «один–ко–многим». Его используют, если не хотят, чтобы таблица БД «распухала» от второстепенной информации, однако для чтения связанной информации в нескольких таблицах приходится производить ряд операций чтения вместо одной, когда данные хранятся в одной таблице.
Отношение «многие–ко–многим»
- одной записи в родительской таблице соответствует более одной записи в дочерней;
- одной записи в дочерней таблице соответствует более одной записи в родительской.
Всякую связь «многие–ко–многим» в реляционной базе данных необходимо заменить на связь «один–ко–многим» (одну или более) с помощью введения дополнительных таблиц.
Дальше >>
< Лекция 18 ||
Базовые команды SQL часть 1.
Все инструкции SQL начинаются с ключевых слов, таких как SELECT, SHOW, USE, INSERT, DELETE, CREATE. Так же все инструкции обязаны заканчиваться точкой с запятой (;). Именовать инструкции заглавными буквами – это признак хорошего тона при работе с SQL, MYSQL и другими базами данных. В то же время, операторы и инструкции SQL нечувствительны к регистру. Это означает, что SHOW и show имеют одинаковый смысл в операторах SQL. Однако нужно помнить, что регистр имеет значение в названиях таблиц. Поэтому, если вы работаете с MySQL, вам нужно указывать названия таблиц так, как они заданы в базе данных.
Рассмотрим некоторые базовые команды(инструкции) SQL.
Инструкция USEДля того, чтобы начать взаимодействие с какой-либо базой данных, необходимо подключиться к ней. Для этого существует команда USE
. Посмотрим пример:
USE data_base_name;
MariaDB [(none)]> USE lexone.ru; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
Но перед тем, как подключаться к базам данных, нужно узнать, какие-же вообще есть базы данных на нашем сервере. Нельзя подключиться к тому, сам не знаю к чему. Для этого используется инструкция SHOW
.
Как узнать содержимое той или иной базы данных? Или содержимое конкретной таблицы? Для этого используется инструкция SHOW
.
Этот полезный инструмент позволяет отслеживать содержимое баз данных, показывать структуру их таблиц.
SHOW DATABASES
Например, команда SHOW DATABASES
выводит список баз данных, которые находятся под управлением конкретного сервера.
На протяжении всего курса статей мы будем использовать движок MySQL и работать с обычным терминалом Linux для выполнения SQL запросов.
Самый простой способ создания сервера MySQL – установить бесплатные инструменты, такие как XAMPP или WAMP, которые включают в себя все необходимые утилиты. Но так же можно установить всё вручную.
SHOW TABLES
Для того, чтобы посмотреть все доступные таблицы в выбранной базе данных, используется команда SHOW TABLES
. Она нужна для отображения всех таблиц в текущей выбранной базе данных MySQL.
SHOW COLUMNS
отображает информацию о столбцах в данной таблице.
В следующем примере показаны столбцы в таблице wp_comments:
SHOW COLUMNS
отображает следующие значения для каждого столбца таблицы:
- Field: имя столбца
- Type: тип данных столбца
- Key: указывает, индексирован ли столбец
- Default: значение по умолчанию для столбца
- Extra: может содержать любую дополнительную информацию о данном столбце
Столбцы для таблицы wp_comments были автоматически созданы WordPress, как и вся база данных моего сайта.
Инструкция SelectОператор SELECT
используется для выбора данных из базы данных.
Результат хранится в таблице результатов, которая называется результирующим набором.
Запрос может извлекать информацию из выбранных столбцов или из всех столбцов таблицы.
Чтобы создать простую инструкцию SELECT
, укажите имена столбцов из таблицы.
Синтаксис инструкции SQL SELECT:
SELECT column_list
FROM table_name
– аргумент column_list включает один или несколько столбцов, из которых извлекаются данные
– table-name имя таблицы, из которой извлекается информация
Приведем пример:
> SELECT comment_ID, comment_post_ID, comment_author, comment_author_email FROM wp_comments;
В этом примере мы формируем таблицу – результирующий набор (такой таблицы не существует, это необходимый нам запрос, составленный с помощью инструкций), состоящую из столбцов comment_ID, comment_post_ID, comment_author, comment_author_email, которые содержит таблица wp_comments.
На этом хотелось бы закончить первую часть. Часть 2.
Access SQL: основные понятия, словарный запас и синтаксис
Когда вы хотите получить данные из базы данных, вы запрашиваете данные с помощью языка структурированных запросов или SQL. SQL — это компьютерный язык, очень похожий на английский, но понятный программам баз данных. Каждый выполняемый вами запрос использует SQL за кулисами.
Понимание того, как работает SQL, может помочь вам создавать более качественные запросы и упростить понимание того, как исправить запрос, который не возвращает нужных вам результатов.
Это одна из статей о Access SQL. В этой статье описывается основное использование SQL для выбора данных и используются примеры для иллюстрации синтаксиса SQL.
В этой статье
Что такое SQL?
Основные предложения SQL: SELECT, FROM и WHERE.
Сортировка результатов: ORDER BY
Работа с суммированными данными: GROUP BY и HAVING
Объединение результатов запроса: UNION
Что такое SQL?
SQL — это компьютерный язык для работы с наборами фактов и отношениями между ними. Программы реляционных баз данных, такие как Microsoft Office Access, используют SQL для работы с данными. В отличие от многих компьютерных языков, SQL несложно читать и понимать даже новичку. Как и многие компьютерные языки, SQL является международным стандартом, признанным такими органами стандартизации, как ISO и ANSI.
Вы используете SQL для описания наборов данных, которые могут помочь вам ответить на вопросы. Когда вы используете SQL, вы должны использовать правильный синтаксис. Синтаксис — это набор правил, по которым правильно сочетаются элементы языка. Синтаксис SQL основан на синтаксисе английского языка и использует многие из тех же элементов, что и синтаксис Visual Basic для приложений (VBA).
Например, простой оператор SQL, который извлекает список фамилий для контактов, чье имя — Мария, может выглядеть следующим образом:
ВЫБЕРИТЕ Фамилию
ИЗ Контактов
ГДЕ Имя = 'Мэри';
Примечание. SQL используется не только для управления данными, но также для создания и изменения структуры объектов базы данных, таких как таблицы. Часть SQL, используемая для создания и изменения объектов базы данных, называется языком определения данных (DDL). В этом разделе не рассматривается DDL. Дополнительные сведения см. в статье Создание или изменение таблиц или индексов с помощью запроса определения данных.
Операторы SELECT
Чтобы описать набор данных с помощью SQL, вы пишете оператор SELECT. Оператор SELECT содержит полное описание набора данных, которые вы хотите получить из базы данных. В том числе:
Какие таблицы содержат данные.
Как связаны данные из разных источников.
Какие поля или вычисления будут создавать данные.
Критерии, которым должны соответствовать данные для включения.
Нужно ли и как сортировать результаты.
Предложения SQL
Как и предложение, оператор SQL имеет разделы. Каждое предложение выполняет функцию оператора SQL. Некоторые предложения необходимы в операторе SELECT. В следующей таблице перечислены наиболее распространенные предложения SQL.
Пункт SQL | Что он делает | Обязательно |
ВЫБЕРИТЕ | Список полей, содержащих интересующие данные. | Да |
ИЗ | Список таблиц, содержащих поля, перечисленные в предложении SELECT. | Да |
ГДЕ | Указывает критерии поля, которым должна соответствовать каждая запись, чтобы быть включенной в результаты. | № |
ЗАКАЗАТЬ | Указывает, как сортировать результаты. | № |
СГРУППИРОВАТЬ ПО | В операторе SQL, содержащем агрегатные функции, перечислены поля, которые не суммируются в предложении SELECT. | Только при наличии таких полей |
ИМЕЮЩИЙ | В операторе SQL, содержащем агрегатные функции, задает условия, которые применяются к полям, суммируемым в операторе SELECT. | № |
Термины SQL
Каждое предложение SQL состоит из терминов — сравнимых с частями речи. В следующей таблице перечислены типы терминов SQL.
Термин SQL | Сопоставимая часть речи | Определение | Пример |
идентификатор | существительное | Имя, которое вы используете для идентификации объекта базы данных, например имя поля. | Клиенты. [Номер телефона] |
оператор | глагол или наречие | Ключевое слово, которое представляет действие или изменяет действие. | КАК |
константа | существительное | Неизменяемое значение, например число или NULL. | 42 |
выражение | прилагательное | Комбинация идентификаторов, операторов, констант и функций, результатом которой является одно значение. | >= Товары. [Цена за единицу] |
Верх страницы
Основные предложения SQL: SELECT, FROM и WHERE
Оператор SQL имеет общий вид:
ВЫБЕРИТЕ поле_1
ИЗ таблицы_1
ГДЕ критерий_1
;
Примечания:
Access игнорирует разрывы строк в операторе SQL. Однако рассмотрите возможность использования строки для каждого предложения, чтобы улучшить читаемость ваших операторов SQL для себя и других.
Каждый оператор SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять в конце последнего предложения или в отдельной строке в конце оператора SQL.
Пример в Access
Ниже показано, как может выглядеть оператор SQL для простого запроса на выборку в Access:
1. Предложение SELECT
2. ИЗ статьи
3. ГДЕ пункт
В этом примере инструкция SQL гласит: «Выберите данные, хранящиеся в полях с именами «Адрес электронной почты» и «Компания», из таблицы «Контакты», в частности те записи, в которых значением поля «Город» является Сиэтл».
Давайте рассмотрим пример, по одному предложению за раз, чтобы увидеть, как работает синтаксис SQL.
Предложение SELECT
ВЫБЕРИТЕ [Адрес электронной почты], Компания
Это предложение SELECT. Он состоит из оператора (SELECT), за которым следуют два идентификатора ([Адрес электронной почты] и Компания).
Если идентификатор содержит пробелы или специальные символы (например, «Адрес электронной почты»), он должен быть заключен в квадратные скобки.
Предложение SELECT не должно указывать, какие таблицы содержат поля, и не может указывать какие-либо условия, которым должны соответствовать данные, которые должны быть включены.
Предложение SELECT всегда появляется перед предложением FROM в операторе SELECT.
Пункт FROM
ОТ Контакты
Это предложение FROM. Он состоит из оператора (FROM), за которым следует идентификатор (Contacts).
В предложении FROM не указаны поля для выбора.
Пункт WHERE
ГДЕ Город=»Сиэтл»
Это предложение WHERE. Он состоит из оператора (WHERE), за которым следует выражение (City=»Seattle»).
Примечание. В отличие от предложений SELECT и FROM, предложение WHERE не является обязательным элементом инструкции SELECT.
Многие действия, которые позволяет выполнять SQL, можно выполнять с помощью предложений SELECT, FROM и WHERE. Дополнительные сведения о том, как вы используете эти пункты, представлены в следующих дополнительных статьях:
.Доступ к SQL: предложение SELECT
Доступ к SQL: предложение FROM
org/ListItem»>
Доступ к SQL: предложение WHERE
Верх страницы
Сортировка результатов: ПОРЯДОК ПО
Как и Microsoft Excel, Access позволяет сортировать результаты запроса в таблице. Вы также можете указать в запросе, как вы хотите сортировать результаты при выполнении запроса, используя предложение ORDER BY. Если вы используете предложение ORDER BY, это последнее предложение в операторе SQL.
Предложение ORDER BY содержит список полей, которые вы хотите использовать для сортировки, в том же порядке, в котором вы хотите применять операции сортировки.
Например, предположим, что вы хотите, чтобы ваши результаты сначала сортировались по значению поля «Компания» в порядке убывания, а — если есть записи с таким же значением для компании — сортировались затем по значениям в поле «Адрес электронной почты» в порядке возрастания. Ваше предложение ORDER BY будет выглядеть следующим образом:
ЗАКАЗАТЬ Компания DESC, [Адрес электронной почты]
Примечание. По умолчанию Access сортирует значения в порядке возрастания (от A до Z, от меньшего к большему). Вместо этого используйте ключевое слово DESC для сортировки значений в порядке убывания.
Дополнительные сведения о предложении ORDER BY см. в разделе Предложение ORDER BY.
Верх страницы
Работа со сводными данными: GROUP BY и HAVING
Иногда вам нужно работать со сводными данными, такими как общий объем продаж за месяц или самые дорогие товары в инвентаре. Для этого вы применяете агрегатную функцию к полю в предложении SELECT. Например, если вы хотите, чтобы ваш запрос отображал количество адресов электронной почты, перечисленных для каждой компании, ваше предложение SELECT может выглядеть следующим образом:
ВЫБЕРИТЕ COUNT([Адрес электронной почты]), Компания
Доступные для использования агрегатные функции зависят от типа данных в поле или выражении, которые вы хотите использовать. Дополнительные сведения о доступных агрегатных функциях см. в статье Агрегатные функции SQL.
Указание полей, которые не используются в агрегатной функции: предложение GROUP BY
При использовании агрегатных функций обычно необходимо также создать предложение GROUP BY. В предложении GROUP BY перечислены все поля, к которым не применяется агрегатная функция. Если вы применяете агрегатные функции ко всем полям запроса, вам не нужно создавать предложение GROUP BY.
Предложение GROUP BY следует непосредственно за предложением WHERE или предложением FROM, если предложение WHERE отсутствует. Предложение GROUP BY перечисляет поля в том виде, в каком они появляются в предложении SELECT.
Например, продолжая предыдущий пример, если ваше предложение SELECT применяет агрегатную функцию к [Адрес электронной почты], но не к компании, ваше предложение GROUP BY будет выглядеть следующим образом:
ГРУППА КОМПАНИЙ
Дополнительные сведения о предложении GROUP BY см. в разделе Предложение GROUP BY.
Ограничение совокупных значений с помощью групповых критериев: предложение HAVING
Если вы хотите использовать критерии для ограничения результатов, но поле, к которому вы хотите применить критерии, используется в агрегатной функции, вы не можете использовать предложение WHERE. Вместо этого вы используете предложение HAVING. Предложение HAVING работает так же, как предложение WHERE, но используется для агрегированных данных.
Например, предположим, что вы используете функцию AVG (которая вычисляет среднее значение) с первым полем в предложении SELECT:
ВЫБЕРИТЕ COUNT([Адрес электронной почты]), Компания
Если вы хотите, чтобы запрос ограничивал результаты на основе значения этой функции COUNT, вы не можете использовать критерий для этого поля в предложении WHERE. Вместо этого вы помещаете критерии в предложение HAVING. Например, если вы хотите, чтобы запрос возвращал строки только в том случае, если с компанией связано несколько адресов электронной почты, предложение HAVING может иметь следующий вид:
.HAVING COUNT([Адрес электронной почты])>1
Примечание. Запрос может содержать предложение WHERE и предложение HAVING — критерии для полей, которые не используются в агрегатной функции, указываются в предложении WHERE, а критерии для полей, которые используются с агрегатными функциями, — в предложении HAVING.
Дополнительные сведения о предложении HAVING см. в разделе Предложение HAVING.
Верх страницы
Объединение результатов запроса: UNION
Если вы хотите просмотреть все данные, которые возвращаются несколькими похожими запросами на выборку вместе, как объединенный набор, вы используете оператор UNION.
Оператор UNION позволяет объединить два оператора SELECT в один. Объединяемые операторы SELECT должны иметь одинаковое количество выходных полей, в том же порядке и с одинаковыми или совместимыми типами данных. Когда вы запускаете запрос, данные из каждого набора соответствующих полей объединяются в одно выходное поле, так что выходные данные запроса имеют то же количество полей, что и каждый из операторов select.
Примечание. Для целей запроса на объединение типы данных Number и Text совместимы.
При использовании оператора UNION можно также указать, должны ли результаты запроса включать повторяющиеся строки, если они существуют, с помощью ключевого слова ALL.
Базовый синтаксис SQL для запроса на объединение, который объединяет две инструкции SELECT, выглядит следующим образом:
ВЫБЕРИТЕ поле_1
ИЗ таблицы_1
UNION [ALL]
SELECT field_a
FROM table_a
;
Например, предположим, что у вас есть таблица с именем «Продукты» и другая таблица с именем «Службы». В обеих таблицах есть поля, содержащие название продукта или услуги, цену, гарантию или наличие гарантии, а также то, предлагаете ли вы продукт или услугу исключительно. Хотя в таблице «Продукты» хранится информация о гарантии, а в таблице «Услуги» хранится информация о гарантии, основная информация одинакова (независимо от того, включает ли конкретный продукт или услуга обещание качества). Вы можете использовать запрос на объединение, например следующий, чтобы объединить четыре поля из двух таблиц:
ВЫБЕРИТЕ название, цена, гарантия_доступна, эксклюзивное_предложение
ИЗ Продукты
СОЮЗ ВСЕХ
ВЫБЕРИТЕ название, цена, гарантия_доступна, эксклюзивное_предложение
ИЗ Услуги
;
Дополнительные сведения о том, как объединить инструкции SELECT с помощью оператора UNION, см. в разделе Объединение результатов нескольких запросов на выборку с помощью запроса на объединение.
Верх страницы
SQL ВЫБРАТЬ | Базовый SQL
Начиная отсюда? Этот урок является частью полного учебника по использованию SQL для анализа данных. Проверьте начало.
В этом уроке мы рассмотрим:
- Базовый синтаксис: SELECT и FROM
- Что на самом деле происходит при выполнении запроса?
- Соглашение о форматировании
- Имена столбцов
- Практическая задача
Базовый синтаксис: SELECT и FROM
В любом запросе SQL есть два обязательных ингредиента: ВЫБЕРИТЕ
и ИЗ
— и они должны быть в таком порядке. SELECT
указывает, какие столбцы вы хотите просмотреть, а FROM
определяет таблицу, в которой они живут.
месяц,
запад
ОТ tutorial.us_housing_units
Чтобы увидеть результаты самостоятельно, скопируйте и вставьте этот запрос в редактор запросов Mode и запустите код. Если у вас уже есть код SQL в редакторе запросов, вам нужно будет вставить или удалить запрос, который был там ранее. Если вы просто скопируете и вставите этот запрос под предыдущим, вы получите сообщение об ошибке — вы можете запустить только один SELECT
операторов за раз.
Попробуйте.
Так что же происходит в приведенном выше запросе? В этом случае запрос указывает базе данных вернуть столбцы year
, month
и west
из таблицы tutorial.us_housing_units
. (Помните, что при ссылке на таблицы именам таблиц должно предшествовать имя пользователя, который их загрузил.) Когда вы запустите этот запрос, вы получите набор результатов, которые показывают значения в каждом из этих столбцов.
Обратите внимание, что имена трех столбцов в запросе разделены запятой. Всякий раз, когда вы выбираете несколько столбцов, они должны быть разделены запятыми, но вы должны включать запятую после имени последнего столбца.
Если вы хотите выбрать каждый столбец в таблице, вы можете использовать *
вместо имен столбцов:
SELECT * ОТ tutorial.us_housing_units
Теперь попробуйте сами решить эту практическую задачу:
Практическая задача
Напишите запрос для выбора всех столбцов в таблице tutorial. us_housing_units
без использования *
.
Примечание. Практические задания будут отображаться в полях, подобных приведенному выше, на протяжении всего этого руководства.
Когда вы решите указанную выше практическую задачу, проверьте свой ответ, нажав «Посмотреть ответ». Перейдя по ссылке, вы увидите наше решение SQL-запроса. Чтобы просмотреть результаты этого запроса решения, нажмите «Результаты» на левой боковой панели:
Это покажет вам таблицу результатов запроса, которые должны совпадать с результатами вашего запроса (если ваш ответ правильный):
Чтобы сравнить ваш запрос или результаты с нашим решением, вернитесь к окну, в котором вы редактируете практические решения. В Редакторе можно многое изучить (дополнительные сведения см. в разделе «Как использовать редактор запросов»), но для начала вы можете поэкспериментировать с созданием диаграммы с помощью нашего конструктора диаграмм с возможностью перетаскивания — просто нажмите зеленую кнопку с плюсом рядом с вкладкой «Отображать таблицу»:
Это приведет вас к построителю диаграмм Mode с помощью перетаскивания. Чтобы узнать больше о построении диаграмм в режиме, ознакомьтесь с разделом «Как строить диаграммы».
Если вы особенно гордитесь своей работой, возможно, вы захотите изучить, как она выглядит в представлении отчетов Mode — очищенном представлении, предназначенном для обмена запросами и результатами. Просто нажмите «Просмотреть» в шапке:
Теперь вы увидите очищенную версию вашего отчета, которую можно опубликовать. Вы можете узнать больше о просмотре и построении отчетов на справочном сайте Mode. На данный момент самое важное, что нужно знать, это то, что вы можете поделиться этим отчетом с кем угодно, щелкнув меню «Поделиться» в редакторе запросов и выбрав канал, который вы хотите использовать для обмена:
Отправьте всем своим друзьям по электронной почте или в Slack!
Вы также можете поделиться своей незавершенной работой в представлении редактора, где вы писали свои запросы. Чтобы вернуться к редактированию запроса, нажмите «Изменить» в строке заголовка:
Вы вернетесь в редактор запросов, где сможете редактировать свой SQL, диаграммы или отчеты.
Что на самом деле происходит при выполнении запроса?
Вернемся к этому! Когда вы запускаете запрос, что вы получаете в ответ? Как видно из выполнения запросов выше, вы получаете таблицу. Но эта таблица не хранится в базе данных постоянно. Он также не изменяет никакие таблицы в базе данных — tutorial.us_housing_units
будет содержать одни и те же данные каждый раз, когда вы его запрашиваете, и данные никогда не изменятся, независимо от того, сколько раз вы их запрашиваете. Режим сохраняет все ваши результаты для будущего доступа, но операторы SELECT
ничего не меняют в базовых таблицах.
Соглашение о форматировании
Вы могли заметить, что SELECT
и команды `FROM’ пишутся с заглавной буквы. На самом деле в этом нет необходимости — SQL поймет эти команды, если вы наберете их строчными буквами. Использование заглавных букв в командах — это просто соглашение, упрощающее чтение запросов. Точно так же SQL рассматривает один пробел, несколько пробелов или разрыв строки как одно и то же. Например, SQL обрабатывает это так же, как и предыдущий запрос:
ВЫБЕРИТЕ * ИЗ tutorial.us_housing_units
Аналогично обрабатывается и это:
SELECT * ОТ tutorial.us_housing_units
Хотя большинство правил использования заглавных букв одинаковы, существует несколько правил форматирования разрывов строк. Вы познакомитесь с некоторыми из них в этом руководстве и в работе других людей над режимом. Вам решать, какой метод форматирования легче всего читать и понимать.
Имена столбцов
Пока мы говорим о форматировании, стоит отметить формат имен столбцов. Все столбцы в таблице tutorial.us_housing_units
названы строчными буквами и используют символы подчеркивания вместо пробелов. В самом имени таблицы также используются символы подчеркивания вместо пробелов. Большинство людей избегают использования пробелов в именах столбцов, потому что в SQL неудобно иметь дело с пробелами — если вы хотите использовать пробелы в именах столбцов, вам нужно всегда ссылаться на эти столбцы в двойных кавычках.