SQL应用开发范例宝典

当前位置:首页 > 网络编程 > 数据库 > SQL应用开发范例宝典

出版社:明日科技、孔志勇、王毅、 房大伟 人民邮电出版社 (2008-07出版)
出版日期:2008-7
ISBN:9787115179302
页数:688页

章节摘录

插图:

内容概要

明日科技有限公司是一家以计算机软件技术为核心的高科技型企业,公司创建于2000年12月,是专业的应用软件开发商和服务提供商。多年来始终致力于行业管理软件开发、数字化出版物开发制作、计算机网络系统综合应用、行业电子商务网站开发等,先后成功开发了涉及生产、管理、控制、仓贮、物流、营销、服务等领域的多种企业管理应用软件和应用平台。公司拥有软件开发和项目实施方面的资深专家和学习型技术团队,以软件工程为指导思想建立了软件研发和销售服务体系,公司基于长期研发投入和丰富的行业经验,本着“让客户轻松工作,同客户共同成功”的奋斗目标,努力发挥;“专业、易用、高效”的产品优势,竭诚为广大用户提供优质的产品和服务。企业精神:博学、创新、求实、笃行公司宗旨:以高新技术为依托,战略性地开发具有巨大市场潜力的,具有高价值的产品,公司愿景:成为拥有核心技术和核心产品的高科技公司,在某些领域具有领先的市场地位。核心价值观:永葆创业激情、每一天都在进步、容忍失败,鼓励创新、充分信任、平等交流。

书籍目录

