代码改变世界

oracle基本查询

2018-04-09 00:44  猪牙哥  阅读(411)  评论(0编辑  收藏  举报

用cmd访问oracle

  sqlplus 用户名/密码@ip地址:1521/数据库名

  比如  sqlplus scott/tiger@192.168.186.128:1521/orcl

Select语句的语法格式和实例

  select * | {[DISTINCT] column | expression [alias] , ... } from table;

1、查询语法

  select * | 列名 from 表名

  

  

2、别名用法

  在查询的结果列中可以使用别名

  select 列名 as "别名",列名 as "别名" ... from 表名;

   别名中,有没有双引号的区别就在于别名中有没有特殊的符号或者关键字,以及as可以省略,推荐写全和加双引号,以免遇到双引号

   

3、消除重复的数据

  select distinct * | 列名 , ... from emp;

  

  使用distinct可以消除重复的行,如果查询多列的必须保证多列都重复才能去掉重复

4、查询中四则运算

   查询每个员工的年收入(年薪+奖金)

  select ename,sal,comm,sal*12+comm as "年收入" from emp;

   

  上面我们发现奖金为null,年收入也跟着为null,所以我们的sql语句写错,那么问题出现在哪里了呢?其实这里牵扯到空值的问题

  什么是空值?

    空值是无效的,未指定的,未知的或不可预知的值

    空值不是空格或者0

    注意:包含null的表达式都为null

          空值永远不等于空值

  所以上面的sql语句要进行非空处理,非空处理函数有两个nvl和nvl2,这里我们用nvl(参数1,参数2),当参数1为null,就用参数2的值

  select ename,sal,comm,sal*12+nvl(comm,0) as "年收入" from emp;

  

  连接符 ||

  字符串连接查询

  查询员工的编号,姓名,和薪水

  编号是:xxxx(编号)的xxxx(姓名)员工月薪为xxxx(薪水)

  select '编号是' || empno || '的' || ename || '员工月薪为' || sal as "描述" from emp;

  

  注意:连接符 || 连接字符串的时候一定要用单引号,别名一定要用双引号