Запускать mysql можно и в пакетном режиме. Для этого нужно собрать все команды в один файл и передать его на исполнение mysql:
mysql < batch-file
При работаете с mysql в ОС Windows, можно воспользоваться следующей командой:
> mysql source batch-file
Если необходимо указать параметры соединения в командной строке, она может иметь следующий вид:
> mysql -h host -u user -p < batch-file
Enter password: ********
Работая с mysql таким образом, в сущности, создается сценарий и затем он исполняется.
Выводимые запросом результаты можно сохранить в файле для последующей обработки:
shell> mysql < batch-file > mysql.out
Если нужно продолжать обработку сценария даже при обнаружении в нем ошибок, надо использовать параметр командной строки --force.
По умолчанию при работе с mysql в пакетном режиме используется более сжатый формат вывода результатов, чем при интерактивной работе.
Если нужно, чтобы в пакетном режиме программа выводила данные так же, как и в интерактивном, надо использовать ключ mysql -t. Включить "эхо" исполняемых команд можно с помощью ключа mysql -vvv.
В командную строку mysql можно включать и сценарии - при помощи команды source:
mysql> source filename;
Зачем нужны сценарии? Причин тому несколько:
· при необходимости частого (ежедневного или хотя бы еженедельного) запуска одного и того же запроса сценарий позволяет избавиться от многократного набора этого запроса;
· можно создавать новые запросы, подобные уже существующим, просто копируя и затем изменяя файлы сценариев;
· пакетный режим может пригодиться и при разработке особенно длинных запросов, а именно - многострочных команд или больших последовательностей команд;
При указании ключевых слов следует точно соблюдать порядок, указанный выше. Например, выражение HAVING должно располагаться после всех выражений GROUP BY и перед всеми выражениями ORDER BY.
Оператор SELECT позволяет формировать запрос к базе данных. В результате выполнения этого оператора СУБД формирует результирующий набор. Если этот оператор был введен в интерактивном режиме взаимодействия с базой данных, то результат отображается в виде таблицы в текущем диалоговом окне. Если оператор SELECT выполняется из приложения на другом языке программирования, то формируется результирующий набор, размещаемый в памяти приложения или сервера БД, а затем приложение извлекает данные из результирующего набора в свои переменные.
Для выполнения запроса требуется привилегия SELECT на все таблицы, участвующие в запросе.
<список выражений> это одна из следующих конструкций:
(например, SELECT name FROM people; SELECT mydata.people.name FROM people ).
Можно задать «*», чтобы указать все колонки. Имена столбцов могут быть определены как column, table.column или database, table.column. Длинные формы необходимы только для того, чтобы отличать столбцы с одинаковыми именами (например, SELECT name FROM people; SELECT mydata.people.name FROM people ).
SELECT можно использовать для извлечения строк, вычисленных без ссылки на какую-либо таблицу. Например: SELECT 1 + 1; -> 2
Aliases AS задает псевдоним. Псевдоним используется в качестве имени столбца в данном выражении и может применяться в ORDER BY или HAVING. Любые сложные имена столбцов или функций можно упростить, создав для них псевдонимы (alias). Внутри оператора SELECT к значению можно всегда обратиться по его псевдониму с любого места.
Пример: SELECT DATE_FORMAT(date, "%W, %M %d %Y") as nice_date FROM calendar
SELECT CONCAT(last_name,', ',first_name) AS full_name FROM mytable ORDER BY full_name;
Псевдонимы столбцов нельзя использовать в выражении WHERE, поскольку находящиеся в столбцах величины на момент выполнения WHERE могут быть еще не определены.
Пример:
# Псевдоним колонки
SELECT long_field_names_are_annoying AS myfield FROM table_name WHERE myfield = 'Joe'