第1章 SQL语言基础 11.1 变量与常量 2实例001 定义和使用局部变量 2实例002 定义和使用全局变量 4实例003 数字常量的使用 6实例004 使用字符串常量 8实例005 使用日期和时间常量 91.2 数据类型 10实例006 使用常见的数据类型 11实例007 使用文本和图像数据类型 13实例008 定义表数据类型 15实例009 自定义数据类型 161.3 复合语句 18实例010 定义复合语句(begin…end) 18实例011 GO语句 201.4 条件判断语句 21实例012 使用if语句进行条件判断 21实例013 使用case语句进行条件选择判断 221.5 循环语句 25实例014 使用while语句 25实例015 在循环中使用break语句 26实例016 在循环中使用continue语句 27实例017 利用goto语句实现循环 291.6 临时表 30实例018 定义和使用局部临时表 30实例019 定义和使用全局临时表 31实例020 使用select into语句生成临时表 331.7 常用命令 34实例021 使用print命令输出文本 34实例022 使用DBCC命令检查数据库 35实例023 使用kill命令结束连接数据库中的进程 36第2章 常规数据查询 392.1 查询的基本结构 40实例024 SELECT语句的结构 402.2 列的查询 42实例025 单列查询 42实例026 多列查询 43实例027 查询所有列 44实例028 使用列别名 462.3 列的计算 47实例029 简单列计算 47实例030 复杂列计算 49实例031 执行算术组合计算 50实例032 连接列值 51实例033 使用字符函数对列进行格式化查询 52实例034 使用数字函数对列进行格式化查询 54实例035 使用常量查询 562.4 WHERE条件查询 57实例036 检索单行值 58实例037 不匹配检索 592.5 区间查询 60实例038 利用“”、“”号进行区间查询 61实例039 利用BETWEEN进行区间查询 62第3章 高级数据过滤 653.1 组合WHERE语句 66实例040 使用AND运算符连接WHERE子句 66实例041 利用OR运算符连接WHERE子句 67实例042 有效利用组合顺序 68实例043 对数值列进行四舍五入 70实例044 使用行值表达式简化查询条件 72实例045 怎样去掉小数点后多余的0 733.2 IN运算符 74实例046 使用IN运算符简化条件判断 74实例047 使用IN运算符查询4∶1、4∶2、4∶3赢得比赛的信息 753.3 NOT运算符 76实例048 使用NOT运算符 76实例049 运算符的使用 783.4 行查询 79实例050 使用UNIQUE以没有重复行为条件查询数据 79实例051 限制返回行数(top rownum limit) 80实例052 从表中随机返回记录 81实例053 使用DISTINCT去除重复信息 82实例054 返回第8行到第10行的数据 84实例055 查找具体行数据 85实例056 查询时显示行号的方法 86实例057 延时执行查询 88实例058 使用ReadText读取文本类型数据 89实例059 预览员工工资提高10%的金额 91实例060 确定哪些行是彼此互换的 92实例061 强制使用非簇索引查询数据 93实例062 使用iif函数进行条件判断 943.5 类型转换 95实例063 使用convert函数进行类型转换 95实例064 使用cast函数进行类型转换 97实例065 格式化金额 98实例066 将字符串转换为日期 99实例067 将日期转换为字符串 1003.6 进制转换 101实例068 二进制转换十进制 101实例069 八进制转换十进制 102实例070 十六进制转换十进制 1033.7 匹配查询 105实例071 使用like运算符 106实例072 使用“%”匹配字符串 107实例073 使用“_”匹配任意字符 108实例074 使用“_”查询6个字的数据 109实例075 使用“[ ]”匹配某一范围的字符 111实例076 使用“[^]”匹配非某一范围字符 112实例077 匹配特殊字符 113实例078 在模式查询中使用转义字符(escape) 114实例079 在多个字段中进行单个字符的匹配查询 116实例080 匹配发音 1173.8 空值判断 118实例081 查找空值 118实例082 查找非空值 119实例083 使用case语句将空值转换为实际值 121实例084 使用coalesce函数将空值转换为实际值 122实例085 使用nullif函数比较两个表达式 123第4章 字符串查询 1254.1 字符串查询 126实例086 去除尾部空格 126实例087 截取字符串的部分信息 127实例088 使用“+”连接字符串 128实例089 使用stuff函数插入字符串 129实例090 将字符串以列的形式显示 130实例091 在字符串中包含引号 131实例092 获取字符在字符串中出现的次数 132实例093 字符串大小写转换 133实例094 去掉字符串中的“*” 1354.2 截取字符串 135实例095 从字符串中删除元音字符 135实例096 从字符串中分离字符和数字 136实例097 去除字符串中非字母和数字的字符 1384.3 格式化字符串 139实例098 将电话号码中的“-”去掉,但保留分机号前的“-” 139实例099 提取电话号码中的区号和号码 140实例100 格式化字符串为日期格式 1414.4 替换字符串 143实例101 将字符串中的指定字符替换为“*” 143实例102 用“…”代替过长的字符串显示 1434.5 比较字符串 145实例103 比较两个字符串是否相同 145实例104 比较两个字符串的相似性 146实例105 大小写敏感查询 147第5章 日期查询 1495.1 格式化日期 150实例106 把长日期格式数据转化为短日期格式数据 150实例107 显示长日期格式数据中的小时、分、秒 151实例108 将日期格式中的“.”转化为“-” 1535.2 时间段查询 154实例109 使用Between and查询某一时间段内的数据 154实例110 使用关系运算符查询某一时间段的数据 155实例111 使用in运算符查询某几个时间的数据 157实例112 查询某一月份的数据 158实例113 查询今天是周几 159实例114 查询两个日期之间的天数 161实例115 计算两个日期之间的月份数 162实例116 计算两个日期之间的分、秒、小时 164实例117 计算两个日期之间的工作日 165实例118 返回当前记录与下一条记录之间相差的天数 1665.3 获取日期 167实例119 将日期中的年月日以列的形式显示 167实例120 查询当前月份 169实例121 查询3个月后的日期 170实例122 获取某月的第一天 172实例123 获取本周的第一天 173实例124 获取当前季度的第一天 174实例125 获取上个月的最后一天 175实例126 获取去年最后一天 176实例127 获取本年的最后一天 177第6章 数据排序 1796.1 数据排序 180实例128 升序排序 180实例129 降序排序 181实例130 别名排序 1826.2 字符串排序 183实例131 按字符串中的某个子串排序 183实例132 按字母数字混合数据排序 1846.3 汉字排序 185实例133 按姓氏笔画排序 186实例134 按音序排序 1876.4 按多个列排序 188实例135 多列排序 188实例136 重复值排序 189实例137 排序前3名数据 190实例138 排序后1名数据 191实例139 查询结果排序 193实例140 在统计结果中排序 1946.5 按列序号排序 195实例141 按列的编号排序 195实例142 动态排序 196第7章 聚合函数与分组统计 1997.1 聚合函数 200实例143 通过SUM函数对销售金额进行汇总 200实例144 通过DISTINCT函数求不重复班级名称 201实例145 通过AVG函数求某班学生的平均成绩 202实例146 通过MIN函数求销售额最低值 204实例147 利用MIN函数在子查询中查找最小值 205实例148 通过MAX函数求销售额最高值 207实例149 利用MAX函数在子查询中查询最大值 209实例150 利用COUNT函数求日销售数量 210实例151 利用COUNT函数求日销售额大于某值的商品数 212实例152 利用COUNT函数求部门名称列非NULL值的个数 214实例153 查询包含最大值和最小值的记录 215实例154 查询不包含最大值和最小值的平均值 216实例155 计算商品销售额所占的百分比 217实例156 查询重复记录 2197.2 分组统计 220实例157 GROUP BY子句创建简单分组 220实例158 GROUP BY子句创建多列组合行 222实例159 在分组查询中使用ALL关键字 223实例160 对统计结果进行排序 224实例161 在分组查询中使用HAVING子句 226实例162 在分组查询中使用CUBE运算符 227实例163 在分组查询中使用ROLLUP  229实例164 HAVING子句与WHERE子句的联合使用 231实例165 多表分组统计 233实例166 使用COMPUTE子句在同一结果集中显示明细和汇总 234实例167 使用COMPUTE BY子句显示多级分类汇总 237实例168 使用COALESCE函数将NULL转换成0后,计算员工的平均工资 239实例169 生成累计和 240实例170 生成累计差 241第8章 使用子查询 2438.1 简单子查询 244实例171 在SELECT列表中的子查询 244实例172 为子查询命名 245实例173 多列子查询 246实例174 在多表查询中使用子查询 2488.2 单行子查询 249实例175 比较子查询 249实例176 在子查询中使用聚合函数 250实例177 使用子查询更新数据 251实例178 使用子查询删除数据 2528.3 多行子查询 253实例179 使用IN查询实现交集运算 253实例180 使用NOT IN子查询实现差集运算 255实例181 在嵌套中使用EXISTS谓词 256实例182 在嵌套中使用NOT EXISTS谓词 259实例183 使用比较谓词ALL引入子查询 260实例184 使用比较谓词ANY引入子查询 261实例185 不使用NOT IN查询主表中有而从表中没有的数据 2638.4 相关子查询 264实例186 使用IN引入相关子查询 264实例187 嵌套子查询 265实例188 在HAVING子句中使用相关子查询 267实例189 比较运算符引入相关子查询 268实例190 实现树查询 269第9章 多表查询 2719.1 多表联接 272实例191 笛卡尔乘积查询 272实例192 在多表联接中设置联接条件 273实例193 使用表别名 274实例194 在多表联接中返回某个表的所有列名 2759.2 内联接 276实例195 等值联接 276实例196 不等联接 278实例197 自然联接 279实例198 多表内联接 2809.3 外联接 281实例199 左外联接 281实例200 右外联接 282实例201 完全联接 284实例202 使用外联接进行多表联合查询 2859.4 其他联接 286实例203 自联接 286实例204 静态交叉表 287实例205 动态交叉表 289实例206 在外联接中使用and运算符 2909.5 组合查询 292实例207 使用UNION运算符组合两个表的数据 292实例208 一对多联合查询 293实例209 对组合查询结果排序 295实例210 使用UNION ALL保留重复行 296实例211 使用UNION运算符消除重复的行 298实例212 将数据表中符合指定条件的记录优先显示 299实例213 使用INTERSECT函数进行交集运算 300实例214 使用MINUS进行差集运算 3019.6 使用联接和联接条件 302实例215 在内联接中子查询使用聚合函数 302实例216 利用联接条件查找两表中的共同行 303实例217 查询一个表中存在的而其他两个表中不存在的数据 304实例218 数据库之间数据的复制 305实例219 从一个表中查询另一个表中没有的数据 306实例220 根据另一表中的条件查询数据 307实例221 利用递归生成连续数 308第10章 高级查询 31110.1 交叉表查询 312实例222 交叉表 312实例223 反转交叉表 313实例224 行列转换 316实例225 创建分隔列表 317实例226 查询结果分页显示 318实例227 在结果集中隔一行显示数据 32010.2 分布式查询 321实例228 建立链接 322实例229 查看链接 323实例230 删除链接 324实例231 建立映射 325实例232 查看登录映射信息 326实例233 简单分布式查询 327实例234 使用OpenDatasource函数进行分布式查询 329实例235 使用OpenQuery函数进行分布式查询 331实例236 使用OpenRowSet进行分布式查询 333实例237 创建关联到电子表格的链接 335实例238 创建关联Access数据库的链接 336第11章 插入数据 33911.1 插入单行数据 340实例239 整行插入数据 340实例240 特定字段数据插入 341实例241 NULL值的插入 342实例242 唯一值的插入 343实例243 通过视图插入行 344实例244 插入默认值 345实例245 插入日期数据 346实例246 创建数据表之后插入数据 34711.2 插入多行记录 349实例247 通过VALUES关键字插入多行数据 349实例248 使用UNION ALL语句批量插入数据 350实例249 使用INSERT SELECT语句批量插入数据 35211.3 将查询结果插入数据表 353实例250 从一个表中向另一个表中复制行 353实例251 复制表结构 354实例252 将查询结果中的数据插入到多表中 356第12章 更新和删除数据 35912.1 更新表中的数据 360实例253 UPDATE语句更新列值 360实例254 利用子查询更新多行的值 361实例255 依据外表值更新数据 362实例256 分步更新表 364实例257 使用CASE表达式更新列值 366实例258 只更新存在于其他表中的数据 368实例259 利用Oracle数据库中的关键字merge合并记录 36912.2 删除表中的数据 371实例260 删除单条数据 371实例261 删除多行数据 372实例262 删除所有数据 373实例263 删除部分重复的行 374实例264 删除完全重复的行 376实例265 使用TRUNCATE TABLE语句彻底删除数据 377实例266 使用子查询删除数据 379实例267 删除从其他表中引用的记录 380实例268 删除违反参照完整性的记录 38112.3 通过视图更新表 382实例269 通过视图更新表数据 382实例270 通过视图删除表数据 383第13章 创建、操纵数据库和表 38513.1 创建、删除数据库 386实例271 创建包含多个数据文件和日志文件的数据库 386实例272 创建带有多个文件组的数据库 389实例273 修改数据库 390实例274 向数据库中添加数据文件 392实例275 向数据库中添加日志文件 393实例276 向数据库中添加文件组 394实例277 从数据库中删除文件 395实例278 从数据库中删除文件组 396实例279 删除数据库 39713.2 表的创建 398实例280 创建基本表 398实例281 定义列的非空约束 399实例282 在表中定义默认值约束 401实例283 使用关键字作为表的列名 402实例284 为联合主键设置外键 40313.3 表的修改 405实例285 为表增加列 405实例286 删除表中列 407实例287 修改列的结构 408实例288 为指定列设定默认值 409实例289 为现有表添加主键 410实例290 为现有表添加外键 411实例291 为现有表关系添加级联更新、级联删除 41213.4 表的重命名和删除 413实例292 重命名表 413实例293 删除表 414第14章 使用视图 41714.1 创建和使用视图 418实例294 使用视图过滤不想要的数据 418实例295 使用视图与计算数据 419实例296 使用视图重新格式化检索出的数据 421实例297 使用视图简化复杂的连接 422实例298 创建基于视图的视图 42314.2 修改视图 424实例299 修改视图 424实例300 通过视图添加数据 426实例301 通过视图修改数据 42814.3 删除视图 429实例302 删除视图 429实例303 通过视图删除表数据 430第15章 使用存储过程和函数 43315.1 创建存储过程 434实例304 使用CREATE PROCED URE语句创建存储过程 434实例305 使用return语句从存储过程中返回值 436实例306 创建带参数的存储过程 437实例307 在存储过程中使用事务 439实例308 创建带返回参数的存储过程 440实例309 创建并添加扩展存储过程 442实例310 创建加密存储过程 44315.2 管理存储过程 444实例311 执行存储过程 444实例312 存储过程的重新编译 446实例313 执行具有回传参数的存储过程 448实例314 查看存储过程代码 449实例315 修改存储过程 452实例316 重新命名存储过程 454实例317 删除存储过程 455实例318 使用存储过程调用Com组件(sp_OACreate) 456实例319 重命名数据库中列的名称 458实例320 监控存储过程(sp_monitor) 459实例321 自动执行存储过程 46115.3 使用函数 462实例322 创建标量函数 462实例323 创建内嵌表值函数 463实例324 删除函数 466第16章 使用游标 469实例325 声明游标 470实例326 定义游标变量 473实例327 打开游标 474实例328 读取游标中数据 475实例329 关闭游标 477实例330 释放游标 478实例331 获取游标行数 479实例332 检测FETCH操作的状态 481实例333 游标FOR循环 482实例334 游标的嵌套 484实例335 基于游标定位修改数据 486实例336 基于游标定位删除数据 488实例337 在存储过程中使用游标 489实例338 参数化游标 491实例339 利用sp_cursor_list查看服务及游标属性 492实例340 利用sp_describe_cursor查看游标的全局特性 494第17章 使用触发器 49717.1 创建触发器 498实例341 创建INSERT触发器 498实例342 创建UPDATE触发器 501实例343 创建DELETE触发器 502实例344 创建具有触发条件的触发器 503实例345 创建INSTEAD OF触发器 505实例346 触发器的嵌套 506实例347 创建递归触发器 50817.2 修改触发器 510实例348 修改触发器 510实例349 重命名触发器 51317.3 删除触发器 514实例350 删除触发器 514第18章 事务处理 51718.1 事务概述 518实例351 设置事务属性 51818.2 事务应用 519实例352 提交事务 520实例353 回滚事务 521实例354 保存事务 52318.3 事务并发控制 525实例355 表级锁定 525实例356 设置事务隔离层并发控制 526实例357 死锁的产生及预防 528第19章 安全性控制 53119.1 用户管理 532实例358 使用sp_addlogin创建用户 532实例359 使用sp_password修改用户密码  533实例360 使用sp_helplogins查看用户登录信息 53419.2 角色管理 535实例361 使用sp_addrole创建数据库角色 535实例362 使用sp_droprole删除数据库角色 536实例363 使用GRANT语句授予角色权限 537实例364 使用REVOKE语句取消角色创建数据表的权限 53919.3 权限管理 540实例365 使用GRANT语句授予角色WSERT和SELECT的权限 540实例366 使用REVOKE语句取消角色对指定数据表的操作权限 542实例367 SELECT权限控制 543实例368 INSERT权限控制 544实例369 UPDATE权限控制 545实例370 DELETE权限控制 547实例371 附加数据库给新用户已存在用户权限 548第20章 SQL高级特性 55120.1 数据完整性 552实例372 创建并使用主键约束 552实例373 创建并使用外键约束 554实例374 唯一约束 556实例375 检查约束 558实例376 使用newid函数为uniqueidentifer类型的数据生成唯一标识 560实例377 使用默认约束 561实例378 删除约束 563实例379 使用identity属性生成唯一标识 56420.2 规则 566实例380 创建规则 566实例381 将规则与数据类型或列绑定在一起 567实例382 解除规则 569实例383 删除规则 570实例384 创建默认值(Create Default) 571实例385 绑定默认值(sp_bindefault) 572实例386 解除默认值绑定(sp_unbingdefault) 57320.3 索引 575实例387 创建索引 575实例388 创建简单的非簇索引 576实例389 多字段非簇索引的创建 578实例390 使用UNIQUE关键字创建唯一索引 579实例391 使用CLUSTERDE关键字创建簇索引 580实例392 索引的销毁 581实例393 使用DBCC SHOWCONTIG 语句对索引进行维护 583实例394 使用DBCC INDEXDEFRAG语句对索引进行维护 584实例395 重构索引 585实例396 创建虚拟列索引 587实例397 创建选择索引 588实例398 创建全文索引 589实例399 检索词(Contains谓语) 590实例400 模糊查询 59320.4 优化查询 594实例401 避免使用or运算符 594实例402 避免使用not运算符 596实例403 避免使用distince语句 597实例404 简化联接条件 598实例405 在组合查询时使用All语句 600第21章 数据库对象查询 60321.1 SQL Server数据库对象查询 604实例406 获取自定义存储过程、函数和视图文本 604实例407 显示有关触发器信息 605实例408 列出数据库的所有表 606实例409 列出数据表中数据列的定义 607实例410 获取表中不允许为空的字段 608实例411 获取表中的索引列 609实例412 获取表中的约束 610实例413 查看硬盘分区 611实例414 判断两个表是否相等 612实例415 结束事件探查器进程 613实例416 修改数据库名称 614实例417 获取当前数据库中的所有用户表 615实例418 获取某一个表的所有字段 616实例419 查看与某一个表相关的视图、存储过程和函数 616实例420 查看当前数据库中所有存储过程 617实例421 查询用户创建的所有数据库 618实例422 获取数据库大小 619实例423 跨越服务器查询数据 620实例424 查询多个部分列 62121.2 Oracle数据库对象查询 622实例425 获取数据字典视图 622实例426 查看表空间的名称及大小 623实例427 查看表空间物理文件的名称及大小 624实例428 查看控制文件 625实例429 查看日志文件 626实例430 查看数据库对象 626实例431 查看数据库的版本 627第22章 数据库安全与维护 62922.1 收缩数据库 630实例432 压缩数据库 630实例433 收缩数据和日志 63122.2 备份数据库 632实例434 备份数据库 632实例435 备份事务日志 633实例436 检查备份集 636实例437 定时备份数据库 637实例438 如何备份文件和文件组 63822.3 恢复数据库 640实例439 简单恢复数据库 640实例440 恢复文件和文件组 641实例441 应用事务日志备份 643实例442 恢复到即时点  644实例443 灾难性恢复数据库 64522.4 其他操作 646实例444 对数据库中数据进行加密 646实例445 附加数据库 647实例446 分离数据库 64822.5 导入/导出数据 649实例447 将SQL Server数据库中数据导出到数据文件 649实例448 将Oracle数据库中数据导出到数据文本文件 651实例449 从SQL Server数据库中将数据导出到Excel数据表中 652实例450 从Excel中导入数据到SQL Server中 653实例451 将SQL Server数据导出到Access中 655实例452 从Access导出数据到SQL Server中 656实例453 从SQL Server里查询Access数据 657实例454 将从SQL Server中查询到的数据导成一个Excel文件 658实例455 将Oracle数据库的数据导入到Excel中 65922.6 SQL注入式攻击 661实例456 防止SQL注入式攻击 661实例457 从源程序预防SQL注入式攻击 662第23章 嵌入式SQL 66523.1 定义嵌入式SQL语句 666实例458 在高级语言中定义嵌入式SQL 666实例459 在C语言中使用SQL通信区 667实例460 嵌入式SQL中的主变量 669实例461 在嵌入式SQL中使用游标 67123.2 编译并运行嵌入式SQL语句 673实例462 预编译嵌入式SQL语句 673实例463 执行嵌入式SQL语句 675附录 SQL范例宝典实例适用范围 677

