大小写敏感:KingbaseES数据库系统提供一个系统级参数case_sensitive,可在系统初始化时指定,一旦指定,不能修改。
case_sensitive取值为Y时,数据库标识符在数据库中存储为大写方式,字符串比较时区分大小写;
case_sensitive取值为N时,数据库标识符在数据库中的存储保留原来输入的样子,字符串比较时不区分大小写。
初始化是通过指定“--case_insensitive”表示case_sensitive取值为N的情况
指定REDO日志目录,初始化
initdb -U KINGBASEES -W MANAGER --database=TEST --ssousername=S --ssopassword=S --saousername=A -D d:/kingbasees/data --wal-dir=e:/kingbasees/redolog
兼容 Oracle 的 isql 格式如下:
isql username/password@servicename.
isql username/password@host/servicename.
isql username/password@host:port/servicename.
username: 表示用户名。
password: 表示用户密码。
servicename: 表示服务名称。
host: 表示网络地址 IP。
port: 表示端口号。
常用命令
\cd [DIR] 改变当前工作目录
[示例]
NEWTEST=# \! pwd
/opt/Kingbase/ES/V7/
NEWTEST=# \cd src
NEWTEST=# \! pwd
/opt/Kingbase/ES/V7/log
\encoding [ENCODING] 显示或设置客户端编码方式
[示例]
NEWTEST=# \encoding UTF8
NEWTEST=# \encoding
UNICODE
\h [NAME] SQL语法帮助,*为所有帮助
\q 退出isql
\set [NAME [VALUE]] 设置任意内部变量,可以通过在变量前加 ':' 号在 SQL 语句中使用;在无参数时显示所有内部变量
[示例]
system=# \set ENCODING GBK
[示例]
system=> \set foo 'my_table'
system=> SELECT * FROM :foo;
\timing 切换命令计时状态
[示例]
system=# \timing
Timing is on.
system=# select * from t;
D1 | D2
----+----
1 | 2
3 | 4
(3 rows)
Time: 0.563 ms
\unset NAME 重置内部变量
\! [COMMAND] 在shell命令行中执行命令
[示例]
NEWTEST=# \! pwd
/usr/local/BaseSoft/KingbaseES6.1.3/src
2.2. 输入输出命令
\echo [STRING] 将STRING写入标准输出
[示例]
system=# \echo kingbase
kingbase
\i FILE 从文件执行命令
[示例]
command.txt中内容:
select * from t;
select * from tt;
system=# \i command.txt
D1 | D2
----+----
1 | 2
3 | 4
5 | 6
(3 rows)
DATA
----------------------------------
1.79E308
-4.940656458412465E-324
-4.940656458412465E-324
-4.940656458412465E-324
4.940656458412465E-32
\o [FILE] 将所有结果发送至文件或管道
[示例]
system=# \o command.txt
之后的所有输出均输出到command.txt中
\qecho [STRING] 将STRING写入查询输出流(见\o命令)
2.3. 信息查询命令
\d[+] [NAME] 列表显示用户表、索引、序列或视图定义信息,当对象为OFFLINE时不显示具体大小,使用“+”获取详细信息
[示例]
显示表t的定义信息
system=#\d t
Table "PUBLIC.T"
Column | Type | Modifiers
--------+---------+-----------
D1 | INTEGER |
D2 | INTEGER |
Tablespace: "SYSTEM"
显示表t的详细信息
system=# \d+ t
Table "PUBLIC.T"
Column | Type | Modifiers | Description
--------+---------+-----------+-------------
D1 | INTEGER | |
D2 | INTEGER | |
Has OIDs: no
Tablespace: "SYSTEM"
\d{t|i|s|v|S} [PATTERN] 列表显示用户表、索引、序列、视图或系统表信息
[示例]
显示表t信息
system=# \dt t
List of relations
Schema | Name | Type | Owner | Size
--------+------+-------+--------+---------
PUBLIC | T | table | system | 0 bytes
(1 row)
\da [PATTERN] 列表显示聚集函数信息
\db[+] [PATTERN] 列表显示表空间信息,使用“+”获取详细信息
\dc [PATTERN] 列表显示转换信息
\dC 列表显示强制类型转换信息
\dd [PATTERN] 显示对象的注释信息
\df[+] [PATTERN] 列表显示函数信息,使用“+”获取详细信息
\dn [PATTERN] 列表显示模式信息
\do [NAME] 列表显示操作符信息
\dp [PATTERN] 列表显示读取表权限信息
\dT[+] [PATTERN] 列表显示数据信息,使用“+”获取详细信息
\du [PATTERN] 列表显示用户信息
\l[+] 列表显示所有数据库信息,使用“+”获取详细信息
\ll [PATTERN] 列表显示所有锁信息
\llc 列表显示所有锁的数目
\lx 列表显示所有数据库的 XID 的最大值
\lredolog 显示当前日志文件的信息
\lc [PATTERN] 列表显示连接信息
注意: 对于当前用户没有权限查看的连接的信息,Host,Port 和 Waiting 显示为空。
\lac [PATTERN] 列表显示当前活动连接的信息
注意: 对于当前用户没有权限查看的连接的信息,Host,Port 等信息显示为空,Query 显示为 <insufficient privilege>。
\lfc [PATTERN] 列表显示当前空闲连接的信息
注意: 对于当前用户没有权限查看的连接的信息,不显示在该列表中。
\lwc [PATTERN] 列表显示当前处于等待状态的连接的信息
注意: 对于当前用户没有权限查看的连接的信息,不显示在该列表中。
\lmc 显示最大连接数
\lstatdb [PATTERN] 列表显示数据库的统计信息
\lstatidx [PATTERN] 列表显示索引的统计信息]
\lstatseq [PATTERN] 列表显示序列的统计信息
\lstattable [PATTERN] 列表显示表的统计信息
\z [PATTERN] 列表显示读取表权限信息,等同于\dp
2.4. 格式化输出命令
\a 切换排列输出模式
[示例]
system=# \a
Output format is unaligned.
system=# select * from t;
D1|D2
1|2
3|4
5|6
(3 rows)
\f [STRING] 非排列输出模式下,显示或设置字段分隔符
[示例]
system=# \a
Output format is unaligned.
system=# \f *
Field separator is "*".
system=# select * from t;
kingbase
D1*D2
1*2
3*4
5*6
(3 rows)
\H 切换HTML输出模式
\pset NAME [VALUE] 设置表的输出选项 NAME := {format|border|expanded|fieldsep|footer|null|recordsep|tuples_only|title|tableattr|pager})
[示例]
system=# \pset border 2
Border style is 2.
system=# select * from t;
kingbase
+----+----+
| D1 | D2 |
+----+----+
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
+----+----+
(3 rows)
\t 查询结果仅显示数据
[示例]
system=# \t
Showing only tuples.
system=# select * from t;
1 | 2
3 | 4
5 | 6
\T [STRING] 设置HTML<table>标签属性,无参数时置为空
\x 切换expand格式输出
[示例]
system=# \x
Expanded display is on.
system=# select * from t;
D1 | 1
D2 | 2
---+--
D1 | 3
D2 | 4
实例服务管理
命令格式:kingbase --install <实例名> -D<数据目录> [-p<端口号> ] [-U<数据库管理用户> ]
查看实例名进程:
ps -ef|grep instance
启动|停止实例服务
命令格式:kingbase --start|--stop <实例名>
kingbase status kingbasees_instance1
kingbase --stop kingbasees_instance1
kingbase --start kingbasees_instance1