Учебник SQLУрок 2. Выборка данныхНа этом уроке вы узнаете, как использовать оператор SELECT для выборки одного или нескольких столбцов данных из таблицы. Оператор SELECTКак уже говорилось в уроке 1, “Что такое SQL”, SQL-операторы являются обычными английскими терминами. Эти термины называются ключевыми словами, и каждый SQL-оператор состоит из одного или нескольких ключевых слов. Наиболее часто вы будете использовать оператор SELECT. Он предназначен для выборки информации из таблиц. Ключевое словоЗарезервированное слово, являющееся частью языка SQL. Никогда не называйте таблицу или столбец таким словом. В приложении Д “Зарезервированные слова SQL” перечислены некоторые из наиболее часто используемых ключевых слов. Чтобы при помощи оператора SELECT извлечь данные из таблицы, нужно указать как минимум две вещи — что вы хотите выбрать и откуда. Рассматриваемые примеры
В примерах SQL-операторов (а также полученных с их помощью результатов) в этой книге используются файлы данных, описанные в приложении А, "Сценарии демонстрационных таблиц". Если вы хотите самостоятельно выполнить действия, указанные в примерах (очень рекомендуем это делать), обратитесь к приложению А, в котором вы найдете инструкции по загрузке или созданию этих файлов. Выборка отдельных столбцовНачнем с простого SQL-оператора SELECT: SELECT prod_name FROM Products; В приведенном выше операторе используется оператор SELECT для выборки одного столбца под названием prod_name из таблицы Products. Искомое имя столбца указывается сразу после ключевого слова SELECT, а ключевое слово FROM указывает на имя таблицы, из которой выбираются данные. Результат выполнения этого оператора будет следующий: prod_name Fish bean bag toy Bird bean bag toy Rabbit bean bag toy 8 inch teddy bear 12 inch teddy bear 18 inch teddy bear Raggedy Ann King doll Queen doll Неотсортированные данныеЕсли вы попробовали выполнить этот запрос самостоятельно, то заметили, что данные были отображены в ином порядке. В этом случае не нужно волноваться — так и должно быть. Если результаты запроса не отсортированы явным образом (это мы обсудим в следующем уроке), то данные будут возвращены без особого порядка. Это может быть порядок, в котором данные были занесены в таблицу, или какой-либо другой порядок. Главное, чтобы ваш запрос возвращал одно и то же число строк. Простой оператор SELECT, который использовался в предыдущем примере, возвращает все строки таблицы. Данные не фильтруются (как это делается при возвращении подмножества данных) и не сортируются. Эту тему мы обсудим в следующих нескольких уроках. Используйте пробелыВсе лишние пробелы в SQL-операторе при обработке пропускаются. Поэтому SQL-оператор может быть записан как в одной длинной строке, так и разбит на несколько строк. Большинство SQL-разработчиков разбивают операторы на несколько строк, чтобы их было легче читать и отлаживать. Завершение операторовНесколько SQL-операторов должны быть разделены точкой с запятой (символом ;). В большинстве СУБД не требуется вставлять точку с запятой после единственного оператора, но если в вашем конкретном случае СУБД выдает ошибку, вам придется это делать. Несомненно, при желании можно всегда добавлять точку с запятой, она никому не будет мешать, даже если этот символ не обязателен. Исключением является СУБД Sybase Adaptive Server, которая “не любит” SQL-операторы, заканчивающиеся символом ;. SQL-операторы и регистрВажно отметить, что SQL-операторы нечувствительны к регистру, поэтому операторы SELECT, select и Select эквивалентны. Многие SQL-разработчики используют верхний регистр для всех ключевых слов SQL и нижний регистр для имен столбцов и таблиц, чтобы код легче читался. Однако будьте внимательны: SQL-операторы не зависят от регистра, в отличие от имен таблиц, столбцов и значений (которые зависят от СУБД и ее конфигурации). Выборка нескольких столбцовДля выборки из таблицы нескольких столбцов используется тот же оператор SELECT. Отличие состоит в том, что после ключевого слова SELECT необходимо через запятую указать несколько имен столбцов. Будьте внимательны с запятымиПри перечислении нескольких столбцов вставляйте между ними запятые, но не после последнего столбца в списке. Это приведет к ошибке. В следующем операторе SELECT из таблицы Products выбираются три столбца: SELECT prod_id, prod_name, prod_price FROM Products; Как и в предыдущем примере, в этом операторе для выборки данных из таблицы Products используется оператор SELECT. В этом примере перечислены три имени столбца, разделенные запятыми. Результат обработки этого оператора показан ниже: prod_id prod_name prod_price ------------------------------------------- BNBG01 Fish bean bag toy 3.4900 BNBG02 Bird bean bag toy 3.4900 BNBG03 Rabbit bean bag toy 3.4900 BR01 8 inch teddy bear 5.9900 BR02 12 inch teddy bear 8.9900 BR03 18 inch teddy bear 11.9900 RGAN01 Raggedy Ann 4.9900 RYL01 King doll 9.4900 RYL02 Queen doll 9.4900 Представление данныхКак видно из предыдущего результата, SQL-операторы обычно возвращают “сырые”, неотформатированные данные. Форматирование данных является проблемой представления, а не выборки. Поэтому представление (например, отображение приведенных выше цен в виде определенной суммы с правильно расставленными десятичными запятыми) обычно зависит от приложения, посредством которого отображаются данные. Просто выбранные данные (без форматирования) используются редко. Выборка всех столбцовПомимо возможности осуществлять выборку определенных столбцов (одного или нескольких), при помощи оператора SELECT можно запросить все столбцы, не перечисляя каждый из них. Для этого вместо имен столбцов вставляется групповой символ "звездочка" (*). Это делается следующим образом. SELECT * FROM Products; Использование групповых символовЛучше не использовать групповой символ * (кроме тех случаев, когда вам действительно необходимы все столбцы таблицы). Хотя групповые символы могут сэкономить вам время и усилия, необходимые для перечисления необходимых столбцов, выборка ненужных столбцов обычно снижает производительность запроса и приложения в целом. Выборка неизвестных столбцовЕсть одно большое преимущество в использовании групповых символов. Поскольку вы не указываете точные имена столбцов (так как при использовании символа “звездочка” возвращаются все столбцы), появляется возможность выбрать столбцы, имена которых неизвестны. РезюмеВ этом уроке мы рассмотрели порядок использования SQL-оператора SELECT для выборки одного, нескольких и всех столбцов таблицы. Далее мы научимся сортировать данные, полученные в результате выборки. |
||