psql.1
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:11k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. ." This is -*-nroff-*-
  2. ." XXX standard disclaimer belongs here....
  3. ." $Header: /usr/local/cvsroot/pgsql/src/man/Attic/psql.1,v 1.30 1999/03/30 05:14:03 ishii Exp $
  4. .TH PSQL UNIX 1/20/96 PostgreSQL PostgreSQL
  5. .SH NAME
  6. psql - run the interactive query front-end
  7. .SH SYNOPSIS
  8. .BR psql
  9. [c
  10. .BR "-a"
  11. authsvc
  12. ]
  13. [c
  14. .BR "-A"
  15. ]
  16. [c
  17. .BR "-c"
  18. query
  19. ]
  20. [c
  21. .BR "-d"
  22. dbName]
  23. [c
  24. .BR "-e"
  25. ]
  26. [c
  27. .BR "-E"
  28. ]
  29. [c
  30. .BR "-f"
  31. filename]
  32. [c
  33. .BR "-F"
  34. separator]
  35. [c
  36. .BR "-h"
  37. hostname]
  38. [c
  39. .BR "-H"
  40. ]
  41. [c
  42. .BR "-l"
  43. ]
  44. [c
  45. .BR "-n"
  46. ]
  47. [c
  48. .BR "-o"
  49. filename
  50. ]
  51. [c
  52. .BR "-p"
  53. port]
  54. [c
  55. .BR "-q"
  56. ]
  57. [c
  58. .BR "-s"
  59. ]
  60. [c
  61. .BR "-S"
  62. ]
  63. [c
  64. .BR "-t"
  65. ]
  66. [c
  67. .BR "-T"
  68. table-options
  69. ]
  70. [c
  71. .BR "-u"
  72. ]
  73. [c
  74. .BR "-x"
  75. ]
  76. [dbname]
  77. .in -5n
  78. .SH DESCRIPTION
  79. psql is a interactive query front-end to Postgres.  It enables you to
  80. type in queries interactively, issue them to Postgres, and see the query
  81. results.
  82. .IR psql
  83. can be used in a pipe sequence, and automatically detects when it
  84. is not listening or talking to a real tty.
  85. .PP
  86. .IR "psql"
  87. is a frontend application, like any other.  Hence, a
  88. .IR "postmaster"
  89. process must be running on the database server host before
  90. .IR "psql"
  91. is executed.  In addition, the correct
  92. .IR "postmaster"
  93. port number must be specified
  94. as described below.
  95. .PP
  96. The optional argument
  97. .IR dbname
  98. specifies the name of the database to be accessed.  This database must
  99. already have been created.
  100. .IR dbname
  101. defaults to the value of the
  102. .SM USER
  103. environment variable or, if that's not set, to the Unix account name of the
  104. current user.
  105. .PP
  106. When
  107. .IR "psql"
  108. starts, it reads SQL commands from
  109. .IR "/etc/psqlrc"
  110. and then from
  111. .IR "$(HOME)/.psqlrc"
  112. This allows SQL commands like
  113. .IR SET
  114. which can be used to set the date style to be run at the start of
  115. evry session.
  116. .PP
  117. .IR "psql"
  118. understands the following command-line options:
  119. .TP
  120. .BR "-a" " system"
  121. Specifies an authentication system
  122. .IR "system"
  123. to use in connecting to the
  124. .IR postmaster
  125. process.  This option no longer has any effect.
  126. .TP
  127. .BR "-A"
  128. Turn off fill justification when printing out table elements.
  129. .TP
  130. .BR "-c" " query"
  131. Specifies that
  132. .IR "psql"
  133. is to execute one query string,
  134. .IR "query" ,
  135. and then exit.  This is useful for shell scripts, typically in
  136. conjunction with the
  137. .BR -q ""
  138. options.
  139. .BR -c
  140. option in shell scripts.
  141. .TP
  142. .BR "-d" " dbName"
  143. Specifies the name of the database to connect to.
  144. .TP
  145. .BR "-e" " "
  146. Echo the query sent to the backend
  147. .TP
  148. .BR "-E" " "
  149. Echo the actual query generated by ed and other backslash commands
  150. .TP
  151. .BR "-f" " filename"
  152. Use the file
  153. .IR "filename"
  154. as the source of queries instead of reading queries interactively.
  155. .TP
  156. .BR "-F" " separator"
  157. Use
  158. .IR "separator"
  159. as the field separator.
  160. The default is "|".
  161. .TP
  162. .BR "-h" " hostname"
  163. Specifies the hostname of the machine on which the
  164. .IR postmaster
  165. is running.
  166. Without this option, communication is performed using
  167. local Unix domain sockets.
  168. .TP
  169. .BR "-H"
  170. Turns on
  171. .SM HTML3.0
  172. tabular output.
  173. .TP
  174. .BR "-l"
  175. Lists all available databases
  176. .TP
  177. .BR "-n"
  178. Do not use the readline library for input line editing and command history.
  179. .TP
  180. .BR "-o" " filename"
  181. Put all output into filename
  182. .TP
  183. .BR "-p" " port"
  184. Specifies the TCP/IP port or local Unix domain socket file
  185. extension on which the
  186. .IR postmaster
  187. is listening for connections.  Defaults to 5432, or the value of the
  188. .SM PGPORT
  189. environment variable (if set).
  190. .TP
  191. .BR "-q"
  192. Specifies that
  193. .IR psql
  194. should do its work quietly.  By default, it
  195. prints welcome and exit messages and prompts for each query, and prints
  196. out the number of rows returned from a query.
  197. If this option is used, none of this happens. This is useful with the
  198. .BR -c
  199. option in shell scripts.
  200. .TP
  201. .BR "-s"
  202. Run in single-step mode where the user at prompted for each query before
  203. it is sent to the backend.
  204. .TP
  205. .BR "-S"
  206. Run ins single-line mode where each query is terminated by a newline,
  207. instead of a semicolon.
  208. .TP
  209. .BR "-t"
  210. Turn off printing of column names.
  211. This is useful with the
  212. .BR -c
  213. option in shell scripts.
  214. .TP
  215. .BR "-T" " table-options"
  216. Allows you to specify options to be placed within the <table ...> tag
  217. for
  218. .SM HTML3.0
  219. tabular output. For example
  220. .BR border
  221. will give you tables with borders.
  222. .TP
  223. .BR "-u"
  224. Asks the user for the user name and password before connecting to the database.
  225. If the database does not require password authentication then these are
  226. ignored.  If the option is not used (and the PGPASSWORD environment variable
  227. is not set) and the database requires password authentication, then the
  228. connection will fail.  The user name is ignored anyway.
  229. .TP
  230. .BR "-x"
  231. Turns on extended row format mode. When enabled each row will have its column
  232. names printed on the left with the column values printed on the right.
  233. This is useful for rows which are otherwise too long to fit into
  234. one screen line. HTML row output supports this mode also.
  235. .PP
  236. You may set environment variables to avoid typing some of the above
  237. options.  See the
  238. .SM "ENVIRONMENT VARIABLES"
  239. section below.
  240. .SH "CONNECTING TO A DATABASE"
  241. .IR psql
  242. attempts to make a connection to the database at the hostname and
  243. port number specified on the command line.   If the connection could not
  244. be made for any reason (e.g. insufficient privileges, postmaster is not
  245. running on the server, etc)
  246. .IR psql
  247. will return an error that says
  248. .nf
  249. Connection to database failed.
  250. .fi
  251. The reason for the connection failure is not provided.
  252. .SH "ENTERING QUERIES"
  253. In normal operation, psql provides a prompt with the name of the
  254. database that psql is current connected to followed by the string "=>".
  255. For example,
  256. .nf
  257. Welcome to the POSTGRESQL interactive sql monitor:
  258.   Please read the file COPYRIGHT for copyright terms of POSTGRESQL
  259.    type e? for help on slash commands
  260.    type eq to quit
  261.    type eg or terminate with semicolon to execute query
  262.  You are currently connected to the database: testdb
  263. testdb=>
  264. .fi
  265. .PP
  266. At the prompt, the user may type in SQL queries.  Unless the -S option
  267. is set, input lines are sent to the backend when a query-terminating
  268. semicolon is reached.
  269. .PP
  270. Whenever a query is executed, psql also polls for asynchronous notification
  271. events generated by
  272. .IR listen(l)
  273. and
  274. .IR notify(l).
  275. .PP
  276. .SH "PSQL COMMANDS"
  277. Anything you enter in psql that begins with an unquoted backslash is a psql
  278. command.  Anything else is SQL and simply goes into the current query buffer
  279. (and once you have at least one complete query, it gets automatically 
  280. submitted to the backend).  Psql commands are also called slash commands.
  281. .PP
  282. The format of a psql command is the backslash, followed immediately by
  283. a command verb, then any arguments.  The arguments are separated from the
  284. command verb and each other by any number of white space characters.
  285. .PP
  286. With single character command verbs, you don't actually need to separate the
  287. command verb from the argument with white space, for historical reasons.
  288. You should anyway.
  289. .IP "ea"
  290. Toggle field alignment when printing out table elements.
  291. .IP "eC fIcaptionfR"
  292. Set the HTML3.0 table caption.
  293. .IP "econnect fIdbnamefR fIusernamefR"
  294. Establish a connection to a new database. The previous connection is closed.
  295. .IP "ecopy fItablefR {FROM | TO} fIfilenamefR"
  296. Perform a frontend copy.  This is an operation that runs a SQL COPY command,
  297. but instead of the backend reading or writing a specified file, and 
  298. consequently requiring special user privilege, psql reads or writes the 
  299. file and routes the data to or from the backend.  The default TAB
  300. delimiter is used.
  301. .IP "ed [fItablefR]"
  302. List tables in the database, or if
  303. .IR table
  304. is specified, list the columns in
  305. .IR table.
  306. If table name is
  307. .IR *,
  308. list all tables and column information for each tables.
  309. .IP "eda"
  310. List aggregates.
  311. .IP "edd object"
  312. List the description of the table, table.column, type, operator, or aggregate.
  313. .IP "edf"
  314. List functions.
  315. .IP "edi"
  316. List only indexes.
  317. .IP "edo"
  318. List operators.
  319. .IP "eds"
  320. List only sequences.
  321. .IP "edS"
  322. List system tables and indexes.
  323. .IP "edt"
  324. List only tables.
  325. .IP "edT"
  326. List types.
  327. .IP "ee [fIfilenamefR]"
  328. Edit the current query buffer or fIfilefR.
  329. .IP "eE [fIfilenamefR]"
  330. Edit the current query buffer or fIfilefR and execute it
  331. upon editor exit.
  332. .IP "ef [fIseparatorfR]"
  333. Set the field separator.  Default is a single blank space.
  334. .IP "eg [fI|commandfR] | [fIfilenamefR]"
  335. Send the current query input buffer to the backend and optionally
  336. save the output in
  337. .IR filename
  338. or pipe the output into
  339. .IR "|command".
  340. .IP "eh [fIcommandfR]"
  341. Give syntax help on the specified SQL command.  If the
  342. .IR command
  343. is not specified, list all the commands for which syntax help is
  344. available.  If the
  345. .IR command
  346. is
  347. .IR *,
  348. give syntax help on all SQL commands.
  349. .IP "eH"
  350. Toggle html3 output.
  351. .IP "ei fIfilenamefR"
  352. Read queries from
  353. .IR filename
  354. into the query input buffer.
  355. .IP "el"
  356. List all the databases in the server.
  357. .IP "em"
  358. Toggle old monitor-like table display.
  359. This is standard SQL output (i.e extra border characters).
  360. .IP "eo [fI|commandfR] | [fIfilenamefR]"
  361. Send query results to
  362. .IR filename .
  363. Or pipe into
  364. .IR command .
  365. If no arguments are specified, send query results to
  366. .IR stdout .
  367. .IP "ep"
  368. Print the current query buffer.
  369. .IP eq
  370. Quit the psql program.
  371. .IP "er"
  372. Reset(clear) the query buffer.
  373. .IP "es [fIfilenamefR]"
  374. Print or save the command line history to fIfilenamefR.  (Only available if psql is
  375. configured to use readline)
  376. .IP "et"
  377. Toggle display of output column name headings and row count (defaults to on).
  378. .IP "eT"
  379. Set html3.0 <table ...> options.
  380. .IP "ex"
  381. Toggles extended row format mode. When enabled each row will have its column
  382. names printed on the left with the column values printed on the right.
  383. This is useful for rows which are otherwise too long to fit into
  384. one screen line. HTML row output mode supports this flag too.
  385. .IP "ew [fIfilenamefR]"
  386. Outputs current query buffer to
  387. .IR filename .
  388. .IP "ez"
  389. Produces a list of all tables in database with their appropriate ACLs
  390. (grant/revoke permissions) listed.
  391. .IP "e! [fIcommandfR]"
  392. Escape to shell or execute
  393. .IR command.
  394. .IP e?
  395. Get help information about the e commands.
  396. .SH "ENVIRONMENT VARIABLES"
  397. There are some environment variables which can be used in liu of
  398. command line arguments; these are detailed below. 
  399. Additionally, the Postgres frontend library used by the psql application
  400. looks for other optional environment variables to configure, for example,
  401. the style of date/time representation and the local time zone. Refer
  402. to libpq(3) for more details.
  403. .PP
  404. You may set any of the following environment variables to avoid
  405. specifying command-line options:
  406. .nf
  407. hostname:   PGHOST
  408. port:       PGPORT
  409. tty:        PGTTY
  410. options:    PGOPTION
  411. realm:      PGREALM
  412. .fi
  413. Setting PGHOST to a non-zero-length string causes TCP/IP communication
  414. to be used, rather than the default local Unix domain sockets.
  415. .PP
  416. If
  417. .SM PGOPTION
  418. is specified, then the options it contains are parsed
  419. .BR before
  420. any command-line options.
  421. .PP
  422. .SM PGREALM
  423. only applies if
  424. .IR Kerberos
  425. authentication is in use.  If this environment variable is set, Postgres
  426. will attempt authentication with servers for this realm and use
  427. separate ticket files to avoid conflicts with local ticket files.
  428. .SH "RETURN VALUE"
  429. .IR psql
  430. returns 0 to the shell on successful completion of all queries,
  431. 1 for errors, 2 for abrupt disconnection from the backend.
  432. .IR psql
  433. will also return 1 if the connection to a database could not be made for
  434. any reason.
  435. .SH "SEE ALSO"
  436. libpq(3),
  437. postgres(1),
  438. postmaster(1).