GBase 8s SQL 指南:教程

Content
Search Results
Index
Loading, please wait ...

Loading

  • GBase 8s SQL 指南:教程
    • 符合行业标准
    • 演示数据库
    • 示例代码约定
    • 数据库概念
      • 数据模型的说明
        • 存储数据
        • 查询数据
        • 修改数据
      • 并发使用和安全性
        • 控制数据库使用
          • 访问管理策略
            • 创建和授予角色
            • 为缺省角色定义和授予特权
            • 内置角色
        • 集中管理
      • 重要的数据库术语
        • 关系数据库模型
        • 表
        • 列
        • 行
        • 视图
        • 序列
        • 针对表的操作
        • 对象关系模型
      • 结构化查询语言
        • 标准 SQL
        • GBase 8s SQL 和 ANSI SQL
        • 交互式 SQL
        • 一般编程
        • 符合 ANSI 的数据库
        • Global Language Support
      • 总结
    • 编写 SELECT 语句
      • 介绍 SELECT 语句
        • SELECT 语句的输出
          • 大对象数据类型的输出
          • 用户定义的数据类型的输出
          • 非缺省代码集的输出
        • 一些基本概念
          • 特权
          • 关系操作
          • 选择和投影
          • 连接
      • 单个表的 SELECT 语句
        • 使用星号(*)
          • 队列进行重新排序
        • 使用 ORDER BY 子句存储行
          • 升序
          • 降序
          • 对多个列进行排序
        • 选择特定列
          • 选择子串
          • ORDER BY 和非英文数据
        • 使用 WHERE 子句
        • 创建比较条件
          • 包括行
          • 排除行
          • 指定一定范围的行
          • 排除一定范围的行
          • 使用 WHERE 子句查找值的子集
          • 标识 NULL 值
          • 构成复合条件
          • 使用精确文本比较
          • 使用变量文本搜索
          • 使用单字符通配符
            • 指定一定范围内的词首字符的 WHERE 子句
            • 具有可变长通配符的 WHERE 子句
          • MATCHES 子句和非缺省语言环境
          • 保护特殊字符
          • 在 WHERE 子句中使用下标
        • 使用 FIRST 子句选择特定行
          • 不具有 ORDER BY 子句的 FIRST 子句
          • 具有 ORDER BY 子句的 FIRST 子句
        • 表达式和派生的值
          • 算术表达式
            • 使用显示标签
          • CASE 表达式
          • 对派生列进行排序
        • 在 SELECT 语句中使用 Rowid 值
      • 多表 SELECT 语句
        • 创建笛卡尔积
        • 创建连接
          • 跨连接
          • 等值连接
          • 自然连接
          • 多表连接
        • 某些查询快捷方式
          • 别名
          • INTO TEMP 子句
      • 总结
    • 从复杂类型选择数据
      • 选择行类型数据
        • 选择类型表的列
        • 选择包含行类型数据的列
          • 字段投影
          • 使用字段投影来选择嵌套字段
            • 选择行类型的个别字段
          • 使用星号表示法来访问行类型的所有字段
      • 从集合中选择
        • 选择嵌套集合
        • 使用 IN 关键字来搜索集合中的元素
      • 选择表层次结构中的行
        • 不使用 ONLY 关键字选择超表的行
        • 使用 ONLY 关键字选择超表的行
        • 对超表使用别名
      • 总结
    • 在 SELECT 语句中使用函数
      • 在 SELECT 语句中使用函数
        • 聚集函数
          • AVG 函数
          • COUNT 函数
          • MAX 和 MIN 函数
          • RANGE 函数
          • STDEV 函数
          • SUM 函数
          • VARIANCE 函数
          • 将函数应用于表达式
        • 时间函数
          • DAY 和 CURRENT 函数
          • MONTH 函数
          • WEEKDAY 函数
          • YEAR 函数
          • 格式化 DATETIME 值
        • 数据转换函数
          • DATE 函数
          • TO_CHAR 函数
          • TO_DATE 函数
        • 基数函数
        • 智能大对象函数
        • 字符串处理函数
          • LOWER 函数
          • UPPER 函数
          • INITCAP 函数
          • REPLACE 函数
          • SUBSTRING 和 SUBSTR 函数
          • SUBSTRING 函数
          • SUBSTR 函数
          • LPAD 函数
          • RPAD 函数
        • 其它函数
          • LENGTH 函数
          • USER 函数
          • TODAY 函数
          • DBSERVERNAME 和 SITENAME 函数
          • HEX 函数
          • DBINFO 函数
          • DECODE 函数
          • NVL 函数
      • SELECT 语句中的 SPL 例程
      • 数据加密函数
        • 使用列级别数据加密来保护信用卡数据
      • 总结
    • 编写高级 SELECT 语句
      • GROUP BY 和 HAVING 子句
        • GROUP BY 子句
        • HAVING 子句
      • 创建高级连接
        • 自连接
        • 外连接
          • 对外连接语法的 GBase 8s 扩展
          • ANSI 连接语法
          • 左外连接
          • 右外连接
          • 简单连接
          • 对两个表的简单外连接
          • 与第三个表进行简单连接的外连接
          • 将两个表与第三个表相连接
          • 组合外连接的连接
      • SELECT 语句中的子查询
        • 相关子查询
        • SELECT 语句中的子查询
        • Projection 子句中的子查询
        • FROM 子句中的子查询
        • WHERE 子句中的子查询
          • ALL 关键字
          • ANY 关键字
          • 单值子查询
          • 相关子查询
          • EXISTS 关键字
        • DELETE 和 UPDATE 语句中的子查询
      • 处理 SELECT 语句中的集合
        • 集合子查询
          • 在集合子查询中省略 ITEM 关键字
          • 在集合子查询中指定 ITEM 关键字
          • FROM 子句的集合子查询
        • 集合派生的表
        • 用于集合派生表的符合 ISO 的语法
      • 集合运算
        • 联合
          • 将 ORDER BY 子句与 UNION 一起使用
          • UNION ALL 关键字
          • 使用不同的列名
          • 将 UNION 与多个表配合使用
          • 在 Projection 子句中使用文字
          • 使用 FIRST 子句
        • 相交
        • 差异
      • 总结
    • 修改数据
      • 修改数据库中的数据
      • 删除行
        • 删除表的所有行
        • 使用 TRUNCATE 来删除所有行
        • 删除指定的行
        • 删除选择了的行
        • 删除包含 row 类型的行
        • 删除包含集合类型的行
        • 从超级表中删除行
        • 复杂的删除条件
        • MERGE 的 Delete 子句
      • 插入行
        • 单个行
          • 可能的列值
          • 对列值的限制
          • 序列数据类型
          • 罗列特定的列名称
        • 将行插入到类型的表中
        • 在列上插入的语法规则
          • 包含命名了的 row 类型的行
          • 包含未命名的 row 类型的行
          • 为 row 类型指定 NULL 值
        • 将行插入到超级表内
        • 将集合值插入到列内
          • 将值插入到简单的集合和嵌套的集合内
          • 将 NULL 值插入到包含 row 类型的集合内
        • 插入智能大对象
        • 多个行和表达式
        • 对插入选择的限制
      • 更新行
        • 选择要更新的行
        • 以统一值进行更新
        • 对更新的限制
        • 用选择了的值更新
        • 更新 row 类型
          • 更新包含命名了的 row 类型的行
          • 更新包含未命名的 row 类型的行
          • 为 row 类型的字段指定 Null 值
        • 更新集合类型
        • 更新超级表的行
        • 更新列的 CASE 表达式
        • 更新智能大对象的 SQL 函数
        • 更新表的 MERGE 语句
      • 对数据库级对其对象的权限
        • 数据库级别权限
        • 表级别权限
        • 显示表权限
        • 将权限授予角色
      • 数据完整性
        • 实体完整性
        • 语义完整性
        • 引用完整性
          • ON DELETE CASCADE 选项
          • 级联删除的示例
          • 对级联删除的限制
        • 对象模式和违反检测
          • 对象模式的定义
            • 启用模式
            • 禁用模式
            • 过滤模式
          • 使用数据操纵语句的模式的示例
            • 当约束为启用的时,插入操作的结果
            • 当约束为禁用时,插入操作的结果
            • 当约束处于过滤模式时,插入的结果
            • 对于一个违反行的多个诊断行
          • 违反表和诊断表
            • 违反表与数据库对象模式的关系
            • START VIOLATIONS TABLE 语句的示例
            • 对违反表的权限的示例
            • 对诊断表的权限的示例
      • 中断了的修改
        • 事务
        • 事务日志记录
          • 日志记录和级联删除
        • 指定事务
      • 使用 GBase 8s 数据库服务器来备份和记录日志
      • 并发和锁定
      • GBase 8s 数据复制
      • 总结
    • 在外部数据库中访问和修改数据
      • 访问其他数据库服务器
        • 访问 ANSI 数据库
        • 在外部数据库服务器之间创建连接
        • 访问外部例程
      • 对于远程数据库访问的限制
        • 访问多个数据库的 SQL 语句
        • 访问外部数据库对象
    • SQL 编程
      • 程序中的 SQL
        • SQL API 中的 SQL
        • 应用程序语言中的 SQL
        • 静态的嵌入
        • 动态的语句
        • 程序变量和主变量
      • 调用数据库服务器
        • SQL 通信区域
        • SQLCODE 字段
          • 数据的结束
          • 负代码
        • SQLERRD 数组
        • SQLWARN 数组
        • SQLERRM 字符串
        • SQLSTATE 值
      • 检索单行
        • 数据类型转换
        • 如果程序检索到 NULL 值,该怎么办?
        • 处理错误
          • 数据的结束
          • 不符合 ANSI 的数据库的数据的结束
          • 严重的错误
          • 使用聚集函数解释数据的结束
          • 缺省值
      • 检索多行
        • 声明游标
        • 打开游标
        • 访存行
          • 检测数据的结束
          • 定位 INTO 子句
        • 游标输入模式
        • 游标的活动集
          • 创建活动集
          • 顺序游标的活动集
          • SCROLL 游标的活动集
          • 活动集和并发
        • 部件爆炸问题
      • 动态 SQL
        • 准备语句
        • 执行准备好的 SQL
        • 动态主变量
        • 释放准备好的语句
        • 快速执行
      • 嵌入数据定义语句
      • 授予和撤销应用程序中的权限
        • 指定角色
      • 总结
    • 通过 SQL 程序修改数据
      • DELETE 语句
        • 直接删除
          • 直接删除期间的错误
          • 事务日志记录
          • 协调的删除
        • 使用游标删除
      • INSERT 语句
        • 插入游标
          • 声明插入游标
          • 使用游标来插入
          • PUT 和 FLUSH 之后的状态代码
        • 常量行
        • 插入示例
          • 多少行受到了影响?
      • UPDATE 语句
        • 更新游标
          • 关键字 UPDATE 的用途
          • 更新特定的列
          • 不总是需要的 UPDATE 关键字
        • 清理表
      • 总结
    • 对多用户环境编程
      • 并发和性能
      • 锁定和完整性
      • 锁定和性能
      • 并发问题
      • 锁定如何工作
        • 锁的种类
        • 锁作用域
          • 数据库锁
          • 表锁
            • 使用 LOCK TABLE 语句来锁定表
            • 数据库服务器何时自动地锁定表
            • 使用 ONLINE 关键字来避免表锁定
          • 行和键锁
          • 页锁
            • 为所有 CREATE TABLE 语句设置行锁或页锁模式
              • 单用户锁模式
              • 多用户锁模式
              • 优先顺序的规则
          • 稀疏索引锁
          • 智能大对象锁
            • 字节范围锁
        • 锁的持续时间
        • 在修改时锁定
      • 使用 SELECT 语句来锁定
        • 设置隔离级别
          • 对比 SET TRANSACTION 与 SET ISOLATION
            • SET ISOLATION
            • SET TRANSACTION
          • ANSI Read Uncommitted 与 GBase 8s Dirty Read 隔离
          • ANSI Read Committed 与 GBase 8s Committed Read 隔离
          • GBase 8s Cursor Stability 隔离
          • ANSI Serializable、ANSI Repeatable Read 和 GBase 8s Repeatable Read 隔离
        • 更新游标
      • 保留更新锁
      • 使用某些 SQL 语句发生的排他锁
      • 锁类型的行为
      • 使用访问模式来控制数据修改
      • 设置锁模式
        • 等待锁
        • 不等待锁
        • 等待有限的时间
        • 处理死锁
        • 处理外部的死锁
      • 简单的并发
      • 保持游标
      • SQL 语句高速缓存
      • 总结
    • 创建和使用 SPL 例程
      • SPL 例程介绍
        • 使用 SPL 例程可做什么
      • SPL 例程格式
        • CREATE PROCEDURE 或 CREATE FUNCTION 语句
          • 开始和结束例程
          • 指定例程名称
          • 添加特定的名称
          • 添加参数列表
            • 简单大对象作为参数
            • 未定义的参数
          • 添加返回子句
          • 添加显示标签
          • 指定 SPL 函数是否为变体
          • 添加修饰符
            • COMMUTATOR 修饰符
            • NEGATOR 修饰符
          • 指定 DOCUMENT 子句
          • 指定清单文件
          • 添加注释
        • 完整例程的示例
        • 在程序中创建 SPL 例程
        • 在本地的或远程的数据库中删除例程
      • 定义和使用变量
        • 声明本地变量
          • 本地变量的作用域
          • 声明内建的数据类型的变量
          • 声明智能大对象的变量
          • 声明简单大对象的变量
          • 声明集合变量
          • 声明 row 类型变量
          • 声明 opaque 类型和 distinct 类型变量
          • 使用 LIKE 子句来声明列数据的变量
          • 声明 PROCEDURE 类型变量
          • 带有变量的下标
          • 变量与关键字歧义
            • 变量和列名称
            • 变量和 SQL 函数
        • 声明全局变量
        • 赋值给变量
          • LET 语句
          • 赋值给变量的其他方式
      • SPL 例程中的表达式
      • 编写语句块
        • 隐式的和显式的语句块
        • FOREACH 循环
        • FOREACH 循环定义游标
          • 对 FOREACH 循环的限制
        • IF - ELIF - ELSE 结构
        • 添加 WHILE 和 FOR 循环
        • 退出循环
      • 从 SPL 函数返回值
        • 返回单个值
        • 返回多个值
      • 处理 row 类型数据
        • 点符号表示法的优先顺序
        • 更新 row 类型表达式
      • 处理集合
        • 集合数据类型
        • 准备集合数据类型
          • 声明集合变量
          • 声明元素变量
          • 将集合选择至集合变量内
        • 将元素插入至集合变量内
          • 插入至 SET 或 MULTISET 内
          • 插入至 LIST 内
          • 检查 LIST 集合的基数
          • VALUES 子句的语法
        • 从集合选择元素
          • 集合查询
          • 将集合查询添加至 SPL 例程
        • 删除集合元素
          • 更新数据库中的集合
          • 删除整个集合
        • 更新集合元素
          • 使用变量更新集合
        • 更新整个集合
          • 更新 row 类型的集合
          • 更新嵌套的集合
        • 插入至集合内
          • 插入至嵌套的集合内
            • 将集合插入至外层的集合内
            • 将值插入至内层的集合
      • 执行例程
        • EXECUTE 语句
        • CALL 语句
        • 执行表达式中的例程
        • 使用 RETURN 语句执行外部函数
        • 从 SPL 例程执行游标函数
        • 动态的例程名称规范
          • 动态例程名称规范的规则
      • 对例程的权限
        • 注册例程的权限
        • 执行例程的权限
          • 授予和撤销 Execute 权限
          • 使用 COMMUTATOR 和 NEGATOR 函数的 Execute 权限
        • 对与例程相关联的对象的权限
        • 执行例程的 DBA 权限
      • 在 SPL 例程中查找错误
        • 编译时刻警告
        • 生成例程的文本
      • 调试 SPL 例程
      • 异常处理
        • 错误捕获与恢复
        • ON EXCEPTION 语句的控制作用域
        • 用户生成的异常
          • 模拟 SQL 错误
          • 使用 RAISE EXCEPTION 来退出嵌套的代码
      • 检查 SPL 例程中处理的行数
      • 总结
    • 创建和使用触发器
      • 何时使用触发器
      • 如何创建触发器
        • 声明触发器名称
        • 指定触发器事件
        • 定义触发操作
        • 完整的 CREATE TRIGGER 语句
      • 使用触发操作
        • BEFORE 和 AFTER 触发操作
        • FOR EACH ROW 触发操作
          • REFERENCING 子句
          • WHEN 条件
        • 将 SPL 例程用作触发操作
          • 将数据传至 SPL 例程
          • 使用 SPL
          • 用 SPL 例程中的数据更新非触发列
      • 触发器例程
      • 表层次结构中的触发器
      • Select 触发器
        • 执行触发操作的 SELECT 语句
          • 独立 SELECT 语句
          • 查询投影列表中的集合子查询
          • 嵌入在用户定义例程中的 SELECT 语句
          • 视图
        • 执行 Select 触发器的限制
        • 在表层次结构中的表的 Select 触发器
      • 可重入触发器
      • 视图上的 INSTEAD OF 触发器
        • 使用 INSTEAD OF 触发器对视图进行更新
      • 跟踪触发操作
        • SQL 例程中的 TRACE 语句的示例
        • TRACE 输出的示例
      • 生成错误消息
        • 应用固定错误消息
        • 生成可变错误消息
      • 总结