db2基础知识二

上传人:san****019 文档编号:70811929 上传时间:2019-01-18 格式:PPT 页数:56 大小:2.15MB
返回 下载 相关 举报
db2基础知识二_第1页
第1页 / 共56页
db2基础知识二_第2页
第2页 / 共56页
db2基础知识二_第3页
第3页 / 共56页
db2基础知识二_第4页
第4页 / 共56页
db2基础知识二_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《db2基础知识二》由会员分享,可在线阅读,更多相关《db2基础知识二(56页珍藏版)》请在金锄头文库上搜索。

1、,DB2基础知识(二),杭州中心 数据业务室 席晓勇 2011年7月20日,一、DB2 SQL使用,二、DB2的数据类型,三、DB2的DDL,内容提要,四、DB2的DML,五、DB2的函数,六、总结,学习目标,理解DB2的数据类型 掌握DB2的DDL和DML的原理与编写 DB2中常用函数的使用,理解OLAP函数,SQL概述 数据控制语言(DCL) - 提供对数据库对象的访问控制 数据定义语言(DDL) - 创建、修改或删除数据库对象 数据操作语言(DML) - 选择、插入、更新或删除数据,DB2 SQL使用,1.1 SQL概述 SQLStructured Query Language SQL的

2、功能:数据定义、操纵和控制。 SQL的特点 综合统一 高度非过程化 面向集合的操作方式 两种使用方式 语言简捷,易学易用 SQL语言支持关系数据库三级模式结构,DB2 SQL使用,1.2 数据控制语言(DCL) DCL是SQL的一个子集,提供对数据库对象的访问控制。 GRANT 权限被显式授予单个用户或组,包括数据库,表空间,表,视图,索引,包,模式 GRANT privilege ON object-type object-name TO USER | GROUP | PUBLIC authorization-name WITH GRANT OPTION REVOKE 用户或组显式地撤消权限

3、和特权 REVOKE privilege ON object-type object-name FROM USER | GROUP | PUBLIC authorization-name,DB2 SQL使用,1.3 数据定义语言(DDL) DDL是SQL的一个子集,创建、修改、删除数据库对象。 CREATE 创建数据库对象,包括: 缓冲池(Buffer Pool)、事件控制程序(Event monitor)、函数(Function)、索引(Index)、模式(Schema)、存储过程(Stored Procedure)、表(Table)、视图(View)、触发器(Trigger)、表空间(Ta

4、ble Space) CREATE TABLE BDM_FAT.SAMPLE ( CLT_NBR CHAR(10) NOT NULL, CLT_NAM VARCHAR(25), CLT_AGE SMALLINT),一、DB2 SQL使用,ALTER 更改数据库对象现有的一些特征,包括: 缓冲池(Buffer Pool) 、表(Table)、视图(View)、表空间(Table Space) 索引不可更改 ALTER TABLE BDM_FAT.SAMPLE ADD TTL_COD CHAR,一、DB2 SQL使用,DROP 删除create或declare语句创建的对象包括: 缓冲池(Buff

5、er Pool)、事件控制程序(Event monitor)、函数(Function)、索引(Index)、模式(Schema)、存储过程(Stored Procedure)、表(Table)、视图(View)、触发器(Trigger)、表空间(Table Space) DROP TABLE BDM_FAT.SAMPLE,一、DB2 SQL使用,1.4 数据操作语言(DML) DML是SQL的一个子集,选择、插入、更新或删除数据 SELECT SELECT * FROM tab1 SELECT * FROM tab1 FETCH FIRST 10 ROWS ONLY SELECT DISTIN

6、CT a, b FROM tab1 SELECT a, b FROM tab1 WHERE b 20000 SELECT a FROM tab1 WHERE a LIKE S% SELECT a, b FROM tab1 WHERE b 20000 ORDER BY b SELECT a, MAX(b) FROM tab1 GROUP BY a SELECT tab1.a, tab1.b,tab2.b FROM tab1,tab2 where tab1.a=tab2.a UNION EXCEPT INTERSECT,一、DB2 SQL使用,INSERT INSERT INTO tab1 val

7、ues(a,1); INSERT INTO tab1(a, b) SELECT a, b from tab2; DELETE DELETE FROM tab1 where tab1.a a UPDATE UPDATE tab1 set tab1.b = tab1.b * 2 where tab1.a = a 参考资料:DB2 LUW V9.5 SQL Cookbook,一、DB2 SQL使用,二、DB2的数据类型,2.1 数值型 2.2 字符型 2.3 日期型 2.4 NULL值 2.5 数据类型与存储空间,2.1 数值型,二、DB2的数据类型,2.2 字符型 思考: 字符串student 为

