模式
用户A创建一个test表,表的模式就是A,表为A.test
创建模式: db2 “create schema A ” (显示)
db2 “create table A.test (col1 char(10))” (隐式)
SYSIBM 模式下存储的对象是系统数据字典。
SYSCAT 模式下的对象是系统视图,可查看各种数据库对象的信息。
SYSIBMADM V9引入的系统管理视图模式。
SYSSTAT 统计视图模式,下包含9个视图,用来为DB2优化器提供统计信息。
表
常用的数据类型:
数字型:整型(smallint、integer、bigint),小数(decfloat、decimal、numeric),浮点型(real double)
字符型:字节型{单字节(char、varchar、CLOB),双字节(graphic,DBCLOB)},二进制(BLOB)
时间:date,time,timestamp
XML:XML
Describe table 查看表的结构信息
List tables
List table for schema <schema_name>
List table for all
表约束:
1.非空约束
2.唯一性约束
Db2 “alter table t1 add unique(c1)”
3.主外键约束
Db2 “alter table t1 add primary key(c1)”
Db2 “alter table t1 primary key (c1) add constraint fk_1 foreign key(a1) references t2 on delete cascade”
4.检查约束
Db2 “alter table stock add constraint cctype check (type in (‘A’,’B’,’C’))”
表压缩:alter table test1 compress yes
压缩完之后进行重组: db2 reorg table db2inst1.employee
索引
大对象
字符大对象:CLOB,储存字典,书籍,简历等
二进制大对象:BLOB,储存声音,视频等
每个表可有多个LOB,每个LOB字段最大长度为2GB(DBCLOB存取双字节内容,每列最大支持1G)
对于LOB字段,在页中存储的不是实际的数据,而是LOB描述符,指向LOB数据存储的位置,可以通过db2dart /dd 查看。
关于LOB的一些最佳实践:
1.长度小于32KB的字符字段,建议使用varchar(32k),而不用CLOB;只有当长度超过32K时才考虑CLOB。
2.长度小于32KB的二进制数据,建议用VARCHAR(32k) for bit data 类型;只有当长度超过32K时才考虑BLOB。
3.如果LOB中的数据经常变化,建议将变化的数据抽取独立的字段,而保持LOB字段的变更尽量小。
4.为提升性能和运维便利,建议将LOB数据存放在独立表空间。由于LOB不通过bufferpool缓存数据,为提高性能,应考虑使用文件系统缓存。
存储过程
"未完待续。。。"