1. 程式人生 > >Linux環境下達夢資料庫的使用

Linux環境下達夢資料庫的使用

第一步:建立資料庫

進入到資料庫程式目錄,我這裡是/opt/tmp/desktop/client,如下圖所示,主要用到的是Manager,DBCA,disql這三個程式,雙擊666執行,首先執行DBCA這個程式
1

出現如下所示介面,我們可以看到這貨中文名叫達夢資料庫配置助手[Dameng DataBase Configure Assistant?],通過這個圖形化的介面來建立一個數據庫,按照預設“建立資料庫例項”,點選“開始”。
2
警告,多圖預警!有圖才更放心!
指定資料庫模板,我們不幹啥大事,預設“一般用途”,點選“下一步”
3

資料庫目錄,以後放資料的地方,這裡預設,點選“下一步”
4

資料庫標識,第一次建立時,預設的庫名,例項名,埠號如下圖所示,繼續點選“下一步”
5
由於開始第一次時我己經按照這個預設配置建立了一個數據庫例項,所以得換個名字,如下圖所示:
6

資料庫檔案按預設的來,點選“下一步”
7

初始化引數依舊預設,點選“下一步”
8

口令管理,為了方便,我選擇第二個“所有使用者使用同意口令”,然後輸入口令,點選“下一步”
9

建立例項庫,這裡我沒勾選,等下自己加模式和表,直接點選“下一步”
10

建立摘要,點選“完成”就是
11
12

這個就有點坑了,我看不到執行指令碼的內容啊…沒管它
13

點選“完成”,然後“確定”,好了,一個數據庫的建立就完成了
14

第二步:使用DM Service Viwer檢視資料庫服務

DM Service Viwer位於DBCA的上一級目錄,有點像Windows下的“服務”程式,在這裡可以看到所有的資料庫服務,前面4個是達夢自建的用於管理監視整個資料庫管理系統,不用理會,其中DMServiceDMSERVER是我剛開始就建立的資料庫,DMServiceTMPSERVER是剛剛建立的資料庫,我們還可以看到,一開始TMPSERVER是“正在執行“狀態,通過右鍵點選選擇關閉資料庫服務。
view

第三步:使用Manager操作資料庫

雙擊Manager程式,開啟程式介面如下圖所示,點選彈出”登陸”介面
manager
這裡埠號和口令就根據剛才建立資料庫時填的資訊來補充,我的就是埠號5237,而你們開始預設的是5236,然後點選確定,沒有問題的話我們就連上自己剛才建立的資料庫啦!

步驟1:新增模式和表
首先建立個檔案homework1.sql,內容如下所示,建立模式SPJPro和4個表S,P,J,SPJ

    create schema SPJPro authorization SYSDBA;
    create table SPJPro.S
    (
    SNO    CHAR(5) PRIMARY KEY,
    SNAME  CHAR(10),
    STATUS TINYINT,
    CITY   CHAR(10)
    );
    create table SPJPro.P
    (
    PNO    CHAR(5) PRIMARY KEY,
    PNAME  CHAR(10),
    COLOR  CHAR(4),
    WEIGHT TINYINT
    );
    create table SPJPro.J
    (
    JNO   CHAR(5) PRIMARY KEY,
    JNAME CHAR(10),
    CITY  CHAR(10)
    );
    create table SPJPro.SPJ
    (
    SNO CHAR(5),
    PNO CHAR(5),
    JNO CHAR(5),
    QTY SMALLINT,
    FOREIGN KEY (SNO) REFERENCES SPJPro.S(SNO),
    FOREIGN KEY (PNO) REFERENCES SPJPro.P(PNO),
    FOREIGN KEY (JNO) REFERENCES SPJPro.J(JNO)
    );

在Manager介面左上角點選“檔案”->“開啟”->選擇“homework1.sql”,把檔案載入到Manager中,然後點選綠色三角箭頭進行執行,結果如下圖所示:
run1
步驟2:新增資料
再建立homework2.sql檔案,向表中插入資料如下所示

insert into SPJPro.S(SNO,SNAME,STATUS,CITY) values('S1','精益',20,'天津');
insert into SPJPro.S(SNO,SNAME,STATUS,CITY) values('S2','盛錫',10,'北京');
insert into SPJPro.S(SNO,SNAME,STATUS,CITY) values('S3','東方紅',30,'北京');
insert into SPJPro.S(SNO,SNAME,STATUS,CITY) values('S4','豐泰盛',20,'天津');
insert into SPJPro.S(SNO,SNAME,STATUS,CITY) values('S5','為民',30,'上海');

insert into SPJPro.P(PNO,PNAME,COLOR,WEIGHT) values('P1','螺母','紅',12);
insert into SPJPro.P(PNO,PNAME,COLOR,WEIGHT) values('P2','螺栓','綠',17);
insert into SPJPro.P(PNO,PNAME,COLOR,WEIGHT) values('P3','螺絲刀','藍',14);
insert into SPJPro.P(PNO,PNAME,COLOR,WEIGHT) values('P4','螺絲刀','紅',14);
insert into SPJPro.P(PNO,PNAME,COLOR,WEIGHT) values('P5','凸輪','藍',40);
insert into SPJPro.P(PNO,PNAME,COLOR,WEIGHT) values('P6','齒輪','紅',30);

insert into SPJPro.J(JNO,JNAME,CITY) values('J1','三建','北京');
insert into SPJPro.J(JNO,JNAME,CITY) values('J2','一汽','長春');
insert into SPJPro.J(JNO,JNAME,CITY) values('J3','彈簧廠','天津');
insert into SPJPro.J(JNO,JNAME,CITY) values('J4','造船廠','天津');
insert into SPJPro.J(JNO,JNAME,CITY) values('J5','機車廠','唐山');
insert into SPJPro.J(JNO,JNAME,CITY) values('J6','無線電廠','常州');
insert into SPJPro.J(JNO,JNAME,CITY) values('J7','半導體廠','南京');

insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S1','P1','J1',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S1','P1','J3',100);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S1','P1','J4',700);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S1','P2','J2',100);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S2','P3','J1',400);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S2','P3','J2',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S2','P3','J4',500);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S2','P3','J5',400);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S2','P5','J1',400);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S2','P5','J2',100);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S3','P1','J1',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S3','P3','J1',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S4','P5','J1',100);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S4','P6','J3',300);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S4','P6','J4',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S5','P2','J4',100);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S5','P3','J1',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S5','P6','J2',200);
insert into SPJPro.SPJ(SNO,PNO,JNO,QTY) values('S5','P6','J4',500);

同樣地,我們再載入homework2.sql檔案並執行,結果如下所示
run2

步驟3:查詢資料
新建查詢檔案,新增語句select * from SPJPro.S,結果如下圖所示。奇怪的是,明明資料都插入到資料庫中了,為什麼查詢結果為空?
run3

原因:在Manager程式中的資料操作並沒有實時地更新到資料庫

解決辦法:進行事務提交,如下圖所示
commit

再執行查詢語句,結果就出來了
run3

第四步:使用disql操作資料庫

disql和Manager的功能差不多,只不過一個是圖形介面,一個事字元介面,在程式目錄manual中有關於disql的詳細用法,可以自行檢視。
首先是資料庫連線,使用login命令
login

伺服器名直接按回車,表示預設為“localhost”
使用者名稱為“SYSDBA”
密碼,埠號為之前建立資料庫時設定的
其他都是回車表示預設
然後可以在這個埠中執行sql語句了,更多詳細的用法見資料庫程式目錄下manual/special/DM7_Disql使用手冊.pdf的pdf檔案