8、student+4个空格; 如果字段定义为char(20),则该数据占用20个字符; 如果定义为varchar(20),则占用多少个字符?,二、DB2的数据类型,2.2 字符型,二、DB2的数据类型,2.3 日期型,二、DB2的数据类型,2.4 NULL值 NULL值表示“DB2不知道这个值是什么” NULL值不是空字符串(NULL ) 在定义表结构的字段时指定为:not null 例如:INSERT INTO session.clt(num) values(99.3),(66.2),(25.6),(NULL),(null); 1)select * from session.clt 2)sel

9、ect * from session.clt where num 99.3 3)delete from session.clt where num 99.3 思考:如何处理NULL值?,二、DB2的数据类型,2.5 数据类型与存储空间 企业应用对存储空间的消耗巨大 存储消耗: 硬件存储设备费用+电费+维护费用+其他消耗等 字段类型的选取应合理,在考虑到扩展性的同时注意节约存储空间,二、DB2的数据类型,三、DB2的DDL,3.1 CREATE TABLE 3.2 CREATE INDEX 3.3 CREATE VIEW 3.4 CREATE NICKNAME 3.5 CREATE PROCED

10、URE 3.6 RENAME,3.1 CREATE TABLE create table DWA_FAT.A80_GRPTRX ( STA_MON INT not null default 200901 constraint C_STA_MON check (STA_MON between 200901 and 200912), BRN_NBR CHAR(6) not null, BBK_NBR CHAR(3), not null GRP_NBR CHAR(2) not null, constraint “P_Key_1“ primary key (STA_MON, BRN_NBR, GRP_

11、NBR) ) in HISDTA3_TBS index in HISIDX1_TBS distribute by ( BRN_NBR ); comment on table DWA_FAT.A80_GRPTRX is 随机销售团队月度业绩统计; comment on column DWA_FAT.A80_GRPTRX.STA_MON is 数据月份; comment on column DWA_FAT.A80_GRPTRX.BBK_NBR is 交易归属分行; comment on column DWA_FAT.A80_GRPTRX.BRN_NBR is 交易归属网点; comment on

12、column DWA_FAT.A80_GRPTRX.GRP_NBR is 团队编号;,三、DB2的DDL,表空间,主键,分区键,表注释及字段注释,Check约束,3.2 CREATE INDEX CREATE INDEX CUSTOMER_NAMES ON CUSTOMER_DATA(LAST_NAME, FIRST_NAME); 1)Select * from customer_names where first_name = A 思考:是否可以使用索引? 2)索引的设计需要考虑到系统实际的需要,三、DB2的DDL,3.3 CREATE VIEW create view UNICORE.RV

13、_ACACTDTAP as select * from UNICORE.ACACTDTAP2008 where EYDT between 2008-01-01 and 2008-12-31 union all select * from UNICORE.ACACTDTAP2009 where EYDT between 2009-01-01 and 2009-12-31 union all select * from UNICORE.ACACTDTAP2010 where EYDT between 2010-01-01 and 2010-12-31 union all select * from

14、 UNICORE.ACACTDTAP2011 where EYDT between 2011-01-01 and 2011-12-31 union all select * from UNICORE.ACACTDTAP 注意: 1)Union All,而不是Union 2)当事实表中包含了Check约束时,视图支持数据插入,三、DB2的DDL,3.4 CREATE NICKNAME Create NickName NICK_UNICORE.NICK_CSEASDTAP for 64SERVER.UNICORE.CSEASDTAP;,三、DB2的DDL,3.5 CREATE PROCEDURE

15、CREATE PROCEDURE . . LANGUAGE SQL BEGIN ATOMIC . DECLARE CONTINUE | EXIT | UNDO HANDLER FOR . END,三、DB2的DDL,3.5 CREATE PROCEDURE-续 存储过程有利于提高系统运行效率 存储过程为静态SQL,但可以添加动态SQL 用途:数据批量处理,报表后台程序,三、DB2的DDL,3.6 RENAME RENAME TABLE UNICORE.SYBRNDTAP TO REBRNDTAP UNICORE.SYBRNDTAP - UNICORE.REBRNDTAP 数据库中将无法查询到U

16、NICORE.SYBRNDTAP 表内数据保持不变,仅表名发生变化,三、DB2的DDL,四、DB2的DML,4.1 SELECT结构 4.2 Field Rename 4.3 谓词的使用(predicate) 4.4 IN的使用 4.5 CAST 4.6 CASE,四、DB2的DML-续,4.7 CURSOR的使用 4.8 SELECT INTO 4.9 INSERT 4.10 UPDATE AND DELETE 4.11 MERGE 4.12 JOIN,四、DB2的DML-续,4.13 UNION 4.14 EXCEPT 4.15 TEMPORARY TABLE,4.1 SELECT SELECT BBK_NBR,EAC_SHR,CLT_NAM FROM UNICORE.CSEASDTAP WHERE OPN_DTE = 2009-0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号