#快速上手
本章节主要介绍内容如下:
- 如何连接崖山数据库;
- 数据库对象管理操作和数据导入导出;
- 高级包调试,要求YDC版本为23.5.5.2、YashanDB版本为23.4.6.100及以上;
Note:
YDC仅支持数据库连接为YashanDB yashan模式,YashanDB mysql模式可使用通用的数据库开发工具。
# 操作准备
参考崖山数据库产品文档完成数据库部署 (opens new window),并获取数据库连接用户密码。
联系数据库管理员获取数据库连接用户密码,可以是sys用户,也可以参考数据库初始化 (opens new window)创建数据库体验用户和密码。
本次操作示例以管理员用户sys开始操作。
- 用户名:sys
- 密码:安装时指定
- 端口号:1688
在YDC页面中,单击
进入【设置】页面,根据需要修改【语言】选项。

# 建立数据库连接
在左侧导航栏进入【数据库连接】菜单, 单击加号新建数据库连接连接,进入数据库连接配置页面。
- 连接名称:为数据库连接定义一个方便识别的名称。
- IP地址:请与数据库管理员确定数据库服务器的连接IP地址,可以为IPv4地址、IPv6地址或域名。
- 端口:数据库服务端监听端口,如安装过程中未进行调整,默认为1688。
- 用户名/密码:请与数据库管理员确认连接数据库的用户名和密码,可以使用默认sys用户连接,也可以使用具有CREATE SESSION,RESOURCE,SELECT_CATALOG_ROLE,ALTER SESSION权限的用户进行连接。
可以配置多个数据库连接,满足同时操作多个数据库的需求。
配置完成后,单击【测试连接】可以测试连接是否正确,测试通过后单击【确定】,即可保存数据库连接。

# 创建数据库用户
在【数据库连接】下右键【用户】导航树,点击【新建用户】进入创建用户页面,配置【用户名称】为
sales并输入密码。
单击
新建一个SQL编辑器,在编辑器中输入以下授权语句,单击
执行,单击
提交。
GRANT dba TO sales;
打开【数据库连接 > 模式】下拉列表,可以看到已经创建同名模式SALES。
新建数据库连接,以sales用户重新连接数据库,后续所有的数据库操作默认在SALES模式中提交。
# 数据库基本使用
本小节以创建以下示例表为例介绍如何通过YDC创建表,插入数据及数据导入导出操作。
```sql
--区域信息表
CREATE TABLE area
(area_no CHAR(2) NOT NULL PRIMARY KEY,
area_name VARCHAR2(60),
DHQ VARCHAR2(20) DEFAULT 'ShenZhen' NOT NULL);
```
在【模式】下右键【表】导航树,点击【新建表】进入创建表页面,配置【名称】和【表空间】。
在【列】配置区右键【新建列】配置表的列信息,包含【名称】、【数据类型】和【非空】信息。

配置完成后单击【保存】,在【SQL执行】弹窗中完成确认操作。
选择【数据库连接 > 模式 > 表】,单击已创建的表,在【约束】页面中右键单击【新建约束】,按需要配置主键、唯一键或CHECK表达式约束。

配置完成后单击【保存】,在【SQL执行】弹窗中完成确认操作。
在SQL编辑器页面输入INSERT命令,选中SQL语句单击
为表格插入数据,单击
提交事务。
INSERT INTO area VALUES ('01','EastChina','Shanghai'); INSERT INTO area VALUES ('02','WestChina','Chengdu'); INSERT INTO area VALUES ('03','SouthChina','Guangzhou'); INSERT INTO area VALUES ('04','NorthChina','Beijing'); INSERT INTO area VALUES ('05','CentralChina','Wuhan');在SQL编辑器中直接输入建表DDL语句直接创建表,选中SQL语句单击
为表格插入数据,单击
提交事务。
-- 机构信息表 CREATE TABLE branches (branch_no CHAR(4) PRIMARY KEY, branch_name VARCHAR2(200) NOT NULL, area_no CHAR(2) CONSTRAINT c_branches_1 REFERENCES area(area_no) ON DELETE SET NULL, address VARCHAR2(200)); INSERT INTO branches VALUES ('0001','Shenzhen','',''); INSERT INTO branches VALUES ('0101','Shanghai','01','Jingan District, Shanghai'); INSERT INTO branches VALUES ('0102','Nanjing','01','City of Nanjing'); INSERT INTO branches VALUES ('0103','Fuzhou','01',''); INSERT INTO branches VALUES ('0104','Xiamen','01','Xiamen'); INSERT INTO branches VALUES ('0401','Beijing','04',''); INSERT INTO branches VALUES ('0402','Tianjin','04',''); INSERT INTO branches VALUES ('0403','Dalian','04','Dalian City'); INSERT INTO branches VALUES ('0404','Shenyang','04',''); INSERT INTO branches VALUES ('0201','Chengdu','02',''); INSERT INTO branches VALUES ('0501','Wuhan','',''); INSERT INTO branches VALUES ('0502','Changsha','05',''); -- 创建机构信息表的复制表 CREATE TABLE branches1(branch_no PRIMARY KEY, branch_name NOT NULL, area_no CONSTRAINT const003 REFERENCES area(area_no) ON DELETE SET NULL, address) AS SELECT branch_no,branch_name,area_no,address FROM branches WHERE 1=2;您也可以参考YashanDB样例表 (opens new window)获取更多的SQL示例。
选择【数据库连接 > 模式 > 表】,右键BRANCHES,选择【导出数据】,在【导出结果集/表】弹窗中选择CSV文件,配置导出数据的文件路径和名称,点击确定完成导出。

