Sql中的函数
来源:互联网 发布:vue.js和react.js 编辑:程序博客网 时间:2024/05/16 08:38
Sql中的函数
Sql函数包括:(单行函数)(分组函数)(分析函数)
单行函数:
对于从表中查询出来的每条记录只显示一个数据。单行函数可以出现在select子句中,where子句中。单行函数包括:(字符函数)(数字函数)(日期函数)(转换函数)(其他函数)。
日期函数:对日期进行计算 显示日期类型或者数字类型。
SYSDATE 当前日期 eg:select sysdate from dual;
current_date 返回当前会话时区中的当前日期
current_timestamp 以timestamp with time zone数据类型返回当前会话时区中的当前日期
dbtimezone 返回时区
ADD_MONTHS 加上月数 eg:select add_months(sysdate,1) 下个月, add_months(sysdate,123) "123个月后" from dual
MONTHS_BETWEEN 返回两个日期之间月数 eg:两个日期相差的月数 select (sysdate-hiredate)/30 方式一, months_between(sysdate,hiredate) 方式二 from emp;
--add_months:在指定日期上加上若干个月
LAST_DAY 返回月的最后一天 eg:select last_day(sysdate) from dual;
ROUND 将日期进行四舍五入 eg:select round(sysdate,'MONTH') 月,round(sysdate,'YEAR') from dual;
NEXT_DAY 指定下一个星期几的日期 eg:select next_day(sysdate,'星期-') from dual;
TRUNC 日期的格式转换 eg:select trunc(sysdate,'MONTH') 月,trunc(sysdate,'YEAR') from dual;
EXTRACT 提起日期中指定的部分
字符函数:
Initcap(char) 大写首字母。eg:select INITCAP('hello world') from dual;
Lower(char) 将大写字符变成小写。eg:select lower('Hello World') 转小写, upper('Hello World') 转大写 from dual;
数字函数
Mod(m,n) m/n 的余数。eg:select mod(11,10) from dual;
Power(m,n) m的n次方。eg:select power(2,2),power(-1,2),power(1,0) from dual; POWER(2,2) POWER(-1,2) POWER(1,0)
Round(m,n) m是小数,n是取的小数位数。四舍五入 eg:select round(123.5),round(123.46,1),round(126.45,-1) from dual;
ROUND(123.5) ROUND(123.46,1) ROUND(126.45,-1)
Trunc(m,n) m是小数,n是取的小数位数。不四舍五入 select trunc(999.99),trunc(999.99,1),trunc(999.99,-2) from dual;
TRUNC(999.99) TRUNC(999.99,1) TRUNC(999.99,-2)
转换函数
To_char 转化字符。eg: SELECT TO_CHAR( 'AABBCC' ) FROM dual;
To_date 转换日期。eg:SELECT TO_DATE( 2454336 , 'J' ) FROM dual; SELECT TO_DATE( '2007-8-23 23:25:00' , 'yyyy-mm-dd hh24:mi:ss' ) FROM dual;
To_number 转换数字 eg: SELECT TO_NUMBER('-100.00', '9G999D99') FROM dual;
其他函数
NVL(表达式1,表达式2)
如果表达式1为null,返回表达式2,否则返回表达式1;
如果表达式类型不一致,Oracle将表达式2转换为表达式1的类型
NVL2(表达式1,表达式2,表达式3)
如果表达式1为空,返回表达式3的值,否则返回表达式2的值
NULLIF(表达式1,表达式2)
如果两表达式相等,返回空值,否则返回表达式1
分组函数
Avg ()取平均数。eg:select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp;
Count ()返回查询出来的数据。select count(*) from emp;
Sum ()取和 eg:select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp; 求平均
Max ()取最大值 eg:--max和min:求最高工资和最低工资 select max(sal) 最高工资,min(sal) 最低工资 from emp;
Min ()取最小值 eg:--max和min:求最高工资和最低工资 select max(sal) 最高工资,min(sal) 最低工资 from emp;
1.函数
单行函数
--字符函数 伪表
select substr('Springboot Springcloud SpringMvc',2,9) from dual;
select length('好人') from dual;
select lengthb('好人') from dual;
select userenv('language') from dual;
select instr('Springboot Springcloud SpringMvc','ing') from dual;
select instr('Springboot Springcloud SpringMvc','ing',3,2) from dual;--15
select instr('Springboot Springcloud hehe','ing',-3,2) from dual; --4
select rpad('Happy',10,'*') from dual;
select trim(' A BC ') from dual;
select trim('a' from 'ahappyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') from dual;
日期函数:
select floor("MONTHS_BETWEEN"(SYSDATE, "TO_DATE"('1998-01-01', 'yyyy-MM-dd'))) from dual;
SELECT floor(SYSDATE-"TO_DATE"('1998-01-01', 'yyyy-MM-dd')) from dual;
select "ADD_MONTHS"(SYSDATE, 1) from dual;
select sysdate from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sal,'L9,999.99') from emp;
select round('12.45',1) from dual;
--nvl和nvl2 滤空函数
select sal*12 工资,comm 奖金,sal*12+nvl(comm,0) from emp;
select sal, sal+NVL2(COMm,comm*2,0) from emp;
--decode
select ename,decode(deptno,10,'开发部',20,'测试部',30,'财务部','保洁部') from EMP
分组函数 sum() count() avg() max() min()
分析函数
2.表空间
首先用system登录,对用户授权
grant create,drop tablespace to HAPPYY2165
create tablespace y2165tabspace
datafile 'E:\app\Happy\oradata\orcl\y2165tabspace_1.dbf' size 10m,
'E:\app\Happy\oradata\orcl\y2165tabspace_2.dbf' size 10m
autoextend on next 32m maxsize unlimited
select tablespace_name from user_tablespaces;
--删除表空间
drop tablespace y2165tabspace2
--删除表空间的同时清除物理文件
drop tablespace y2165tabspace including contents and datafiles
3.序列
序列和表是平级的。
create tablespace y2165tabspace
datafile 'E:\app\Happy\oradata\orcl\y2165tabspace_1.dbf' size 10m
autoextend on next 32m maxsize unlimited
--Oracle没有自增列 ,用的就是序列
create table dept
(
deptno number primary key not null,
deptname nvarchar2(32)
) tablespace y2165tabspace
create table emp
(
empno number primary key not null,
empname nvarchar2(32)
) tablespace y2165tabspace
insert into dept values(1,'开发部')
commit
select * from dept
insert into emp values(1,'微冷的雨')
insert into emp values(seq_num.nextval,'微冷的雨')
commit
select * from emp
insert into dept values(seq_num.nextval,'开发部')
select seq_num.nextval from dual;
--当前序列中存储的值是多少
select seq_num.currval from dual;
--GUID和UUID
select SYS_GUID() from dual;
- SQL中的单行函数
- sql中的case函数
- Sql中的getDate()函数
- SQL中的Stuff()函数
- SQL中的replace函数
- sql 中的Replace函数
- SQL中的Stuff()函数
- SQL中的replace函数
- 编写sql中的函数
- SQL 中的Stuff函数
- sql中的常见函数
- sql中的datediff()函数
- SQL中的常用函数
- SQL中的时间函数
- SQL中的replace函数
- SQL中的内置函数
- sql中的函数
- sql中的convert函数
- idea建站遇见的小问题
- chrome 控制台 base64加密解密
- js读取设置cookies
- 数据结构的一些概念
- Node集成环境最佳组合
- Sql中的函数
- 分布式存储系统,HBase的基本原理与基本架构
- CentOS(Linux)安装VNC Server实现图形化访问
- Qt获取时间戳
- MVC模式与三层架构的区别
- 简单的爬虫
- 界面的设计及实现
- 前端跨域访问--PHP设置(含laravel设置方法)
- 苹果开发者账号申请流程