Oracle数据操纵语言

[b]插入记录[/b]
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;


[b]查询记录[/b]

一般查询
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;


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

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

where [b]NOT[/b] <条件> --不满足条件的记录

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


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

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


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


[b]汇总数据时用的函数[/b]

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

[b]AVG[/b] --求平均值
[b]MAX[/b] --求最大值
[b]MIN[/b] --求最小值
[b]COUNT[/b] --求个数


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

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

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


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


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

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


[b]查询指定行数的数据[/b]

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行;不过这种方法的性能不高。


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

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


[b]删除数据[/b]
DELETE FROM <table_name> WHERE <条件>

示例
delete from emp where empno='7788';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值