将步骤6中导出的
BRANCHESCSV数据文件导入到BRANCHES1中。- 在SQL选择【数据库连接 > 模式】,右键单击【表】,选择【导入数据 > 导入现有表】,选择目标表
BRANCHES1后单击【下一步】; - 进入【表数据导入】页面,选择步骤6中导出的CSV数据文件,配置【列分割符】为英文逗号
,,【包围符】保留默认值,单击【下一步】; - 进入【文件导入】页面,配置【表数据映射】参数,将CSV数据文件中的字段与
BRANCHES1表格中的字段配置映射关系,单击【确定】完成导入;

完成导入后将弹出如下导入状态提示,表示第一行(offset 1)数据由于BRANCH_NO列的值超出列定义的长度范围所以导入失败,原因是默认导出的CSV数据文件中包含了表头信息,表头信息无法导入到表中。
infile D:\data\RESULT_1.csv offset 1 is rejected by table BRANCHES1 because BRANCH_NO size exceeding limit 4.- 在SQL选择【数据库连接 > 模式】,右键单击【表】,选择【导入数据 > 导入现有表】,选择目标表
# 高级包调试
选择【数据库连接 > 模式 > 高级包】,右键后选择【新建高级包】,在弹窗中输入高级包名称
calc_max,依次在【包头】和【包体】中输入程序代码,配置完成后单击【保存】,在【SQL执行】弹窗中完成确认操作。CREATE OR REPLACE PACKAGE calc_max AS FUNCTION calc_max1(val1 NUMBER, val2 NUMBER) RETURN NUMBER; FUNCTION calc_max2(val1 NUMBER, val2 NUMBER, val3 NUMBER) RETURN NUMBER; END; CREATE OR REPLACE PACKAGE BODY calc_max AS FUNCTION calc_max1(val1 NUMBER, val2 NUMBER) RETURN NUMBER IS BEGIN IF val1 > val2 THEN DBMS_OUTPUT.PUT_LINE(val1); RETURN val1; ELSE DBMS_OUTPUT.PUT_LINE(val2); RETURN val2; END IF; END; FUNCTION calc_max2(val1 NUMBER, val2 NUMBER, val3 NUMBER) RETURN NUMBER IS BEGIN RETURN calc_max1(calc_max1(val1, val2), val3); END; END;
对
CALC_MAX高级包的CALC_MAX2函数进行调试。选择【数据库连接 > 模式 > 高级包】,单击
CALC_MAX进入详情页,在【包体】页面中单击选择【编译并开始调试】,在【开始调试】弹窗中配置需要调试函数
CALC_MAX2;在【参数配置】中依次配置变量val1=4,val2=5和val3=2,单击
开始进入调试页面;
函数
CALC_MAX2为两次调用CALC_MAX1,第1次先比较val1和val2的最大值并返回,第2次将返回结果与val3进行比较并返回,连续单击可以看到程序代码在
CALC_MAX1函数体中执行了两次。
调试结束后自动退出调试页面,在【调试输出】中可以看到打印如下结果。
已连接到数据库 192.xx.xx.10,开始调试。 [打印值]: 5 [打印值]: 5 调试结束,已断开连接。

