Oracle 基础之二

限定查询

运行三:SELECT [ ] *|列名称 【列】,列名称【列】,…
运行一:FROM 表名称 [别名]
运行二:WHERE 过滤条件…

限定符号:

  • 关系运算符:>、<、>=、<=、<>、(!=)
  • 逻辑运算符:AND、OR、NOT
  • 范围运算符:BETWEEN…AND
  • 谓词范围:IN、NOT IN
  • 空判断:IS NULL、IS NOT NULL
  • 模糊查询:LIKE

操作:

关系运算符:

查询工资大于2000的人员:

SELECT * 
FROM emp
WHERE sal>2000;

查询ALLEN的信息

SECELT *
FROM emp
WHERE ENAME = 'ALLEN'

ALLEN 因为是内容,所以需要大小写区分;

SELECT *
FROM EMP
WHERE SAL=3000

3000不需要带引号

SELECT  empno,ename,job
FROM emp
WHERE job !='SALESMAN';

查找职位不是销售人员的雇员编码,姓名和职位
方法2

SELECT  empno,ename,job
FROM emp
WHERE job <>'SALESMAN';

逻辑运算符:

查询工资在2000到3000的雇员信息

SELECT
FROM EMP
WHERE SAL>2000 AND SAL<3000;

查询工资大于2000或者职位是办事员的所有雇员信息
条件一:工资大于2000,SAL>2000
条件二:职位是办事员JOB=‘CLERK’
关系:其中之一,OR

SELECT *
FROM EMP
WHERE SAL>2000 OR JOB ='CLERK';

二者一样:

SELECT * FROM EMP WHERE NOT SAL>=2000;
SELECT * FROM EMP WHERE  SAL<2000;

BETWEEN 最小值(日期,数字)ADN 最大值 备注:最大值最小值都包含的
二者一样下面但是第二种比第一种优化:

SELECT * FROM EMP WHERE  SAL>=2000 AND SAL <=3000;
SELECT * FROM EMP WHERE SAL BETWEEN 2000 AND 3000;

日期格式:1981-12-31,为第一种’31-12月-81’,‘31-12月-1981’

空判断

SELECT * FROM EMP WHERE COMM IS NOT NULL; 代表领取佣金的人员信息
SELECT * FROM EMP WHERE NOT COMM IS NULL; 跟上面一样

IN操作符

in操作符类似于BETWEEN …AND …给的是大范围,但是in是小范围的

between 1 and 4,,意思是1-4的范围
in (1,3),代表取1,3的值
指定查询的时候用IN是最简短的

SELECT * FROM EMP WHERE EMPNO NOT IN (7369,7566,7788,9999);
SELECT * FROM EMP WHERE NOT EMPNO IN (7369,7566,7788,9999);

注意

关于NOT IN 与 NULL的问题
在使用NOT IN 进行范围判断的时候,如果范围里面包含有null,那么不能使用
例如:使用IN操作做包含null—没有任何影响
select FROM EMP WHERE EMPNO IN (7369,7566,7788,NULL)

但是使用NOT IN的操作中包含null;
SELECT *FROM EMP WHERE EMPNO NOT IN (7369,7566,7788,NULL)
使用NOT IN NULL的时候相当于查询了所有的数据,数据量大基本服务器崩盘了。
不知道就去学习集合理论

模糊查询LIKE

使用like的时候可以使用二个通配符

  • “_”匹配一个字符串或者是数字
  • “%”,匹配任意字符的零位,一位或者多位的字符串或者是数字
    例如:
    select *from emp ename LIKE ’%A%‘,意思查询里面有A的信息
    select *from emp ename LIKE ’_A%‘,意思查询里面第二位是A的信息
    如果是直接LIKE’%%’,这个查询与直接不用where like语句相对比,是不使用where like更加优化!!

总结

  • where 字句一般都写在from字句后面,但是紧跟着FROM字句之后执行
  • where 字句控制显示的数据行的操作,而select字句控制着显示数据列的操作
  • select字句要落后于where字句,所以select字句之中定义的别名,无法在where字句里面使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值