SQL Cookbook中文版 9787302154938

SQL 是计算机世界的语言,在用关系数据库开发报表时,将数据放入数据库以及从数据库中取出来,都需要SQL 的知识。很多人以一种马马虎虎的态度在使用SQL,根本没有意识到自己掌握着多么强大的武器。本书的目的是打开读者的视野,看看SQL 究竟能

447 62 29MB

Chinese Pages 502 [515] Year 2007

Report DMCA / Copyright

DOWNLOAD FILE

SQL Cookbook中文版
 9787302154938

Table of contents :
前言
第1章 检索记录
1.1 从表中检索所有行和列
1.2 从表中检索部分行
1.3 查找满足多个条件的行
1.4 从表中检索部分列
1.5 为列取有意义的名称
1.6 在WHERE子句中引用取别名的列
1.7 连接列值
1.8 在SELECT语句中使用条件逻辑
1.9 限制返回的行数
1.10 从表中随机返回n条记录
1.11 查找空值
1.12 将空值转换为实际值
1.13 按模式搜索
第2章 查询结果排序
2.1 以指定的次序返回查询结果
2.2 按多个字段排序
2.3 按子串排序
2.4 对字母数字混合的数据排序
2.5 处理排序空值
2.6 根据数据项的键排序
第3章 操作多个表
3.1 记录集的叠加
3.2 组合相关的行
3.3 在两个表中查找共同行
3.4 从一个表中查找另一个表没有的值
3.5 在一个表中查找与其他表不匹配的记录
3.6 向查询中增加联接而不影响其他联接
3.7 检测两个表中是否有相同的数据
3.8 识别和消除笛卡儿积
3.9 聚集与联接
3.10 聚集与外联接
3.11 从多个表中返回丢失的数据
3.12 在运算和比较时使用NULL值
第4章 插入、更新与删除
4.1 插入新记录
4.2 插入默认值
4.3 使用NULL代替默认值
4.4 从一个表向另外的表中复制行
4.5 复制表定义
4.6 一次向多个表中插入记录
4.7 阻止对某几列插入
4.8 在表中编辑记录
4.9 当相应行存在时更新
4.10 用其他表中的值更新
4.11 合并记录
4.12 从表中删除所有记录
4.13 删除指定记录
4.14 删除单个记录
4.15 删除违反参照完整性的记录
4.16 删除重复记录
4.17 删除从其他表引用的记录
第5章 元数据查询
5.1 列出模式中的表
5.2 列出表的列
5.3 列出表的索引列
5.4 列出表约束
5.5 列出没有相应索引的外键
5.6 使用SQL来生成SQL
5.7 在Oracle中描述数据字典视图
第6章 使用字符串
6.1 遍历字符串
6.2 字符串文字中包含引号
6.3 计算字符在字符串中出现的次数
6.4 从字符串中删除不需要的字符
6.5 将字符和数字数据分离
6.6 判别字符串是不是字母数字型的
6.7 提取姓名的大写首字母缩写
6.8 按字符串中的部分内容排序
6.9 按字符串中的数值排序
6.10 根据表中的行创建一个分隔列表
6.11 将分隔数据转换为多值IN列表
6.12 按字母顺序排列字符串
6.13 判别可作为数值的字符串
6.14 提取第n个分隔的子串
6.15 分解IP地址
第7章 使用数字
7.1 计算平均值
7.2 求某列中的最小/最大值
7.3 对某列的值求和
7.4 求一个表的行数
7.5 求某列值的个数
7.6 生成累计和
7.7 生成累乘积
7.8 计算累计差
7.9 计算模式
7.10 计算中间值
7.11 求总和的百分比
7.12 对可空列作聚集
7.13 计算不包含最大值和最小值的均值
7.14 把字母数字串转换为数值
7.15 更改累计和中的值
第8章 日期运算
8.1 加减日、月、年
8.2 计算两个日期之间的天数
8.3 确定两个日期之间的工作日数目
8.4 确定两个日期之间的月份数或年数
8.5 确定两个日期之间的秒、分、小时数
8.6 计算一年中周内各日期的次数
8.7 确定当前记录和下一条记录之间相差的天数
第9章 日期操作
9.1 确定一年是否为闰年
9.2 确定一年内的天数
9.3 从日期中提取时间的各部分
9.4 确定某个月的第一天和最后一天
9.5 确定一年内属于周内某一天的所有日期
9.6 确定某月内第一个和最后一个“周内某天”的日期
9.7 创建日历
9.8 列出一年中每个季度的开始日期和结束日期
9.9 确定某个给定季度的开始日期和结束日期
9.10 填充丢失的日期
9.11 按照给定的时间单位进行查找
9.12 使用日期的特殊部分比较记录
9.13 识别重叠的日期范围
第10章 范围处理
10.1 定位连续值的范围
10.2 查找同一组或分区中行之间的差
10.3 定位连续值范围的开始点和结束点
10.4 补充范围内丢失的值
10.5 生成连续数字值
第11章 高级查找
11.1 给结果集分页
11.2 跳过表中n行
11.3 在外联接中用OR逻辑
11.4 确定哪些行是彼此互换的
11.5 选择前n个记录
11.6 找到包含最大值和最小值的记录
11.7 存取“未来”行
11.8 轮换行值
11.9 给结果分等级
11.10 抑制重复
11.11 找到骑士值
11.12 生成简单的预测
第12章 报表和数据仓库运算
12.1 将结果集转置为一行
12.2 把结果集转置为多行
12.3 反向转置结果集
12.4 将结果集反向转置为一列
12.5 抑制结果集中的重复值
12.6 转置结果集以利于跨行计算
12.7 创建固定大小的数据桶
12.8 创建预定数目的桶
12.9 创建横向直方图
12.10 创建纵向直方图
12.11 返回未包含在GROUP BY中的列
12.12 计算简单的小计
12.13 计算所有表达式组合的小计
12.14 判别非小计的行
12.15 使用Case表达式给行做标记
12.16 创建稀疏矩阵
12.17 按时间单位给行分组
12.18 对不同组/分区同时实现聚集
12.19 对移动范围的值进行聚集
12.20 转置带小计的结果集
第13章 分层查询
13.1 表示父-子关系
13.2 表示子-父-祖父关系
13.3 创建表的分层视图
13.4 为给定父行找到所有子行
13.5 确定哪些行是叶节点、分支节点及根节点
第14章 若干另类目标
14.1 使用SQL Server的PIVOT运算符创建交叉表报表
14.2 使用SQL Server的UNPIVOT运算符反转置交叉表报表
14.3 使用Oracle的MODEL子句转换结果集
14.4 从不固定位置提取字符串的元素
14.5 求一年包含的天数(Oracle的另一种解决方案)
14.6 搜索字母数字混合的字符串
14.7 使用Oracle把整数转换为二进制数
14.8 转置已分等级的结果集
14.9 给两次转置的结果集增加列头
14.10 在Oracle中把标量子查询转换为复合子查询
14.11 把连续数据分解为行
14.12 计算相对于总数的百分数
14.13 从Oracle创建CSV格式输出
14.14 找到与模式不匹配的文本(Oracle)
14.15 用内联视图转换数据
14.16 测试一个组内是否存在某个值
附录A 窗口函数补充
附录B 回顾Rozenshtein

Polecaj historie