2、Oracle中简单查询(SELECT) 、限定查询语句(WHERE子句) 、排序(ORDER BY)
2012-08-02 19:19
323 查看
文章中都是在scott用户下的表,下面列出scott中的emp表以供参考:
雇员表(emp)
一、简单查询语句
简单查询语句语法格式:
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]
雇员表(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]
相关文章推荐
- Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
- Day51、数据库、远程连接服务器、查询select语句、form字句、where字句、order by 子句
- Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
- Oracle Where查询语句与排序语句
- Oracle select --lnnvl用于某个语句的where子句中的条件
- Oracle笔记(四) 简单查询、限定查询、数据的排序
- Oracle编写简单的查询语句,以及限制数据和对数据的排序
- Oracle笔记简单查询、限定查询、数据的排序
- oracle查询语句中select from where group by having order by的解释与应用
- Oracle笔记(四) 简单查询、限定查询、数据的排序
- Oracle Where查询语句与排序语句
- 关于sql视图--定义视图的查询不能包含order by子句,除非在select 语句的选择列表中还有top子句---问题解决
- Oracle基础知识笔记(4) 简单查询、限定查询、数据的排序
- Oracle Where查询语句与排序语句
- 常见oracle 限定查询指令(where 子句)
- Oracle Where查询语句与排序语句
- Oracle记录(四) 简单查询、限定查询、数据的排序
- oracle查询语句中select from where group by having order by的解释与应用
- oracle 简单查询,限定查询及排序
- Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句