Oracle 学习之 SQL(二) Restricting and Sorting Data
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,限制SELECT语句的返回行语法:使用WHERE关键字来限制数据行的返回,WHERE子句跟在FROM子句的后面。SQL> select * from emp where deptno=10;
千家信息网最后更新 2025年11月11日Oracle 学习之 SQL(二) Restricting and Sorting Data
限制SELECT语句的返回行
语法:
使用WHERE关键字来限制数据行的返回,WHERE子句跟在FROM子句的后面。
SQL> select * from emp where deptno=10; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7782 CLARK MANAGER 7839 1981/06/09 00:00:00 2450 10 7839 KING PRESIDENT 1981/11/17 00:00:00 5000 10 7934 MILLER CLERK 7782 1982/01/23 00:00:00 1300 10
当WHERE后面的表达式为true时,则返回行,否则跳过改行。
SQL> select * from emp where ename='KING'; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7839 KING PRESIDENT 1981/11/17 00:00:00 5000 10
字符串是大小写敏感的
SQL> select * from emp where ename='king';no rows selected
条件表达式支持的比较操作符有如下
SQL> select * from emp where sal<2000; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20 7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30 7521 WARD SALESMAN 7698 1981/02/22 00:00:00 1250 500 30 7654 MARTIN SALESMAN 7698 1981/09/28 00:00:00 1250 1400 30 7844 TURNER SALESMAN 7698 1981/09/08 00:00:00 1500 0 30 7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20 7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30 7934 MILLER CLERK 7782 1982/01/23 00:00:00 1300 10
BETWEEN AND 只要值在这个范围内,就返回值
SQL> select * from emp where sal between 1500 and 2000; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30 7844 TURNER SALESMAN 7698 1981/09/08 00:00:00 1500 0 30
IN 只要列的值出现在列表中即返回行
SQL> SELECT * FROM EMP WHERE ENAME IN ('SMITH','KING');
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20
7839 KING PRESIDENT 1981/11/17 00:00:00 5000 10
LIKE 模糊查询
查询所有姓名以S开头的人
SQL> select * from emp where ename like 'S%'; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20 7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20
% 通配符,表示0或多个任意字符
查询所有姓名包含S的人
SQL> select * from emp where ename like '%S%'; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20 7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20 7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20 7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20 7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30
_ 通配符表示任意一个字符
查询名字的第二个字符为O的人
SQL> select * from emp where ename like '_O%'; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20 7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20
如果列的值本身就包含%或_字符呢? 用escape关键字转义。
查询名字中含有_的人
SQL> select * from emp where ename like '%\_%' escape '\';no rows selected
过滤NULL值
过滤NULL值不能使用= <>来查询,null有一个专有的判断条件 IS NULL
SQL> SELECT * FROM EMP WHERE COMM IS NULL; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20 7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20 7698 BLAKE MANAGER 7839 1981/05/01 00:00:00 2850 30 7782 CLARK MANAGER 7839 1981/06/09 00:00:00 2450 10 7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20 7839 KING PRESIDENT 1981/11/17 00:00:00 5000 10 7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20 7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30 7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20 7934 MILLER CLERK 7782 1982/01/23 00:00:00 1300 10
查询
字符
关键
关键字
名字
姓名
子句
条件
表达式
通配符
限制
多个
大小
字符串
开头
操作符
数据
范围
语句
语法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
todesk提示无法连接服务器
数据库应用中镜像技术
服务器搭建虚拟专线
软件开发完结报告
潮汕正规软件开发费用
网络安全组网方案
erp软件开发诚信企业推荐
西安互联网科技大学
tbc怀旧服改名要更换服务器吗
网络技术措施使用管理规定
软件开发的需求分析阶段目标是
dbc数据库怎么扩张
终端在网络技术中什么意思
一个数据表只能有一个数据库
网络安全测评数据库
汉阴防范网络安全风险
医共体网络安全工作会议
路北区企业网络技术服务至上
嘉定区工商软件开发售后保障
万州网络安全中心
杨浦区咨询软件开发优势
色彩提取类软件开发
asp 写入数据库
中兴网络技术工程师要外派
网络安全法第二十一条怎么处罚
北京软件开发驻场靠谱吗
成都工业软件开发价钱是多少
传奇云服务器租用多少钱
网易云数据库失败
找软件开发干私活的