1.普通查询
- 具有dba权限的用户可以查看其他用户的表:
select <字段>.... from <user_name>.<table_name>;
- 排除重复字段的记录
select distinct <字段名> from <table_name>;
- 别名
select <字段名> [as] <别名> from <table_name>;
别名不要加单引号'
,可以加双引号"
- 连接符
||
在字段名前或后加连接符||
,再加要连接的符号
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
:为nullis not null
:非null- 范围查询:
between <数1> and <数2>
:值的范围在两个数之间(包含两数)in (数1,数2,...)
:值在列出的数之中like
:匹配like后列出的字符串_
:代表任意一个字符%
:代表所有字符
- 排序:
order by <column_name> [desc|asc],[<column_name> [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您好','您')
返回4lpad(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;否则返回expression2nullif(expression1,expression2)
:若两个算式相同则返回null;否则返回expression1coalesce(expr1,expr2,...,exprn)
:返回第一个不为null的expr
2.6case when和decode()
- case when:
- 第一种:
select case <col_name>
when '<value1>' then <expr1>
when '<value2>' then <expr2>
when '<value3>' then <expr3>
else <expr> end
from <table_name>;
- 第二种:
select case
when <expression1> then <expr1>
when <expression2> then <expr2>
when <expression3> then <expr3>
else <expr> end
from <table_name>;
- 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(<col_name>)
:平均sum(<col_name>)
:总和max(<col_name>)
:最小min(<col_name>)
:最大count(<col_name>)
:统计次数,会忽略空值。wm_concat(<col_name>)
:将多行记录拼接为一个记录
参考资料:https://www.cnblogs.com/ZHF/archive/2008/09/12/1289619.html
原文: http://blog.isdevil.com/cjerrybird/2019/02/oracle查询.html