- 論壇徽章:
- 0
|
第一章 Informix環(huán)境變量的設(shè)定
一.環(huán)境范例:
變 量 名 稱
變 量 說(shuō) 明
DBDELIMITER
指定由dbload在卸出數(shù)據(jù)文件中使用的字段定界符
DBDATE
指定在DB中想要使用的日期格式(Y4MD/,MDY4-)
DBEDIT
指定在程序員環(huán)境中想要使用的文本編輯器(vi)
DBLANG
指定在程序中所使用消息文件的存放目錄
DBMONEY
指定在DB中想要使用的貨幣格式
DBPATH
指定DB與其它相應(yīng)文件的搜索路徑
DBPRINT
指定計(jì)算機(jī)的打印程序
DBSRC
指定程序調(diào)試階段文件的搜索路徑
DBTEMP
指定臨時(shí)文件的存放目錄
INFORMIXDIR
指定Informix文件的存放目錄(/usr/informix)
INFORMIXSERVER
指定Informixr的數(shù)據(jù)庫(kù)服務(wù)器名稱
FORMDIR
指定Informix屏幕格式文件的存放路徑
DBNLS
指定Informix傳輸漢字(DBNLS=2)
LANG
指定Informix可顯示漢字(LANG=english.8859)
ONCONFIG
指定Informix-Online的配置文件(onconfig.life)
PATH
指定Informix可執(zhí)行文件的搜索路徑
TERM
指定Informix的終端類型(TERM=vt100)
TERMCAP
指定Informixr的終端類型文件
二.環(huán)境范例:
.profile (環(huán)境變量的等號(hào)前后不得為空格)
stty -istrip -isig (防止用戶非法中斷)
INFORMIXDIR=/usr/informix
INFORMIXSERVER=ld420501_tcp
ONCONFIG=onconfig.life
PATH=$PATH INFORMIXDIR/bin HOME/bin HOME/form HOME/prg
DBPATH=/u/cbps/form:/u/cbps/bin
FORMDIR=/u/cbps/form
DBDATE=Y4MD/
LANG=english_us.8859
DBLANG=english_us.8859
DBNLS=2
TERMCAP=/usr/informix/etc/termcap
TERM=vt100
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH DBPATH FORMDIR DBDATE LANG
export DBLANG DBNLS TERMCAP TERM
環(huán)境變量的設(shè)置文件中還可加入其它Shell語(yǔ)句
第二章 Informix產(chǎn)品線及DB應(yīng)用開(kāi)發(fā)工具簡(jiǎn)介
一.Informix(英孚美)產(chǎn)品線簡(jiǎn)介(三大類):
1.數(shù)據(jù)庫(kù)服務(wù)器(Database Server):
①.ODS (Informix-Online Dynemic Server)
聯(lián)機(jī)動(dòng)態(tài)服務(wù)器,多線索,多性能的DB server(數(shù)據(jù)庫(kù)服務(wù)器)
②.XPS (Informix-Online Extended Parallel Server)
將DSA擴(kuò)展至松耦合或非共享的計(jì)算體系結(jié)構(gòu),動(dòng)態(tài)可申縮性體系結(jié)構(gòu)(Dynemic Scerable Architerta),適用于大型數(shù)據(jù)庫(kù)的應(yīng)用,并行SQL操作。
③.IUS (Informix-Universbl Server)
處理豐富而復(fù)雜的數(shù)據(jù)而設(shè)計(jì),并用Datablade模塊技術(shù),用來(lái)存儲(chǔ)和檢索豐富的多媒體Data及其他復(fù)雜的插入或?qū)ο髷U(kuò)展模塊。
2.應(yīng)用開(kāi)發(fā)工具:
①.Informix-NERERA 適用于關(guān)鍵性業(yè)務(wù)的C/S(客戶機(jī)/服務(wù)器)模式,開(kāi)放性,圖形化面向?qū)ο蟮拈_(kāi)發(fā)環(huán)境。 └→ Client/Server Model
②.Informix-4GL 適用于各種類型業(yè)務(wù)的啞終端操作方式,適用性廣,開(kāi)發(fā)方便,可維護(hù)性好,功能強(qiáng)大,無(wú)圖形功能,用戶界面不夠友好。
③.Informix-SQL 符合國(guó)際標(biāo)準(zhǔn)的SQL語(yǔ)言,具有通用性,DDL與DML合為一體,高度的非過(guò)程化,分為嵌入式和交互式兩種形式,具有數(shù)據(jù)控制,訪問(wèn)功能。
④.Informix-ESQL/C 把SQL嵌入C語(yǔ)言提供實(shí)現(xiàn)SQL語(yǔ)言的目標(biāo)函數(shù)庫(kù),利用宿主程序完成一個(gè)應(yīng)用的過(guò)程。
3.連接工具:
c4gl <*.4gl *.c *.ec *.o>; -c,o,s <OBJ>;
└→ 4gl 源程序文件的編譯,連接生成目標(biāo)文件或可執(zhí)行文件
esql <*.ec *.c *.o>; -c,o <OBJ>;
└→ esql源程序文件的編譯,連接生成目標(biāo)文件或可執(zhí)行文件
cc <*.c *.o>; -c,o <OBJ>;
└→ c語(yǔ)言源程序文件的編譯,連接生成目標(biāo)文件或可執(zhí)行文件
二.SQL(Structured Query Language)簡(jiǎn)介:
1.SQL(結(jié)構(gòu)化查詢語(yǔ)言)的主要特點(diǎn) RDB Server 關(guān)系型數(shù)據(jù)庫(kù)服務(wù)器)
①.一體化 DL與DML合為一體.
②.高度非過(guò)程化:what to do ,not how to do用戶使用起來(lái)簡(jiǎn)單方便.
③.具有SQL交互式與SQL嵌入式兩種形式.
2.SQL語(yǔ)言的分類:
①.DDL (數(shù)據(jù)定義語(yǔ)言):用來(lái)創(chuàng)建,更改,刪除數(shù)據(jù)庫(kù)基表視圖.
②.DML (數(shù)據(jù)操縱語(yǔ)言):對(duì)DB中的數(shù)據(jù)進(jìn)行查詢或增刪改操作.
③.DCL (數(shù)據(jù)控制訪問(wèn)語(yǔ)言):對(duì)存取權(quán)根的控制,授權(quán)和回收,游標(biāo)語(yǔ)句,動(dòng)態(tài)管理語(yǔ)句,數(shù)據(jù)完整性語(yǔ)句,查詢優(yōu)化語(yǔ)句,事務(wù)處理語(yǔ)句.
三.Stores7,Dbaccess,Isql,I4gl,Upscol等DBMS實(shí)用工具:
1.$dbaccessdemo7 [DBname] [with log] <Retuen>;
└→創(chuàng)建范例DB └→數(shù)據(jù)庫(kù)名 └→缺省不帶系統(tǒng)日志
2.$dbaccess <Retuen>;
└→捆綁在Informix-Online DB Server上的一套DBMS實(shí)例程序,可以做到:
①.利用該工具可以做到創(chuàng)建和刪除數(shù)據(jù)庫(kù).
②.查詢數(shù)據(jù)庫(kù)中各種信息,編輯使用SQL語(yǔ)句.
③.創(chuàng)建,更改,刪除數(shù)據(jù)庫(kù)基表.
④.增加,刪除,修改數(shù)據(jù)庫(kù)中原始記錄.
⑤.從OS(操作系統(tǒng))文件中裝載數(shù)據(jù)到數(shù)據(jù)庫(kù)中.
⑥.將數(shù)據(jù)庫(kù)中的數(shù)據(jù)卸出到一個(gè)OS(操作系統(tǒng))文件中.
⑦.創(chuàng)建回收權(quán)限.
⑧.利用該工具可以創(chuàng)建,刪除,修改Procedure(過(guò)程)。
3.$isql <Retuen>;
└→捆綁在Informix-Online DB Server上的一套DBMS實(shí)例程序,可以做到:
①.利用該工具可以做到創(chuàng)建和刪除數(shù)據(jù)庫(kù).
②.查詢數(shù)據(jù)庫(kù)中各種信息,編輯使用SQL語(yǔ)句.
③.創(chuàng)建,更改,刪除數(shù)據(jù)庫(kù)基表.
④.增加,刪除,修改數(shù)據(jù)庫(kù)中原始記錄.
⑤.從OS(操作系統(tǒng))文件中裝載數(shù)據(jù)到數(shù)據(jù)庫(kù)中.
⑥.將數(shù)據(jù)庫(kù)中的數(shù)據(jù)卸出到一個(gè)OS(操作系統(tǒng))文件中.
⑦.創(chuàng)建回收權(quán)限.
⑧.利用該工具可以創(chuàng)建,刪除,修改,編譯屏幕表格文件(*.per),并運(yùn)行.
⑨.利用該工具可以創(chuàng)建,刪除,修改,編譯報(bào)表文件(*.ace),并運(yùn)行.
4.$i4ql <Retuen>;
└→捆綁在Informix-Online DB Server上的一套Informix-4GL實(shí)例程序,可以做到:
①.利用該工具可以做到創(chuàng)建和刪除數(shù)據(jù)庫(kù).
②.查詢數(shù)據(jù)庫(kù)中各種信息,編輯使用SQL語(yǔ)句.
③.創(chuàng)建,更改,刪除數(shù)據(jù)庫(kù)基表.
④.增加,刪除,修改數(shù)據(jù)庫(kù)中原始記錄.
⑤.從OS(操作系統(tǒng))文件中裝載數(shù)據(jù)到數(shù)據(jù)庫(kù)中.
⑥.將數(shù)據(jù)庫(kù)中的數(shù)據(jù)卸出到一個(gè)OS(操作系統(tǒng))文件中.
⑦.授權(quán)和回收權(quán)限.
⑧.利用該工具可以創(chuàng)建,修改,編譯屏幕表格文件(*.per).
⑨.利用該工具可以創(chuàng)建,刪除,修改,編譯,運(yùn)行Informix-4GL源程序文件(*.4gl).
5.$upscol <Retuen>;
└→捆綁在Informix-Online DB Server上的一套屏幕屬性實(shí)例程序,可以做到:
①.利用該工具可以調(diào)整屏幕字段的數(shù)據(jù)屬性和顯示屬性.
②.調(diào)整屏幕字段的前背顏色,下劃線,反顯等.
③.調(diào)整屏幕字段的數(shù)據(jù)格式,消息,限制輸入等.
6.$form4gl <文件名>; <Return>;
①.編譯已存在的屏幕表格文件:
form4gl <*?*.per>;
└→被編譯的屏幕表格文件名
②.為指定數(shù)據(jù)庫(kù)中的表格生成默認(rèn)屏幕格式文件:
form4gl -d <filename>; <DB Server>; <Table>;
└→生成文件 └→數(shù)據(jù)庫(kù)名 └→表名
7.$c4gl <*.4gl>; <Return>;
使用方法: c4gl [-Vaeqcz] [-phase 12345] [-ansi] [-anyerr]
[-globcurs | -localcurs] [-nokeep | -keep]
[-static | -shared] [-nolinenos | -linenos] [-otherargs]
[source.4gl ...] [othersrc.c ...] [otheresql.ec ...]
[otherobj.o ...] [yourlib.a ...] [-o outfile]
開(kāi)關(guān)參數(shù) 使用說(shuō)明
-V Display version of 4gl only
-a Do array bounds checking
-e Preprocess only, no compilation or linking
-q Quiet mode for i4glc1 [phase 1]
-c Preprocess & compile only, no linking
-z Allow variable number of arguments to functions
-phase 12345 Process only the phase that indicated
-ansi Check SQL statements for ANSI compliance
-anyerr Set status variable after expressions
-globcurs Make cursor definitions global to program
-localcurs Make cursor definitions local to module (default)
-nokeep Delete intermediate .4ec, .ec, and .c files (default)
-keep Keep intermediate .4ec, .ec, and .c files
-linenos Produce #line numbering in .c file (default)
-nolinenos Suppress #line numbering in .c file
-static Use static libraries
-shared Use dynamic linking and shared libraries
-otherargs Other arguments are passed to the C compiler
-o Next argument is name of executable
8.$esql <*.ec>; <Return>;
使用方法: esql [-e] [-static] [-shared] [-esqlcargs] [-otherargs]
[-o outfile] [-libs] esqlfile.ec
[othersrc.c...] [otherobj.o...] [-lyourlib...]
開(kāi)關(guān)參數(shù) 使用說(shuō)明
-e Preprocess only, no compilation or linking
-static Use informix static libraries.
-shared Use informix shared libraries ( default is shared).
-esqlcargs esqlc arguments (-g, -G, -nln, -Ipathname, -nowarn, -V, -ansi,-xopen, -local, -log, -EDname, -EUname, -icheck)
-otherargs Other arguments are passed to cc
-o Next argument is program name
-libs Display the list of libraries used by esql at link time.
9.dbexport,dbimport,dbschema,ontape數(shù)據(jù)庫(kù)后備工具:
dbexport以文本形式卸出數(shù)據(jù)庫(kù)文件(Table、View、Procedure、Trigger等)
dbexport <Dbname>; 或 dbexport <Dbname>; –t /dev/rStp0 –s –b
dbimport以文本形式上載數(shù)據(jù)庫(kù)文件(Table、View、Procedure、Trigger等)
dbimport <Dbname>; -d workdbs –l buffered
dbschema 以文本形式卸出數(shù)據(jù)庫(kù)的建表、建過(guò)程的SQL文件
dbschema –d <Dbname>; -t <Tabname|all>; -ss <Filename>; 卸出指定表或所有表
dbschema –d <Dbname>; -f < rocname|all>; -ss <Filename>; 卸出指定過(guò)程或所有過(guò)程
ontape 數(shù)據(jù)庫(kù)系統(tǒng)備份工具
ontape –s –B <Dbname>; 為指定數(shù)據(jù)庫(kù)恢復(fù)Buffered日志
第三章 Informix-SQL Version 6.05.UD1 應(yīng)用
一.有關(guān)數(shù)據(jù)庫(kù),基表,索引的創(chuàng)建與刪除
1.語(yǔ)法約定:
<......>; 表示必選項(xiàng)
{......} 表示必選其中項(xiàng)
[......] 表示可選項(xiàng)
(......) 表示語(yǔ)句的一部分
| 表示多項(xiàng)選一
大寫(xiě)[A-Z] 表示Informix的保留字
小寫(xiě)[a-z] 表示Informix的庫(kù)名,表名,字段名,變量名
2.數(shù)據(jù)庫(kù)(Database):
①.創(chuàng)建一個(gè)DB:
CREATE DATABASE <DB name>; [WITH BUFFERED LOG]
└─┴→語(yǔ)法關(guān)鍵字 └→數(shù)據(jù)庫(kù)名 └→是否帶數(shù)據(jù)庫(kù)日志
創(chuàng)建一個(gè)DB同時(shí)也打開(kāi)了這個(gè)DB
②.數(shù)據(jù)庫(kù)命名規(guī)則:
㈠.數(shù)據(jù)庫(kù)名不超過(guò)10個(gè)字符.
㈡.必須以字母打頭,其余部分可以是字母,數(shù)字,下劃線的任意組合.
㈢.在同一數(shù)DB Server(據(jù)庫(kù)服務(wù)器)中數(shù)據(jù)庫(kù)名應(yīng)具有唯一性.
㈣.數(shù)據(jù)庫(kù)名不得是Informix的保留字
3.數(shù)據(jù)庫(kù)基表(Table):
①.創(chuàng)建一個(gè)DB Table:
DATABASE <DB name>; →數(shù)據(jù)庫(kù)名
CREATE TABLE <TB name>; →數(shù)據(jù)庫(kù)表名
字段名稱 字段類型 字段說(shuō)明
(column0 serial(1) , #有序整數(shù)型,其初始值為1
column1 integer , #從-2147483647到+2147483647之間的整數(shù)
column2 smallint , #從-32767到+32767之間的整數(shù)
column3 float default 0.00 not null,#雙精度浮點(diǎn)數(shù)
column4 smallfloat , #單精度浮點(diǎn)數(shù)
column5 decimal(m,n), #具有可定義精度的數(shù)字(左邊m-n位,右邊n位)
column6 money(m,n) , #與decimal型相同(貨幣型)
column7 date , #日期型
column8 datetime year to second,#日期時(shí)間型(1999-09-07 09:52:52)
column9 char(n) , #字符型 n表示字符長(zhǎng)度
column10 varchar(n) , #字符型(最后一個(gè)字段無(wú)逗號(hào))
check (字段名 in(值1,值2,值3) constraint 名稱,
primary key(字段1,字段2,字段n) constraint 名稱 ##主鍵唯一,非空
);
數(shù) 據(jù) 類 型
字 段 長(zhǎng) 度
CHAR
語(yǔ)句中定義的長(zhǎng)度
VARCHAR
語(yǔ)句中定義的長(zhǎng)度
SMALLINT
2個(gè)字節(jié)
INTEGER
4個(gè)字節(jié)
SMALLFLOAT
4個(gè)字節(jié)
FLOAT
8個(gè)字節(jié)
SERIAL
4個(gè)字節(jié)
DATE
4個(gè)字節(jié)
DATETIME
8個(gè)字節(jié)(Year to Second),其它為4
DECIMAL(m,n)
依賴精度(m/2+1四舍五入到下一整數(shù))
MONEY(m,n)
依賴精度(m/2+1四舍五入到下一整數(shù))
②.基表命名規(guī)則:
㈠.表名最多不超過(guò)18個(gè)字符,除此以外與數(shù)據(jù)庫(kù)命名規(guī)則雷同.
㈡.必須以字母打頭,其余部分可以是字母,數(shù)字,下劃線的任意組合.
㈢.在同一數(shù)據(jù)庫(kù)中表名應(yīng)具有唯一性.
㈣.表名不得是Informix的保留字.
㈤.表中字段名不得超過(guò)18個(gè)字符,定義like table.* 必須保證前8個(gè)字符的唯一性。
㈥.表中字段名不得重復(fù)(不區(qū)分大小寫(xiě))。
4.索引(Index):
①.索引分類:
㈠.單字段索引:提高查詢和分類操作效率。
㈡.多字段索引:加快幾個(gè)字段分類處理的速度。
索引僅是加快數(shù)據(jù)分類處理的速度。
②.索引規(guī)則:
㈠.直到表中有上百條記錄時(shí)才加索引.
㈡.經(jīng)常用于檢索和排序操作的字段.
㈢.用于連接表和使用頻率高的字段。
㈣.不要對(duì)含有大量重復(fù)值的字段加索引,索引字段中相同的值不得出現(xiàn)多于65536次
㈤.不得對(duì)多于8個(gè)字段的組加索引。
㈥.不得對(duì)長(zhǎng)度超過(guò)120字節(jié)的一個(gè)字段或一組字段加索引。
㈦.索引命名規(guī)則與表名命名規(guī)則相似。
③.創(chuàng)建索引:
CREATE [UNIQUE|DISTINCT] INDEX <IDX name>; →索引名
└→唯一索引 ON <TB name>; →表名
(column1 [DESC],column2,..,columnn)
└→降序索引
5.視圖(View):
①.視圖定義:視圖是數(shù)據(jù)庫(kù)上動(dòng)態(tài)的窗口而不是靜態(tài)的狀況,并且是以數(shù)據(jù)庫(kù)表的形式出現(xiàn)在數(shù)據(jù)庫(kù)中,授權(quán)與增、刪、改操作與基表的操作一致。
②.視圖命名規(guī)則:
㈠.表名最多不超過(guò)18個(gè)字符,除此以外與數(shù)據(jù)庫(kù)基表的命名規(guī)則雷同.
㈡.必須以字母打頭,其余部分可以是字母,數(shù)字,下劃線的任意組合.
㈢.在同一數(shù)據(jù)庫(kù)中視圖名應(yīng)具有唯一性.
㈣.視圖名不得是Informix的保留字.
㈤.視圖中字段名不得超過(guò)18個(gè)字符,必須保證前8個(gè)字符的唯一性。
㈥.視圖中字段名不得重復(fù)(不區(qū)分大小寫(xiě)),應(yīng)具有唯一性。
③.視圖任務(wù):
㈠.在數(shù)據(jù)庫(kù)上為不同的用戶提供不同的數(shù)據(jù)窗口,一個(gè)單獨(dú)的視圖可以包含來(lái)自不同的表的字段(字段不得同名)。
㈡.限制某些敏感數(shù)據(jù)的存取,只允許用戶查看聚合信息。
㈢.允許用戶象修改、插入和刪除數(shù)據(jù)庫(kù)中如同在視圖中出現(xiàn)那樣被組織起來(lái)的數(shù)據(jù)
④.視圖與基表的區(qū)別:
㈠.不能利用視圖取代格式說(shuō)明文件中的表。
㈡.不能在視圖上建立索引。
㈢.某些條件下不能通過(guò)視圖更新或刪除看到的數(shù)據(jù)。
㈣.不能通過(guò)ROWID存取表。
⑤.創(chuàng)建與刪除視圖:
CREATE VIEW <View Name>;[(字段1,...,字段n)]
└→視圖名稱
AS SELECT <標(biāo)準(zhǔn)Select 語(yǔ)句>; →不得使用UNION操作符
[WITH CHECK OPTION] →輸入與修改是否滿足SELECT語(yǔ)句條件
6.刪除數(shù)據(jù)庫(kù)、表、索引、視圖:
①. 刪除數(shù)據(jù)庫(kù):drop <DB name>;
②. 刪除表 :drop table <TB name>;
③. 刪除索引 :drop index <IDX name>;
④. 刪除視圖 :drop view <VEW name>;
刪除數(shù)據(jù)庫(kù)前必須關(guān)閉此數(shù)據(jù)庫(kù),刪除數(shù)據(jù)庫(kù)同時(shí)也刪除了該數(shù)據(jù)庫(kù)的所有表、索引、視圖。 |
|