SELECT 列控制 WHERE 行控制
①确定数据来源 FROM 表名称[别名]
②确定满足条件的数据行 [WHERE 过滤条件(s)]
③控制要显示的数据列 SELECT[DISTINCT]*|列名称[别名]
*关系运算符:>,<,>=,<=,!=(<>)
*逻辑运算符:AND,OR,NOT
*范围运算符:BETWEEN…AND;
*谓词范围:IN,NOT IN;
*空判断:IS NULL ,IS NOT NULL;
*模糊查询:LIKE
范例:要求查询出所有基本工资高于1500的雇员信息
SELECT *
FROM emp
WHERE sal>1500;
在ORACLE数据库当中,所有数据区分大小写,所有的运算符的可以不区分数据类型。
SELECT empno,ename,job FROM emp WHERE job!=’SALESMAN’;(<>=!=)
添加权限你用的c##scott用户没有对应的权限吧, 最简单的
以sysdba登陆
grant dba to c##scott;
条件查询进行数据过滤的时候针对某一个范围进行过滤,BETWEEN最小值(数字,日期)AND最大值。
这个查询只需要匹配一个条件
1981-01-01:‘01-1月-81’,’01-1月-1981’;
字符串也可以但是意义不大。
空判断空在数据库上解释为不确定的内容。需要注意在数字列上使用null那么绝对不表示0。
IN操作符
SELECT * FROM emp WHERE comm IS NOT NULL;
SET LINESIZE 300;
SET PAGESIZE 30;
SELECT * FROM emp WHERE NOT comm IS NULL;
SELECT * FROM emp WHERE empno = 7369 OR empno = 7566 OR empno =7788 OR empno =9999;
SELECT * FROM emp WHERE empno IN(7369,7566,7788,9999);
SELECT * FROM emp WHERE empno NOT IN(7369,7566,7788,9999);
SELECT * FROM emp WHERE empno NOT IN(7369,7566,7788,null);
SELECT * FROM emp WHERE empno IN(7369,7566,7788,null);
注意NOT IN NULL 代表着不在NULL里面,null任意,则选中全部。
LIKE 模糊查询在使用LIKE时可以使用两个通配符
SELECT * FROM emp WHERE ENAME LIKE ‘A%’;
SELECT * FROM emp WHERE ENAME LIKE ‘_A%’;
SELECT * FROM emp WHERE ENAME LIKE ‘%’;
1.”_”匹配一位字符
2.”%”匹配0,1,或多位字符
LIKE 可以应用于各个数据类型上,不一定非要是字符串。
不设置条件。则查询全部
**总结**WHERE字句一般都在FROM字句之后
WHERE字句控制显示行,SELECT字句控制显示列,其在WHERE字句之后执行,所以在SELECT字句之中定义别名,WHERE无法使用
SQL限定查询
最新推荐文章于 2022-03-20 18:42:45 发布