Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Remote » 教程:创建 SQL Remote 系统

 

第 1 课:创建统一数据库

 ♦ 创建统一数据库和本教程使用的目录
  1. 创建目录 c:\tutorialc:\tutorial\hqc:\tutorial\field

  2. c:\tutorial 目录运行以下命令,创建统一数据库 (hq):

    dbinit hq.db
  3. 从 Interactive SQL 连接到统一数据库 (hq)。

    dbisql -c "UID=DBA;PWD=sql;SERVER=server_hq;DBF=c:\tutorial\hq.db"
    
  4. 执行以下语句,在统一数据库 (hq) 中创建两个表:



    CREATE TABLE SalesReps (
     rep_key CHAR(12) NOT NULL,
     name CHAR(40) NOT NULL,
     PRIMARY KEY ( rep_key )
    );
    
    CREATE TABLE Customers (
     cust_key CHAR(12) NOT NULL,
     name CHAR(40) NOT NULL,
     rep_key CHAR(12) NOT NULL,
     FOREIGN KEY ( rep_key )
      REFERENCES SalesReps (rep_key ),
     PRIMARY KEY (cust_key)
    );

    下图显示了本教程使用的统一数据库 (hq) 模式:

    Customer 表具有一个指向 SalesRep 表的外键。
    • 每个销售代表都由 SalesReps 表中的一行来表示。

    • 每位客户都由 Customers 表中的一行来表示。

    • 为每位客户指派一个销售代表,此指派作为从 Customers 表到 SalesReps 表的外键内建在数据库中。Customers 表与 SalesReps 表之间是多对一的关系。

    表名 说明
    SalesRep

    在 SalesReps 表中,公司的每个销售代表都占用一行。SalesReps 表包含以下几列:

    • rep_key   每个销售代表的标识符。这是主键。

    • name   每个销售代表的姓名。

    Customers

    在 Customers 表中,与公司有业务往来的每位客户都占用一行。Customers 表包含以下几列:

    • cust_key   每个客户的标识符。这是主键。

    • name   每个客户的名称。

    • rep_key   某销售关系中销售代表的标识符。这是一个指向 SalesReps 表的外键。

  5. 执行以下语句,将示例数据添加到 SalesReps 和 Customers 表中:



    INSERT INTO SalesReps (rep_key, name)
    VALUES ('rep1', 'Field User');
    INSERT INTO SalesReps (rep_key, name)
    VALUES ('rep2', 'Another User');
    COMMIT;
    
    INSERT INTO Customers (cust_key, name, rep_key)
    VALUES ('cust1', 'Ocean Sports', 'rep1' );
    INSERT INTO Customers (cust_key, name, rep_key)
    VALUES ('cust2', 'Sports Plus', 'rep2' );
    COMMIT;
  6. 执行以下语句,确认这两个表已创建:

    SELECT * FROM SalesReps;

    上述查询将返回 SalesReps 表的以下数据:

    rep_key name
    rep1 Field User
    rep2 Another User
    SELECT * FROM Customers;

    上述查询将返回 Customers 表的以下数据:

    cust_key name rep_key
    cust1 Ocean Sports rep1
    cust2 Sports Plus rep2