Oracle 总结
来源:互联网 发布:电磁场有限元分析软件 编辑:程序博客网 时间:2024/06/10 14:44
--日期和字符转换函数用法--(to_date,to_char)--日期转换为字符串select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; --获取时间的年select to_char(sysdate,'yyyy') as nowYear from dual; --获取时间的月 select to_char(sysdate,'mm')as nowMonth from dual; --获取时间的日 select to_char(sysdate,'dd')as nowDay from dual; --获取时间的时 select to_char(sysdate,'hh24')as nowHour from dual; --获取时间的分 select to_char(sysdate,'mi')as nowMinute from dual; --获取时间的秒select to_char(sysdate,'ss')as nowSecond from dual; 、--求某天是星期几 select to_char(to_date('1998-04-27','yyyy-mm-dd'),'day') from dual; --设置日期语言 ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN'; --两个日期间的天数 select floor(sysdate - to_date('20020405','yyyymmdd')) from dual; --时间为null的用法------------- select id, active_date from table1 UNION select 1, TO_DATE(null) from dual; --在当前月份加一个月select ADD_MONTHS(SYSDATE, 1) from dual;--月份差--当前select months_between(SYSDATE,to_date('1998-4-27','yyyy-MM-dd')) from dual;--计算时间差select months_between(to_date('1998-4-27','yyyy-MM-dd'),to_date('1995-7-30','yyyy-MM-dd')) from dual;--一年的第一天select TO_CHAR(SYSDATE,'DDD'),sysdate from dual--返回日期列表中最晚日期 select greatest('01-1月-04','04-1月-04','10-2月-04') from dual--计算时间差--时间差-年select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual--时间差-月select ceil(months_between(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual --时间差-天 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual --时间差-时 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual --时间差-分 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual --时间差-秒select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual --查找月的第一天,最后一天SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month, Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month, Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month, LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month FROM dual;--字符函数--1.字符串截取select substr('abcdef',1,3) from dual--2.查找子串位置select instr('abcfdgfdhd','fd') from dualselect instr('Springboot springclound' ,'ing',-3,2) from dual--3.字符串连接select 'HELLO'||'hello world' from dual;--4.去掉字符串中的空格 select ltrim(' abc') s1, rtrim('zhang ') s2, trim(' zhang ') s3 from dualselect trim('a' from 'ahappy') from dual--5.去掉前导和后缀 select trim(leading 9 from 9998767999) s1, trim(trailing 9 from 9998767999) s2, trim(9 from 9998767999) s3 from dual;--6.返回字符串首字母的Ascii值 select ascii('a') from dual--7.返回ascii值对应的字母 select chr(97) from dual--8.计算字符串长度 select length('abcdef') from dual;--字节select lengthb('小仙女') from dual;--9.initcap(首字母变大写) ,lower(变小写),upper(变大写) select lower('ABC') s1, upper('def') s2, initcap('efg') s3 from dual; --数字函数--1.取整函数(ceil 向上取整,floor 向下取整) select ceil(66.6) N1,floor(66.6) N2 from dual;--2. 取幂(power) 和 求平方根(sqrt) select power(3,2) N1,sqrt(9) N2 from dual;--3.求余 select mod(9,5) from dual;--4.返回固定小数位数 (round:四舍五入,trunc:直接截断) select round(66.667,2) N1,trunc(66.667,2) N2 from dual; --5.返回值的符号(正数返回为1,负数为-1) select sign(-32),sign(293) from dual;--转换函数--to_char()[将日期和数字类型转换成字符类型--1.select to_char(sysdate) s1, to_char(sysdate,'yyyy-mm-dd') s2, to_char(sysdate,'yyyy') s3, to_char(sysdate,'yyyy-mm-dd hh12:mi:ss') s4, to_char(sysdate, 'hh24:mi:ss') s5, to_char(sysdate,'DAY') s6 from dual;--2.select sal,to_char(sal,'$99999') n1,to_char(sal,'$99,999') n2 from emp--3.to_date()[将字符类型转换为日期类型] insert into emp(empno,hiredate) values(8000,to_date('2004-10-10','yyyy-mm-dd'));--隐式转换 --4. to_number() 转换为数字类型 //以数字显示的小时数 select to_number(to_char(sysdate,'hh12')) from dual; --其它函数--1.user: 返回登录的用户名称 select user from dual;--2.vsize: 返回表达式所需的字节数 select vsize('HELLO') from dual;--3.3.nvl(ex1,ex2): --ex1值为空则返回ex2,否则返回该值本身ex1(常用) select comm,nvl(comm,0) from emp;--nvl2select comm,nvl(comm,0) from emp;--4.nullif(ex1,ex2): --值相等返空,否则返回第一个值 select nullif(sal,comm),sal,comm from emp;--5.coalesce: --返回列表中第一个非空表达式 select comm,sal,coalesce(comm,sal,sal*10) from emp;
--1.创建自动增长表空间CREATE tablespace worktbsdatafile 'worktbs.DBF'size 10M autoextend on;--删除表空间drop tablespace worktbs--创建序列--从序,10开始,每次增加1,最大为20000,不循环,在增加会报错,缓存30个序列号CREATE sequence sequence_nameSTART WITH 10INCREMENT BY 1maxvalue 20000nocycle cache 30;--删除序列drop sequence sequence_namedrop sequence sequence_name--2017年9月15日10:56:40--授权给用户来创建表空间GRANT create tablespace to LJL--授权给用户来删除表空间GRANT drop tablespace to LJL--创建私有同义词create or replace SYNONYM emp for employee--创建公有同义词CREATE PUBLIC SYNONYM EMPLOYEE for A_hr.employeeGRANT select ON EMPLOYEE TO LJL;--以ljl用户登录,select * from EMPLOYEE--删除同义词drop SYNONYM emp;DROP PUBLIC SYNONYM EMPLOYEE;--其他用户可以访问ljl用户下的employee表GRANT select on LJL.employee to PUBLICCREATE PUBLIC SYNONYM EMPLOYEE for LJL.employeeselect * from EMPLOYEE
--创建表空间create tablespace y2164tablespacedatafile 'F:\oracle11g\oradata\orcl\y2164tablespace.DBF' size 10Mautoextend on next 32M maxsize unlimited--查看所有表空间select tablespace_name from user_tablespaces--创建表空间(基础)create tablespace y2164tablespace2DATAFILE 'F:\oracle11g\oradata\orcl\y2164tablespace2.DBF' size 10m--同时创建多个表空间create tablespace y2164tabspace3DATAFILE 'F:\oracle11g\oradata\orcl\y2164tablespace3_1.DBF' size 10m,'F:\oracle11g\oradata\orcl\y2164tablespace3_2.DBF'size 10m--删除表空间drop tablespace y2164tablespace3_1.DBF--删除表空间同时清楚物理文件drop tablespace y2164tablespace3_1.DBF including contents and datafiles--在表空间内创建表CREATE table role(rid NUMBER primary key not null, rname nvarchar2(32))tablespace y2164tablespace--序列--创建序列CREATE sequence seq_num--删除序列drop sequence seq_num--索引--创建唯一索引--薪水级别表中,为级别编号列创建唯一索引create UNIQUE INDEX index_unique_grade on salgrade(grade)select * from employee--创建反向键索引--在员工表中,为员工编号列创建反向键索引CREATE INDEX index_reverse_empno on employee(empno) reverse--创建位图索引--在员工表中,为工种列创建位图索引create bitmap INDEX index_bit_job on employee(job)--删除索引drop INDEX index_unique_grade--重建索引--将反向键索引更改为B树索引alter INDEX index_reverse_empno rebuild noreverse--分区表--创建范围分区drop table sales1create table sales1(sales_id number,product_id varchar2(5),sales_date date not null)--select * from sales1;insert into sales1 values(1,'哈',to_date('2013-05-5','yyyy-MM-dd'));insert into sales1 values(2,'哈1',to_date('2013-08-5','yyyy-MM-dd'));insert into sales1 values(3,'哈2',to_date('2013-02-5','yyyy-MM-dd'));insert into sales1 values(4,'哈3',to_date('2013-12-5','yyyy-MM-dd'));partition by range(sales_date)(partition p1 values less than(to_date('2013-04-1','yyyy-MM-dd')),partition p2 values less than(to_date('2013-07-1','yyyy-MM-dd')),partition p3 values less than(to_date('2013-10-1','yyyy-MM-dd')),partition p4 values less than(to_date('2014-01-1','yyyy-MM-dd')),partition p5 values less than(maxvalue));--查看第三条数据select * from sales1 partition(p3)--删除第三条数据delete from sales1 partition(p3)select * from sales1--间隔分区select * from sales2create table sales2(sales_id number,product_id varchar2(5),sales_date date not null)partition by range(sales_date)interval(numtoyminterval(3,'Month'))(partition p1 values less than (to_date('2013-04-1','yyyy-MM-dd')));--插入数据INSERT into sales2 values(1,'a',to_date('2013-01-01'),10,'1')--获得分区情况select table_name,partition_namefrom user_tab_partitionswhere table_name=upper('sales2')--查看输出结果,系统自动根据输入情况创建新分区(sys_P82)--查询分区数据select * from sales2 partition(LJL)
select * from SALGRADE--索引--创建唯一索引--薪水级别表中,为级别编号列创建唯一索引create UNIQUE INDEX index_unique_grade on salgrade(grade)--创建反向键索引--在员工表中,为员工编号列创建反向键索引CREATE INDEX index_reverse_empno on employee(empno) REVOKE
阅读全文
0 0
- Oracle总结
- Oracle 总结
- Oracle总结
- oracle总结
- oracle总结
- Oracle 总结
- Oracle 总结
- oracle总结
- Oracle-总结
- Oracle总结
- Oracle总结
- Oracle总结
- oracle总结
- oracle总结
- Oracle总结
- oracle 总结
- Oracle总结
- Oracle总结
- PAT 甲级 1003. Emergency (25)
- 最大元,归并排序作业
- 2017年进口食品代理加盟排行榜
- 负载均衡SLB百问FAQ
- Swift/OC
- Oracle 总结
- CentOS 7 中使用NTP进行时间同步
- memach类型转换异常java.lang.ClassCastException: java.lang.Byte cannot be cast to com.organization.model.
- SQL Server 2008中的代码安全(八) 透明数据加密(TDE)
- JAVA-Interface关键字
- 著名软件错误案例
- nfs常见问题解决办法
- 序列定时重置时,存储过程中涉及到DDL语句,执行报错:无法执行作业1
- google官方android ndk demo解析(一)——audio echo