您的位置:首页 > 数据库 > Oracle

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

2012-08-02 19:19 323 查看
文章中都是在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;



4、Oracle的字符串连接操作

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

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;

5、NOT取反

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

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

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

通过括号表示一组条件。

6、BETWEEN…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';

7、IN操作符

值 IN(值1,值2,值3……)

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

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

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

8、NOTIN操作符

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

9、LIKE模糊查询

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表示降序。



[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: