数据库对象_最新版
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DB2数据库对象
三、索引(INDEX)
索引(index) 是与单个表相关联的物理对象。 索引(index) 是与单个表相关联的物理对象。索引用来 在表中实施唯一性(确保没有重复的值)以及增强检索 在表中实施唯一性(确保没有重复的值) 信息时的性能。需要注意是索引不能修改, 信息时的性能。需要注意是索引不能修改,如果想修改索 引,需要先删除该索引,再重新创建。 需要先删除该索引,再重新创建。
DB2数据库对象
DB2数据库对象
、【在表中插入值】(三种方式) INSERT INTO PERS VALUES (12,'Harris',20,'Sales',5,18000,1000,'1950-1-1') INSERT INTO PERS (NAME,JOB,ID) VALUES ('Swagerman','Pramr',500), ('Limoges','Prgmr',510), ('Li','Prgmr',520)
DB2数据库对象
序列的创建 CREATE TABLE t1 (salary int) CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE INSERT INTO t1 VALUES (nextval for myseq) INSERT INTO t1 VALUES (nextval for myseq) INSERT INTO t1 VALUES (nextval for myseq)
DB2数据库对象
5、序列对象(SEQUENCE objects)
与自增列不同,序列是不依赖于表的。 通过序列可以生成一组唯一值,通过使用序列可以有效避免跟踪 数字的列值所引起的并行性和性能问题。数据库崩溃和重新启 动,都不会导致序列生成重复的数字。 生成的序号具有以下属性: ●值可以是小数位为零的任何精确数字数据类型。 ●步长可以是任何指定的整数增量,默认步长是1。 ●计数器值是可恢复的。当需要恢复时,将从日志中重新建计数 器值。
create schema db2xytest authorization db2admin
DB2数据库对象
DB2数据库对象
DB2数据库对象
二、表
表(table)是数据记录的无序集合。它由列和通常被认为是记录 的行组成。所有的数据都存储在数据库的表中。一个表由不同数 据类型的一列或多列组成。一个数据库有一个表集,称为系统目 录表(System Catalog Table),它保存关于数据库中所有对象 的信息。数据库中定义的每个表在目录表 SYSCAT.TABLES 中都有 相应的一行。数据库中每个表的每一列在 SYSCAT.COLUMNS 中都 有相应的一行。
DB2数据库对象
索引主要有两个作用: 1、在查询该表的时候,如果在该表的列上建立了索引,因 为索引是有序的,那么就会查询该表的索引,这样在有序的 ,再返回该找到的索引所对应的记录,这样可以大大的提高 表的查询速度。 2、可以通过在表上建立索引,来把本来无序的表变为有序 的,这样就可以按照一定的顺序来得到表中的记录了。
DB2数据库对象
、【更新数据】 UPDATE PERS SET JOB = 'Prgmr',SALARY = SALARY + 300 WHERE ID = 410
UPDATE PERS SET SALARY = SALARY * 1.15 WHERE JOB = 'Sales'
、【删除数据】 DELETE FROM PERS WHERE ID = 120
DB2数据库对象
●可以通过高速缓存值(Cache)来改善性能。通过使用 Cache,可以在高速缓存中预分配并存储值,从而减少对 日志的同步I/O。当系统出现故障时,将会丢失所有未使 用的高速缓存值。为Cache指定的值是可能丢失的序列值 的最大数目。 如何获取序列的当前值和下一个值: NEXTVAL FOR <seqname> 返回指定序列的下一个值 PREVVAL FOR <seqname> 返回指定序列一个当前值
DB2数据库对象
3、表的维护
列出用于当前用户的表 list tables 列出数据库中定义的所有表 list tables for all 列出指定模式中的表 list tables for schema schemaname 显示指定的表的结构 describe table tablename
DB2数据库对象
DB2数据库对象
更改序列 ALTER SEQUENCE 序列名 可以修改的参数: ●START WITH的START_NUMBER ●INCREMENT的VALUE1 ●NO MAXVALUE的数值 ●NO CYCLE属性 ●MAXIMUM NUNBER OF SEQUENCE VALUES最大数值 删除序列 DROP SEQUENCE 序列名
查询结果如下所示:
DB2数据库对象
SELECT * FROM t1 SALARY ----------10 11 12 3 record(s) selected. SELECT prevval for myseq FROM sysibm.sysdummy1 1 ----------12 1 record(s) selected SELECT nextval for myseq FROM sysibm.sysdummy1 1 ----------13 1 record(s) selected
Biblioteka Baidu
DB2数据库对象
使用检查选项的图(WITH CHECK OPTION) DB2使用WITH CHECK OPTION选项在视图上指定一个约束,当 通过视图对数据进行插入或更新时,将强制执行该约束。具 体的用法是结合视图的定义语句,针对该视图的SELECT语句 WHERE子句的部分,通过WITH CHECK OPTION子句,在通过该 视图对数据进行插入和更新时,强制要求符合WHERE子句条 件。
DB2数据库对象
DB2数据库对象
1、建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables;
2、查看视图 select viewname from views where viewname='V_ZJT_TABLES';
DB2数据库对象
DB2数据库对象
一、模式
模式(schema) 是用于在数据库中创建的数据库对象的一个 模式(schema) 模式 高级限定符。它是数据库对象,例如表、视图、索引或触发 器的一个集合。它提供了数据库对象的一个逻辑分类。 它主要用于: 用来对数据库对象按照功能性质进行逻辑分组。 对数据库的对象按照组进行权限管理。
DB2数据库对象
创建索引的语法为: 创建索引的语法为: create index 表名(列名) index_name on 表名(列名)
重新命名索引: 重新命名索引: rename index <原索引名 <原索引名 > TO <新索引名> <新索引名> 新索引名
DB2数据库对象
索引的五种类、 1、唯一索引 2、非唯一索引 3、聚蔟索引 4、非聚蔟索引 5、MDC相关块索引
4、自增列(Identity Columns) 自增列(Identity 表中的数字型的列,可以使用自增来生成一个唯一的数值型 的值,每增加一行,该列使用自增自动生成值。 每个表最多只能有一个子增列。 自增的列可以由GENERATED ALWAYS和GENERATED BY DEFAULT两种方式来生成。 ●GENERATED ALWAYS:值将一直由DB2生成,不允许 手工插入值; ●GENERATED BY DEFAULT:如果INSERT语句没有显示 提供值,DB2将生成一个值;如果INSERT语句显示提供了 一个值,DB2将不再生成值;DB2不能保证提供的值是唯一 的。
DB2数据库对象
用控制中心的方式创建模式 1、在 控制中心 中,点击 所有数据库> DB2XY > 模式。看一下在创建数据库时 DB2 创建的现有模式。点 击右下方窗口中的 创建模式。 2、在 创建模式 向导中,输入DB2XY 作为新的模式名称。使 用默认的 Authorization Name。点击 OK 运行 创建模式 命令。同样,点击 显示 SQL 就会看到实际的 DB2 命令。 在命令完成之后,检查 DB2XY 是否在模式视图中。
INSERT INTO PERS (ID,NAME,DEPT,JOB,YEARS,SALARY,COMM,BIRTH_DATE) SELECT ID,NAME,DEPT,JOB,YEARS,SALARY,COMM,BIRTH_DATE FROM STAFF WHERE ID = 58
DB2数据库对象
DB2数据库对象
视图不是实际的表,通过视图可以查看一个或多个表中的数 据。可以像使用表一样使用视图检索数据,对视图能否执行 插入、更新和删除操作,取决于视图的定义。因为视图允许 多个用户查看相同数据的不同表示,所以可以使用视图来控 制对敏感数据的访问。 当试图的列是直接来自源表的列时,该视图列也要遵守 该源表列的所有约束,比如,源表的某列上有外键,通 过视图插入时也要遵守该规定。
DB2数据库对象
DB2数据库对象
用命令行的方式创建模式 create schema 模式名 authorization 系统用户名 注:在oracle中,一个用户只能对应一个模式,但是在DB2中 一个用户可以有多个模式。模式和索引一样,不能修改,如 果需要调整必须删除后再创建。 创建模式,例如: db2 connect to db2xy db2 grant dbadm on database to db2 db2admin
DB2数据库对象
下面使用WITH CHECK OPTION选项定义project_view1,源 表project,通过检查选项确保总是检查WHERE条件,也就是 部门编号始终为D21,这将限制deptno列的输入值。使用视 图插入或更新值时,总是强制执行WITH CHECK OPTION。 CREATE VIEW project_view1 (id,projname,deptno) AS (SELECT PROJNO,PROJNAME,DEPTNO FROM PROJECT WHERE DEPTNO=D21) WITH CHECK OPTION
DB2数据库对象
四、视图
视图(view) 视图(view) 允许不同的用户或应用程序用不同的方法查 看相同的数据。它不仅使得数据更容易访问,还可以用 看相同的数据。它不仅使得数据更容易访问, 它来限制可以查看或更新哪些行和列。视图与表一样, 它来限制可以查看或更新哪些行和列。视图与表一样, 也有行和列, 也有行和列,但与表不同的是视图中的数据不需要物理 地存储在硬盘上,不使用物理空间。 地存储在硬盘上,不使用物理空间。视图中的数据不是 单独存储在一起的,但当视图被调用时就可以被获得。 单独存储在一起的,但当视图被调用时就可以被获得。
DB2数据库对象
系统模式 对于每个数据库,都会创建一组系统模式,并将它们放 在SYSCATSPACE 表空间中: SYSIBM:基本系统编目。不建议直接访问它。 SYSCAT:这种模式上的 SELECT 权限被授给 PUBLIC。 只读编目视图。建议通过它来获得编目信息。 SYSSTAT:可更新编目视图 —— 会影响优化器。 SYSFUN:用户定义函数。
DB2数据库对象
2、创建表
默认情况下,表数据、索引和大字段将被存储在默认表空间(
DEFAULT tablespace)中。比如创建如下表时,其表数据、索引和 大字段将被存储在默认表空间中。
CREATE TABLE PERS ( ID NAME DEPT JOB YEARS SALARY COMM BIRTH_DATE ) SMALLINT NOT NULL, VARCHAR(9), SMALLINT WITH DEFAULT 10, CHAR(5), SMALLINT, DECIMAL(7,2), DECIMAL(7,2), DATE