Do you speak SQL? GLAZъ (glazy@mail.ru) Спецвыпуск Xakep, номер #028, стр. 028-044-4 >= - Больше или равно; <= - Меньше или равно; <> - Не равно; Ими можно пользоваться и при сравнении строк. При этом меньшим считается тот элемент, который стоит раньше в таблице ASCII. Например, буква "А" будет меньше "Б", но "а" будет больше "Б". Кстати, при сравнении строк ты можешь использовать оператор LIKE, он почти эквивалентен "=", только позволяет искать, к примеру, слова с одинаковым началом. В запросе можно использовать булевы операторы (логические), т.е. AND, OR, NOT. Пример: SELECT * FROM articles WHERE author LIKE "GLAZ" AND number_articles > '1'; В некоторых запросах удобно использовать IN. Пример: SELECT * FROM authors WHERE nick LIKE "GLAZ" OR nick LIKE "Dronich" OR ...; Если авторов много, то умрем за клавой, перечисляя их всех. Смотри, как это красиво делается, используя IN: SELECT * FROM authors WHERE nick IN ("GLAZ", "Dronich", ...); Вот как стало все удобно и понятно, а главное сухо! Есть еще такой оператор, как IS NULL. Разберем его на примере: SELECT * FROM news WHERE author IS NULL; Запрос возвратит всех авторов, которые пожелали остаться анонимными. Понял, для чего он? Для тех, кто в танке, поясняю: для проверки заполнено ли поле. Ну и напоследок скажу об операторах, которые позволяют делать выборку данных по шаблону. Встречайте: "%" и "_". Первый означает несколько символов, второй - один. Показываю: SELECT * FROM xsauthors WHERE nick LIKE "D%"; Запрос возвратит авторов: Dronich, Dr.Cod, Donor, Danya и т.д. Думаю, что со вторым оператором все понятно. Чтобы узнать, какие дополнительные функции и операторы поддерживаются твоей СУБД, читай мануалы. - GROUP BY позволяет выполнять группировку данных по столбцу или столбцам таким образом, что для всех строк с одинаковым значением в столбце, по которому выполняется группировка, в результате выборки будет возвращена всего одна строка. Например, когда ты хочешь просуммировать заказы в интернет-магазине за месяц и вывести результат в виде таблицы с полями КЛИЕНТ и СУММА. Фишка в том, что в начале запроса помимо существующих полей можно указать одну из групповых функций - MAX, MIN, SUM или COUNT (это наиболее используемые, их на самом деле побольше). Запрос, считающий затраты клиента, будет выглядеть как: SELECT name, SUM(paid) FROM shop_paiments GROUP BY name; Здесь "name" - имя столбца с именами клиентов, а "paid" - имя столбца с суммами их заказов. Если ты хочешь просто узнать число покупок или максимальную сумму заказа, заменяй итоговую функцию на COUNT или MAX соответственно, и будет тебе счастье :). - ORDER BY используется для сортировки вывода запросов. После этой команды пишутся столбцы, по которым выполняется сортировка, а после них тип сортировки: ASC или DESC, что значит по возрастанию или убыванию соответственно. По умолчанию стоит ASC. Втыкай пример: SELECT * FROM authors ORDER BY nick; После этого ты получишь ответ, где все данные будут расположены в порядке возрастания по никам авторов. Турбомоддинг Фью! Запрос SELECT был успешно добит! Теперь вернемся к нашей таблице. Посмотрим, что мы в ней натворили. Напомню, что мы остановились на том, что добавили одну строку. Давай посмотрим, что получилось. Пиши в командной строке: |