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

手机做网站空间网络推广外包公司

手机做网站空间,网络推广外包公司,毕业设计可以做网站吗,购买网站空间送域名一、引言 上几篇关于多表查询的基本几个部分全部学习完了。 多表查询的基本类型的查询包括以下: 1、内连接(隐式内连接、显示内连接):... [INNER] JOIN ... ON 条件; ) 2、外连接(左外连接、右外连接&…

一、引言

上几篇关于多表查询的基本几个部分全部学习完了。

多表查询的基本类型的查询包括以下:

1、内连接(隐式内连接、显示内连接):... [INNER] JOIN ... ON 条件; 

2、外连接(左外连接、右外连接):... LEFT / RIGHT [OUTER] JOIN ... ON 条件;

3、自连接:表 A 别名 A join 表 A 别名 B ON 条件 ...;

4、联合查询:UNION(去重) / UNION ALL

5、子查询(标量子查询、列子查询、行子查询、表子查询)


下面将通过12个案例来关于多表查询操作的巩固。这篇博客只有5个案例,剩下的后面博客写。

二、案例

下面这些案例涵盖了内连接、外连接、自连接、子查询以及它们的整合使用。

打开 DataGrip 工具完成以下这些需求。

(0)数据准备(员工表 emp 、部门表 dept 、薪资等级表 salgrade)

员工表:emp 

部门表:dept

薪资等级表:salgrade

(下面是创建表结构、插入数据)

CREATE TABLE salgrade(grade INT COMMENT '薪资等级',losal INT COMMENT '该等级最低薪资',hisal INT COMMENT '该等级最高薪资'
)COMMENT '薪资等级表';INSERT INTO salgrade VALUES (1,0,3000);
INSERT INTO salgrade VALUES (2,3001,5000);
INSERT INTO salgrade VALUES (3,5001,8000);
INSERT INTO salgrade VALUES (4,8001,10000);
INSERT INTO salgrade VALUES (5,10001,15000);
INSERT INTO salgrade VALUES (6,15001,20000);
INSERT INTO salgrade VALUES (7,20001,25000);
INSERT INTO salgrade VALUES (8,25001,30000);

涉及到的全部表的预览

(1)查询员工的姓名、年龄、职位、部门名称(隐式内连接)

用到隐式内连接,多张表用逗号隔开。要注意笛卡尔积的问题(消除无效查询)

SELECT e.name,e.age,e.job,d.name FROM emp AS e,dept AS d WHERE (e.dept_id = d.id);

(2)查询年龄小于30岁的员工的姓名、年龄、职位、部门信息(显式内连接)
SELECT e.name,e.age,e.job,d.name FROM emp AS e INNER JOIN dept AS d ON e.dept_id = d.id WHERE e.age < 30;

(3)查询拥有员工的部门ID、部门名称

(注意:这里在部门表中 "人事部" 是没有员工的)

1、先查询拥有部门id的员工中的部门信息,再去重复数据。
SELECT dept.id,dept.name FROM emp,dept WHERE emp.dept_id=dept.id;

2、去除重复数据,就要用到一个关键字:distinct(DISTINCT)
SELECT DISTINCT dept.id,dept.name FROM emp,dept WHERE emp.dept_id=dept.id;

(4)查询所有年龄大于40岁的员工,及其归属的部门名称。如果员工没有分配部门,也需要展示出来

这里注意:一看就要用到外连接(避免有些字段的 NULL 影响查询的结果)

SELECT e.*,d.name FROM emp e LEFT OUTER JOIN  dept d ON e.dept_id = d.id WHERE age >40;

也可以用昨天学的子查询(表子查询)

SELECT e.*,d.name FROM (SELECT * FROM emp WHERE age>40) AS e LEFT JOIN dept AS d ON e.dept_id= d.id;
(5)查询所有员工的工资等级

涉及到两张表:员工表 emp,薪资等级表 salgrade

连接条件:salary 与 薪资的范围 losal 、hisal

emp.salary >= salgrade.losal AND emp.salary <= salgrade.hisal

SELECT e.*,s.grade,s.losal as '最低工资' , s.hisal as '最高工资' FROM emp e ,salgrade s WHERE e.salary >= s.losal AND e.salary <= s.hisal;

对于这题还有一种SQL语句的写法。

(用 BETWEEN ... AND....

SELECT e.*,s.grade,s.losal as '最低工资' , s.hisal as '最高工资' FROM emp e ,salgrade s WHERE e.salary BETWEEN s.losal AND s.hisal;
后面的案例下一篇博客学习。
http://www.15wanjia.com/news/24003.html

相关文章:

  • 上海网站设计建设如何自己创造一个网站平台
  • 网站内链检测百度seo排名优化是什么
  • phpweb网站后台厉害的seo顾问
  • 电商网站搭建流程凡科建站代理
  • 涿州网站建设推广网站免费高清素材软件
  • 电商网站设计工作内容线上推广渠道有哪些
  • 网站制作背景图片长春seo优化
  • 兰州易天网站建设公司有哪些营销型网站建设多少钱
  • 泰州网站建设电话片多多可以免费看电视剧吗
  • 个人音乐网站源码如何做宣传推广营销
  • 基于web的旅游网站建设百度seo可能消失
  • 公司网站宣传如何制作小程序
  • 网站模板织梦东莞搜索网络优化
  • 四川省建设厅官方培训网站seo关键词排名注册价格
  • app和微网站的对比分析关键词搜索引擎排名查询
  • 校园网站建设的目的网络营销的优势和劣势
  • 公司网站建设的方案武汉 网络 推广
  • 网站建设设计服务商百度seo关键词排名推荐
  • 网站加一个会员登陆怎么做厦门网站综合优化贵吗
  • 网站开发价格预算网站建设的基本
  • 百度网站建设开场话术本地推广最有效的方法
  • 怎样查看网站总浏览量网络营销学什么
  • seo公司怎么样seopc流量排名官网
  • 网站建设团购网站维护需要学什么
  • 上班自己花钱做的网站全网营销式网站
  • 开一个做网站的工作室上海搜索seo
  • 深圳建材网站宣传单设计网站统计系统
  • 网站建设详情页网络推广培训课程内容
  • 独立站谷歌seo百度官网认证价格
  • 网站logo 更换软文广告100字