【赵渝强老师】崖山数据库的命令行客户端工具

简介: yasql是崖山数据库(YashanDB)官方SQL客户端,高度兼容Oracle SQL/PLSQL语法,支持登录、执行SQL/脚本、PL块、运维操作等,适用于Linux/Windows,默认端口1688。

b479.png

概念

yasql 是崖山数据库(YashanDB)官方自带的命令行SQL客户端工具,对标 Oracle 的 sqlplus,高度兼容Oracle‑SQL/PLSQL语法,用于登录数据库、执行SQL、PL块、运行脚本、数据库运维操作,支持Linux、Windows客户端部署,默认端口 1688。

特点:

  1. 语法、交互习惯高度模仿 Oracle SQL*Plus;
  2. 支持本地、远程、操作系统认证、连接别名、PDB可插拔数据库登录;
  3. 支持执行单条SQL、执行SQL脚本、PL/SQL匿名块;
  4. 提供 set 系列格式化输出命令、spool输出结果集等能力。


视频讲解如下:


基础语法

yasql [-S] username/password@host:port[/pdb]
yasql / as sysdba          # OS操作系统认证登录
yasql /nolog               # 只启动客户端,不连接数据库
  • -S:静默模式,不输出登录banner信息,必须放在第一个参数。

实操示例

1. 使用管理员用户登录崖山数据库

yasql yasql / as sysdba

登录成功后出现提示符:SQL>

2. 创建用户

# 进入yasql环境后创建scott用户,并授予角色
SQL> create user scott identified by tiger;
SQL> grant connect,to scott;
SQL> grant resource to scott;

3. 切换到scott用户

SQL> conn scott/tiger

4. 创建部门表和员工表

SQL> create table dept
     (deptno int primary key,
     dname varchar(10),
     loc varchar(10)
     );
     
SQL> create table emp 
      (empno int primary key,
      ename varchar(10),
      job varchar(10),
      mgr int,
      hiredate varchar(10),
      sal int,
      comm int,
      deptno int,
      foreign key(deptno) references dept(deptno));

5. 插入部门数据和员工数据

--插入部门表数据
SQL> insert into dept values(10,'ACCOUNTING','NEW YORK');
SQL> insert into dept values(20,'RESEARCH','DALLAS');
SQL> insert into dept values(30,'SALES','CHICAGO');
SQL> insert into dept values(40,'OPERATIONS','BOSTON');

--插入员工表数据
SQL> insert into emp values(7369,'SMITH','CLERK',7902,'1980/12/17',800,null,20);
SQL> insert into emp values(7499,'ALLEN','SALESMAN',7698,'1981/2/20',1600,300,30);
SQL> insert into emp values(7521,'WARD','SALESMAN',7698,'1981/2/22',1250,500,30);
SQL> insert into emp values(7566,'JONES','MANAGER',7839,'1981/4/2',2975,null,20);
SQL> insert into emp values(7654,'MARTIN','SALESMAN',7698,'1981/9/28',1250,1400,30);
SQL> insert into emp values(7698,'BLAKE','MANAGER',7839,'1981/5/1',2850,null,30);
SQL> insert into emp values(7782,'CLARK','MANAGER',7839,'1981/6/9',2450,null,10);
SQL> insert into emp values(7788,'SCOTT','ANALYST',7566,'1987/4/19',3000,null,20);
SQL> insert into emp values(7839,'KING','PRESIDENT',-1,'1981/11/17',5000,null,10);
SQL> insert into emp values(7844,'TURNER','SALESMAN',7698,'1981/9/8',1500,null,30);
SQL> insert into emp values(7876,'ADAMS','CLERK',7788,'1987/5/23',1100,null,20);
SQL> insert into emp values(7900,'JAMES','CLERK',7698,'1981/12/3',950,null,30);
SQL> insert into emp values(7902,'FORD','ANALYST',7566,'1981/12/3',3000,null,20);
SQL> insert into emp values(7934,'MILLER','CLERK',7782,'1982/1/23',1300,null,10);
commit;

6. 执行PL/SQL匿名块(末尾必须写/执行)

SQL> set serveroutput on;
SQL> declare
       --说明部分
     begin
        --程序体
        dbms_output.put_line('Hello World');
     end;
     /
     
# 输出的信息如下:
Hello World
 Succeed.

7. 创建并调用存储过程

-- 创建存储过程
SQL> create or replace procedure sayhelloworld
     as
         --说明部分
     begin
         dbms_output.put_line('Hello World');
     end;
     /
     
-- 调用存储过程(方式1)
SQL> begin
         sayhelloworld();
         sayhelloworld();
     end;
     /
     
# 输出的信息如下:
Hello World
Hello World

PL/SQL Succeed.

-- 调用存储过程(方式2)
SQL> exec sayhelloworld();

