1、SQL语句数据检索

一、数据检索SQL语句

基本查询语句
select 列名1,列名2 from 表名;
查看表的所有信息:select * from 表名;
书写标准:
1、不区分大小写
2、可以换行
3、关键词不可以跨行或者分割书写
4、通常一个句子一行(排版可以增加可读性)
5、“;”代表结尾,结尾必须使用

算术表达式
+ add
- subtract
* multipt
/ divide
操作符优先级
括号,乘除,加减

空值:null value 表示不知道、不确定,不等于空白,未赋值而已(空值算术操作后仍然为空值)
NVL(comm,0)将空值赋予为0,可以进行运算
select ename, sal*12+nvl(comm,0)*12 as an_sal from emp;
NVL2 如果是null,则输出sal,如果有值则输出sal+comm
NVL2(comm,sal+comm,sal)
nullif(1,2)
如果两个值不同输出第一个数,
nullif(1,1)
如果相同输出空值
coalesce函数,输出第一个不为空的值
select coalesce(null,null,null,null,1)from dual;

条件表达式
case 没有一个逗号
select ename,job,sal
case job when 'CLERK' then 1.1*sal
when 'SALESMAN' then 1.2*sal
when 'MANAGER' then 1.5*sal
else sal end  as "revised_sal"
from emp;
当工作为职员时,薪水*1.1,当工作为销售时,薪水*1.2,工作为经理时,薪水*1.5,否则薪水不变

decode
select ename,job,sal,
decode(sal,'CLERK', 1.1*sal,'SALESMAN',1.2*sal,'MANAGER',1.5*sal;sal) as revised_sal
from emp;
当工作为职员时,薪水*1.1,当工作为销售时,薪水*1.2,工作为经理时,薪水*1.5,否则薪水不变 

列别名:defining a column alias 
1、重新命名标题,有利于查看
2、直接跟在列名后, 可以在列名跟别名之间加as增加可读性
3、如果别名中包含特殊字符,空格,区分大小写,需要用双引号引起来
select ename,sal,sal*12+comm as "nianxin" from emp;

连接运算符:concatenation operator
1、连接列和字符串,列和列,字符串和字符串
2、操作完成之后列是字符型
3、||
select ename || job as "employees" from emp;
将名字和工作两列连接在一起查看
字面字符串:
1、包括在select中的字符,数字和日期
2、字符日期类型必须使用单引号
select ename || ' is a ' ||  job as "employess" from emp;
如果其中包含特殊字符Oracle官方规定写法:
使用 || q'[ ]' || 来连接列,单引号转义字符
select ename || q'[ 's a]' || as "employess" from emp;

重复行:duplicate rows
1、查询时默认显示所有行,包括重复行
2、使用 distinct 来去除重复行
select distinct deptno from emp;
查看部门编号(去重复)

显示表的结构:display the table structure
1、desc 可以显示表的结构
desc emp;
查看emp表的表结构


 


 


 


 


 


 

猜你喜欢

转载自blog.csdn.net/weixin_43403578/article/details/89103798