nzsql 命令
nzsql命令调用Netezza Performance Server主机或Netezza Performance Server客户系统上的 SQL 命令解释器。 您可以使用此 SQL 命令解释器创建数据库对象、运行查询和管理数据库。
nzsql [options] [security options] [dbname [user] [password]]| 参数 | 描述 |
|---|---|
| -a | 回显来自脚本的所有输入。 |
| -A | 使用不对齐的表输出方式。 这等同于指定 -P format=unaligned。 |
| -csv | CSV(逗号分隔值)表格输出模式。 |
| -c <查询 | 仅运行单个查询(或斜杠命令)并退出。 |
-d <dbname>
或 -D <dbname> |
指定要连接的数据库的名称。 如果未指定该参数,"nzsql命令将使用为 "NZ_DATABASE环境变量指定的值(如果已指定),或提示您输入密码(如果未指定)。 |
| -模式 <schemaname> | 指定要连接的模式的名称。 该选项用于Netezza Performance Server 7.0.3版及更高版本系统,这些系统配置为使用多个模式。 如果系统不支持多模式,则忽略此参数。 If you do not specify this parameter, the nzsql command uses the value specified for the NZ_SCHEMA environment variable (if it is specified) or a schema that matches the database account name (if it is not and if 启用用户模式 is set to TRUE), or the default schema for the database (otherwise). |
| -e | 回显发送到服务器的查询。 |
| -E | 显示内部命令生成的查询。 |
| -f <文件名 | 运行文件中的查询,然后退出。 |
| -F <字符串 | 设置字段分隔符。 默认值:是竖条纹 (|)。这等同于指定-P fieldsep=<string>。 |
| -h | 显示 "nzsql命令的帮助。 |
| -h | 将表输出方式设置为 HTML。 这等同于指定 -P format=html。 |
| -主机 <host> | 指定数据库服务器的主机名。 |
| -l | 列出可用数据库,然后退出。 |
| -n | 禁用读线模式。 当输入使用双字节字符集(如日文、中文或韩文)时需要这样做 |
| -o <文件名称 | 将查询输出发送到指定的文件,或者,如果指定了竖线 (|) 而不是文件名,那么将发送到管道。 |
| -O <文件名 | 将查询输出和所有错误消息发送到指定的文件,或者,如果指定了竖线 (|) 而不是文件名,那么将发送到管道。 |
| -P opt[=val] | 将opt所代表的打印选项设置为val 所代表的值。 |
| -port <port> | 指定数据库服务器端口。 |
| -pw <密码 | 指定数据库用户的密码。 如果未指定此参数,"nzsql命令将使用为环境变量 "NZ_PASSWORD指定的值(如果已指定),或提示您输入密码(如果未指定)。 |
| -q | 静默运行,即,不发出消息。 仅返回查询输出。 |
| -r | 抑制查询输出末尾显示的行计数。 |
| -R <字符串 | 设置记录分隔符。 缺省值为换行符。 这等同于指定-P recordsep=<string>。 |
| -s | 使用单步方式,这要求确认每个查询。 |
| -S | 使用单行方式,这将导致换行符终止查询。 |
| -t | 只打印行 这相当于指定-P tuples_only。 |
| -时间 | 打印查询所花费的时间。 |
| -T <文本 | 设置 HTML 表标记选项,例如宽度和边框。 这相当于指定-P tableattr=<text>。 |
-u <用户名>
或 -U <用户名 |
指定数据库用户名。 如果未指定该参数,"nzsql命令将使用NZ_USER环境变量的指定值(如果已指定)或提示您输入用户名(如果未指定)。 |
| -v <名>=<值 | 将指定的会话变量设置为指定值。 请对要设置的每个变量指定一次此参数,例如: |
| -V | 显示版本信息并退出。 |
| -w | 不需要数据库用户的密码。 密码由其他机制(例如,Kerberos)提供。 |
| -W <密码 | 指定数据库用户的密码。 (与-pw.相同) |
| -x | 展开表输出。 这等同于指定 -P expanded。 |
| -X | 不要读取启动文件~/.nzsqlrc)。 |
| --securityLevel<level | 指定客户端连接Netezza Performance Server系统的安全级别(安全或不安全)。 登录Netezza Performance Server系统并运行命令时,此选项不适用。
|
| --caCertFile<path> | 指定客户端系统上 CA 根证书文件的路径。 Netezza Performance Server客户端使用此选项验证Netezza Performance Server主机系统。 缺省值为 NULL,这表示跳过对等认证过程。 |
| -部分链 | 允许对缺乏完整证书链的证书进行部分验证(双层证书层次结构)。 必须与-caCertFile选项一起使用。 |
| -z | 将未对齐输出的字段分隔符设置为零字节。 |
| -0 | 将未对齐输出的记录分隔符设置为零字节。 |
在 "nzsql命令解释器中输入 "\?以获得帮助。
- 常规
- \g [FILE]
- 运行查询。 并将结果发送到文件或管道。 这与使用分号终止查询的效果相同。
- \q
- 退出 "nzsql.
- 帮助
- \?
- 列出并显示所有反斜杠命令的帮助。
- \h <COMMAND>
- 显示所有 SQL 命令的帮助。
- 查询缓冲区
- \e [FILE]
- 使用外部编辑器编辑当前查询缓冲区(或文件)。 (Windows 不支持)
- \p
- 显示查询缓冲区的内容。
- \s [FILE]
- 显示历史记录或将其保存到文件中。 (Windows 不支持)
- \w [FILE]
- 将查询缓冲区写入文件。
- 输入/输出
- \copy ...
- 执行 "SQL COPY,将数据流发送到客户端主机。
- \echo [STRING]
- 将字符串写入标准输出。
- \i FILE
- 读取并执行 <file> 中的查询。
- \o [FILE]
- 将所有查询结果发送到文件或管道。
- \O [FILE]
- 将带错误的查询输出发送到文件或管道。
- \qecho [STRING]
- 将字符串写入查询输出流(见 "\o)。
- 参考
- \d NAME
- 描述表格(或视图、序列、同义词、索引)。
- \dO NAME
- 描述按排序顺序排列的表格或视图。
- \d{t|v|i|s|e|x}
- 列出表/视图/索引/序列/临时表/外部表。
- \d{m|y}
- 列示具体化视图/同义词。
- \dS{t|v|i|s}
- 列出系统表/视图/索引/序列。
- \dM{t|v|i|s}
- 列出系统管理表/视图/索引/序列。
- \dp NAME
- 列出用户许可权。
- \dpu NAME
- 列出授予用户的权限。
- \dpg NAME
- 列出授予某个组的权限。
- \dpr NAME
- 列出授予角色的权限。
- \dgp NAME
- 列出用户的授予许可权。
- \dgpu NAME
- 列出授予用户的权限。
- \dgpg NAME
- 列出授予某个组的权限。
- \d{u|U}
- 列出用户/用户组。
- \d{g|G|Gr}
- 列出组/组用户/资源组用户。
- \da[+] [NAME]
- 列出集合,+ 为附加字段。
- \dd [object]
- 列出对象的注释。
- \df[+] [NAME]
- 列出功能,"+"表示附加字段。
- \dl[+] [NAME]
- 列出图书馆,+ 为附加字段。
- \do
- 列出操作员。
- \dT
- 列出数据类型。
- \l[+]
- 列出所有数据库,+ 为附加字段。
- 格式
- \a
- 在非对齐方式与对齐方式之间切换。
- \C [STRING]
- 设置表格标题,如果没有则取消设置。
- \f [STRING]
- 显示或设置未对齐查询输出的字段分隔符。
- \H
- 切换 HTML 输出模式(当前为关闭)。
- \pset [NAME [VALUE]]
- 设置表格输出选项:(border|columns|csv_fieldsep|expanded|fieldsep|fieldsep_zero|footer|format|linestyle|null|numericlocale|pager|pager_min_lines|recordsep|recordsep_zero|tableattr|title|tuples_only|unicode_border_linestyle|unicode_column_linestyle|unicode_header_linestyle)
- \t [on|off]
- 只显示行(当前关闭)。
- \T [STRING]
- 设置 HTML <table> 标记属性,如果没有则取消设置。
- 连接
- \act
- 显示当前活动会话。
- \c[onnect] [DBNAME [USER] [PASSWORD]]
- 连接新数据库(当前为 "TEST_NZSQL_PSET_DB")。
- 操作系统
- \time [on|off]
- 切换命令的定时(当前为关闭)。
- \! [COMMAND]
- 外壳转义字符或命令。 (Windows 不支持)
- 变量
- \set [NAME [VALUE]]
- 设置内部变量,如果没有参数,则列出所有变量。
- \unset NAME
- 取消设置(删除)内部变量。
nzsql在 UNIX 和 Windows 客户端上的行为差异
从NPS 7.2.1 版开始,"nzsql命令作为 Windows 客户端工具包的一部分。 请注意,在 Windows 环境中,用户按 Enter 键或 Control-C 键序列时的行为与在 UNIX "nzsql命令行环境中有所不同。 Windows 命令提示符环境不支持许多常见的 UNIX 命令格式和选项。 不过,如果 Windows 客户端使用的是 cygwin 等Linux环境,nzsql.exe命令可以支持文档中提到的更多 UNIX 专用命令行选项。
在 UNIX 环境中,如果您在 "nzsql命令行外壳中键入多行 SQL 查询,回车键将作为换行符接受查询输入,直到您键入分号字符并按回车键。 在随后的输入行中,shell 提示符也会从 "=>变为 "->。
MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Enter)
MYDB.SCH(USER)-> ; (press Enter)
COUNT
-------
1274
(1 row)在 UNIX 环境中,如果按下 Control-C,整个查询将被取消,并返回命令提示符:
MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Control-C)
MYDB.SCH(USER)=> 在 Windows 客户端环境中,如果在 "nzsql命令行外壳中键入多行 SQL 查询,回车键的作用类似于换行符,接受查询输入,直到键入分号字符并按回车键。
MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Enter)
MYDB.SCH(USER)-> ; (press Enter)
COUNT
-------
1274
(1 row)不过,在 Windows 环境中,Control-C 或 Control-Break 键序列不会取消多行查询,而只会取消查询输入的那一行:
MYDB.SCH(USER)=> select count(*) (press Enter)
MYDB.SCH(USER)-> from ne_part (press Enter)
MYDB.SCH(USER)-> where p_retailprice < 950.00 (press Control-C)
MYDB.SCH(USER)-> ; (press Enter)
COUNT
-------
100000
(1 row)Control-C(或 Control-Break)取消了第三行输入的 WHERE 子句,因此查询结果在没有限制的情况下会变大。 在单个输入行中(提示为 "=>时,注意 Control-C 会取消查询,并返回 "nzsql命令提示符。
MYDB.SCH(USER)=> select count(*) from ne_part (press Control-C)
MYDB.SCH(USER)=>
nzsql在 Windows 系统中需要执行 more 命令
在 Windows 客户端运行 "nzsql命令时,可能会出现以下错误more not recognized as an internal or external command.出现此错误是因为 "nzsql使用了 "more命令来处理查询结果。 该错误说明 "nzsql命令无法在 Windows 客户端上找到 "more命令。
要纠正这一问题,请将 "more.com命令可执行文件添加到客户系统的 PATH 环境变量中。 每个 Windows 操作系统版本修改环境变量的方法略有不同,具体说明请参阅 Windows 文档。 在 Windows 7 系统中,您可以使用类似下面的程序:
- 单击 "开始",然后在搜索栏中输入 "environment。 在搜索结果中,单击编辑系统环境变量。 系统属性对话框将打开并显示高级选项卡。
- 单击环境变量。 此时将打开 "环境变量 "对话框。
- 在系统变量列表中,选择路径变量,然后单击编辑。 编辑系统变量对话框将打开。
- 将光标放在变量值字段的末尾。 您可以单击字段中的任意位置,然后按 End 键结束字段。
- 在路径字段末尾添加值 "C:\Windows\System32; 。 确保使用分号字符,并在字符串末尾输入空格字符。 如果您的系统将 "more.com文件放在 "C:Windows\System32以外的目录中,请使用客户机上适用的路径名。
- 单击 "编辑系统变量 "对话框中的确定,然后单击 "环境变量 "对话框中的确定,再单击 "系统属性 "对话框中的确定。
更改后,"nzsql命令运行时将不会显示more not recognized错误。