Oracle速查语法:DDL(数据操纵语言)

+目录

  • 插入记录
  • 查询记录
  • 更新数据
  • 删除数据

.

插入记录

INSERT INTO table_name (column1,column2,...)
values ( value1,value2, ...); 

示例

insert into emp (empno,ename) values(9500,'AA');

把 一个表中的数据插入另一个表中

INSERT INTO  <SELECT 语句>

示例

create table a as select * from emp where 1=2;
insert into a select * from emp where sal>2000;

.

查询记录

一般查询

SELECT [DISTINCT] as new name] ,columns2,...> 
FROM 
[WHERE <条件>]
[GROUP BY ]
[HAVING <条件>]
[ORDER BY  [ASC|DESC]] 
DISTINCT --表示隐藏重复的行
WHERE --按照一定的条件查找记录
GROUP BY --分组查找(需要汇总时使用)
HAVING --分组的条件
ORDER BY --对查询结果排序

要显示全部的列可以用*表示
示例:

select * from emp;

WHERE 语句的运算符

where <条件1>AND<条件2> --两个条件都满足

示例:

select * from emp where deptno=10 and sal>1000;

where <条件1>OR<条件2> –两个条件中有一个满足即可

示例:

select * from emp where deptno=10 OR sal>2000; 

where NOT <条件> –不满足条件的

示例:

select * from emp where not deptno=10;

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 –主要用与字符类型的字段

示例1:

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  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 emp where deptno=30) and deptno<>30;

找出比deptno=30的员工最高工资高的其他部门的员工

连接查询

SELECT <字段列表> from  WHERE table1.字段[(+)]=table2.字段[(+)]

示例

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

查询指定行数的数据

SELECT <字段列表> from  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 rownum<=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 
WHERE <条件>

示例

delete from emp where empno='7788' 

你可能感兴趣的:(数据库基础,oracle)