-- select * from emp;select * from dept;这个意思?把第一句注释掉就可以了,oracle用法,其他数据库基本差不多。
select * from emp where depno<>(select deptno from dept where dname='SALES') and sal < (select min(sal) from emp where depno =(select deptno from dept where dname='SALES')) -- 查询比7900员工入职晚的员工 select * from emp where hiredate> (select hiredate from emp where empno=7900...
1.首先sql语句从右往左执行。所以先执行select deptno from emp。查询雇员表所有部门编号。2.in代表在...的范围。3.再执行select deptno from dept。查询部门表中所有部门编号。4.总括:查询部门表中的部门编号且在雇员表中的部门编号的范围内。
select e.empno 员工编号,e.ename 员工姓名,d.dname 部门 from emp e,dept d where e.deptno = d.deptno –17. 查询部门的名称以及该部门的人数,要求没有员工的部门也要显示。 select dname,count(empno) 人数 from emp right join dept on emp.deptno = dept.deptno group by dept.dname; –18. 查询...
select *from emp;--*表示所有的,from emp表示从emp表中查询。 2、查询指定列 select empno,ename from emp; select 888 from emp;--ok,输出的行数是emp表的行数,每行只有一个字段,值是888。 select 5;--OK,不推荐。 3、消除重复元祖:distinct ...
语句SELECT * FROM dept WHERE NOT EXISTS (SELECT * FROM emp WHERE deptno=dept.deptno)执行后的结果为( ) A. 只显示存在于EMP表中的部门全部信息。 B. 只显示不存在于EMP表中的部门全部信息 C. 未返回任何数据 D. 显示DEPT表中的全部信息
–union all 不去除重复行 select ename from emp where sal>1500 union all select ename from emp where comm is not null; –查询显示不存在雇员的所有部门号。 select deptno from dept minus select distinct deptno from emp –查询工资大于1500 且 含有佣金的人员姓名 select ename,sal,comm from emp whe...
(sub-query):不满足该条记录的子查询时执行父查询 如:select * from emp where exists(select *from dept where LOC = 'DALLAS'); 子查询中 LOC列存在DALLAS则执行父查询返回emp中所有列 注:exists是逐条记录去比较,子查询能查到才会去执行父查询,同样子查询只有能查到结果就会执行父查询,所有一般需要添加...
select deptno from emp group by deptno having count(*)>1group by 是分组的意思, select deptno from emp group by deptno 这句话的意思是,根据deptuno也就是部门编号分组查询 查询出来所有的部门编号 having count(*)>1 是一个限制条件,在查询出来的结果集的基础之上,找到部门编号数量大于1...
空值表达式 --含有任何null值的数学表达式最后的结果都为null select ename, sal*5+comm from emp; 空字符串(字符串、字符串连接符) --含有任何null值的字符串表达式中,null被当作空字符串处理 select empno, ename || 'abc' || mgr from emp; --字符串连接符:||。select语句中用单引号表示字符串 ...