#基本功能使用指导

# 登录连接

登录方式可以为:

  • 方式一:通过输入用户名 、密码、数据库主机名和监听端口等信息登录并连接数据库,格式为"yasql <username>/<password>@<host>:<port>"。

  • 方式二:通过 "/nolog" 启动yasql,仅打开登录窗口,但不连接数据库,之后可使用connect 或conn来连接数据库。

  • 方式三:通过在${YASDB_HOME}/client/yasc_service.ini中定义的连接别名登录并连接数据库,格式为"yasql <username>/<password>@alias"。

  • 方式四:重登录,即登录后还可以使用其它用户重新登录。

  • 方式五:通过操作系统认证方式登录,格式为"yasql / as sysdba"或"yasql <username>/<password> as sysdba"。系统认证方式登录需配置后才可使用,配置操作请参考数据库管理手册操作系统身份认证配置

  • 方式六:静默登录,使用该模式登录并连接数据库不返回命令行提示、命令回显信息、登录提示信息和版本信息,格式为"yasql -S <username>/<password>@<host>:<port>"。

    Note

    使用静默模式登录需保证-S为首个参数,该参数不区分大小写。

连接方式可以为:

  • 方式一:有URL的IPV4连接,如"yasql sales/sales@127.0.0.1:1688"。
  • 方式二:有URL的IPV6连接,如"yasql sales/sales@[fe80::a89b:8fdb:2c28:35ce%ens192]:1688"。
  • 方式三:无URL的连接,如"yasql sales/sales",表示连接到本地YASDB_DATA环境变量对应的数据库实例。

Note

  • 无URL的连接,表示的是用户登录到了数据库服务器,然后执行本地连接数据库实例,为高权限操作,一般只有数据库管理员可使用此种方式。
  • 使用URL的IPV6连接时,系统网卡需要支持IPV6的连接,目前支持ipv6环回地址、链路本地地址、唯一本地地址、未指定地址、全球单播地址和ipv4映射的ipv6地址。
  • 使用URL的IPV6连接时,应为“[IP]:端口”的格式,其中中括号是必须的,链路本地ipv6地址还需使用百分号标识网络接口名,如“%ens192”。
  • 用户名/密码包含特殊符号,需要双引号包裹,并对双引号进行转义或外加单引号进行包裹。如:yasql \"user@name\"/\"pwd@name\"@127.0.0.1:1688 或 yasql '"user@name"/"user@name"'@127.0.0.1:1688

示例

$ yasql sales/sales@127.0.0.1:1688                                      --通过ipv4地址连接数据库
YashanDB SQL Enterprise Edition Release 23.1 x86_64

Connected to:
YashanDB Server Enterprise Edition Release 23.1 x86_64 - X86 64bit Linux
SQL>
$ yasql sales/sales@[fe80::a89b:8fdb:2c28:35ce%ens192]:1688             --通过ipv6链路本地地址连接数据库
$ yasql sales/sales@[::1]:1688                                          --通过ipv6环回地址连接数据库
$ yasql sales/sales@[fc00:7::126]:1688                                  --通过ipv6唯一本地地址连接数据库
$ yasql sales/sales@[::]:1688                                           --通过ipv6未指定地址连接数据库
$ yasql sales/sales@[2001:250:4000:4000:f80f:6d4c:4310:35ce]:1688       --通过ipv6全球单播地址连接数据库
$ yasql sales/sales@[::ffff:192.168.7.126]:1688                         --通过ipv4映射的ipv6地址连接数据库
$ yasql /nolog
YashanDB SQL Enterprise Edition Release 23.1 x86_64
SQL> conn sales/sales@127.0.0.1:1688
YashanDB SQL Enterprise Edition Release 23.1 x86_64

Connected to:
YashanDB Server Enterprise Edition Release 23.1 x86_64 - X86 64bit Linux
conn sales1/sales1             --通过用户密码切换至另一个用户
conn sales1/sales1@127.0.0.1:1688             --通过用户密码主机及端口切换至另一个用户
$ cat ${YASDB_HOME}/client/yasc_service.ini
local = 127.0.0.1:1688
$ yasql sales/sales@local
Connected to:
YashanDB Server Enterprise Edition Release 23.1 x86_64 - X86 64bit Linux
SQL>
$ yasql sales/sales@127.0.0.1:1688
YashanDB SQL Enterprise Edition Release 23.1 x86_64

Connected to:
YashanDB Server Enterprise Edition Release 23.1 x86_64 - X86 64bit Linux

--配置免密登录后,可按如下方式连接
$ yasql / as sysdba

--静默登录
$ yasql -S sales/sales@127.0.0.1:1688

# 执行SQL语句

示例

CREATE TABLE customer(cno INT, cname VARCHAR(50));
 
 
INSERT INTO customer VALUES(1, 'customer1');
 
 
SELECT * FROM customer;
 
         CNO CNAME                                                
------------ -----------------------------------------------------
           1 customer1                                           
 

# 执行PLSQL语句

执行PLSQL语句需要在过程体后加"/"。

示例

SET serveroutput ON
  
DECLARE
i INT;
BEGIN
i := 0;
IF i < 5 THEN
i := i + 1;
DBMS_OUTPUT.PUT_LINE ('This is: '||i);
END IF;
END;
  /
 
This is: 1

# 通过@方式执行SQL文件

可通过"@<sqlfilename.sql>"命令来执行本地SQL文件。

  • 当SQL文件位于yasql命令同目录时,不用输入路径。
  • 否则,需指定路径。

示例

--s.sql在yasql同目录下
@s.sql
 
           1
------------
           1
 
 
 
           2
------------
           2
 
 
 
--绝对路径
@/home/yasdb/s.sql
 
           1
------------
           1
 
 
 
           2
------------
           2
 
 
--相对路径
@../s.sql
 
           1
------------
           1
 
 
 
           2
------------
           2
 

# 通过参数执行SQL

此操作在OS命令行执行。

  • 通过参数"-f [-e]<filename>" 执行一个SQL文件。其中,“-e”显示执行的语句。

示例

--默认为当前路径
$ yasql sales/sales -f s.sql
SQL> SELECT 1 FROM dual;
 
           1
------------
           1
 
 
SELECT 2 FROM dual;
 
           2
------------
           2
 
  • 通过参数-c "SQL"运行单条语句后退出。

示例

$ yasql sales/sales -c "select 1 from dual";
           1
------------
           1

# 通过 "!" 执行外部的shell 命令

示例

--在yasql中执行外部命令date 
!date
Tue Aug  3 14:11:39 CST 2021

# 退出和断开连接

  • 通过exit退出yasql,直接在SQL命令行输入exit即可。

示例

exit
  • 使用disconnect命令或者disc命令断开与数据库的连接,断开连接后将无法执行SQL语句,可通过conn命令重新登录。

示例

disc