create table emp2 ( empno number(4),ename varchar2(10),job varchar2(9),mgr number(4),hiredate date,sal number(7,2),comm number(7,2),deptno number(2) ); -----------------------------------------------------------------------------------------------------------insert into emp2 (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7369, SMITH, CLERK, 7902, to_date(17-12-1980, dd-mm-yyyy), 800...
通常情况下, 数据库中不要出现null,最好的做法加上非空约束Not null,null值并不代表不占空间, char(100) null占100个字符 1 --查询不是领导的信息(含null值错误写法)2 3 select * from emp where empno not in (select mgr from emp); --查询不到记录4 5 select * from emp where empno <>all(select mgr from emp);--上行等价写法6 7 8 9 --查询不是领导的信息(含null值正确写法) 10 11 select * from ...
多表联合查询 当需要获取的数据分布在多张中,考虑使用联合查询1、SQL92方式2、SQL99方式 SQL92方式 1、笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积。 结果的数量为所有表的数量的乘积。 select * from emp,dept 2、等值连接筛选 概念:先做表的笛卡尔积,然后筛选,筛选条件为等值筛选。 注意:条件为字段的值相同来进行筛选,字段的名字可以不同 查询员工姓名,工作,薪资,部门名称 se...
单行子查询 只返回一行数据的子查询的语句,使用单行比较操作符=,>,>=,<,<=,<>等 举例: 1显示与JAMES同部门的所有其他的员工姓名、工资、部门号 Select ename,sal,deptnoFrom empWhere deptno = (select deptno from emp where ename = ‘JAMES’)And ename<>’JAMES’;2查询大于等于公司平均工资的员工的姓名、职位、工资。 Select ename,job,salFrom empWhere sal >= (select avg(sal) from emp);3查询部门名称不是’SAVES’的员...
子查询和集合运算1 子查询1.1 子查询的类型1.1.1 写子查询的时候需要注意的问题1.2 单行操作符1.3 多行操作符1.3.1 in1.3.2 any1.3.3 all2 集合运算2.1 什么是集合运算?2.2 集合运算需要注意的问题2.3 SQL执行时间 1 子查询子查询所要解决的问题:不能一步求解1.1 子查询的类型 单行子查询:查询只返回一条记录。 多行子查询:查询返回多条记录。 1.1.1 写子查询的时候需要注意的问题括号不能省略 要有合理的书写风格 可以在主查询...
1 子查询 1.1 子查询 sql中查询是可以嵌套的。一个查询可以作为另外一个查询的条件、表。SELECT select_listFROM tableWHERE expr operator(SELECT select_listFROM table);理解子查询的关键在于把子查询当作一张表来看待。外层的语句可以把内嵌的子查询返回的结果当成一张表使用。子查询可以作为一个虚表被使用。 子查询要用括号括起来 将子查询放在比较运算符的右边(增强可读性) 子查询根据其返回结果可以分为单行子查询和多行子...
SELECT * FROM TABLE_A WHERE COLUMN_NAME='XXXX'/*首先执行WHERE后方的语句*/SELECT * FROM TABLE_A WHERE EXISTS(SELECT * FROM ......)?/*首先执行前方的SELECT语句,然后将得到的数据与EXISTS中的部分进行比较再处理*/
SQL 子查询子查询 ● 子查询在一个查询的内部还包括另一个查询,则此查询称为子查询。SQL 的任何位置都可以加入子查询。范例:查询比 7654 工资高的雇员分析:查询出 7654 员工的工资是多少,把它作为条件 示例图:注意: 所有的子查询必须在 “()” 中编写。 子查询在操作中有三类: ① 单列子查询:返回的结果是一列的一个内容 ② 单行子查询:返回多个列,有可能是一个完整的记录 ③ 多行子查询:返回多条记录范例:查询出比...
记得自己要敲o~~~select * from bonus; select * from salgrade; select 1+1 from dual; --笛卡尔积:两张表的乘积 select * from emp,dept;select * from emp e1,dept d1 where e1.deptno =d1.deptno;/*内联接:隐式内联接:不等值内联接:where e1.deptno <> d1.deptno自联接:自己连接自己等值内联接: where e1.deptno = d1.deptno;显示内联接:select * from 表1 inner join 表2 链接条件inner关键字可以省略 */ select * from e...
子查询的应用范围: WHERE: 一般返回单行单列,单行多列,多行单列 HAVING:子查询如果出现在HAVING中,只有一种情况就是子查询返回单行单列数据,且需要进行统计函数计算 FROM:返回多行多列(表结构) SELECT:返回单行单列,较少使用 范例1:查询低于公司平均工资的雇员信息1. 先计算出平均工资: SELECT AVG(sal) FROM emp2. 上面的查询结果返回单行单列数据,可以用WHERE语句子查询SELECT * FROM emp WHERE sal < (SELECT ...
import cx_Oracle conn = cx_Oracle.connect("scott/admin@localhost:1521/orcl")cursor = conn.cursor() sql = "select * from emp where deptno=(select deptno from dept where dname=%s)" % (RESEARCH)cursor.execute(sql)result = cursor.fetchall()for row in result: print(row)sql = "select * from emp join dept on emp.deptno=dept.deptno where dept.dname=%s" % (RESEARCH)cursor.execute(sql)result = cursor.fet...
Oracle子查询:当一个查询依赖于另外一个查询的结果的时候,就需要使用子查询。单行子查询 :筛选条件不明确,需要执行一次查询且查询结果只有一个字段且字段值只有一个。注意:where子句中允许出现查询语句,该查询语句称为子查询。使用:select 内容 from 表名 where 字段名 比较运算符 子查询语句 1 --查询所有比雇员CLARK工资高于员工的信息2 select * from emp where sal>(select sal from emp where ename=CLARK);3 --查询工...