Oracle查询(一)

1.普通查询

  • 具有dba权限的用户可以查看其他用户的表:
    select <字段>.... from .;
  • 排除重复字段的记录
    select distinct <字段名> from ;
  • 别名
    select <字段名> [as] <别名> from ;
    别名不要加单引号',可以加双引号"
  • 连接符||
    在字段名前或后加连接符||,再加要连接的符号
    select ename as 姓名,sal || '元' as 薪水 from scott.emp;
    select ename as 姓名,'$' ||sal as 薪水 from scott.emp;
  • 算术运算符:
  • +:加
  • -:减
  • *:乘
  • /:除
  • mod(数1,数2):数1被数2除以后的的御书
  • 条件运算符:
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
  • !=:不等于
  • <>:不等于
  • 逻辑运算符(优先级:not > and > or):
  • and:与。可用来连接两个条件判断式
  • or:或。可用来连接两个条件判断式
  • is null:为null
  • is not null:非null
  • 范围查询:
  • between <数1> and <数2>:值的范围在两个数之间(包含两数)
  • in (数1,数2,...):值在列出的数之中
  • like:匹配like后列出的字符串
    • _:代表任意一个字符
    • %:代表所有字符
  • 排序:
  • order by [desc|asc],[ [desc|asc],....]:按照某个字段进行排列。desc表示降序(默认),asc表示升序
  • 后面可以跟多个字段,先按前面的字段进行排序;若前面字段一样,再按后面的字段进行排序

2.函数查询

2.1字符函数

1.大小写转换:

  • lower(‘str’):转为小写
  • upper(‘str’):转为大写
  • 如何测试:select lower(str) from dual;
    2.首字母大写:
  • initcap(str)
    3.字符控制函数:
  • concat(str1,str2):拼接str1和str2两个字符串在一起
  • substr(str,num_start,count):将字符串str从num_start位开始截取count个字符
  • length(str):str中字符的个数
  • instr(str1,str2):若str2不在str1中,则返回0;否则返回str2在str1中最起始的位置。如:instr('nin您好','您') 返回4
  • lpad(str,num,character):若str的字符个数小于num,则用character填充在str的左边直到个数为num。若str的字符个数大于num,则从左边起返回num个字符
  • rpad(str,num,character):若str的字符个数小于num,则用character填充在str的右边直到个数为num。若str的字符个数大于num,则从左边起返回num个字符
  • trim(str):去除str两边的空格
  • ltrim(str):去除str左边的空格
  • rtrim(str):去除str右边的空格
  • replace(str,src_str,replace_str):用replace_str替换str中的src_str字符串

2.2数值函数

  • round(number):四舍五入为整数
  • round(number,count):小数点后保留count位,有四舍五入
  • trunc(number):保留整数
  • trunc(number,count):小数点后保留count位,直接截取没有四舍五入
  • mod(num1,num2):num1被num2除后的余数

2.3日期函数

  • sysdate:查看当前日期
  • months_between(date1,date2):date2距离date1过去多少个月
  • add_months(date1,count_of_month):返回date1过去count_of_month个月后的日期
  • next_day(date1,星期[一|二|...]):据date1后第一个星期X的日期

注:改变会话的字符集为简体中文alter session set nls_lanuage='simplified chinese'

  • last_day(date):返回当前日期月份的最后一天
  • round(date,['year'|'month']):按年|月对date进行四舍五入。若date中的月份>=7则入为下年的1月1日;若date中天份>=16则入为下月的1日
  • trunc(date,['year'|'month']:直接按年|月对date进行截取,截取为每年的第一天,或每月的第一天

2.4转化函数

  • to_char(number):转换为字符串
  • to_number(str):转换为数值

2.5通用函数

  • nvl(str,expression):若str为空,则返回expression;否则返回空
  • nvl2(str,expression1,expression2):若str不为空,则返回expression1;否则返回expression2
  • nullif(expression1,expression2):若两个算式相同则返回null;否则返回expression1
  • coalesce(expr1,expr2,...,exprn):返回第一个不为null的expr

2.6case when和decode()

  • case when:
  • 第一种:
select case 
    when '' then 
    when '' then 
    when '' then 
else  end 
from ;
  • 第二种:
select case 
    when  then 
    when  then 
    when  then 
else  end 
from ;
  • decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    …
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

2.7分组函数

  • avg():平均
  • sum():总和
  • max():最小
  • min():最大
  • count():统计次数,会忽略空值。
  • wm_concat():将多行记录拼接为一个记录

参考资料:https://www.cnblogs.com/ZHF/archive/2008/09/12/1289619.html
原文: http://blog.isdevil.com/cjerrybird/2019/02/oracle查询.html

你可能感兴趣的:(Oracle)