Oracle的基本学习(二)—基本查询

一、基本查询语句


(1)查看当前用户

show user;

 

(2)查看当前用户下的表

select * from tab;

 

(3)查看员工表的结构

desc emp;

 

(4)选择全部列

SELECT * FROM emp;

image

 

(5)选择特定的列

SELECT empno,ename,sal,comm,deptno FROM emp;

image

 

(6)定义空值

a: 空值是无效的,未指定的,未知的的值。

b: 空值不是空格或者0.

c: 包含空值的数据表达式的值都是空值。

--空值不同于0,凡是空值参与运算的都是空值--
select employee_id,
       last_name,
       salary,
       commission_pct,
       salary * (1 + commission_pct)
  from employees;

image

 

改写后:

--nvl函数--
--格式: nvl(E1,E2)--
--解释: 如果E1为NULL,则函数返回E2,否则就返回E1。--
select employee_id,
       last_name,
       salary,
       commission_pct,
       salary * (1 + nvl(commission_pct,0))
  from employees;

image

 

(7)使用别名

a:在列名后直接写。

b:在列名和别名之间添加关键字As。

c:使用双引号。

--使用别名--
select employee_id id,
       last_name as name,
       12*salary "annual_sal"
from employees;

image

 

(8)删除重复行

--使用关键字"DISTINCT"删除重复行--
select distinct department_id 
from employees;

 

二、过滤和排序

(1)where子句

a:使用where子句,将不满足条件的行过滤掉。

b:where子句紧随from子句。

select employee_id,last_name,salary
from employees
where employee_id > 200;

image

 

(2)字符和日期

a:字符和日期要包含在单引号中。

b:字符大小写敏感,日期格式敏感。

c:默认日期格式是: DD-MM月-YYYY。

select employee_id, last_name, salary, hire_date
  from employees
 where hire_date='17-9月-1987';

 

这样写不方便,我们通常这样写:

select employee_id, last_name, salary, hire_date
  from employees
 where to_char(hire_date,'yyyy-mm-dd')='1987-09-17';

image

 

(3)比较运算

image

select employee_id, last_name, salary, hire_date
  from employees
 where salary >= 6000 and salary < 7000;

image

 

(4)between

     使用between运算来显示在一个区间内的值。

select employee_id, last_name, salary, hire_date
  from employees
 where salary between 6000 and 7000;

image

 

(5)in

     使用in运算显示列表中的值。

select employee_id, last_name, salary, department_id
  from employees
 where department_id in(70,80,90);

image

 

(6)LIKE

a: like选择类似的值。

b: "%"代表0个或多个字符。

c: "_"代表一个字符。

 select employee_id, last_name
  from employees
 where last_name like 'S%';

image

 

(7)null

     使用 is null判断空值。

 select employee_id, last_name,manager_id
  from employees
 where manager_id is null;

image

 

(8)逻辑运算

image

image

image

image

 

(9)order by

asc:升序

desc:降序

order by在select语句的结尾。

--desc:从高往低--
--asc:从低往高,默认--
--工资从低往高,如果相同再按名字排序--
select employee_id, department_id,last_name, salary
  from employees
 where department_id = 80
 order by salary asc,last_name asc;

image

posted @ 2016-08-05 20:15  ✈✈✈  阅读(377)  评论(0编辑  收藏  举报