INFORMIX 4GL 知識彙總 txt

2021-06-03 02:49:48 字數 4829 閱讀 1270

informix-4gl常用的定義變數 的基本資料型別;

char         decimal   smallint   integer

smallfloat   float     date       money     serial

decimal      小數型別  decimal(6,2)  2位小數 共6位

decimal(6)   浮動小數點的資料型別 有效位為6位。絕對值在 10(-128)到10(126)之間

decimal      預設為 decimal(16)  

smallint     短整型  -32767 到 +32767   2 個位元組  

integer      整數型別  4個位元組

smallfloat   單精度浮點型   相當於 c語言中的float 資料型別,佔4個位元組

float        雙精度浮點型 8個位元組

date         預設月日 年

money(m,n)   m 有效數字位數 n 小數點後數字位數。 預設n 隱含n=2.預設m,隱含m=16   

::序列型 serial 取正整數  佔4個位元組最大值 2147483647  自動賦值,不能修改.依次遞增 從1開始.  serial(100) 100 開始.  

::記錄型資料結構

define rd01 record

x,y,z

integer

end record

define rd02 record

name

char(8),

age

smallint,

wage

smallfloat

end record

-------------------------

display "***語言關係資料庫系統" at 10,10

message "***語言關係資料庫系統"

error "***語言關係資料庫系統"

程式的除錯執行

$ fglpc prg1       $ fglpc prg1.4gl

fglpc編譯原始檔(.4gl) |- 成功 -> p-**檔案(.4go)    ->  fglgo 執行

|- 失敗 -> 錯誤資訊檔案(.err)

------------------------

fglpc md1

fglpc md2

fglpc md3

cat md1.4go md2.4go md3.4go > md.4gi

fglgo md

----------------------------

########資料庫管理#########################

資料庫訪問許可權(3種): connect rescource dba

database dbn   

grant connect to user1

grant resource to user1,user2 

grant connect to public   #所有使用者

撤銷許可權:

revoke resource from user1

revoke dba from user1,user2

表訪問許可權(7種):  select insert update delete index alter all

grant select on tbn to public

grant select(a1,a2) on tbn to user1,user2

grant alter on tbn to user1

with grant option      

授權同時可傳遞

資料庫結構修改:

drop table xx

rename table tbn to ntbn

重新命名表

close database dbn  

drop database dbn  

# 刪除資料庫之前先關閉    

let x="dbn"     drop database x

刪除資料庫  

rename column tbn.a1 to b1

修改列名 

alter table tbn add(a1 char(4),a2 integer)

增加列名 

alter table tbn add(b1 smallint before a3)

增加乙個新列b1,位於tbn中原有列a3之前  

alter table tbn drop(a1,a2)

alter table tbn modify(a1 char(8),a2 integer)

修改列的資料型別

create view vn4(c1,c2,c3)

as select tb1.a1,tb1.a2,tb2.a1 from tb1,tb2

where tb1.a2=tb2.a2

create view vnx(b1,b2,b3,b4,b5,b6)

as select c1,c3,sum(c2),max(c2),min(c2),count(*)

from vn4

where c2<2000

drop view vnx

檢視:不能含order by 子句;  不能含union操作符;  不能含程式變數

資料庫日誌檔案

create database dbn with log in "usr/swc/logf"

start database dbn withlog in "usr/swc/logf"

建立歷史檔案

begin work

事務開始

commit work

rollback work

檢查全程變數sqlca 獲知該語句執行的成敗

預定義的常量

true=1

false=0

notfound=100

exit program  # 立即終止程式的執行

return

# 終止函式的執行

c語言程式的編譯

cfglgo fgiusr.c cfunf.c -o newfglgo       生成可執行檔案newfglgo

rdsql

1資料定義 2資料操縱 3許可權控制 4游標操作 5資料封鎖控制 6動態語句管理

1create database 

database

close database

drop database

create table

alter table

rename table

drop table

create view

drop view

create synonym  [create synonym x for mytable   建立同義名x.對x的訪問就是對mytable 的訪問]

drop synonym

rename column

create index

alter index

drop index

update statistics [for table t]  --更新系統表 表t中當前所含有的資料行數記錄到系統表 systables 上 

create index idx22 on t(a1)

alter index idx22 to cluster       物理上按照a1的公升序儲存表t中的資料行. 

alter index idx22 to not cluster       

==  create cluster index idx22 on t(a1)

2.insert select update delete

3.grant revoke

4.對select語句選出的多個資料行進行處理

declare -- foreach -- open -- fetch -- close

向表中插入資料行的過程'

declare -- open -- flush -- close   

declare mc22 cursor for insert into t(a1,a2) values (x,y)

全程變數 status 和 sqlca.sqlerrd[3]  可判斷操作的成敗.

3種情況:

1)status = 0     sqlca.sqlerrd[3] = 0           --rdsql成功地把資料行存放到記憶體緩衝區,但沒有插入到磁碟上的表中

2)status = 0     sqlca.sqlerrd[3] = 已插入的行數      --rdsql成功把記憶體緩衝區中所有資料行組成的資料塊插入到磁碟上的表中

3)status < 0     sqlca.sqlerrd[3] = 已成功插入的行數  --rdsql在欲把記憶體緩衝區中的資料塊寫到磁碟上時,出現異常

5.lock table   unlock table   set lock mode

6. 管理動態可變語句的語句:   prepare  execute  declare

--臨時表 temp

select .,. from t1 where [條件] into temp tmp_t1

--union all  並操作不把兩張表中重複的行從新的結果表中刪去.

--null 空值-空值不是零,也不是空格,表示未知和不確定.

隱藏列 rowid sqlca.sqlerrd[6]=最後乙個資料行的rowid值

select rowid,* from t1   

---------------end--------------------------

INFORMIX字符集相關知識

字符集的基本知識 如果從頭說起,字符集最早的編碼方案來自於ascii,這也是最常見的編碼方式。該方案起源於20世紀60年代初期,最初是美國國會圖書館制定用來作為美國圖書館界書目交換的共同標準,最後完善成為美國的國家標準ascii american standard code for informat...

4gl的內建函式和操作符簡介

4gl的內建函式和操作符簡介 2004 11 06 22 51 25 分類 informix 4gl中有一些有內建函式和操作符,便於在程式設計時使用,下面做一些簡單的介紹 field touched field 如果使用者改變了螢幕中 field 域,它就返回true。get fldbuf fiel...

知識拓展4

1 gdb命令 1 查詢程式源 1 search forward 用來從當前行向前查詢第乙個匹配的字串 2 reverse search 用來從當前行向前查詢第乙個匹配的字串 3 list 行號 顯示指定行前後的 4 list 函式名 顯示函式 5 list 從當前行往後顯示 6 list 從當前行...