当前位置: 首页 > news >正文

网站栏目名跨境电商app

网站栏目名,跨境电商app,二级目录怎么生成,wap和app1. 联合查询 注:联合查询是面试中的重点,只要考到sql,大多数情况下都考的是联合查询,而且联合查询也是我们学习中的难点. 1.1 笛卡尔积 在实际开发中,数据往往来自不同的表,所以要多表联合查询.多表查询是对多张表的数据笛卡尔积. 它们是两张表的各行数据通过全排列得到的. …1. 联合查询 注:联合查询是面试中的重点,只要考到sql,大多数情况下都考的是联合查询,而且联合查询也是我们学习中的难点. 1.1 笛卡尔积 在实际开发中,数据往往来自不同的表,所以要多表联合查询.多表查询是对多张表的数据笛卡尔积. 它们是两张表的各行数据通过全排列得到的. 注意:关联表查询可以对关联表使用别名. 1.2 内连接 操作目的:查询许仙同学的成绩. 1.2.1 一般写法 连接步骤: 先确定要查询的信息都来自于哪些表.针对这两个表进行笛卡尔积.select * from student,score; 在上述结果中,我们发现表中有好多都是无效的数据.所以我们要加上一些连接条件(where限制条件)来去掉一些无效数据.连接条件一般用主键来连接.加上连接条件,去掉无效数据.select * from student,score where student.id score.student_id;,使得学生表中的id与成绩表中的学生id对应. 再根据其他数据,补充其他限制条件,比如查询许仙同学的成绩.select * from student,score where student.id score.student_id and student.name许仙; 把不必要的列去掉.select student.id,student.name,score.score from student,score where student.id score.student_id and student.name许仙; 1.2.2 join写法 对两张表进行笛卡尔积.select * from student join score; 加上连接条件.select * from student join score on student.id score.student_id; 指定其他条件. select * from student join score on student.id score.student_id and student.id4; 4 去掉不必要的列.select student.id,student.name,score.score from student join score on student.id score.student_id and student.id4; 1.3 外连接 外连接分为左外连接和右外连接,如果联合查询,右面的表完全显示,我们说是右外连接,反之则是左外连接.与内连接不同的地方是对于空值/不存在的值,内连接是直接去掉,而外连接会将不保留的一列置为空.需要注意的一点是,外连接因为会涉及到左右的问题,所以只能用join写法来完成. 语法: 左外连接:select 字段名 from 表名1 left join 表名2 on 连接条件右外连接:select 字段名 from 表名1 right join 表名2 on 连接条件 eg:select * from student left join score on student.idscore.student_id; 在这里我们可以看到,在成绩表中没有id为8同学的成绩,就是老外学中文的成绩,所以在外连接的联合查询中,我们直接把老外学中文的成绩置为空.我们再来对比一下内连接的结果: 可见在内连接的联合查询中,直接把老外学中文的成绩给去掉了. 其实在日常开发中,外连接比较常用,我们结合实际场景来考虑,如果说某个同学缺考,我们不可以把这个同学的名字直接除掉,我们就是应该把他的成绩置为空. 右外连接的原理相同,我们不再赘述. 下面我们通过一张图来形象的展示内连接和外连接的结果集: 1.4 自连接 自连接是指在同一张表中连接自身进行查询.就是把自己复制一份出来,自己和自己连接.但是这里需要注意的一点是,由于是表自己和自己连接,所以要给表起别名,否者分不清两张表那张是那张. 案例: 显示所有计算机原理比Java成绩高的同学. select * from score as s1,score as s2 where s1.student_id s2.student_id;第一步,匹配学生id. select * from score as s1,score as s2 where s1.student_id s2.student_id and s1.course_id3 and s2.course_id1 and s1.scores2.score;把s1中的成绩筛选到只剩计算机原理的成绩,s2中的成绩筛选到只剩Java的成绩,之后再在最后加上限制条件,s1表的成绩大于s2表的成绩,就是计算机原理的成绩大于Java成绩的人. 自连接的作用其实在这里被体现的淋漓尽致:原本两门课的成绩在不同的行中,在这里通过自连接使得不同行中的数据到了不同的列中,列与列之间是可以直接进行比较的. 1.5 子查询 子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询. 1.5.1 单行子查询 指的是子查询返回的结果集合是一行数据. eg: 查询不想毕业的同班同学 select * from student where class_id(select class_id from student where name不想毕业); 当然也可以分为两步查询,首先查询不想毕业同学的class_id,之后再使用查询出的class_id去查询该班中有哪些同学. 1.5.2 多行子查询 指的是子查询的结果返回是多行数据,需要注意的是,由于返回的结果是一个不止有一个元素的集合,所以我们不可以在子查询中使用,而是使用in关键字来判断查询的数据在不在子查询的集合中. eg:查询语文或者英文的成绩. select * from score where course_id in (select id from course where name语文 or name英文); 1.6 合并查询 在实际应用中,为了合并多个select的执行结果.可以使用union,union all. 使用union和union all时候,前后查询的结果集中,字段要一致.否者合不上. union 该操作用于取得两个结果集中的并集,在使用该操作符的时候,会自动去掉结果集中的重复行. eg: 查询id小于3,或者名字为英文的课程. select * from course where id3 union select * from course where name英文; 当然这句话也可以用or实现 select * from course where id3 or name英文; 既然使用or就可以实现,那么我们为什么偏要引入联合查询呢?答案是联合查询的结果可以来自不同的表,而or的结果只可以来自同一张表.union all 该操作用于查询到两个结果集的并集,在使用该操作符的时候,不会去掉重复的元素. select * from course where id6 union all select * from course where name英文; union和union all的区别只在是否去掉重复元素.
http://www.pierceye.com/news/70290/

相关文章:

  • 企业网站域名后缀网站设计与推广
  • 在哪建设网站如何设计一个网页动态效果
  • 宿州网站建设哪家好小程序appid
  • 淮南模板网站建设怎么样wordpress用户链接
  • 学校网站建设财务报表域名价值评估网
  • 我如何做网络推广网站如何做推广福州网站制作
  • 哪做网站比较便宜有好看图片的软件网站模板下载
  • 昌邑建设局网站电商网站建设包括哪些内容
  • 长沙租车网站排名仿uehtml WordPress
  • 90设计手机站圣沃建设集团官方网站
  • 没有网站可以做备案吗嘉兴专业做网站的公司
  • 深圳物流网站建设成品网站超市源码
  • diywap手机网站系统wordpress 上传头像
  • 网站类型建设局电话号码是多少
  • 数据做图网站有哪些购买设备有什么网站做参考
  • 企业网站带数据库服装加工平台
  • 电子商务企业网站的建设微积壹佰 网站建设
  • 公司网站建设合同交印花税吗王店镇建设中心小学网站
  • flask做的购物网站网站开发二线城市
  • 做网站的是哪类公司国家高新技术企业难吗
  • 卖狗做网站什么关键词最好有哪些平面设计网站
  • 网站建设公司好不好网站服务器 维护
  • 模版营销型网站怎么做直播网站可以做毕设吗
  • 自己网站wordpress主题怎么学生做网站怎么收费
  • 企业网站建设方案流程国内外知名提供邮箱服务的网站
  • 网站的流量检测怎么做yusi wordpress
  • 顺义网站建设推广优化seo企业宽带
  • 青海省城乡建设网站中国免费域名申请网站
  • 网站开启gzip压缩建设网站涉及哪些问题
  • 论文中网站数据则呢做文献参考wordpress破解插件放心用吗