INTO OUTFILE 'filename' delimiters выполняет перенаправление. При его наличии результат запроса SELECT будет помещен в файл, указанный в filename (по умолчанию MySQL возвращает все результаты запроса пользователю на монитор, сделавшему этот запрос). Формат этого файла определяется аргументами delimiters , которые практически те же, что у оператора LOAD DATA INFILE , но со следующими дополнениями:
· FIELDS ENCLOSED BY можно добавить ключевое слово OPTIONALLY . MySQL будет в этом случае считать, что данные, заключенные в кавычки (или другие указанные символы), являются строками, а прочие данные примет за числовые.
· FIELDS TERMINATED BY ENCLOSED BY ' ' использование формата с фиксированной шириной. Данные будут экспортированы в соответствии с экранными размерами каждого поля. По умолчанию при экспорте данных без разделителей будет внесено по одной записи на каждую строку, использовано разделение табуляцией и символ обратной косой черты (\) в качестве экранирующего символ
· INTO DUMPFILE запишет в файл только одну строку без символов завершения столбцов или строк, и без какого, то ни было экранирования. Это полезно для хранения данных типа BLOB в файле.
FOR UPDATE выбранные строки будут заблокированы для записи.
DISTINCT для исключения дубликатов и одновременного упорядочения перечня
ALL напротив, выдаст все возвращенные записи. По умолчанию действует ALL
LIMIT [ start, ] rowsВозвращает только указанное количество записей. Значение start (необязательное) определяет на количество записей, которые надо пропустить перед выборкой данных. Нумерация записей начинается с нуля. (Например, SELECT url FROM links LIMIT 5,10 возвращает адреса URL с 5 по 14.)
FROM table_referencesзадает таблицы, из которых надлежит извлекать строки.
Список используемых таблиц может быть указан следующими способами:
Table1, Таblе2, Таblе3, . . .
Для каждой заданной таблицы по желанию можно указать псевдоним.
table_name [[AS] alias] [[USE INDEX (key_list)] | [IGNORE INDEX (key_list)] | FORCE INDEX (key_list)]]
SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name;
Ссылки на таблицы могут даваться как tbl_name (в рамках текущей базы данных), или как dbname.tbl_name с тем, чтобы четко указать базу данных.
Если указано имя более чем одной таблицы, следует выполнить объединение. Таблицы соединяются так, как MySQL сочтет наиболее эффективным. Этот способ может быть также записан в виде: Table1 JOIN Table2 JOIN Таblе3..... , . В случае если MySQL недостаточно эффективно выполняет соединение, можно указать предикат (ключевое слово) STRAIGHT_JOIN и заставить сервер объединить таблицы в порядке, заданном в запросе. В объединенную таблицу войдут только те записи, которые отвечают условиям обоих столбцов.
Tablel STRAIGHT_JOIN Table2таблица слева всегда читается раньше таблицы справа.
WHERE указывает, какие именно строки должны использоваться, и позволяет определить, каким образом должны объединяться две таблицы. Обычно фраза является сравнением какого-либо типа, но также может содержать любые функции, кроме агрегатных. Также могут быть использованы имена, такие как имена столбцов и псевдонимы, числовые константы и строки.
Строки автоматически конвертируются в числа и наоборот по мере необходимости.
При использовании операторов = <> <= >= < > левая сторона определяет, выполняется ли тест с числами или со строками. Все сравнения строк независимы от регистра.