Изучаем sql


SELECT emp_id, fname, lname, start_date



Pdf көрінісі
бет232/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   228   229   230   231   232   233   234   235   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

SELECT emp_id, fname, lname, start_date
> INTO OUTFILE 'C:\\TEMP\\emp_list_delim.txt'
> FIELDS TERMINATED BY '|'
> FROM employee;
Query OK, 18 rows affected (0.02 sec)
MySQL не позволяет перезаписывать существующий файл с по
мощью 
into outfile
, поэтому если один и тот же запрос выпол


264
Приложение B
няется больше одного раза, перед каждым выполнением следует
удалить имеющийся файл.
Содержимое файла 
emp_list_delim.txt
выглядит так:
1|Michael|Smith|20010622
2|Susan|Barker|20020912
3|Robert|Tyler|20000209
4|Susan|Hawthorne|20020424
...
16|Theresa|Markham|20010315
17|Beth|Fowler|20020629
18|Rick|Tulman|20021212
Кроме формата с разделителями «|» можно форматировать данные за
пятыми (
формат с разделителямизапятыми

commadelimited for
mat
). В этом случае следует задать 
fields
terminated
by
','
. Однако если
записываемые в файл данные включают строки, применение запятых
в качестве разделителей полей может вызвать проблемы. Запятые
встречаются в строках намного чаще, чем символ «|». Рассмотрим сле
дующий запрос, записывающий число и две строки, разделенные за
пятыми, в файл 
comma1.txt
:
mysql> 
SELECT data.num, data.str1, data.str2
> INTO OUTFILE 'C:\\TEMP\\comma1.txt'
> FIELDS TERMINATED BY ','
> FROM
> (SELECT 1 num, 'This string has no commas' str1,
> 'This string, however, has two commas' str2) data;
Query OK, 1 row affected (0.04 sec)
Поскольку третий столбец выходного файла (
str2
) – строка, содержа
щая запятые, можно предположить, что у приложения, считывающе
го файл 
comma1.txt
, возникнут проблемы при синтаксическом разборе
строк и распределении их по столбцам. Но сервер MySQL предпринял
специальные меры предосторожности для подобных ситуаций. Вот со
держимое файла 
comma1.txt
:
1,This string has no commas,This string\, however\, has two commas
Как видите, запятые в третьем столбце экранированы обратным слэ
шем, размещенным перед ними. Если выполнить этот же запрос, но
использовать формат с разделителями «|», запятые 
не 
будут экраниро
ваны. Если хочется использовать в выходном файле другой символ эк
ранирования, например еще одну запятую, его можно задать с помо
щью подблока 
fields
escaped
by
.
Кроме разделителей столбцов можно задавать символ, используемый
для разделения разных записей в файле данных. Если требуется, что
бы каждая запись в выходном файле была отделена не символом новой
строки, а какимто другим, можно воспользоваться подблоком 
lines
:
mysql> 


Достарыңызбен бөлісу:
1   ...   228   229   230   231   232   233   234   235   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет