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

个体工商户能做网站吗门户网站建设工作室

个体工商户能做网站吗,门户网站建设工作室,张家港市网站建设,网站空间一般有多大联合查询 0.前言1.联合查询在MySQL里面的原理2.练习一个完整的联合查询2.1.构造练习案例数据2.2 案例#xff1a;⼀个完整的联合查询的过程2.2.1. 确定参与查询的表#xff0c;学⽣表和班级表2.2.2. 确定连接条件#xff0c;student表中的class_id与class表中id列的值相等2.… 联合查询 0.前言1.联合查询在MySQL里面的原理2.练习一个完整的联合查询2.1.构造练习案例数据2.2 案例⼀个完整的联合查询的过程2.2.1. 确定参与查询的表学⽣表和班级表2.2.2. 确定连接条件student表中的class_id与class表中id列的值相等2.2.3. 加⼊查询条件2.2.4. 精减查询结果字段2.2.5. 可以为表名指定别名 2.3联合查询总结 3.内连接3.1 语法3.2 示例3.2.1. 查询唐三藏同学的成绩3.2.2.查询所有同学的总成绩及同学的个⼈信息3.2.3.查询所有同学的总成绩及同学的个⼈信息 4. 外连接4.1.语法4.2.查询没有参加考试的同学信息4.3.查询没有学⽣的班级 5. ⾃连接5.1.应⽤场景5.2.显⽰所有MySQL成绩⽐JAVA成绩⾼的成绩信息5.3 表连接练习5.3.1.显⽰所有MySQL成绩⽐JAVA成绩⾼的学⽣信息和班级以及成绩信息 0.前言 前言为什么要联合查询什么是联合查询呢? 1在学过范式之后我们会对一张表的数据按照范式的标准拆分为多张表这样便于降低数据的冗杂但是我们如果查询表的数据我们又如何一次性查询所有的数据呢这时候就用到了联合查询 2联合查询就是多个表的组合查询一次查询涉及两张或则两张以上的表成为联合查询 1.联合查询在MySQL里面的原理 参与查询的所有表笛卡尔积结果集在临时表中实例:创建两张表一张student 表一张class表 插入数据 表如下 参与查询的所有表取笛卡尔积结果集在临时表中 • 观察哪些记录是有效数据根据两个表的关联关系过滤掉⽆效数据 如果联合查询表的个数越多表中的数据量越⼤临时表就会越⼤所以根据实际情况确定联合查询表的个数 2.练习一个完整的联合查询 2.1.构造练习案例数据 # 课程表 insert into course (name) values (Java), (C), (MySQL), (操作系统), (计 算机⽹络), (数据结构); # 班级表 insert into class(name) values (Java001班), (C001班), (前端001班); # 学⽣表 insert into student (name, sno, age, gender, enroll_date, class_id) values (唐三藏, 100001, 18, 1, 1986-09-01, 1), (孙悟空, 100002, 18, 1, 1986-09-01, 1), (猪悟能, 100003, 18, 1, 1986-09-01, 1), (沙悟净, 100004, 18, 1, 1986-09-01, 1), (宋江, 200001, 18, 1, 2000-09-01, 2), (武松, 200002, 18, 1, 2000-09-01, 2), (李逹, 200003, 18, 1, 2000-09-01, 2), (不想毕业, 200004, 18, 1, 2000-09-01, 2); # 成绩表 insert into score (score, student_id, course_id) values (70.5, 1, 1),(98.5, 1, 3),(33, 1, 5),(98, 1, 6), (60, 2, 1),(59.5, 2, 5), (33, 3, 1),(68, 3, 3),(99, 3, 5), (67, 4, 1),(23, 4, 3),(56, 4, 5),(72, 4, 6), (81, 5, 1),(37, 5, 5), (56, 6, 2),(43, 6, 4),(79, 6, 6), (80, 7, 2),(92, 7, 6);2.2 案例⼀个完整的联合查询的过程 • 查询学⽣姓名为宋江的详细信息包括学⽣个⼈信息和班级信息 2.2.1. 确定参与查询的表学⽣表和班级表 # 在from后同时写所有参与查询的表并⽤逗号隔开(取笛卡尔积) select *from student,class;通过观察两张表联合后的结果集中有些是无效的数据如何过滤这些无用的数据呢 2.2.2. 确定连接条件student表中的class_id与class表中id列的值相等 连接条件student表中的class_id与class表中id列的值相等 # 在where⼦句中加⼊连接条件 mysql select * from student, class where student.class_id class.id;这里有个新的知识点class_id在student表但是两张表都有id列不指定表名时MySQL无法分清要使用那张表的id列。这时候用表名.列名就可以区分。 2.2.3. 加⼊查询条件 上面查询产生了一个错误因为我们无法知道这个name是指代的是那张表的name。正确的写法如下 2.2.4. 精减查询结果字段 selectstudent.id, student.name, student.sno, student.age, student.gender, student.enroll_date, class.name from student, class wherestudent.class_id class.id andstudent.name 宋江;2.2.5. 可以为表名指定别名 2.3联合查询总结 确定几张表参与查询根据表与表之间的关系确定过滤条件通过WHERE条件对整个结果集进行过滤精减字段得到想要的结果通过为表起列名精减SQL语句 3.内连接 3.1 语法 1 select 字段 from 表1 别名1, 表2 别名2 where 连接条件 and 其他条件;简写 2 select 字段 from 表1 别名1 [inner] join 表2 别名2 on 连接条件 where 其他条件;规范写法3.2 示例 3.2.1. 查询唐三藏同学的成绩 确定几张表两张学生表和成绩表取两张表的笛卡尔积 select * from student,score;根据表与表之间的关系确定过滤条件 select * from student,score where student.idscore.student_id ;添加where条件 精减查询字段 select student.name,score.score from student,score where student.idscore.student_id and student.name唐三藏;通过起别名精减整个sql语句 select s.name,sc.score from student s,score sc where s.idsc.student_id and s.name唐三藏;用规范的写法写 select s.name, sc.score from student s join score sc on sc.student_id s.id where s.name 唐三藏;总结一下 3.2.2.查询所有同学的总成绩及同学的个⼈信息 select s.name,sum(sc.score) from student s join score sc on s.idsc.student_id group by s.id;这里注意一下这个分组 分组之后列的值在组内是相同的即使该列不是分组列没有在group by指定依然可以写在查询列表中。 3.2.3.查询所有同学的总成绩及同学的个⼈信息 1.select * from student s join score sc on s.idsc.student_id join course c on c.idsc.course_id; 2.select * from student s,score sc,course c where c.idsc.course_id and s.idsc.student_id;切记关联查询表不要超过三张在以后真正工作的时候不要做大表的表关联查询。 4. 外连接 • 外连接分为左外连接、右外连接和全外连接三种类型MySQL不⽀持全外连接。 • 左外连接返回左表的所有记录和右表中匹配的记录。如果右表中没有匹配的记录则结果集中对应字段会显⽰为NULL。 • 右外连接与左外连接相反返回右表的所有记录和左表中匹配的记录。如果左表中没有匹配的记录则结果集中对应字段会显⽰为NULL。 • 全外连接结合了左外连接和右外连接的特点返回左右表中的所有记录。如果某⼀边表中没有匹配的记录则结果集中对应字段会显⽰为NULL。 4.1.语法 -- 左外连接表1完全显⽰ select 字段名 from 表名1 left join 表名2 on 连接条件; -- 右外连接表2完全显⽰ select 字段 from 表名1 right join 表名2 on 连接条件;4.2.查询没有参加考试的同学信息 # 左连接以JOIN左边的表为基准左表显⽰全部记录右表中没有匹配的记录⽤NULL填充 select * from student s left join score sc on s.idsc.student_id; 左表中显示所有记录右边中没有与左表匹配的记录用NULL填充。 添加where 条件 4.3.查询没有学⽣的班级 # 右连接以JOIN右边的表为基准右表显⽰全部记录左表中没有匹配的记录⽤NULL填充 select * from student s right join class c on c.ids.class_id; 添加where条件过滤 5. ⾃连接 5.1.应⽤场景 ⾃连接是⾃⼰与⾃⼰取笛卡尔积可以把⾏转化成列在查询的时候可以使⽤where条件对结果进⾏过滤或者说实现⾏与⾏之间的⽐较。在做表连接时为表起不同的别名。 # 不为表指定别名 mysql select * from score, score; ERROR 1066 (42000): Not unique table/alias: score # 指定别名 mysql select * from score s1, score s2;5.2.显⽰所有MySQL成绩⽐JAVA成绩⾼的成绩信息 首先分为两步进行先要找到课程的idjava是1MySQL是3 确定连接条件 两个表中的student_id 必须相等 确定符合题目的要求 要么sc1表中的course_id 1 且 sc2表中的course_id 3 要么sc1表中的course_id 3 且 sc2表中的course_id 1 select * from score sc1,score sc2 where sc1.student_idsc2.student_id and sc1.course_id1 and sc2.course_id3 ;加入结果集的过滤条件分数比较 select * from score sc1,score sc2 where sc1.student_idsc2.student_id and sc1.course_id1 and sc2.course_id3 and sc1.scoresc2.score;精减查询结果用别名表示表头 5.3 表连接练习 5.3.1.显⽰所有MySQL成绩⽐JAVA成绩⾼的学⽣信息和班级以及成绩信息
http://www.w-s-a.com/news/377351/

