53 ¹ø ±ÛÀÇ ´äÀå±Û: [MySQL] SELECT °á°úÀÇ Ãâ·Â¹° Á¦¾î(pager) |
±Û¾´ÀÌ: »êÀÌ
[ȨÆäÀÌÁö]
|
±Û¾´³¯: 2003³â 10¿ù 02ÀÏ 03:32:34 ¸ñ(»õº®) |
Á¶È¸: 27644 |
¸¹ÀÌ »ç¿ëÇÏÁö ¾ÊÀº MySQL pager ¼³Á¤¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
...
¿ä¾à :
mysql> pager more -d
[MySQL] SELECT °á°úÀÇ Ãâ·Â¹° Á¦¾î(pager)¿Í Ãâ·Â¹° ÇüÅÂ
1. interactive ¸ðµå(none batch ¸ðµå)¿¡¼
ÀÌ ¸ðµå´Â º¸Åë 'mysql>' À̶ó´Â ÇÁ·ÒÇÁÆ®°¡ Ç¥½ÃµÇ´Â ¸ðµå¸¦ ¸»ÇÕ´Ï´Ù.
(4.x.x ¿¡¼´Â MYSQL_PS1 À̶ó´Â Àç¹ÌÀִ ȯ°æ º¯¼ö ¼³Á¤ÀÌ °¡´ÉÇÏ´õ±º¿ä)
mysql> nopager
PAGER set to stdout
mysql> \n
PAGER set to stdout
mysql> \h
...
ÀÌ¿Í °°ÀÌ ±âº» PAGER °ªÀº 'Ç¥ÁØÃâ·Â(stdout)' ÀÔ´Ï´Ù.
±×·³ ¿¹¸¦ µé¾î¼,
mysql> SELECT .... ;
ÀÌ¿Í °°ÀÌ °Ë»ö °á°ú¿¡ ´ëÇÑ ±× line ¼ö°¡ È¸é ½ºÅ©¸° line ¼ö º¸´Ù ¸¹À¸¸é
ÁÖ¿í ¹ØÀ¸·Î ³»·Á°¡¼ Á¦ÀÏ À§ÂÊÀÇ °á°ú´Â º¸Áú ¸øÇÕ´Ï´Ù.
(¹°·Ð ½ºÅ©·ÑÀÌ Áö¿øÇÑ´Ù¸é º¼ ¼ö ÀÖÁö¸¸, À̰͵µ ÇÑ°è°¡ ÀÖÁÒ.. º¸Åë 1500 line?)
ÀÌ°ÍÀ» ¿¹Àü¿¡ SELECT ..... LIMIT 300,100;
ÀÌ·±½ÄÀ¸·Î ¹«½ÄÇÏ°Ô(?) ÀÔ·ÂÇß´ø ±â¾ïÀÌ ³ª³×¿ä..
ÀÌ·± ȸéÃâ·ÂÀ» command line ÀÇ more ³ª less ó·³ º¸¿©ÁÙ ¼ö ÀÖ´Â ¼³Á¤ÀÌ
PAGER ¼³Á¤ÀÔ´Ï´Ù.
(Âü°í·Î, win32 ¿¡¼´Â ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù°í Çϳ׿ä.. ±×·± ¸í·É¾î°¡ ¾ø±â ¶§¹®¿¡ ?)
(¶ÇÇÑ batch, -B ¸ðµå¿¡¼´Â ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.)
±×·³ PAGER¸¦ ¼³Á¤ÇØ º¾½Ã´Ù.
PAGER ¼³Á¤ ¹æ¹ýÀº
mysql> pager PAGER
or
mysql> \P PAGER
ÀÔ´Ï´Ù.
- PAGER ºÎºÐ¿¡´Â ' ¶Ç´Â " ·Î ¹¾îÁÖ¸é ¾ÈµÇ°í,
- ¿©±â¿¡ more ³ª less, cat, tee ... µîµîÀÇ
- UNIX/LINUX ¸í·É¾î¿Í À̵éÀÇ ¿É¼ÇÀ» ¼³Á¤ÇØ ÁÖ¸é µË´Ï´Ù.
- Off ¹æ¹ýÀº nopager ³ª \n ¸í·É¾î¸¦ ³»¸®¸é µË´Ï´Ù.
°£´ÜÇÏ°Ô,
mysql> pager more
or
mysql> pager more -d
PAGER set to more -d
mysql>
mysql> SHOW STATUS;
...
...
--More--[Press space to continue, 'q' to quit.]
¹«½¼ ÀǹÌÀÎÁö ¾Æ½Ã°ÚÁÒ?
±×·³ À̹ø¿¡´Â ȸ鿡 Ãâ·ÂÇÔ°ú µ¿½Ã¿¡(more) ±× °á°ú¹°À» ÆÄÀÏ·Î
ÀúÁ¤ÇØ º¾½Ã´Ù.
À̶§´Â ȸé Ãâ·Â°ú ÆÄÀÏ ÀúÀåÀ» ÇѲ¨¹ø¿¡ ÇÒ·Á¸é tee ¶ó´Â ¸í·É¾î¸¦
»ç¿ëÇÏ¸é µÇ°ÚÁÒ.
À̸ðµå¿¡¼ 'tee', '\T' ¶ó´Â ¸í·É¿Í °°Àº ¿ªÇÒÀÔ´Ï´Ù.
\T ´Â °è¼ÓÀûÀΠȸé ĸÃç¶ó°í »ý°¢ÇÏ¸é µÇ°í,
½ÇÁ¦·Î PAGER ¿¡¼ ¼³Á¤ÇÑ tee ÀÇ °á°ú¹°°ú´Â Á¶±Ý Ʋ¸².
(\T ´Â ȸé»ó¿¡ Ãâ·ÂµÈ ¸ðµç ¿¡·¯, SQL ¹®, Ãâ·Â¹° µîµîÀÌ Æ÷ÇÔµÊ)
mysql> pager tee /path/to/result.txt | more -d
PAGER set to tee /path/to/result.txt | more -d
more ¸¦ ÆÄÀÌÇÁ(|) ¾Õ¿¡ µÎ¸é ¾ÈµË´Ï´Ù.
±×·±µ¥ ÀÌ PAGER ¼³Á¤¿¡ ÀÇÇÑ result.txt ÆÄÀÏÀº Ç×»ó ÃÖ±ÙÀÇ °á°ú¹°¸¸
ÀúÀåµË´Ï´Ù. ÀÌÀ¯´Â ¾Æ½Ã°ÚÁÒ?
result.txt ÆÄÀÏ¿¡ °è¼ÓÀûÀÎ °á°ú¹°À» Ãß°¡ÇÏ°íÀÚ ÇÑ´Ù¸é,
mysql> pager tee -a /path/to/result.txt | more -d
ÀÌ·¸°Ô tee ¿¡ -a ¿É¼ÇÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
(-a : append)
±×·³ À̹ø¿¡ ±×³É ȸéÃâ·Â ¾øÀÌ ÆÄÀÏ¿¡ ÀúÀ常 Çغ¾½Ã´Ù.
mysql> pager cat > /path/to/result2.txt
or
mysql> pager cat >> /path/to/result2.txt
¾ÆÁÖ °£´ÜÇÏÁÒ?
³ª¸ÓÁö´Â °¢ÀÚ ÀÀ¿ëÇØ º¸¼¼¿ä.
2. command line ¸ðµå¿¡¼
À̸¥¹Ù 'ÄܼÖ' ¶Ç´Â 'Å͹̳Î' ¸ðµå¶ó°í ÇÏ´Â shell Ä¿¸Çµå¶óÀÎÀ» ÀǹÌÇÕ´Ï´Ù.
2-1. interactive ¸ðµå·Î µé¾î°¥ ¶§
shell> mysql [-u username -p] --pager='more -d' [dbname]
ÀÌ·¸°Ô --pager ¿É¼ÇÀ» »ç¿ëÇÏ¸é ¼³Á¤ÇÑ PAGER°¡ ±âº» PAGER°¡ µË´Ï´Ù.
ÀÌ PAGER ¼³Á¤Àº my.cnf ¿¡¼ ¼³Á¤ÇÑ(ÀÖ´Ù¸é) PAGER¿¡ µ¤¾î¾²±â µË´Ï´Ù.
Âü°í·Î batch ¸ðµå·Î(--batch, -B) µé¾î°¥¶§´Â Àû¿ëµÇÁú ¾Ê½À´Ï´Ù.
2-2. mysql Ŭ¶óÀ̾ðÆ®ÀÇ -e ¿É¼ÇÀ» »ç¿ëÇÒ °æ¿ì
shell> mysql [-u username] [-p] --pager='more -d' [dbname] -e 'SELECT ...' [>
result.txt]
ÀÌ·±½ÄÀÇ PAGER ¼³Á¤Àº ¹Ùº¸½º·´½À´Ï´Ù(PAGER
´Â interactive ¸ðµå¿¡¼ °¡´É).
ÀÌ°ÍÀ» ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù
(ȸé Ãâ·Â°ú redirection ¿¡ °üÇÑ ³»¿ëÀÓ).
shell> mysql [-u username] [-p] [dbname] -e 'SELECT ...' [| tee [-a] result.txt] |
more -d
3. my.cnf ¿¡ ¼³Á¤
±âº»ÀÌ µÇ´Â PAGER¸¦ ¼³Á¤ÇØ º¾½Ã´Ù.
mysql Ŭ¶óÀ̾ðÆ®°¡ ¼³Á¤°ªÀ» Àд ¼ø¼´Â,
/etc/my.cnf : global ¼³Á¤ÆÄÀÏ
|
`--> /usr/local/mysql/var/my.cnf : Database µð·ºÅ丮
|
`--> $HOME/.my.cnf : »ç¿ëÀÚ ¼³Á¤ÆÄÀÏ
|
`--> mysql [OPTIONS] ... : command line¿¡¼ Á÷Á¢ ¼³Á¤
ÀÌ·±½ÄÀ¸·Î ¼øÂ÷ÀûÀ¸·Î Àо¸é¼ ±× ¼³Á¤°ªµéÀ» override ÇÕ´Ï´Ù.
°ü¸®ÀÚ ÀÔÀåÀ̶ó¸é ±¸Áö ¼³Á¤ÇÏÁö ¾Ê¾Æµµ µÇÁö¸¸, »ç¿ëÀÚ ÆíÀǸ¦ Á¦°øÇÑ´Ù´Â
¸ñÀû¿¡¼ ¼³Á¤ÇÏ°íÀÚ ÇÑ´Ù¸é /etc/my.cnf °¡ Àû´çÇÏ°ÚÁÒ.
±×¸®°í »ç¿ëÀÚ´Â °¢ »ç¿ëÀÚ È¨ µð·ºÅ丮 ¹Ø¿¡ .my.cnf ÆÄÀÏÀ» »ý¼ºÇÏ¿© ¼³Á¤ÇÏ¸é µË´Ï´Ù.
-- ~user1/.my.cnf (¿¹) -----------------
...
[mysql]
...
local-infile = 1
ignore-spaces
pager = more -d
...
----------------------------------------
4. SELECT ÀÇ Ãâ·Â¹° Æ÷¸Ë¿¡ ´ëÇؼ
SELECT Ãâ·Â¹°¿¡ ´ëÇÑ Æ÷¸ËÀº interactive ¸ðµå, batch ¸ðµå,
shell command line ¸¶´Ù Á¶±Ý¾¿ Ʋ¸³´Ï´Ù.
(--table, -t, --html, -H, --batch, -B ¿É¼Ç¿¡ µû¶ó ´Ù¸§)
Ãâ·Â¹°(°á°ú¹°) Æ÷¸ËÀº ´ÙÀ½°ú °°½À´Ï´Ù.
1) --table, -t ¿É¼ÇÀ̳ª ±âº» interactive ¸ðµå¿¡¼ TABLE ÇüÅÂ
2) --html, -H ¿É¼ÇÀ» »ç¿ëÇÒ °æ¿ìÀÇ HTML TAG ÇüÅÂ
3) INTO OUTFILE ±¸¹®¿¡ ÀÇÇÑ °¢ ¼¼·Î Ä(ÀÌÇÏ 'column')ÀÌ TAB(±âº»)À¸·Î ±¸ºÐµÈ ÇüÅÂ
4) mysqldump(DUMP) ¿¡ ÀÇÇÑ SQL ±¸¹®.
5) rows ´ÜÀ§(\G) ÇüÅÂ
4-1. TABLE ÇüÅÂ
°¡·Î, ¼¼·Î°¡ ¼±(-, +, |)À¸·Î ±×¾îÁø ´ÙÀ½°ú °°Àº Æ÷¸Ë ±¸Á¶¸¦ ¸»ÇÕ´Ï´Ù.
+----+--------------------------------------+
| no | title |
+----+--------------------------------------+
| 1 | Áú¹® ´äº¯ °Ô½ÃÆÇÀÔ´Ï´Ù. |
| 2 | ¸®´ª½º¿ë µ¥ÀÌŸº£À̽º |
| 8 | su¸¦ ÅëÇØ root ±ÇÇÑÀ» ȹµæÇصµ.. |
| 9 | RE: su¸¦ ÅëÇØ root ±ÇÇÑÀ» ȹµæÇصµ.. |
| 10 | [Áú¹®] ½ºÆÅ ¸®´ª½º .. |
+----+--------------------------------------+
ÇØ´ç column °ªÀÌ ¼ýÀÚÇüÀÌ¸é ±âº»ÀûÀ¸·Î ¿À¸¥ÂÊ Á¤·ÄÀ» ÇÏ°í,
¹®ÀÚ¿ÀÌ¸é ¿ÞÂÊ Á¤·ÄÀ» ÇÕ´Ï´Ù.(HTML TABLE °ú °°Àº Çü½ÄÀ¸·Î)
±×¸®°í ºó °ø°£µéÀº TAB ÀÌ ¾Æ´Ñ SPACE µé·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç,
interactive ¸ðµåÀÇ ±âº» ÇüÅÂÀÔ´Ï´Ù.
- TABLE ÇüÅ·Π°á°ú¹°À» ¾òÀ» ¼ö ÀÖ´Â ¹æ¹ý
1) ±âº» interactive ¸ðµåÀÇ È¸é Ãâ·Â(--batch, -B, --html, -H ¿É¼Ç ¾øÀÌ)¿¡¼,
\G °¡ ¾Æ´Ñ ±âº» ; ³ª \g ¸¦ »ç¿ëÇÏ¿© Äõ¸®¸¦ Àü¼ÛÇÒ °æ¿ìÀÇ Ãâ·Â ȸé°ú,
ÀÌ Á¶°Ç¿¡¼ tee ³ª page ¼³Á¤À¸·Î ÀúÀåµÈ ÆÄÀÏ
2) command line ¿¡¼ --table, -t ¿É¼ÇÀÌ ¾øÀÌ È¸é Ãâ·Â¹°
ex)
shell> mysql [-u username] [-p] [dbname] -e "SELECT ..."
3) command line ¿¡¼ --table, -t ¿É¼Ç°ú -e ¿É¼ÇÀÇ °áÇÕ °á°ú¹°
ex)
shell> mysql [-u username] [-p] [dbname] --table -e "SELECT ..." [>
result.txt]
*ÁÖÀÇ)
2)¿¡¼ result.txt ÆÄÀÏ·Î redirect ÇÏ¸é °á°ú¹°Àº <TAB> À¸·Î ±¸ºÐµÈ ÇüÅ°¡ µÊ.
3)¿¡¼ --table ¿É¼ÇÀ» ÁöÁ¤Çß´Ù°í ÇÏ´õ¶ó°í, "SELECT ... INTO OUTFILE result.txt
..."
¿Í °°Àº SQL ±¸¹®ÀÇ °á°ú¹°ÀÎ result.txt ÆÄÀÏÀº TAB(±âº»)À¸·Î ±¸ºÐµË´Ï´Ù.
4-2. HTML TAG ÇüÅÂ
mysqlÀº °á°ú¹°¿¡ ´ëÇؼ HTML TAG Çüŵµ Áö¿øÇÕ´Ï´Ù.
- HTML TAG ÇüÅ·Π°á°ú¹°À» ¾òÀ» ¼ö ÀÖ´Â ¹æ¹ý
1) --html, -H ¿É¼ÇÀ» »ç¿ëÇÑ interactive ¸ðµå¿¡¼ ȸé Ãâ·Â°ú ÀúÀå¹°
ex)
shell> mysql [-u username] [-p] [dbname] --html
mysql> SHOW TABLES;
<TABLE
BORDER=1><TR><TH>Tables_in_mysql</TH></TR><TR><TD>columns_priv<
/TD> ...
...</TD></TR></TABLE>
2) command line ¸ðµå¿¡¼ --html, -H ¿É¼ÇÀ» »ç¿ëÇÑ È¸é Ãâ·Â°ú ÀúÀå¹°
ex)
shell> mysql [-u username] [-p] [dbname] --html -e "SELECT ..." [>
result.html]
*ÁÖÀÇ) ±ä ÇÑÁÙ(max columns) ÀÌ»óÀ¸·Î ±¸¼ºµÈ HTML ÇüÅÂÀÓ.
4-3 TAB À¸·Î ±¸ºÐµÈ ÇüÅÂ
mysql ¿¡¼ ¾î¶² °á°ú¹°À» ÆÄÀÏ·Î DUMP ÇÒ °æ¿ì °¢ columns ÀÌ TAB(±âº»)À¸·Î ±¸ºÐµÈ
´ÙÀ½°ú °°Àº ÇüŸ¦ ¸»ÇÕ´Ï´Ù.
---------------------------------------------------
1 <TAB> Áú¹® ´äº¯ °Ô½ÃÆÇÀÔ´Ï´Ù.
2 <TAB> ¸®´ª½º¿ë µ¥ÀÌŸº£À̽º
8 <TAB> su¸¦ ÅëÇØ root ±ÇÇÑÀ» ȹµæÇصµ..
9 <TAB> RE: su¸¦ ÅëÇØ root ±ÇÇÑÀ» ȹµæÇصµ..
10 <TAB> [Áú¹®] ½ºÆÅ ¸®´ª½º ..
---------------------------------------------------
*ÁÖÀÇ) <TAB> Àº \t ·Î ½ÇÁ¦·Î '<TAB>' ¹®ÀÚ¿ÀÌ ¾Æ´Ô.
°¢ Ä÷³ÀÇ Á¤·Ä¹æ½ÄÀº ¿ÞÂÊÁ¤·ÄÀÔ´Ï´Ù.
- TAB À¸·Î ±¸ºÐµÈ °á°ú¹°À» ¾òÀ» ¼ö ÀÖ´Â ¹æ¹ý
1) interactive ¸ðµå¿¡¼ SELECT ... INTO OUTFILE ±¸¹®À» »ç¿ëÇÒ °æ¿ì
ex)
mysql> SELECT no,title INTO OUTFILE '/path/to/dump.txt' FROM table;
2) command line ¸ðµå¿¡¼ -e ¿É¼Ç ¾ÈÀÇ OUTFILE °á°ú¹°
ex)
shell> mysql [-u username] [-p] [dbname] -e "...INTO OUTFILE
'/path/to/dump.txt' ..."
3) command line ¸ðµå¿¡¼ redirect ÀÇ °á°ú¹°
ex)
shell> mysql [-u username] [-p] [dbname] -e "SELECT ..." > result.txt
4) mysqldump -T, --tab=/path/to/dir ¿¡ ÀÇÇÑ DUMP µÈ text ÆÄÀÏ
*ÁÖÀÇ)
2)¹øÀÇ dump.txt ÆÄÀÏ°ú 3)¹øÀÇ result.txt ÆÄÀÏÀº ¸ðµÎ <TAB>À¸·Î ±¸ºÐµÇ¾î ÀÖÁö¸¸
2)¹øÀº ù¹ø ° ¶óÀο¡ columns À̸§ÀÌ ¾ø°í, 3)¹øÀº ¿É¼Ç¿¡ µû¶ó¼ ´Ù¸£´Ù Áï,
-N, --skip-column-names ¿É¼ÇÀ» »ç¿ëÇϸé 2)¹ø°ú µ¿ÀÏÇÏ´Ù.
[FIELDS
[TERMINATED BY '\t']
[[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\\' ]
]
[LINES
[STARTING BY '']
[TERMINATED BY '\n']
]
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--lines-terminated-by=...
4) DUMP ¿¡ ÀÇÇÑ SQL ±¸¹®.
5) rows ´ÜÀ§(\G) ÇüÅÂ
mysql> select no,title into outfile '/home/outfile.txt' from qa where no <10;
ERROR 1: Can't create/write to file '/home/outfile.txt' (Errcode: 13)
ERROR 1045: Access denied for user: 'mysql@localhost' (Using password: NO)
ˤ˂ ERROR 1045 :
ÇØ´ç À¯Àú¿¡ ´ëÇÑ File_priv ±ÇÇÑÀÌ ¾ø±â ¶§¹®ÀÔ´Ï´Ù.
ÀÌ ¼³Á¤Àº
mysql.user Å×ÀÌºí¿¡¼ ¼³Á¤ÇÕ´Ï´Ù.
º¸¾È»óÀÇ ÀÌÀ¯·Î ´ëºÎºÐ File_priv ±ÇÇÑÀº 'N' À¸·Î µÇ¾î ÀÖÁÒ.
±×¸®°í OUPFILE ¿¡ ÀÇÇØ »ý¼ºµÈ ÆÄÀÏÀº
mysql client(Á¢¼ÓÇÑ È£½ºÆ®)¿¡ À§Ä¡ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó
mysql server ¿¡ À§Ä¡ÇÕ´Ï´Ù.
¶ÇÇÑ ÆÄÀÏ ¼ÒÀ¯ÀÚ¿Í ±×·ìÀº mysqld ÀÇ process À¯Àú, Áï
´ëºÎºÐ mysql À¯Àú¿Í mysql ±×·ì ±ÇÇÑÀ¸·Î ÆÄÀÏÀÌ
»ý¼ºµÇ¸ç,
±âÁ¸¿¡ °°Àº ÆÄÀÏÀÌ ÀÖÀ¸¸é override °¡ µÇÁö¾Ê°í
¿¡·¯¸¦ ³À´Ï´Ù.
-------------------------------
* Èıâ :
±âȸ(½Ã°£)°¡ µÈ´Ù¸é,
[MYSQL]
- »ç¿ëÀÚº¯¼ö¿Í °¡»ó ¼øÀ§¹øÈ£
- INDEX ¼³Á¤°ú »ç¿ë¿©ºÎ(explain), filesort ...
- SQL ¿ì¼±¼øÀ§(ÀÔ·Â,°Ë»ö)
- ¸Þ¸ð¸® ¼³Á¤ Æ©´×
- LIKE º¸´Ù INSTR()ÀÌ ´õ ºü¸£´Ù´øµ¥..
[PHP]
- 2Â÷¿ø ¹è¿ Á¤·Ä¿¡ °üÇÏ¿©
- »ç¿ëÀÚ ½ºÅ©¸°(ÇØ»óµµ) Åë°è ±¸Çϱâ
[APACHE]
- Action ¿¡ ÀÇÇÑ À̹ÌÁö ¼¹ö ºÐ»ê(experimental)
[±âŸ]
- º¯¼ö Ãâ·Â
- stty ¿Í -cols(`ps' command)
|
ÀÌÀü±Û : [APACHE] HTTP Request Á¦ÇÑ(400, 414, GET)
´ÙÀ½±Û : [MYSQL] ¿ì¼±¼øÀ§, LOW_PRIORITY, DELAYED, ...
|
from 61.254.75.40
JS(Redhands)Board 0.4 +@
|
|