I Single-Row Functions
Note: dual is a virtual table and cannot save any data. There is only one field and one row of records
1. Semantics
The single line function returns a result for each record
2. Character function
1.lower(): convert to lowercase, upper(): convert to uppercase, initcap initial capital
select lower(ename) from emp;
2.concat(): connect two values, equal||
select concat(ename,sal)from emp;
3.substr ('', n1,n2) n1 specifies the position, n2 specifies the length, starts from 1, omits n2, intercepts from n1 to the end, n1 is a negative value, and n are inverted
select substr('hello',2,2) from dual;
4.length() gets the length of the string
select length('hello')from dual;
5.instr(s1,s2,n1,n2) returns the position of the n2 occurrence of the string S2 starting from n1 in s1. The default value of n1 and n2 is 1
select instr('string','r')from dual; --The result is 3
6.lpad(s1,n1,s2) s1 is filled with n1 lengths (total length) from the left by s2
select lpad('hi',3,'hello') from dual; --The result is hhi
7.rpad() is the same as above, but it is filled from the right
8.trim() removes characters at the beginning or end of the string
select trim('s' from 'sssis') from dual; --The result is i
9.replace(s1,s2,s3) replace s2 in s1 with s3
select replace('strrring','r','a')from dual; --The result is staaaing
3. Numerical function
1.round(n1,n2): round the n1 value n2 to several digits, and a negative value is acceptable
select round(203,-1)from dual; --200
2.trunc(n1,n1):n1 is the numerical value, n2 is the intercepted length, which can be negative, and {is not rounded
select trunc(223,-2) from dual;--200
3.MOD(m,n) takes the remainder of m/n
select mod(223,2) from dual; --1
4. Date function
1. The default date format in Oracle is RR format
Dd-mon-rr December 20, 1998, i.e.'20-december-98 '
For the current year (0-49), take (0-49) of this century and (50, 99) of the last century
2.sysdate system current date
select sysdate from dual;
3. Addition and subtraction of dates
select (sysdate - hiredate)/365 year,(sysdate - hiredate) day from dual
4.months_between(d1,d2) returns the number of months between two dates
select months_between(sysdate,hiredate) month from emp;
5.add_months(d1,n1)d1 is the date, and d1 returns the date after n1 months
select add_months(sysdate,1) from dual;
6.next_day(d,w) returns the week w after the d date
select next_day(sysdate,'Friday') from dual;
7.last_day(d) returns the last day of the specified day month
select last_day(sysdate) from dual;
8.round(d,'m ') returns the date after d date is rounded. M can be month,year
select round(sysdate,'month') from dual;
9.trunc(d,'m ') returns the date after d date interception. M can be month,year
select trunc(sysdate,'month') from dual;
10.extract() returns the year, month or day of the specified date
select sysdate, extract (year from sysdate) from dual; --2021
5. Conversion function
1.to_char() to characters
select to_char(hiredate,'day') from emp; --It shows the day of the week
2.to_ Convert date (date, format) to date
select to_date('2020-10-10','yyyy-mm-dd') from dual;
3.to_number() is converted to a number
select to_number('25') from dual; --Only in this way can they be converted into numbers
6. General functions
1.case multi condition comparison
select ename,deptno, (case deptno when 10 then 'Sales Department' when 20 then 'R & D department' when 30 then 'Management Department' else 'nothing' end ) from emp;
2.nvl(par1,num) refers to a null value as a specific value
select nvl(null,3) from dual; --3
3.coalesce(par1...) Returns the first parameter that is not empty. There are no limits on parameters
select coalesce(null,null,3) from dual; --3
II The multiline function returns one result for multiple records
1. Five aggregate functions
1.max() calculate the maximum value
select max(sal) from emp;
2.min(): calculate the minimum value
select min(hiredate) from emp;
3.avg(): calculate the average value. avg filters the null value and does not include the null value in the average calculation
select avg(comm) from emp;--550 select avg(nvl(comm,0))from emp;--157
4.sum(): Sum
select sum(hiredate) from emp;
5.count(): calculate the total number of records, do not filter null values, and filter null values for the above four
select count(empno) from emp;
2.group by grouping function
1. Features
After where, before order by
All common fields in the select list (i.e. fields without aggregate functions, etc.) must be placed in group by
The fields that appear in group by do not necessarily appear in select
Processing multiple pieces of data returns one result, or the table can be divided into multiple groups, and the whole table can be regarded as a group
2. Group by multiple columns, that is, group by is followed by multiple fields
select deptno,job from emp where deptno=10 group by deptno,job;
3. If the condition is filter aggregate function, you can't use where to filter, you can only use having
having can only be performed on the basis of grouping. Filtering is a grouping function
select deptno,max(sal) from emp group by deptno having max(sal)>500;
III select execution order
1.from 2.where 3.group by 4.having 5. select 6. orderby
Note: functions can be nested with each other