insert into emp(empno,ename,job) values (888,'张三','worker');
select* from emp,dept;会显示14*4=56行记录,这是做了笛卡尔积的结果。
select* from emp e,dept d where e.deptno=d.deptno;提供了消除笛卡尔积的条件,但是如果数据量相当大,不建议使用多表查询,性能很差。
使用多表查询:多表中一定要有相同的字段(或者关联字段)
内连接(等值连接)
外连接 :让等值连接左右两边有一边的数可以全部显示出来
·左外连接:字段 = 字段(+)
·右外连接:字段(+) = 字段
(+)标记只有Oracle数据库才有。
内连接:select* from emp e,dept d where e.deptno=d.deptno;
select * from emp e inner join dept d on e.deptno=d.deptno;(其他数据库 语法)
外连接:select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(+);
select * from emp e left outer join dept d on e.deptno=d.deptno;(其他数据库 语法)
事务处理:
session : 会话
操作命令:
commit ; 将提交到缓冲区的清除,此时无法进行rollback 恢复了。
rollback ; 回退,讲提交到缓冲区的再次回退。
·只有更新操作才会存在事务处理,更新同一条记录时,一个session会的等待另一个session操作完成之后才会执行,
也就是要第一个session执行rollback或者commit操作,第二个sessioon才会执行更新
select* from emp,dept;会显示14*4=56行记录,这是做了笛卡尔积的结果。
select* from emp e,dept d where e.deptno=d.deptno;提供了消除笛卡尔积的条件,但是如果数据量相当大,不建议使用多表查询,性能很差。
使用多表查询:多表中一定要有相同的字段(或者关联字段)
内连接(等值连接)
外连接 :让等值连接左右两边有一边的数可以全部显示出来
·左外连接:字段 = 字段(+)
·右外连接:字段(+) = 字段
(+)标记只有Oracle数据库才有。
内连接:select* from emp e,dept d where e.deptno=d.deptno;
select * from emp e inner join dept d on e.deptno=d.deptno;(其他数据库 语法)
外连接:select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(+);
select * from emp e left outer join dept d on e.deptno=d.deptno;(其他数据库 语法)
事务处理:
session : 会话
操作命令:
commit ; 将提交到缓冲区的清除,此时无法进行rollback 恢复了。
rollback ; 回退,讲提交到缓冲区的再次回退。
·只有更新操作才会存在事务处理,更新同一条记录时,一个session会的等待另一个session操作完成之后才会执行,
也就是要第一个session执行rollback或者commit操作,第二个sessioon才会执行更新