2、Oracle中简单查询(SELECT) 、限定查询语句(WHERE子句) 、排序(ORDER BY)

文章中都是在scott用户下的表,下面列出scott中的emp表以供参考:

雇员表(emp)

No.

字段

类型

描述

1

EMPNO

NUMBER(4)

雇员编号

2

ENAME

VARCHAR2(10)

雇员姓名

3

JOB

VARCHAR2(9)

职位

4

MGR

NUMBER(4)

雇员上司编号

5

HIREDATE

DATE

雇佣日期

6

SAL

NUMBER(7,2)

月薪

7

COMM

NUMBER(7,2)

奖金

8

DEPTNO

NUMBER(2)

部门编号

一、简单查询语句

简单查询语句语法格式:

SELECT  *列名别名

FROM 表名称;

1、查询指定列

如果只需要查询员工的编号,姓名,职位,查询的SQL语句如下:

SELECT empno,ename,job FROM emp;

这样就可以查询指定列的信息了。

2、列的别名

如果想给列取一个别名,SQL应该这么写:

SELECT empno 编号 ,ename 姓名,job职位FROM emp;

3、使用DISTINCT消除所有的重复列

语法格式:SELECT DISTINCT  *列名别名 FROM表名称;

举例:查询消除了重复信息的职位

SELECT  DISTINCT  job职位 FROM emp;

4Oracle的字符串连接操作

使用“||”表示字符串连接,字符串则用“”括起来,例如:

SELECT '姓名为:'|| ename || '的编号是:' || empno || ',职位是:' || job FROM emp;

5、使用四则运算

查询中支持 +-*/的语句,所有的语句有先后顺序,就是我们小时候学过的啦,先乘除后加减。

假设查询每个员工的姓名和年薪,SQL如下:

SELECT ename 姓名, sal * 12 年薪 FROM emp;

别名建议使用英文名称

二、限定查询语句(WHERE子句)

限定查询语句的语法格式:

SELECT  *列名别名

FROM 表名称

WHERE 条件;

假设查询sal>2000的员工信息,SQL如下:

SELECT * FROM empWHERE sal>2000;

1、使用ISNOT NULL

假设查询奖金不为空的员工信息,SQL如下:

SELECT * FROM empWHERE comm IS NOT NULL;

2、使用IS NULL

假设查询奖金为空的员工信息,SQL如下:

SELECT * FROM empWHERE comm IS NULL;

3、使用AND操作符连接条件

假设查询工资大于1500,并且可以领取奖金的员工信息,SQL如下:

SELECT * FROM empWHERE sal>1500 AND comm IS NOT NULL;

4、使用OR操作符

假设查询工资大于1500,或者可以领取奖金的员工信息,SQL如下:

SELECT * FROM empWHERE sal>1500 OR comm IS NOT NULL;

5NOT取反

把真的条件变成假的,把假的条件变成真的。

假设查询工资不大于1500,并且不可以领取奖金的员工信息,SQL如下:

SELECT * FROM empWHERE NOT(sal>1500 AND comm IS NOT NULL);

通过括号表示一组条件。 

6BETWEEN…AND

查询工资大于1500,但是小于3000的员工信息

SELECT * FROM emp WHEREsal BETWEEN 1500 AND 3000;

注:BETWEEN … AND中包含了等于的功能,即查询大于1500,但是小于3000的信息,则是sal>=1500 and sal<=3000

BETWEEN … AND除了支持数字查询,也支持日期查询,查询用“”括起来,例如:

SELECT * FROM emp WHEREhiredate BETWEEN '22-2 -81' AND '09-6 -81';

7IN操作符

IN(1,2,3……)

例如:SELECT * FROM emp WHERE empno IN(7521,7566,7698);

如果是字符串,则添加“”括起来即可。

SELECT * FROM empWHERE ename IN('WARD','JONES'); 

8NOTIN操作符

SELECT* FROM emp WHERE ename NOT IN('WARD','JONES');

 9LIKE模糊查询

LIKE有两种主要的通配符

%”:可以匹配任意长度的内容

_”:可以匹配一个长度的内容

SQL举例:

SELECT * FROM empWHERE ename LIKE '_M%';

SELECT * FROM empWHERE ename LIKE '%M%';

10、不等于操作符(!= <>)

SELECT * FROM empWHERE empno != 7369;

SELECT * FROM empWHERE empno <> 7369;

三、排序(ORDERBY子句)

语法:

SELECT  *列名别名

FROM 表名称

WHERE 条件

ORDER BY排序字段1,排序字段2 ASC DESC

举例说明:

SELECT * FROM empWHERE ename LIKE '%M%'  ORDER BY empnoASC;

注:ASC表示升序,DESC表示降序。

 

你可能感兴趣的:(oracle)