sql数据库查询相关操作,SQL的应用——SQL多表连查、子查询、多行子查询
1
|
**SQL多表连查** |
1
2
3
4
5
6
7
8
|
--查询员工和部门信息 select * from emp e,dept d where e.deptno=d.deptno --查询员工姓名,部门名称 select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno --查询所有员工姓名,部门名称 select e.*, d.dname from emp e,dept d where e.deptno=d.deptno --查询工资大于3000的员工姓名,工资和部门名称 select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno and e.sal>=3000 |
1
2
3
4
|
--非等值查询 --查询公司工资等级 select * from emp e,salgrands where e.sal<=s.hisal and e.sal>s.losal select * from salagrade |
1
2
3
4
5
|
--外链接 --左外连接 select * from emp e,dept d where e.deptno=d.deptno(+) --右外连接 select * from emp e,dept d where e.deptno(+)=d.deptno |
1
2
3
4
5
6
|
--自连接 --查询员工姓名和经理姓名 select e1.ename ,e2.ename from emp e1,emp e2 where e1.mgr=e2.deptno --查询员工姓名、经理姓名和其他经理姓名 select e1.ename,e2.ename,e3.ename from emp e1,emp e2, emp e3 where e1.mgr=e2.empno and e2.empno=e3.empno |
1
|
**以上为92版仅在面试出现** |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
--SQL99 表连接 --交叉连接 cross join select * from emp e cross join dept d --自然连接 natural join select * from emp natural join dept --using select e.ename,deptno from emp e join dept d using(deptno) --on 自定义连接 select * from emp e join dept d on e.deptno=d.deptno select * from emp e1 join emp e2 on e1.mgr=e2.empno --查询员工的姓名、经理及其经理的名字 select e1.ename,e2.ename,e3.ename from emp e1 join emp e2 on e1.mgr=e2.empno join emp e3 on e2.mgr=e3.empno --SQL99 inner join 两边都合法的数据 select * from emp e inner join dept d on e.deptno=d.deptno --left join 以左表为主 select * from emp e left join dept d on e.deptno=d.deptno --right join 以右表为主 select * from emp e right join dept d on e.deptno=d.deptno --full join 全连 取两个表的所有数据 select * from emp e full join dept d on e.deptno=d.deptno ----查询员工的姓名、经理及其经理的名字和部门名字 select e1.ename, d.dname, e2.ename, d2.dname from emp e1 left join dept d on e1.deptno = d.deptno left join emp e2 on e2.mgr = e2.empno left join dept d2 on d2.deptno = d2.deptno |
1
|
**子查询** |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
--比CLARK工资高的人 select SAL from emp where ename= 'CLARK' select * from emp where sal>( select SAL from emp where ename= 'CLARK' ) --查询工资高于平均工资的雇员姓名和工资 select avg (sal) from emp select ename,sal from emp where sal>( select avg (sal) from emp ) --查询同SCOTT同部门的且工资比他低的员工的名字和工资 select deptno from emp where ename= 'SCOTT' select sal from emp where ename= 'SCOTT' select ename, sal from emp where deptno = ( select deptno from emp where ename = 'SCOTT' ) and sal < ( select sal from emp where ename = 'SCOTT' ) --查询和'SMITH','SCOTT','CLARK'同一个部门的员工姓名 select distinct deptno from emp where ename in ( 'SMITH' , 'SCOTT' , 'CLARK' ) select * from emp where deptno in ( select distinct deptno from emp where ename in ( 'SMITH' , 'SCOTT' , 'CLARK' )) --查询和'SMITH', 'SCOTT', 'CLARK'同一个部门并不包含他们三个的员工姓名 and ename not in ( 'SMITH' , 'SCOTT' , 'CLARK' ) --查询工资最高的员工名字和工资 select ename,sal from emp where sal=( select max (sal) from emp ) --查询职务和'SCOTT'相同但是比'SCOTT'雇佣时间早的雇员信息 select * from emp where job = ( select job from emp where ename = 'SCOTT' ) and hiredate < ( select hiredate from emp where ename = 'SCOTT' ) --查询工资比'SCOTT'高或者雇佣时间比'SCOTT'早的雇员编号和姓名 select empno,ename from emp where job = ( select job from emp where ename = 'SCOTT' ) and hiredate < ( select hiredate from emp where ename = 'SCOTT' ) |
1
|
**多行子查询** |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
--查询工资低于任何一个“CLERK”的工资的雇员信息 select * from emp where sal all ( select sal from emp where job = 'SALESMAN' ) --查询部门20中职务同部门10的雇员一样的雇员信息。 select * from emp where job in ( select job from emp where deptno=10) and deptno=20 --查询在雇员中有哪些人是经理人 select * from emp where empno in ( select distinct mgr from emp where mgr is not null or mgr != '' ) --找出部门编号为20的所有员工中收入最高的职员 select ename from emp where sal = ( select max (sal) from emp where deptno = 20) and deptno = 20 </ any ( select > |
sql数据库查询相关操作,SQL的应用——SQL多表连查、子查询、多行子查询的更多相关文章
- PHP对MySQL数据库的相关操作
一.Apache服务器的安装 <1>安装版(计算机相关专业所用软件---百度云链接下载)-直接install<2>非安装版(https://www.apachehaus.com ...
- SQL SERVER: 合并相关操作(Union,Except,Intersect)
SQL SERVER: 合并相关操作(Union,Except,Intersect) use tempdb create table tempTable1 (id int primary key id ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- SQL数据库的基础操作
一,认识SQL数据库 美国Microsoft公司推出的一种关系型数据库系统.SQLServer是一个可扩展的.高性能的.为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有 ...
- SQL数据库的一些操作
--以 MySQL为例 //登陆 mysql -u root -p //创建一个名为test_lib的数据库 CREATE DATABASE test_lib //删除一个名为test_lib的数据库 ...
- SQL数据库问题 解释一下下面的代码 sql 存储过程学习
SQL数据库问题 解释一下下面的代码 2008-08-13 11:30wssqyl2000 | 分类:数据库DB | 浏览1154次 use mastergocreate proc killspid( ...
- Android下的SQLite数据库的相关操作及AndroidTestCase测试
一:创建数据库 package com.itcode.mysqlite; import android.content.Context; import android.database.sqlite. ...
- MySql数据库的相关操作
SQL(Structred Query Language)结构化查询语言:和数据库交互的语言,进行数据库管理的语言. 一.数据库的操作: 1.查询所有数据库: show databases; 2.创建 ...
- 十、K3 WISE 开发插件《SQL Profiler跟踪单据操作时产生的SQL语句》
=================================== 目录: 1.查询帐套的数据库DBID 2.配置需要跟踪数据库的DBID 3.配置跟踪参数 4.跟踪进行 5.分析跟踪语句 === ...
随机推荐
- 项目Alpha冲刺(团队)-第九天冲刺
格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队) 团队名称:为了交项目干杯 作业目标:描述第九天冲刺的项目进展.问题困难.心得体会 队员姓名与学号 队员学号 ...
- Alpha冲刺(7/10)——2019.4.30
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(7/10)--2019.4.30 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- easyui_验证扩展
本文为转载,并非原创 easyui validatebox 验证类型 分类: jquery-easyUI -- : 11000人阅读 评论() 收藏 举报 easyuiValidateBox requ ...
- 深入详解JVM内存模型
JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为 ...
- CentOS7.6安装docker最新版
注意Centos7.4系统以下需要升级内核,否则会安装失败 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config ...
- wordpress更新出现Briefly unavailable for scheduled maintenance. Check back in a minute.
今天ytkah在更新wordpress插件时出现了Briefly unavailable for scheduled maintenance. Check back in a minute.查找了相关 ...
- 题解 LA2889
题目大意 多组数据,每组数据给出一个正整数 \(n\),输出第 \(n\) 大的回文数(即 \(1,2,3,\cdots\)). 分析 不难发现,\(n\) 位的回文数有 \(9*10^{\lfloo ...
- windbg命令行选项
我们不仅可以通过GUI的方式使用Windbg,还可以通过命令行的方式使用它,且在有些需求和使用场景下,只能使用命令行模式 windbg命令行使用以下语法: windbg [ -server Serv ...
- 【洛谷P5596】【XR-4】题
solution \(y^2-x^2=ax+b\) \(y^2=x^2+ax+b\) 当\(x^2+ax+b\)为完全平方式时\(Ans=inf\) \(x \leq y\) 不妨令 \(y=x+t\ ...
- 原创:自定义spark GraphX中的collectNeighborIds方法
/** * 自定义收集VertexId的neighborIds * @author TongXueQiang */def collectNeighborIds[T,U](edgeDirection:E ...