DB2第三章 使用SQL-表,
临时表,约束,视图,索引,数据类型
作者:魏华超
联系方式:weihuachao@sina.com
1. 表的概念:
(1)
表是未排序的数据记录的集合,行由多列组成(通常称为记录).每个列都有一个数据类型.
(2) 表有三中类型:
A. 永久表
B. 临时(声明)表
C. 临时(派生)表
2.永久表:
(1)永久表的创建:
CREATE TABLE
EMPLOYEE
(
EMPNO INT NOT NULL,
NAME VARCHAR(20),
SALARY NUMERIC(8,2)
)
(2)表中标识列的生成:标识列是由DB2系统自动生成的序列号或者其它值.
--按照默认的方式生成自动增长的序列:(初始值为1,自动增长为1)
create table
employee
(
EMPNO integer generated always as identity ,
EMPName varchar(30) not null
)
--自定义序列的增长.
create table employee
(
EMPNO integer generated always as identity(start with 100,increment
10) ,
EMPName varchar(30) not null
)
(3)默认值的创建:
CREATE TABLE
EMPLOYEE
(
EMPNO INTEGER NOT NULL,
EMPNAME VARCHAR(30) NOT NULL WITH DEFAULT ' ',
EMPSALARY NUMERIC(8,2)WITH DETAULT 0.0
)
(4)GENERATED的第二种用法:
用于列的计算
CREATE TABLE EMPLOYEE
(
EMPNO integer generated always as identity(start with 100,increment
10) ,
EMPName varchar(30) not null,
EMPSALARY INT,
EMPBONUS INT,
EMPPAY INT GENERATED ALWAYS AS
(EMPSALARY+EMPBONUS)
)
3.表的约束:
(1)表的约束,就是数据库管理器实施的规则:有三种约束:
A.唯一性约束--确保表中键值的唯一性.
B.引用性约束--对插入.更新.以及删除操作强制进行引用约束
C.表检查约束--检查更改过的数据是否违反了表在创建或者更该时制定的条件.
(2)唯一性约束:
A.唯一性约束中每一组成键的列必须都定义为NOT NULL.
B.唯一性约束使用primary key和unique来保证.
(3)引用性约束
A.主表和从表的区别:
B.引用约束要求主表被引用的列必须唯一.
C.引用约束的执行对于一些依赖于表示主表还是从表的SQL操作具有特殊的含义.数据库管理器根据
引用完整性规则在系统间强制进行引用约束,这些规则是:
INSERT规则
UPDATE规则
DELETE规则
(4)当插入一个外键是就隐含了INSERT规则:INSERT规则要求在从表插入数据时,外键的值在主表必须存
在或者为空,否则不能在从表中插入记录.如果多行插入中,一行失败则所有的插入的行都从数据库中删除.
(5)UPDATE规则:数据库管理器禁止更新父表中的行.当更新从表的外键时,如外键设置为NOT
NULL,则外
键的值必须和主表的值相匹配.有两个选项:
RESTRICT
------如果从表中的某行匹配键的原始值,将拒绝对父表的更新
NO ACTION
-----在更新语句结束时,如果从表中的任意行没有相应的父键,将拒绝对父键的更新.这个
是默认设置.
(6)DELETE规则:当从父表中删除一行时,数据库管理器将检查在依赖表是否存有与外键值相符的依赖行
.如果发现依赖行,将执行系统采用的动作:
RESTRICT(限制)--这个规则在发现有依赖关系的行后防止父表中的行被删除.如果要删除主表和从表的
行,必须先删除从表.
NO
ACTION(无动作)---这个规则要求在所有引用约束应用后每一个子行都有对应的父行.这个是默认设
置.
CASCADE
(级联)---当删除主表中的记录时,同时删除从表中依赖的相关行.
SET
NULL(置空)---如果从表允许空,则删除主表行时,从表中的依赖行的外键置空.
分享到:
相关推荐
此外,《DB2 SQL Reference》还提供了错误处理和异常情况的解决方案,以及如何正确解读和使用DB2系统表和管理命令的指南,对于日常的数据库运维工作具有重要的参考价值。 总之,DB2 SQL Reference是DB2用户不可或缺...
《DB2 Universal Database for iSeries SQL Reference V5R3》是一本详尽介绍了IBM DB2 Universal Database在iSeries平台上使用的SQL语言特性及其功能的手册。本书针对的是版本5、发布3、修改版0的IBM操作系统/400...
- **第一章**:介绍DB2 SQL的基本概念,包括关系型数据库、SQL语言等。 - **第二章**:深入探讨DB2 SQL的关键概念和技术细节。 - **后续章节**:详细讲解SQL语句的语法、示例以及最佳实践。 ##### 1.4 语法图示阅读...
根据给定的信息,本文将详细解释“IBM DB2 UDB for AS400 SQL Programming”的核心概念和技术要点,包括但不限于数据库结构、SQL语句类型、SQL对象等方面。 ### 关于DB2 UDB for AS400 SQL编程 IBM DB2 Universal ...
- **使用临时表取代一条一条插入**:当需要插入大量数据时,使用临时表可以显著提高插入速度。 - **循环次数很多时注意减少执行语句**:通过减少循环体内的SQL语句执行次数来提高程序性能。 - **看程序执行时间及...
DB2 SQL Reference是一本详尽的指南,不仅介绍了SQL语言的基础语法,还深入讲解了DB2数据库中高级特性的使用方法,包括静态和动态SQL、CLI、JDBC、SQLJ、交互式SQL等。此外,它还详细阐述了数据库设计的核心概念,如...
- **使用临时表取代一条一条插入**:对于大量数据的插入,使用临时表可以提高效率。 - **循环次数很多时注意减少执行语句**:优化循环内部的代码以减少不必要的执行开销。 - **看程序执行时间及结果DB2BATCH**:使用...
- **监控性能指标**:使用DB2提供的工具和视图来监控散列连接的性能,如查看连接操作的时间消耗和资源使用情况。 #### 五、实验结果 为了验证散列连接的实际效果,可以设计一系列实验来测试不同场景下的性能表现。...
- **数据库 (Databases)**: 数据库是包含一系列相互关联的数据集的集合,通常包括表、视图、索引等。 - **目录 (Catalog)**: 目录是一种特殊的表,用于存储数据库元数据,例如表、索引和其他数据库对象的信息。 - **...
**3.1 DB2数据类型**:DB2支持多种数据类型,包括数值类型、字符串类型、日期时间类型等。 **3.2 DDL数据定义语言** - **3.2.1 数据库**:虽然数据库本身不属于DDL语言,但创建和管理数据库的操作通常是通过DDL命令...
- **XML类型**:DB2支持`XML`类型,而GreenPlum/PostgreSQL也支持XML数据类型的存储,但可能需要使用不同的函数来处理XML数据。 此外,还需要注意的是,DB2有一些内置的函数和操作用于处理特殊数据类型,而在...
- `SELECT * FROM SYSIBM.SYSDATATYPES`:查询DB2支持的所有数据类型。 - **查询缓冲池信息:** - `SELECT * FROM SYSIBM.SYSBUFFERPOOLS`:查询所有缓冲池的信息。 #### 六、数据库对象修改与查看 - **修改表...
- **获取表结构以及索引的信息:** 使用DB2的元数据视图。 - **检查数据库连接有关的错误:** 使用DB2提供的错误日志或诊断工具。 - **在恢复数据库遇到SQL2542错误:** 需要检查恢复过程中的参数设置。 - **使用IMPORT...
DB2是IBM开发的一款关系型数据库管理系统,广泛应用于企业级数据存储和管理。在学习和使用DB2的过程中,是否需要详细深入地了解其各种特性和功能,这取决于你的实际需求和工作角色。对于DB2的专业用户,如数据库管理...
### DB2 SQL 参考知识点概述 #### 一、关于本书 本书《DB2 SQL Reference Volume 1》是IBM公司出版的专业技术文档,主要针对IBM DB2 Universal Database V8版本的SQL语言进行了详尽的介绍与说明。该文档旨在为用户...
3. **SQL语句**:SQL是与DB2交互的基础,课程可能详细讲解了DML(数据操纵语言)如SELECT、INSERT、UPDATE、DELETE,以及DDL(数据定义语言)如CREATE、ALTER和DROP等语句的使用。 4. **数据库对象**:DB2支持多种...
### SQL基础知识概览 #### 一、SQL简介 SQL(Structured Query Language)是一种标准化的数据库查询和管理语言,广泛应用...在实际应用中,合理选择数据类型、优化SQL语句以及有效使用索引都是提升数据库性能的关键。
与Sybase或Oracle不同,DB2的临时表在会话结束时自动删除,因此适合于存储临时数据,但不适用于跨会话的数据存储。 #### 1.3 获取当前行 在DB2中,获取当前行可以通过`FETCH FIRST`子句实现。例如: ```sql SELECT...
- **使用临时表**:临时表用于存储中间结果,可以提高某些操作的效率,尤其是在处理大量数据时。 - **游标的使用**:游标允许程序逐行处理结果集,但需注意其对性能的影响,尤其是在处理大数据量时。 - **类型转换...