Oracle数据操纵语言

插入记录
INSERT INTO table_name (column1,column2,...) values (value1,value2,...);

示例:
insert into emp (empno,ename) values(9500,'aa');


把一个表中的数据插入到另一个表中
INSERT INTO <table_name> <SELECT 语句>
示例:
create table a as select * from emp where 1=2;
insert into a select * from emp where sal>2000;




查询记录

一般查询
SELECT [DISTINCT] <column1 [ as new name],column2,...> FROM <table> [WHERE <条件>] [ GROUP BY <column_list>] [HAVING <条件>] [ORDER BY <column_list> [ASC|DESC]]

DISTINCT-- 表示隐藏重复的行
WHERE --按照一定的条件查找记录
GROUP BY --分组的条件(需要汇总时使用)
HAVING --分组的条件
ORDER BY --对查询结果排序

要显示全部的列可以用* 表示
示例:
select * from emp;


WHERE 语句的运算符
where <条件1> AND<条件2> --两个条件都必须满足

where <条件1> OR<条件2> --满足其中一个以上即可

where NOT <条件> --不满足条件的记录

where IN (条件列表) --所有满足在条件列表中的记录
示例:
select * from emp where empno in(7788,7369,7499);


where BETWEEN ... AND .. --按照范围查找
示例:
select * from emp where sal between 1000 and 3000;

where 字段 LIKE --主要用与字符类型的字段
示例:
select * from emp where ename like '_C%' --查询姓名中第二个字母是'C'的人
'-' 表示任意字符;
'%' 表示多个字符的序列;


where 字段 IS [NOT] NULL --查找该字段是[不是]空的记录


汇总数据时用的函数

SUM  --求和
示例:
select deptno,sum(sal) as sumsal from emp GROUP BY deptno;

AVG  --求平均值
MAX  --求最大值
MIN  --求最小值
COUNT --求个数


子查询
select <字段列表>  from <table_naem> where 字段 运算符(<select 语句>);

示例:
select * from emp where sal=(select max(sal) from emp);

运算符
Any
示例:
select * from emp where sal>ANY(select sal from emp where deptno =30) and deptno<>30; --找出比deptno=30的员工最低工资高的其他部门的员工。


ALL
select * from  emp where sal> ALL(select sal from where deptno =30) and deptno<>30; --找出比deptno=30的员工最高工资高的其他部门的员工。



连接查询
select <字段列表> from <table1,table2> where table1.字段[(+)]=table2.字段[(+)]

示例:
select empno,ename,dname from emp,dept where emp.deptno=dept.deptno;



查询指定行数的数据

select <字段列表> from <table_name> where rownum <行数>;
示例:
select * from emp where rownum<=10; --查询前10记录
注意:ROWNUM只能为1 因此不能写 select * from emp where rownum between 20 and 30;

要查第几行的数据可以使用一下方法:
select * from emp where rownum<=3 and empno not in (select empno from emp where rowno<=3);
结果可以返回整个数据的3-6行;不过这种方法的性能不高。




更新数据
update table_name set column1 = new value,column2= new value,... where <条件>

示例
update emp set sal=1000,empno=8888 where ename='SCOTT'




删除数据
DELETE FROM <table_name>  WHERE <条件>

示例
delete from emp where empno='7788';

你可能感兴趣的:(oracle,C++,c,C#)