Oracle学习之SELECT语句,过滤排序(一)

本文介绍了Oracle数据库中的SELECT语句基础,包括如何查看表信息和列,使用WHERE子句进行过滤,运用比较和逻辑运算符,以及如何进行排序。重点讲解了WHERE子句中的日期查询、比较运算符的使用,以及ORDER BY子句实现升序和降序排序。

一.基本SQL-SELECT语句

  • 查看表信息

    select * from emp;
    
  • 查看表中的列

    desc emp;
    

    desc 是SQL Plus关键字,不是SQL关键字

  • 查看表中的某列

     select employee_id from emp;
    
  • 运算符

    select 2*2 from dual;	# 没有表是可用dual伪表代替
    select last_name,salary,12*salary+1000 from emp;
    
    select sysdate,sysdate+1,sysdate-2 from dual;	#日期函数只能做+,-
    
  • 取别名

  1. 空格

    select employee_id id from emp;
    
  2. as

    select employee_id as id,last_name as name,12*salary as annual_sal from emp;`
    
  3. “”

    select employee_id as "Id",last_name as “NamE”,12*salary as “annual_sal” from emp; 
    

    别名默认大写,如果想小写或其他格式,使用""

  • 连接符

    select last_name||' is job_id is '|| job_id from emp; 
    

    除了起别名用双引号 除此以外都用单引号

  • 去重

     select distinct department_id from emp; 
    

二. 过滤

2.1 where

#查询department_id = 90
select salary from employees where department_id = 90;
  • 查询日期
#方法一
select employee_id,salary from employees where hire_date = '7-6月-1994'; 
#方法二 推荐使用方法二
select last_name,hire_date from employees where to_char(hire_date,'yyyy-mm-dd') = '1994-06-07'; 

2.2 比较运算符

比较运算

操作符含义
=等于
>大于
<小于
>=小于等于
<=大于等于
<>或!=不等于
between…and…在两个值之间(包含边界)
in等于值列表中的一个
like模糊查询
is null空值
#查询小于等于 4000和不等于7000的值
select last_name from employees where salary>= 4000 and salary != 7000;
#查询在4000和7000之间的值
select last_name from employees where salary between 4000 and 7000;
#查询等于70,80,90的值
select last_name,salary,department_id from employees where department_id in (70,80,90);
#查询last_name 含有a的值
select last_name from employees where last_name like '%a%';
#查询last_name第二位是a的值
select last_name from employees where last_name like '_a%';
#查询last_name 含有下划线的值
select last_name from employees where last_name like%\_%escape '\';

escape :回避特殊符号的:使用转义符

#查询为空的值
select last_name from employees where commission_pct is null;

2.3 逻辑运算符

逻辑运算

操作符含义
and
or
not
#查询department_id=80并且salary <= 8000
 select last_name,salary,department_id from employees where department_id and salary <= 8000;
#查询salary=7500或者<= 8000
 select last_name,salary,department_id from employees where salary=7500  or salary <= 8000; 
#查询不为空的值
select last_name from employees where commission_pct is not null;

三. 排序

  • 从高往低排desc
select last_name,salary from employees where department_id=80 order by salary desc;
  • 从低往高排asc
select last_name,salary from employees where department_id=80 order by salary asc;
  • 多层排序
select last_name,salary,department_id from employees order by salary desc,last_name asc;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值