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

怎样免费建公司网站中国丹阳

怎样免费建公司网站,中国丹阳,网站建设项目管理绩效情况分析,如何做织梦论坛类的网站文章目录 前言Ⅰ. 内连接案例#xff1a;显示SMITH的名字和部门名称 Ⅱ. 外连接1、左外连接案例#xff1a;查询所有学生的成绩#xff0c;如果这个学生没有成绩#xff0c;也要将学生的个人信息显示出来 2、右外连接案例#xff1a;对stu表和exam表联合查询#xff0c;把… 文章目录 前言Ⅰ. 内连接案例显示SMITH的名字和部门名称 Ⅱ. 外连接1、左外连接案例查询所有学生的成绩如果这个学生没有成绩也要将学生的个人信息显示出来 2、右外连接案例对stu表和exam表联合查询把所有的成绩都显示出来即使这个成绩没有学生与它对应也要显示出来 练习列出部门名称和这些部门的员工信息同时列出没有员工的部门 前言 ​ 在 mysql 中内连接inner join和外连接left jon、right join 和 full join是用于将多个表中的数据进行关联的操作。 ​ 它们之间的区别其实很简单内连接只返回满足连接条件的行而 外连接则可以返回不满足连接条件的行并且根据不同的外连接类型返回不同的结果集。 Ⅰ. 内连接 ​ 内连接inner join实际上就 等价于利用 where 子句对两种表形成的笛卡儿积进行筛选也就是说之前我们在学复合查询的时候用的都是内连接这也是在开发过程中使用的最多的连接查询。 ​ 内连接是通过匹配两个表之间的共同值来返回结果集。只有在两个表中都存在匹配的行时才会返回这些行。内连接只返回满足连接条件的行其他不满足条件的行将被排除在结果集之外。 ​ 其语法如下所示 select 字段 from 表1 inner join 表2 on 连接条件 [and 其他条件];​ 下面不废话直接通过案例来学习 案例显示SMITH的名字和部门名称 ​ 我们先用之前的 where 子句对两张表进行笛卡尔积 mysql select ename, dname from emp, dept where emp.deptnodept.deptno and enameSMITH; ----------------- | ename | dname | ----------------- | SMITH | RESEARCH | ----------------- 1 row in set (0.00 sec)​ 接着我们再用内连接的语法来查询一下 mysql select ename, dname from emp inner join dept on emp.deptnodept.deptno and enameSMITH; ----------------- | ename | dname | ----------------- | SMITH | RESEARCH | ----------------- 1 row in set (0.00 sec)​ 可以看到效果其实是一样的只不过其实我们 更推荐使用内连接的语法因为这样子的话可读性会提高可以让 where 子句去专门筛选条件而让内连接的工作交给 inner join 语法来完成 ​ 比如说下面这样子将筛选名字的工作交给 where 来解决而内连接还是用 inner join 语法来解决达到直观的分离作用 mysql select ename, dname from emp inner join dept on emp.deptnodept.deptno where enameSMITH; ----------------- | ename | dname | ----------------- | SMITH | RESEARCH | ----------------- 1 row in set (0.00 sec)Ⅱ. 外连接 ​ 外连接left jon、right join 和 full join则允许返回不满足连接条件的行。外连接根据连接条件从一个表中选择所有的行并从另一个表中选择满足条件的行。如果在另一个表中没有匹配的行则返回 NULL 值。 ​ 下面我们先给出一个案例表用于待会测试左外连接和右外连接的区别的 -- 建两张表 create table stu (id int, name varchar(30)); -- 学生表 insert into stu values(1,jack),(2,tom),(3,kity),(4,nono);create table exam (id int, grade int); -- 成绩表 insert into exam values(1, 56),(2,76),(11, 8);1、左外连接 ​ 左外连接left join返回左表中的所有行以及右表中满足连接条件的行。如果在右表中没有匹配的行则返回 NULL 值。简单地说左侧的表完全显示我们就说是左外连接。 ​ 其语法如下所示 select 字段名 from 表名1 left join 表名2 on 连接条件;​ 可以看到其实就是将内连接的 inner 改成了 left 以及下面右外连接的 right 罢了 ​ 其实我们也可以不加 left 或者 right这就变成了全外连接full join不过我们这里就不介绍全外连接了因为比较简单懂了左外连接和右外连接自然就明白全外连接了 案例查询所有学生的成绩如果这个学生没有成绩也要将学生的个人信息显示出来 ​ 因为学生的个人信息和成绩分别在两张表中那么肯定就需要进行连接而因为题目要求如果没有成绩依然要显示个人信息那么使用的就是外连接就不会说没有成绩然后个人信息也没了 ​ 这里我们选用左连接来做测试其中个人信息表肯定是左表而成绩表就作为右表 mysql select stu.id, name, grade from stu left join exam on stu.idexam.id; ------------------- | id | name | grade | ------------------- | 1 | jack | 56 | | 2 | tom | 76 | | 3 | kity | NULL | | 4 | nono | NULL | ------------------- 4 rows in set (0.00 sec)​ 结果是符合预期的如果不存在成绩可能是因为没去考试但是个人信息还是显示出来了 2、右外连接 ​ 右外连接right join则返回右表中的所有行以及左表中满足连接条件的行。如果在左表中没有匹配的行则返回 NULL 值。简单地说右侧的表完全显示我们就说是右外连接。 ​ 其实我们也可以不用右外连接的因为可以使用左外连接然后将两个表的顺序一换其实就是右外连接了但是 mysql 还是提供了右外连接的语法那么我们还是了解一下 ​ 其语法如下所示 select 字段名 from 表名1 right join 表名2 on 连接条件;案例对stu表和exam表联合查询把所有的成绩都显示出来即使这个成绩没有学生与它对应也要显示出来 ​ 因为这里提到成绩都要显示出来那么就是用 stu 表去 right join stu 表下面我们用右外连接来测试一下 mysql select stu.id, name, grade from stu right join exam on stu.idexam.id; ------------------- | id | name | grade | ------------------- | 1 | jack | 56 | | 2 | tom | 76 | | NULL | NULL | 8 | ------------------- 3 rows in set (0.00 sec)练习列出部门名称和这些部门的员工信息同时列出没有员工的部门 ​ 题目说到同时列出没有员工的部门也就是说部门表是一定要显示出来信息的但是员工就不需要 ​ 下面我们分别用左右外连接来做一下这个练习 -- 左外连接 mysql select dept.dname, emp.* from dept left join emp on dept.deptnoemp.deptno; -------------------------------------------------------------------------------------------- | dname | empno | ename | job | mgr | hiredate | sal | comm | deptno | -------------------------------------------------------------------------------------------- | RESEARCH | 007369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 | | SALES | 007499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 | | SALES | 007521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 | | RESEARCH | 007566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 | | SALES | 007654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 | | SALES | 007698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 | | ACCOUNTING | 007782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 | | RESEARCH | 007788 | SCOTT | ANALYST | 7566 | 1987-04-19 00:00:00 | 3000.00 | NULL | 20 | | ACCOUNTING | 007839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 | | SALES | 007844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 | | RESEARCH | 007876 | ADAMS | CLERK | 7788 | 1987-05-23 00:00:00 | 1100.00 | NULL | 20 | | SALES | 007900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 | | RESEARCH | 007902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 | | ACCOUNTING | 007934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 | | OPERATIONS | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | -------------------------------------------------------------------------------------------- 15 rows in set (0.00 sec)-- 右外连接 mysql select dept.dname, emp.* from emp right join dept on dept.deptnoemp.deptno; -------------------------------------------------------------------------------------------- | dname | empno | ename | job | mgr | hiredate | sal | comm | deptno | -------------------------------------------------------------------------------------------- | RESEARCH | 007369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 | | SALES | 007499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 | | SALES | 007521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 | | RESEARCH | 007566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 | | SALES | 007654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 | | SALES | 007698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 | | ACCOUNTING | 007782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 | | RESEARCH | 007788 | SCOTT | ANALYST | 7566 | 1987-04-19 00:00:00 | 3000.00 | NULL | 20 | | ACCOUNTING | 007839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 | | SALES | 007844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 | | RESEARCH | 007876 | ADAMS | CLERK | 7788 | 1987-05-23 00:00:00 | 1100.00 | NULL | 20 | | SALES | 007900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 | | RESEARCH | 007902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 | | ACCOUNTING | 007934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 | | OPERATIONS | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | -------------------------------------------------------------------------------------------- 15 rows in set (0.00 sec)​ 可以看到 OPERATIONS 部门就没有员工
http://www.dnsts.com.cn/news/89589.html

