Oracle 学习之 SQL(二) Restricting and Sorting Data
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,限制SELECT语句的返回行语法:使用WHERE关键字来限制数据行的返回,WHERE子句跟在FROM子句的后面。SQL> select * from emp where deptno=10;
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
游戏服务器一直正在维护
学校网络安全应急预案会议
服务器双电源对电脑有影响吗
怎么参加网络安全知识竞赛
服务器如何中病毒防护
数据库2000个人版安装
优秀网络安全教育活动
分布式数据库认证考试
苏州吴江警方维护网络安全稳定
先设计页面数据库
考计算机网络技术
广东pdu服务器专用电源多少钱
螺旋模型适合什么软件开发
电脑数据库坏了重新做系统怎么做
没有网络安全就没有人民安全
服务器内存条和普通内存条外观
世界上网络技术最发达的国家
棉花snp数据库
网络安全检测工作方案
北京陆机科技微客谷互联网
网络安全面临的各种问题
服务器的集群管理软件
来安进口软件开发技术哪家好
网络安全法实践应用与思考
网络企业的服务器
海南鲲鹏服务器代理商
网络技术团队管理
建筑业数据库统计
学软件开发哪所职校
hp服务器收集日志