Perl для системного администрирования



              

Запрос информации - часть 3


USE sysadm

SELECT name FROM nosts WHERE aliases LIKE '%dooales%'

Обратите внимание, какие метасимволы поддерживаются (табл. D.2).

Таблица D.2. Метасимволы LIKE

Метасимвол

Значение

Ближайший эквивалент из

регулярных выражений Perl

%

Ноль или более символов

.*

-

Один символ

.

[]

Один символ из указанного списка или диапазона

[]

В некоторых серверах баз данных добавлены расширения к SQL, позволяющие применять регулярные выражения в операторах SELECT. Например, в MySQL существует оператор REGEXP, который можно использовать с SELECT. REGEXP не обладает всей силой регулярных выражений Perl, но он значительно увеличивает их гибкость по сравнению со стандартными метасимволами SQL.

Простая обработка данных, возвращаемых в результате запросов

У оператора SELECT существуют два полезных ключевых слова: DJSTINC1 и ORDER BY. Первое позволяет изъять из запроса повторяющиеся записи. При желании получить список всех различных производителей, представленных в таблице hosts, можно было бы использовать DISTINCT:

USE sysadm

SELECT DISTINCT manuf FROM hosts

При необходимости получить отсортированные данные, можно было бы применить ORDER BY:

USE sysadm

SELECT name.ipaddr.dept,owner FROM hosts ORDER BY aept

SQL имеет несколько операторов, преобразующих данные, возвращаемые в результате запроса. Такая возможность позволяет изменять имена полей, выполнять итоговые вычисления и вычисления внутри и между полями, изменять формат выводимых полей, осуществлять подзапросы и совершать множество иных действий. За информацией о различных ключевых словах, используемых с SELECT, обратитесь к литературе, посвященной SQL.

Добавление результатов запроса в другую таблицу

На некоторых SQL-серверах можно на лету создать новую таблицу, содержащую результаты запроса, при помощи ключевого слова INTO:

USE sysadm

SELECT name,ipaddr INTO itmachines FROM hosts WHERE deot = IT'

Этот оператор работает так же, как и предыдущие, за одним исключением: результаты данного запроса помещаются в таблицу под названием itmachines. На некоторых серверах такая таблица создается на лету в случае, если она еще не существует. Этот оператор можно считать эквивалентом оператора «>» в большинстве систем Unix и командных интерпретаторах NT.

Отдельные серверы баз данных (как MySQL) не поддерживают оператор SELECT INTO; для выполнения этого действия в них нужно применять команду INSERT. Другие серверы, например MS-SQL и Sybase, требуют установки специального флага на базу данных для использования SELECT INTO, иначе команда завершится с ошибкой.




Содержание  Назад  Вперед