编辑推荐

《SQL应用开发范例宝典》配有光盘,光盘提供了书中所有实例的源代码。全部代码都经过精心调试,都可以正常运行。《SQL应用开发范例宝典》适用于广大计算机爱好者和编程人员阅读,也可供大、中专院校相关专业的师生学习参考。

作者简介

《SQL应用开发范例宝典》全面介绍了SQL语句在数据库开发中所用到的技术和技巧。全书分为23章,涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图、使用存储过程和函数、使用游标、使用触发器、事务处理、安全性控制、SQL高级特性、数据库对象查询、数据库安全与维护和嵌入式SQL等。全书共提供了463个实例,每个实例都突出实用性,其中大部分是程序开发者所需的有关问题的解决方案。

图书封面


 SQL应用开发范例宝典下载



发布书评

 
 


精彩短评 (总计5条)

  •     这本书内容还不错,总体来讲,在开发中还是有实用和参考价值的,明日的书总体质量还是不错的。
  •     总体上还是不错,具有参考价值,但是就是相同的例子很多,这点不怎么好,有很多时候似乎感觉是一样的.其内容上还是不错的
  •     商品不错,很多例子可供参考,可修改,有光盘数据库。不错
  •     买回来,看了下写的比较详细。对数据库的操作有帮助。
  •     书买回来没怎么看。感觉一般
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024