子查询——学习.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
子查询——学习

新的学习模式通过备份 数据库文件 查看备份代码 学习基本语句!!语句更加规范 并且明白备份原理子查询from 把内层的查询结果作为外层查询比较查询例:查必威体育精装版商品(以 goods_id最大为必威体育精装版)1 select * from goods where goods_id = 最大的 gooods_id;2 select * from goods where goods_id = (select max(goods_id) from goods);where 表达式则取出哪一行 表达式在哪一行成立 =,!= ,,=,= in ,between and or,and,nothaving 表达式数据在表中,表在硬盘或者内存中以文件的形式存在where就是针对文件发生作用查询结果,也可以看做是一张表,去文件一般临时存在于缓冲区having 就是针对查询结果发挥着作用group by 分组 一般和统计函数(sum ,avg,min,max)结合使用order by 默认是升序的 如果想显示声明升序排列 可用asc来声明可以字段名 desc 来声明降序排可以用来查询商品等价格 以及新旧注:可以按照多条件排序,前面的条件优先!!order by 列1 [asc/desc], 列2 [asc/desc]; exists 把外层的查询结果代入内层,看内层是否成立查询商品栏目select * from category where exists(select * from goods where goods.cat_id = categor.cat_id);cat_id字段相同 需要加上表前缀limit在语句的最后 起到限制显示结果条目个数 limit [offset,][N];offset表示偏移量(跳过几个)N 表示取出的条目个数如果offset不写 相当于0 #在 mysql 里 表示 注释union 的用法 (一般用于多张表的union)合并查询结果将两次或者两次以上的结果合并在一起要求: 两次查询的列数一致推荐,查询每一列,相对应的列类型是一样的多次sql语句 取出 的列名可以不一致,此时以取第一个sql 的列名为准。如果不同的语句中取出的行 有每个列的值都相同,那么相同的行将被合并成一行(去重复)如果不想去重复union加上 all如果子句里 有 order by | limit 需要 union 两边加小括号例如 (select good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 4 order by shop_price desc )union (select good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 5 order by shop_price desc);但是 容易有误解决方案1 order by 尽量放在最后使用 即岁最终合并后的结果 进行排序(select good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 4 )union (select good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 5 order by shop_price desc;2 每个子语句 加上limit连接查询 (左连接 右连接 内连接)笛卡尔乘积集合特性 : 确定性 无序性 唯一性一张表可以看做是一个集合,每行数据相当于集合的一个元素Union时 去掉重复 原理 就是集合元素的唯一性表中存在完全相同的两行 是因为 表内部 存在 rowid进行区分笛卡尔积如果 a∈A, b∈BA*B = ( a, b);例如 A=(1,2,3,4,5);B=(11,12);那么 A*B (1,11), (2,11), (3,11), (4,11), (5,11),(1,12), (2,12), (3,12), (4,12), (5,12);A有 M 个元素 B 有N 个元素 那么 A*B 有 M*N个元素同理表A有 M 行 表B 有N 行 那么 A*B 有 M*N行例如:ta tb 两表笛卡尔积通过分析可以看出tb 表的 a b c d 每个分别和 ta 的a b c d 组合一遍左连接1 连上表2 连接条件例如:select good_id,goods.cat_id,goods_name,shop_pricefromgoods left join categoryon good.cat_id

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档