Oracle 检索数据(查询数据select语句)

Posted niujifei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 检索数据(查询数据select语句)相关的知识,希望对你有一定的参考价值。

  用户对表或视图最常进行的操作就是检索数据,检索数据可以通过 select 语句来实现,该语句由多个子句组成,通过这些子句完成筛选、投影和连接等各种数据操作,最终得到想要的结果。

语法:

  select { [ distinct | all ]  columns | * }

  [ into table_name ]

  from { tables | views | other select }

  [ where  conditions]

  [ group by columns ]

  [ having conditions ]

  [ order by columns ]

  •  select子句 :用于选择数据表、视图中的列
  •  into 子句:用于将原表的结构和数据插入新表中
  •  from 子句:用于指定数据来源,包括表,视图和其他select 语句。
  •  where 子句:用于检索的数据进行筛选
  •  group by 子句:用于检索结果进行分组显示
  •  having 子句:用于从使用group by子句分组后的查询结果中筛选数据行
  •  order by 子句:用来对结果集进行排序(包括升序和降序)

一、简单查询

  只包含select 子句和 from 子句的查询就是简单查询,同时也是select语句的必选项。

  select 子句用于选择想要在查询结果中显示的列,这些列可以用列名来表示,也可以使用星号(*)来表示。查询数据时,数据将按照select 子句后面指定的列名顺序来显示;如果使用星号,则表示查询所有的列,这时候按照表结构的自然顺序来显示。

  1、检索所有的列

  如果想要检索知道数据表的所有列,在select 子句后面加星号来实现。

  语法 select *  from  table_name;              

    注意:a、检索数据表需要注意是否属于该模式,如果是模式内部检索数据,直接使用表名;

         b、如果不在指定表所属的模式内部检索数据,不仅要查看当前模式是否具有查询的权限,而且还要在表名前面驾驶所属的模式名称

        c、 form 后面可以跟多个表名,每个表名直接用逗号隔开即可

  2、检索指定的列

  如果想要显示指定的列而不是全部的列,并且被指定列的顺序不受限制,指定部分列也称为投影操作。需要把所显示的列紧跟在select 关键字后面,每个列名用逗号隔开。

  语法:select  column_name1,column_name2,column_name3...  from  table_name;            

  3、带有表达式的select 子句

  在使用select 语句时,对于数字数据和日期数据都可以使用算数表达式,可以使用算数运算法,包括加、减、乘、除和括号操作。不仅可以执行单独数学运算,还可以执行单独的日期运算以及与列名关联的运算。

  语法select salary*(1+0.1,sal  from  emp;                                      

  4、为列指定列名

  为了方便查看查询结果,可以为需要的列名指定别名。在 Oracle 系统中,可以使用as 关键字来指定别名,也可以什么也不用直接指定。

  语法 select empno  as  "员工编号",ename   "员工名称"    from  emp;                 

  5、显示不重复记录

  在默认情况下,结果集中包含所有符合查询条件的数据行,这样就可能出现重复的数据。在实际应用中,重复的数据可能不会带来太多的价值,需要去掉重复的记录,保留唯一记录即可。使用 distinct 即可实现。

  语法 select distince  job  from  emp;                               

二、筛选查询

  

三、分组查询

四、排序查询

五、多表关联查询

以上是关于Oracle 检索数据(查询数据select语句)的主要内容,如果未能解决你的问题,请参考以下文章

Oracle OCP提纲

【SQL语句】-分页查询limit的用法

Oracle学习笔记—— 游标

Oracle的select检索数据

Oracle 基础查询

oracle 数据库 索引 全文索引