#快速上手

本章节主要介绍内容如下:

  • 如何连接崖山数据库;
  • 数据库对象管理操作和数据导入导出;
  • 高级包调试,要求YDC版本为23.5.5.2、YashanDB版本为23.4.6.100及以上;

Note:

YDC仅支持数据库连接为YashanDB yashan模式,YashanDB mysql模式可使用通用的数据库开发工具。

# 操作准备

  1. 参考崖山数据库产品文档完成数据库部署 (opens new window),并获取数据库连接用户密码。

  2. 联系数据库管理员获取数据库连接用户密码,可以是sys用户,也可以参考数据库初始化 (opens new window)创建数据库体验用户和密码。

    本次操作示例以管理员用户sys开始操作。

    • 用户名:sys
    • 密码:安装时指定
    • 端口号:1688
  3. 在YDC页面中,单击进入【设置】页面,根据需要修改【语言】选项。

# 建立数据库连接

  1. 在左侧导航栏进入【数据库连接】菜单, 单击加号新建数据库连接连接,进入数据库连接配置页面。

    • 连接名称:为数据库连接定义一个方便识别的名称。
    • IP地址:请与数据库管理员确定数据库服务器的连接IP地址,可以为IPv4地址、IPv6地址或域名。
    • 端口:数据库服务端监听端口,如安装过程中未进行调整,默认为1688。
    • 用户名/密码:请与数据库管理员确认连接数据库的用户名和密码,可以使用默认sys用户连接,也可以使用具有CREATE SESSIONRESOURCESELECT_CATALOG_ROLEALTER SESSION权限的用户进行连接。

    可以配置多个数据库连接,满足同时操作多个数据库的需求。

  2. 配置完成后,单击【测试连接】可以测试连接是否正确,测试通过后单击【确定】,即可保存数据库连接。

# 创建数据库用户

  1. 在【数据库连接】下右键【用户】导航树,点击【新建用户】进入创建用户页面,配置【用户名称】为sales并输入密码。

  2. 单击新建一个SQL编辑器,在编辑器中输入以下授权语句,单击执行,单击提交。

    GRANT dba TO sales;
    

    打开【数据库连接 > 模式】下拉列表,可以看到已经创建同名模式SALES。

  3. 新建数据库连接,以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);
```
  1. 在【模式】下右键【表】导航树,点击【新建表】进入创建表页面,配置【名称】和【表空间】。

  2. 在【列】配置区右键【新建列】配置表的列信息,包含【名称】、【数据类型】和【非空】信息。

    配置完成后单击【保存】,在【SQL执行】弹窗中完成确认操作。

  3. 选择【数据库连接 > 模式 > 表】,单击已创建的表,在【约束】页面中右键单击【新建约束】,按需要配置主键、唯一键或CHECK表达式约束。

    配置完成后单击【保存】,在【SQL执行】弹窗中完成确认操作。

  4. 在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');
    
  5. 在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示例。

  6. 选择【数据库连接 > 模式 > 表】,右键BRANCHES,选择【导出数据】,在【导出结果集/表】弹窗中选择CSV文件,配置导出数据的文件路径和名称,点击确定完成导出。

  7. 将步骤6中导出的BRANCHESCSV数据文件导入到BRANCHES1中。

    1. 在SQL选择【数据库连接 > 模式】,右键单击【表】,选择【导入数据 > 导入现有表】,选择目标表BRANCHES1后单击【下一步】;
    2. 进入【表数据导入】页面,选择步骤6中导出的CSV数据文件,配置【列分割符】为英文逗号,,【包围符】保留默认值,单击【下一步】;
    3. 进入【文件导入】页面,配置【表数据映射】参数,将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.
    

# 高级包调试

  1. 选择【数据库连接 > 模式 > 高级包】,右键后选择【新建高级包】,在弹窗中输入高级包名称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;
    

  2. CALC_MAX高级包的CALC_MAX2函数进行调试。

    1. 选择【数据库连接 > 模式 > 高级包】,单击CALC_MAX进入详情页,在【包体】页面中单击选择【编译并开始调试】,在【开始调试】弹窗中配置需要调试函数CALC_MAX2

    2. 在【参数配置】中依次配置变量val1=4,val2=5和val3=2,单击开始进入调试页面;

    3. 函数CALC_MAX2为两次调用CALC_MAX1,第1次先比较val1和val2的最大值并返回,第2次将返回结果与val3进行比较并返回,连续单击可以看到程序代码在CALC_MAX1函数体中执行了两次。

    4. 调试结束后自动退出调试页面,在【调试输出】中可以看到打印如下结果。

      已连接到数据库 192.xx.xx.10,开始调试。
      [打印值]: 5
      [打印值]: 5
      调试结束,已断开连接。
      
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流