相关文章:

  • 公司信息化网站建设实施方案做网赌需要在哪些网站投广告
  • 外文网站开发安卓 wordpress 源码
  • 深圳建筑工程公司排名泊头网站排名优化
  • 网站备案协议书网站开发合同要注意哪些
  • 免费商城网站模板厚街镇网站仿做
  • 邢台建设企业网站价格wordpress 文章密码保护
  • 怎样建立一个自己的网站石家庄企业网站建设公司
  • 上海网络网站建设临河做网站
  • 网站建设启动大会做h5好点的网站
  • 广州正规网站建设哪家好软考哪个证书最有用
  • cadisen卡迪森手表网站如何看一个网站用什么程序做的
  • 网站 谁建设谁负责辽宁建设工程信息网ic
  • 网站上做旅游卖家要学什么软件柳州游戏网站建设
  • 高端网站制作 上海wordpress循环评论
  • 公司网站怎么登录wordpress 4.6.1 exp
  • 株洲建设局网站合肥学习做网站
  • 商务办公名片北京网站建设专业乐云seo
  • 怎么推广自己做的网站哪个网站做app
  • sqlite做网站数据库网站建设初步规划
  • 云南城市建设职业学院网站东胜区建设局网站
  • 技术支持:淄博网站建设企业门户网站系统下载
  • 玩具网站建设策划书流程wordpress如何更换域名
  • 建设网站是什么样的黑龙江省建设网官方网站
  • 京东网上购物官方网站快速开发平台开源
  • 中国网站排名 优帮云微信怎么开店铺
  • 怎么做优化网站排名网站建设需求说明
  • 响应式网站的原理公司内部网站怎么建设
  • 文化墙设计网站推荐餐饮店怎么做营销和推广
  • 深圳网站seo设计山东省建设建设监理协会网站
  • 安阳专业做网站公司需要多长时间