--1.查询表中所有数据
select * from 表名;
--2.伪列rowid的使用
--数据库中的每一行都有一个行地址,ROWID伪列返回该行地址
--通常情况下, ROWID值可以唯一地标识数据库中的一行
select empid,empname,rowid from emp;
--3.伪列rownum的使用
--对于一个查询返回的每一行,伪列ROWNUM返回一个数值代表行的次序
--只能使用<或<=,不要使用>、>=、及=(特例=1)
--查询表中前 5 条记录
select empno,enpname from emp where rownum<=5;
--4.查询排序(order by 子句,默认为升序)
--语法:SELECT 列名1[,列名2…列名n] FROM 表名ORDER BY 表达式 [ASC|DESC]
--ASC:升序排列 DESC:降序排列
--从emp表中查询员工编号、员工姓名和员工工资,查询结果按工资从高到低排列.
select empno,enmpname,sal from emp order by sal desc;
--可以按照多个列进行排序,而且排序方式可以不同
select * from emp order by empno asc,sal desc;
--5.where 子句的使用
select * from emp where empno=5;
select * from emp where sal>3000;
--6.消除重复行 distinct 关键字
select distinct job,empno,ename from emp;
--以上三列都相同时才会有效果
--7.符合搜索条件
--WHERE子句中经常使用的逻辑运算符包括:NOT(非)、AND(与)、OR(或)
--8.between 。。。and。。。使用BETWEEN… AND…关键字可以方便的限制查询数据的范围
--语法:SELECT 列名1[,列名2…列名n]
FROM 表名
WHERE 表达式 [NOT] BETWEEN 表达式1 AND 表达式2
--9.模式匹配(模糊查询)like
--%(百分号) 表示从0~n个任意字符
-- _下划线) 表示单个的任意字符
--10.分页
--1)不排序情况下:
select from emp where rownum>=(当前页面-1)每页记录数+1 and rownum<=(当前页码每页记录数);
--2)排序,where条件限制之后分页
--首先将要排序或者要过滤的数据查询出来,作为一个虚拟表,然后再从这个虚拟表上查询数据进行rownum分页
select * from(select * from emp order by sal) where rownum>=1 and rownum<=3;
--11.聚合函数
--SUM(表达式) 返回表达式中所有数值的总和,忽略空值
--AVG(表达式) 返回表达式中所有数值的平均值,忽略空值
--MIN(表达式) 返回表达式中所有数值的最小值,忽略空值
--MAX(表达式) 返回表达式中所有数值的最大值,忽略空值
--COUNT(*|表达式) 返回满足SELECT语句中指定的条件的记录条数;为表达式时忽略空值
--12.分组查询
SELECT deptno, avg(sal), max(sal) FROM emp
GROUP BY deptno;
--13.having 子句
SELECT deptno, avg(sal) FROM emp
GROUP BY deptno
HAVING avg(sal)>2000;
--14.保存查询两种方法:
--1)将查询结果保存到一张新表中:
CREATE TABLE
AS
SELECT 语句
INSERT INTO emp1
SELECT * FROM emp WHERE deptno=20;
--2)将查询的结果保存到一个旧表(原来存在)中,也可以理解为是一个批量插入数据的命令
INSERT INTO target_table(column_list)
SELECT 语句