informix sql 日常應用積累

#創建數據庫
CREATE DATABASE database_name ;
#修改數據庫名
rename DATABASE database_name01 To database_name02;
#刪除數據庫
drop database database_name;
#修復數據庫日誌模式
ontape -s -U database_name01
#================================================================
ALTER TABLE 修改表結構語法
ALTER TABLE table-name
{ADD (newcol_name newcol_type [BEFORE oldcol_name], …)
| DROP (oldcol_name, …)
| MODIFY (oldcol_name newcol_type [NOT NULL], … )}, …
table-name:表名稱。
newcol_name:新字段名稱
newcol_type:新字段類型
oldcol_name:老字段名稱
可以使用單個或多個ADD子句、DROP子句、MODIFY子句,但某個子句失敗,操作即中止;
原字段是NULL,不允許MODIFY爲NOT NULL,除非所有NULL字段中均非空,反之可以;
ALTER使用者是表的擁有者或擁有DBA權限,或被授權;
事務中處理過程中不要使用此語句。

#表操作===============================================================
#創建表:
Create table mytable01
(
Ino integer unique,
Serno char(50),
Name char(50),
BType char(1),
Blnc decimal(16,2),
claimamt float,
InputDate date
);
#修改表名
alter table mytable01 rename to mytable02;
#刪除表
drop table 表名

#字段操作=============================================================
#末尾增加字段
alter table mytable01
add(
ChkOpt char(6),
ChkDate date
);
#中間插入字段:
alter table mytable01 add (InputOpt date before InputDate);
#修改字段名稱:
RENAME COLUMN table.oldcolumn, TO newcolumn
ALTER TABLE mytable01 RENAME COLUMN ChkOpt TO po_ChkOpt;
ALTER TABLE mytable01 ALTER COLUMN po_ChkOpt char(250) not null;
#修改字段類型:
alter table mytable01 modify (BType char(2));
alter table mytable01 modify (InputOpt char(6));
#刪除字段:
alter table mytable01 drop (BType,InputOpt);
#增加表的唯一約束:
ALTER TABLE mytable01 ADD CONSTRAINT UNIQUE (Serno, Name);
#要聲明約束的名稱,請更改上述語句:
ALTER TABLE customer
ADD CONSTRAINT UNIQUE (lname, fname) CONSTRAINT u_cust
#當您未指定新約束的名稱時,數據庫服務器會提供一個名稱。您可以在 sysconstraints 系統目錄表中找到約束的名稱。
#刪除唯一約束:
ALTER TABLE manufact DROP CONSTRAINT con_name;
#如果在創建約束時沒有指定名稱,則數據庫服務器會生成名稱.
SELECT constrname FROM sysconstraints
WHERE tabid = (SELECT tabid FROM systables
WHERE tabname = 'items');
#更改表的鎖定粒度
ALTER TABLE manufact LOCK MODE SIZE (PAGE|ROW);

