Качай мускулы Степан Ильин aka Step Хакер, номер #075, стр. 075-028-3 Стоит отметить, что во время вывода не последнюю роль играет порядок перечисления выводимых на экран полей. Так, запрос SELECT LastName,FirstName FROM customers в качестве результата вернет таблицу, первым полем которой будут фамилии, а вторым – имена покупателей. Хотя в предыдущем примере все с точностью до наоборот. Если необходимо вывести все поля таблицы в порядке по умолчанию, то перечислять их после служебного слова SELECT не имеет смысла. Вместо перечисления достаточно использовать специальный символ «*». Запрос в этом случае будет выглядеть примерно так: SELECT * FROM customers. Ключевое слово FROM также является обязательным. После него непосредственно следует имя таблицы, из которой происходит выборка. Игнорировать эту инструкцию не стоит: в противном случае сервер баз данных попросту вернет ошибку нарушения синтаксиса. От простого к сложному Пора перейти к более интересным вещам. Усложним задачу и в качестве площадки для проведения экспериментов возьмем таблицу с информацией о заказах. Подумай, как бы ты сделал выборку наименований проданных товаров? Типичной ошибкой является запрос SELECT Product FROM orders. Полученный список потенциально может содержать дубликаты. И все потому, что в таблице, вполне вероятно, фигурирует сразу несколько записей о покупке одного и того же товара. Для того чтобы исключить повторный вывод строк, достаточно использовать команду DISTINCT: SELECT DISTINCT <поля для вывода> FROM <имя таблицы>. А значит, поставленная задача легко решается запросом SELECT DISTINCT Product FROM orders. Ключевое слово DISTINCT указывается в запросе один и только один раз. В случае с одним полем все понятно – мы его уже разобрали. Если же запрос предполагает выборку сразу нескольких полей, то фильтроваться будут записи, идентичные по всем полям одновременно. Теперь давай копнем еще глубже. До этого момента мы не конкретизировали, какие именно записи нужно выводить, а лишь указывали поля для вывода информации. Чтобы явным образом указать критерии запроса, применяется ключевое слово WHERE. Общий синтаксис команды SQL в этом случае приобретает вид: SELECT [DISTINCT] <поля для вывода> FROM <имя таблицы> WHERE <критерии поиска> SELECT * FROM customers WHERE City=’Москва’ Ключевое слово WHERE сигнализирует СУБД о том, чтобы в качестве результата запроса возвращались только те записи, которые подходят по заданному условию. Так, сервер выявит, что записи Кутты и Бублика в поле city имеют значения Moscow, и, подумав, что столичных ребят нужно уважать, внесет их в отчет. С другой стороны, неудачники Step и Forb – всего лишь деревенские парни. Поэтому в отчет они никоим образом не попадают. Не доросли еще :). Тип поля city, с какой стороны на него ни посмотри, является строковым. Поэтому во время составления критерия важно не забывать о кавычках. Во всех остальных случаях их можно, а в случае числовых типов данных даже НУЖНО опустить. Что касается операции «=» (равно), то она, естественно, не является единственно возможной. Наряду с ней также используются «<>» (не равно), «>» (больше), «<» (меньше), «>=» (не менее чем), «<=» (не более чем). Вместе с этим разрешается использовать сколь угодно сложные логические условия на основе булевых операторов AND (логическое И), OR (логическое ИЛИ), NOT (логическое отрицание). Примеры: |