一、oracle的增删改操作
1、添加操作
语法:INSERT INTO table_name (column1,column2,...) values ( value1,value2, ...);
实例:insert into person (pid, pname) values (1, '小明');
2、修改操作
语法:UPDATE table_name set column1=new value,column2=new value,...WHERE <条件>
实例:update person set pname = '小马' where pid = 1;
3、删除操作
3.1、使用delete删除
语法:DELETE FROM <table_name> WHERE <条件>;
实例:delete from person;
3.2、使用truncate删除
语法:TRUNCATE TABLE <table_name>;
实例:truncate table person;
3.3、使用drop删除
语法:DROP TABLE <table_name>;
实例:drop table person;
注意:
- delete删除数据是一条一条的删除数据,后面可以添加where条件,不删除表结构。注意:如果表中有identity产生的自增id列,delete from后仍然从上次的数开始增加。
- truncate是一次性删掉所有数据,不删除表结构。注意:如果表中有identity产生的自增id列,truncate后,会恢复初始值。
- drop删除所有数据,会删除表结构。
二、oracle的查询操作
查询语法
SELECT [DISTINCT] <column1 [as new name] ,columns2,...> FROM <table1> [WHERE <条件>] [GROUP BY <column_list>] [HAVING <条件>] [ORDER BY <column_list> [ASC|DESC]]
1、查询所有列
实例:select * from emp;
2、查询所有的指定列
实例:select empno,ename from emp;
3、抑制数据重复(DISTINCT)
实例:select distinct job from emp;
4、空值查询:(not)null
实例:select * from emp where mgr is null;
5、范围查询
5.1、IN进行多个离散值查询
实例:select * from emp where empno in(7788,7369,7499);
5.2、BETWEEN..AND..查询某个范围内的数据
实例:select * from emp where sal between 1000 and 2000;
5.3、ANY修饰的查询
实例:select * from emp where sal>ANY(select sal from emp where deptno=30) and deptno<>30;
5.4、ALL修饰的查询
实例:select * from emp where sal>ALL(select sal from emp where deptno=30) and deptno<>30;
6、过滤查询
6.1、运算符过滤
实例:select * from emp where deptno=10 and sal>1000;
6.2、通配符过滤(LIKE)
实例:select * from emp where ename like '_C%';
7、分组查询
实例:select e.deptno, avg(e.sal) from emp e group by e.deptno having avg(e.sal)>2000;
注意:where是过滤分组前的数据,having是过滤分组后的数据;where必须在group by之前,having是在group by之后。
8、数据排序(asc、desc)
实例:select * from emp order by sal desc;
9、分页查询
rownum行号:当我们做select操作的时候,每查询出一行记录,就会在该行上加上一个行号,行号从1开始,依次递增,不能跳着走。
实例:select * from(select rownum rn, tt.* from(select * from emp order by sal desc) tt where rownum<11) where rn>5
注意:排序操作会影响rownum的顺序,rownum行号不能写上大于一个正数。