#索引=================================================================
#創建索引
create unique index u_mytable01_001 on mytable01(Serno);
create index i_mytable01_001 on mytable01(Name);
create index i_mytable01_002 on mytable01(Name,BType);
#刪除索引
drop index u_mytable01_001;
drop index i_mytable01_002;
#CLUSTER:使表的物理存放順序按索引排列。複合索引最多包含8個字段
create CLUSTER index i_mytable01_003 on mytable01(BType);
#去掉或加上CLUSTER屬性
alter index i_mytable01_003 to not CLUSTER;
alter index i_mytable01_001 to CLUSTER;
#視圖==================================
#創建視圖
create view v_user01 as select * from mytable01 where Ino >= 1;
#刪除視圖
DROP VIEW v_user01
#創建刪除同義名錶===========================================================
CREATE SYNONYM synonym FOR table-name;
DROP SYNONYM synonym;
#synonym:同義名
#table-name:表名稱
#事務=================================
BEGIN WORK
COMMIT WORK
ROLLBACK WORK
#鏡像庫Trigger 的操作=================================================
#在Trigger 庫中創建鏡像用表,注意字段類型與原始庫一致
Create table ti_mytable01
(
Ino integer unique,
Serno char(50),
Name char(50),
BType char(1),
Blnc decimal(16,2),
claimamt float,
InputDate date,
mir_alter_time datetime year to second,
mir_alter_serial serial unique,
mir_alter_type char(1)
) extent size 16 next size 16 lock mode row;
#創建原數據庫中的Trigger 關聯
#創建(INS)插入Trigger數據庫
create trigger ti_mytable01_01
insert on mytable01
referencing new as new
for each row(
insert into Trigger_clannt : ti_mytable01
values(
new.Ino,
new.Serno,
new.Name,
new.BType,
new.Blnc,
new.claimamt,
new.InputDate,
CURRENT,0,'I')
);
#創建(UPD)更新Trigger數據庫
create trigger ti_mytable01_02
update on mytable01
referencing old as old new as new
for each row(
insert into Trigger_clannt : ti_mytable01
values(
old.Ino,
old.Serno,
old.Name,
old.BType,
old.Blnc,
old.claimamt,
old.InputDate,
CURRENT, 0, 'D'),
insert into Trigger_clannt : ti_mytable01
values(
new.Ino,
new.Serno,
new.Name,
new.BType,
new.Blnc,
new.claimamt,
new.InputDate,
CURRENT, 0, 'U')
);
#創建(DEL)更新Trigger數據庫
create trigger ti_mytable01_03
delete on mytable01
referencing old as old
for each row(
insert into Trigger_clannt : ti_mytable01
values(
old.Ino,
old.Serno,
old.Name,
old.BType,
old.Blnc,
old.claimamt,
old.InputDate,
CURRENT,0,'D')
);
drop trigger ti_mytable01_01;
drop trigger ti_mytable01_02;
drop trigger ti_mytable01_03;
drop table mytable01;
drop table ti_mytable01;
#鎖模式修改
alter table tablename lock mode {row |page};
{ TABLE "yw".ls row size = 2459 number of columns = 93 index size = 354 }
額~~也沒認真看~~你的表大於2KB了。。。用行鎖跟頁鎖使用的鎖的的差距應該不大。。
如果是IDS10的話,鎖就不需要過多的考慮了。。9.40的話。這個表最大是20萬的鎖(10萬數據)
不建議建大於1頁的表
dbaccess sysmaster<<!
unload to database_name.txt select name from sysdatabases;
!
#查詢===================================================================
SELECT
SELECT select_list FROM tab_name|view_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_list
INTO TEMP table_name
查詢語句。
select_list:選擇表或*
tab_name:表名稱
view_name:視圖名稱。
condition:查詢條件,可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、
AND、OR、=、!=或<>;、>;、 >;= 、<=、<、ALL、ANY、SOME
column_name:分組字段名稱
condition:羣聚條件
column_list:排序字段列表,缺省ASC,可指定DSC;排序時,NULL值小於非零值。
table_name:臨時表名稱

附(常用函數)
(1)集合函數:
count(*)、
sum(數據項/表達式)、avg(數據項/表達式)、max(數據項/表達式)、min(數據項/表達式)
count(distinct 數據項/表達式)、sum(distinct數據項/表達式)、avg(distinct數據項/表達式)
(2)代數函數和三角函數
HEX(數據項/表達式)、ROUND(數據項/表達式)、TRUNC(數據項/表達式)、
TAN(數據項/表達式)、ABS(數據項/表達式)、MOD(被除數,除數)
(3)統計函數
標準差,stdev()、方差,variance()、範圍,rang()
(4)時間函數
DAY(日期/時間表達式):返回數字型
MONTH(日期/時間表達式):返回整數
WEEKDAY(日期/時間表達式):0��6,0星期天,1星期一;返回整數
YEAR(日期/時間表達式)、返回整數
DATE(非日期表達式):返回日期型
EXTEND(日期/時間表達式,[第一個至最後一個]):返回指定的整數
MDY(月,日,年):返回日期型
CURRENT:返回日期型
(5)時間函數
ROUND(),四捨五入。如:ROUND(10.95,position)position進行四捨五入的前一位置
TRUNC(),截取。如:TRUNC(10.95,0)position截取的位置

unload to tablename01.unl select * from tablename01;
load form tablename01.unl insert into tablename01;

netstat -lnp 檢查端口占用情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章