相关文章:

  • 长春市住房城乡建设厅网站做白酒网站
  • 自己的网站怎么做的成品免费ppt网站
  • 番禺区网站建设哪里有泰安公司
  • 网站制作详细过程网站开发最强工具
  • 孟村县做网站长春城投建设投资有限公司网站
  • 国家重大建设项目库网站wordpress安装 var
  • 供求信息网站建设报价网站制作 苏州
  • 动漫建模代做网站百度一下wordpress nginx 固定链接
  • 广州网站开发网络公司网站建设的书
  • php手机网站开发教程家政网站怎么做
  • 视频网站的建设预算通信科技网站设计
  • 糖果网站建设策划书淘宝客网站开源
  • 建站公司还有前途吗cf网站编程
  • 网站建设需求确认表建站工具 比较
  • 刚建设的网站多久能在百度查到考试系统 微网站是什么样的
  • 商城网站建设高端企业网站建设劣势
  • 网站建设征集通讯员的通知seo推广外包
  • 微信公众号微网站建设专业网站建设出售
  • 怎么用wordpress建立自己的网站加强校园网站建设
  • 用什么做网站后台的织梦网站怎么上传
  • 怎么获取网站数据做统计百度快照推广有效果吗
  • 淘宝领卷网站什么做制造网站开发
  • 如何做com的网站网站建设投标书模板
  • 郑州网络营销网站优化网站技术方案怎么写
  • 济南市住房和城乡建设局网站wordpress mnews主题
  • ios开发网站app网站建设企业有哪些方面
  • 网站主页 优帮云深圳代做网站后台
  • app 与网站网站建设要做什么
  • 厦门国外网站建设公司郑州核酸点推vip服务
  • 免费网线seo外链怎么做