[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';
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';