02Oracle数据查询(一)

1.数据库基本概念

  • Data(数据):是指对人们有用的信息
  • DataBase(DB,数据库):数据的仓库
  • DBMS:数据库管理系统(用来管理数据的一个软件)
  • RDBMS:关系型数据管理系统
  • ORDBMS:对象关系型数据管理系统
  • 表、关系、二维表
  • 行、记录、元组
  • 列、字段、属性
  • 数据项、数据单元

SQL概述:

  SQL(Structured query language) 结构化查询语言,主要作用是用于操作关系型数据库的,分类如下:

  • 数据查询语言 DQL---select  用于查询数据
  • 数据操作语言 DML---insert、update、delete、merge(用于合并行),主要用于操作行
  • 数据定义语言DDL---create、drop、alert、truncate(剪短)、rename、comment(为表和列来添加注释),主要用于操作数据库对象(表、视图等)
  • 数据控制语言DCL---grant(允许访问)、revoke(撤销访问),主要用于控制操作对数据和数据对象的访问
  • 事务控制语言TCL---commit、rollback、savepoint,主要作用是确认对数据修改、提交、回滚(取消对数据修改)、定义保存点(可以定义事务回滚到某一个点),对事务进行控制

2.SELECT 基本查询

  DQL数据查询语句,主要作用是用于查询数据(行、列、多表数据查询)

  select  * from table_name

  select [distinct] col_name|表达式[[as] col_alias],...from table_name  where 条件 order by

    主要作用是我们可以查询具体的某一列、某个表达式的值或者是通过列别名来标识这个列、表达式

  • 比较运算符: >,>=,<,<=,=,<>,!=,^=
  • 特殊运算符:[not]between... and,[not] like,[not] in,is[not] null 
  • 多个条件,可以使用NOT、OR、AND连接
  • 字符与日期需要使用单引号定界,字符是大小写敏感,日期是格式敏感
  • OEDER BY 用来对数据进行排序。ASC升序,DESC 降序,默认null值是最大的  order by col1 desc,col2  首先按照col1倒叙,col1值相同时,按照col2升序排序

3.单行函数

  • 函数概念、分类

    函数:具有某种功能的程序块,通常包括输入端和输出端

    单行函数:接受一个数据、输出一个数据

    多行函数:聚合函数,分组函数。接受一组数据,输出一个数据

  • 常见字符函数
    • 大小写相关:lower upper initcap

      例如:

        lower:所有字母小写

        upper:所有字母大写

        initcap:所有单词首字母大写

      

    • 其他:trim,ltrim,rtrim,lpad,rpad,instr,substr,length,concat,replace

      例如:

      trim:首尾去除,格式 trim('H' from 'HelloHH');

      ltrim:首去除,格式 ltrim('HelloHH','H')

      rtrim:尾去除,格式 rtrim('HelloHH','H')

      

      lpad:左补齐,格式: lpad(1000,8,'*') ---1000是四位,需要在1000的左侧用“”补齐至八位,结果是****1000

      rpad:右补齐,格式:rpad(1000,8,'*');

      

      instr:查找字符在字符串中的位置,格式:instr('hello miss','miss'),结果是7

      

      substr:截取字符串,格式: substr('hello',2,3) 代表对helloweb从第二位截取3位长度

      

      length:字符串的长度,格式: length('hello')

      

      concat:连接两个字符串,格式 concat('hello',',java')

      

      replace: 替换字符串,格式:replace('hello','l','i')

      

  • 常见数值函数

    round:四舍五入

    

    trunc:去尾

    

    mod:取模

    

  • 常见日期函数

    可以在日期数据上直接加减数值,该数值表示日期前后的天数

    1)两天前                                    2)两小时前

                           

    SYSDATE:获取系统当前日期

    MONTHS_BETWEEN:获取另个日期之间相差的月数

    

    ADD_MONTH:获取几个月后的日期(例如三个月后)

    

    LAST_DAY:获取本月的最后一天日期

    

    EXTRACT:从日期中获取某一部分的值

    

  • 常见转换函数  

  to_char:将数值或日期转换成指定格式的字符

  日期:  

    年:year,YYYY,YY

    月:month,mon,mm

    日:DD

    星期:Day, Dy,D

    小时:HH24,HH

    分钟: mm

    秒:ss

    

  数值:

    L:显示本地货币符号

    &:直接显示

    9:表示数值

    0:表示数值,不够位数会强制占位

    

  to_date:将指定格式字符转换成日期

  

  to_number:将指定格式字符转换成数值

  

  • 其他函数

   空值转换函数

   nvl:查询字段为空值,则空值转换,格式:nvl(t.col,value)

    

   nvl2:查询字段为不为空值,则赋值v1,空值则赋值v2,格式:nvl2(t.col,v1,v2)

   

   nullif:如果两个值相等,则返回空,否则返回v1,格式:nullif(v1,v2)

     

  条件分支函数

  case:

  

  decode,格式decode(t.col,case1,v1,case2,v2,...vn)

      

4.聚合函数和数据分组

  常用聚合函数

  max:最大值,可以定义在字符、数值、日期类型数据上

  min:最小值,可以定义在字符、数值、日期类型数据上

  sum:求和,可以定义在数值数据类型上

  avg:求平均数,可以定义在数值数据类型上

  count:计数,统计表达式值不为空的行数

  数据分组:

  group by:根据指定的列进行分组统计

  

  having:限定显示分组后的数据

  

分组查询数据说明:

  在select 查询列中,所有未分组列都需要出现在group by 子句中

 

  SELECT

  COL,

  ...

  FROM table

  WHERE

  t1...

  GROUP BY ...

  HAVING .....................................................................................................................

  t2...

  ORDER BY ...

 

posted @ 2016-01-07 14:33  行者_2014  阅读(288)  评论(0编辑  收藏  举报