8. 查看yasql版本、帮助

yasql -V
yasql -H

9. 退出yasql客户端

SQL> exit;
-- 或者
SQL> quit;

和Oracle SQL*Plus简单对比

image.png


yasql尽量复刻SQL*Plus的使用习惯,降低Oracle迁移到崖山数据库的学习成本。

相关文章
|
机器学习/深度学习 移动开发
解决mqtt连接报Connection lost (32109) - java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]错误问题
最近生产环境在向mqtt客户端发布数据时反复出现一会断开一会连接错误,捕获的异常是java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]。尝试各种方式都未找到问题的原因,最后在检查发送主题topic的时候发现所发送mqtt客户端的topic的结尾包含了换行符,最终才将问题得以解决。
6839 0
解决mqtt连接报Connection lost (32109) - java.lang.IllegalArgumentException: Invalid UTF-8 char: [a]错误问题
|
JavaScript
js中数组reduce的使用原来这么简单
js中数组reduce的使用原来这么简单
BeanUtils的忽略字段工具类
BeanUtils的忽略字段工具类
986 0
|
5月前
|
关系型数据库 数据库 PostgreSQL
阿里云RDS PostgreSQL全方位对接使用指南与SQL语法深度解析
本文系统讲解阿里云RDS PostgreSQL从创建实例、配置白名单、建立数据库与账号到多方式连接的全流程,同时深度剖析PostgreSQL核心SQL语法,涵盖窗口函数、公用表表达式、JSONB数据类型、PL/pgSQL存储过程编程及高级索引优化等关键技术点,并通过实战代码示例帮助开发者快速掌握云端PostgreSQL的全部能力。
|
21天前
|
人工智能 小程序 JavaScript
用 AI 做小程序 UI 自动化测试:从搭环境到生成报告
哈喽,我是 Raina。  之前我们分享过 Web 、APP和桌面端的 UI 自动化测试方案。后来也有不少同学问:小程序端的自动化能不能结合 AI 去实现呢? 答案是可以,而且微信官方已经提供了对应的框架: miniprogram-automator 。 这篇文章就结合一次实际落地过程,讲清楚小程序 UI 自动化怎么跑起来,以及如何借助 Skill 把“探索页面、生成脚本、执行用例、输出报告”这条链路串起来,尽量少写重复代码,让方案更容易在团队里推广。 为什么选 miniprogram-automator 小程序自动化方案有不少,但综合适配性和稳定性来看,官方的 miniprogra
168 0
|
21天前
|
机器学习/深度学习 人工智能 测试技术
Qwen3.8抢先体验!大家要心理准备了,不出意外,最新版即将发布并开源了?
Qwen3.8系列发布,开创大模型“精调度”新范式:Max版2.4T参数(仅95B激活)、Flash-Next降本90%、27B版可跑RTX显卡。四大维度解析架构革新、性能突破(PaperBench 93分)、开源普惠与落地实践,助力开发者即刻上手。
609 0
|
21天前
|
自然语言处理 数据管理 关系型数据库
2026 云栖回顾 | Agent Context 精选
阿里云在2026云栖大会发布Agent Context——企业级智能体数据底座,解决Agent“记不住、接不上、复用难”痛点。通过Memory/Knowledge/Skill三类资产沉淀与Context Growth Loop机制,实现上下文跨会话、跨Agent复用,提升知识任务准确率50%,支撑万级智能体协同。
|
Java Spring
解决Spring工具类BeanUtils copyProperties方法复制null的问题
解决Spring工具类BeanUtils copyProperties方法复制null的问题
1784 0
|
2月前
|
缓存 自然语言处理 API
百炼上下文缓存实测:隐式与显式对跑 11 次调用,bl text chat 透传 cache_control 的命中判定与回本边界
《从零开始搭建知识库·EP07》实测对比隐式与显式缓存:隐式自动命中公共前缀,免配置、成本低(1.5元/M),适合千变万化的客服问答;显式需标记`cache_control`,创建贵(15元/M)、命中极省(1元/M),仅同一请求重复执行才回本。二者完全隔离、互斥,选型取决于负载形态。(239字)
百炼上下文缓存实测:隐式与显式对跑 11 次调用,bl text chat 透传 cache_control 的命中判定与回本边界
|
8月前
|
SQL 运维 监控
MySQL高可用生产落地全解:主从同步、MGR集群、读写分离从原理到实战
本文系统讲解MySQL高可用三大核心:主从复制(含GTID、增强半同步实战)、MGR原生集群(单主模式部署、自动选主、脑裂防护)及读写分离(应用层/ProxySQL方案)。涵盖RTO/RPO指标、故障根因分析、全场景最佳实践与容灾预案,助你构建稳定、高性能、可扩展的生产级高可用体系。
988 3