oracle基础指令总结

来源:互联网 发布:手机淘宝卖家软件 编辑:程序博客网 时间:2024/05/21 15:33


--SELECT * FROM emp;

--INSERT INTO EMP (EMPNO, ENAME,JOB, MGR, HIREDATE, SAL, DEPTNO)VALUES (7946, 'LISId', 'clear', 7782, SYSDATE,1300, 10);

--UPDATE table_name SETcolum1=v1, colum2 = v2 WHERE condition;

--UPDATE emp e SET e.sal =e.sal+100  WHERE e.ename= 'Zhangsan'

--SELECT NVL(E.COMM,0) FROM EMPA

--UPDATE EMP E SET E.SAL = E.SAL- 100,E.COMM=nVL(E.COMM,0)+100  WHEREE.ENAME = 'KING'

UPDATE EMP E SET E.SAL = E.SAL +100, E.COMM = NVL(E.COMM, 0) + 100 WHERE E.DEPTNO = 30

DELETE FROM emp e  WHERE e.eNAME='LISId';

DELETE FROM EMP E WHEREE.DEPTNO=10 AND e.sal BETWEEN 1300 AND 1600

序列的

INSERT INTO EMP

 (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)

VALUES

 (SEQ_EMP.NEXTVAL, 'wangwu', 7690, SYSDATE, 1400, 20);

 

select ceil(5.5from dual;--大于5.5的最小整数

select ceil(-5.5from dual;

 

select floor(5.5from dual;--小于5.5的最大整数

select floor(-5.5from dual;

 

select trunc(9.68,1from dual;--舍去,保留一位小数

select round(9.68,1from dual;--四舍五入,保留一位小数

-----------------------------------------------------------------------

--字符串、

SELECT ascii('0'FROM dual; --0-48

SELECT ascii('a'FROM dual;--a-97

SELECT ascii('A'FROM dual; --A-65

SELECT chr(47777FROM dual;--ascii对应汉字

SELECT concat('青岛','城阳'FROM dual;--连接词

SELECT'青岛'||'城阳'FROM dual;--同上

 

SELECT instr('aaaabaaba','b'FROM dual;--找第一个b的位置

SELECT instr('aaaabaaba','b',6FROM dual;--从第6位开始找

SELECT instr('aaaabaaba','b',6,2FROM dual;--从第6位开始找第2b的位置

 

SELECT upper('hello')FROM dual;--变大写

SELECT lower('NIHAO')FROM dual;--变小写

SELECTNLS_INITCAP('hellolll')FROM dual;--首字母大写

 

SELECT LPAD('jenny',10,'*'FROM dual;--左填充

SELECTLPAD(ename,10,'*'FROM emp;

SELECTRPAD(ename,10,'*'FROM emp;--右填充

 

SELECT ltrim('     jenny'FROM dual;--左省略

SELECT ltrim('!@!@!@!!!!@@@@jenny','!@'FROM dual;

SELECT rtrim('!@!@!@!@!!!@@@jenny!@!!@@!!!@@@','!@'FROM dual;

SELECTrtrim(ltrim('!@!@!@!@!!!@@@jenny!@!!@@!!!@@@','!@'),'!@'FROM dual;--左右都省略

SELECTtrim('!'FROM'!!!@!@!!!@@@jenny!@!!@@!!!@@@'FROM dual;--最左边不到@的叹号省略

 

SELECT substr('444于剑111',4,2FROM dual;--从第4个开始出,出2

SELECT substr('372330198809194214',7,4)||'-'||substr('373330198809194214',11,2)||'-'||

       substr('372330198809194214',13,2)

       FROM dual;先取出再连接

      

SELECTreplace('this is','is','was'FROM dual;--替换

SELECTreplace('this is','i',''FROM dual;--空替换,用作删除

SELECT length('this is'FROM dual;

----------------------------------------------------

SELECTSYSDATEFROM dual;--当前日期

SELECTadd_months(SYSDATE,-2FROM dual;--此前两个月日期

SELECTadd_months('28-2-2012',-2FROM dual;

 

SELECT extract(YEARFROMSysdateFROM dual;--却出年

SELECT extract(MONTHFROMSysdateFROM dual;

SELECT extract(DAYFROMSysdateFROM dual;

SELECTnext_day(sysdate,'星期五'FROM dual;--次日后的周五日期

 

SELECT trunc(Sysdate,'year'FROM dual;--截取日期,按年,月,日等

SELECT trunc(Sysdate,'month'FROM dual;

SELECT trunc(Sysdate,'day'FROM dual;

SELECT trunc(Sysdate,'hh'FROM dual;

----------------------------------

SELECT3.5||'abc'FROM dual;

SELECT to_char(123.98,'$999.999.999.99')FROM dual;--数字转化为美元形式

SELECT to_char(1234.89,'L999.999.999.99')FROM dual;--数字转化为人民币形式

SELECT to_char(sysdate,'yyyy-mm-dd')FROM dual;--转换日期格式

SELECT to_char(sysdate,'yyyy-mm-dd')FROM dual;

SELECT to_char(sysdate,'yyyy""mm""dd""')FROM dual;

 

SELECT to_date('2012年07月16日','yyyy""mm""dd""')FROM dual;--将输入的日期设置成指定类型

 

INSERTINTO EMP VALUES(7777,'test','test',7777,

 TO_DATE('2012年07月16日''yyyy""mm""dd""'),900,60,20);--插入指定类型的日期

INSERTINTO EMP VALUES(7778,'test','test',7777,'16-7-2012',900,600,20);

INSERTINTO EMP VALUES(7770,'大爷','奶奶',7777,

 TO_DATE('2012年07月16日''yyyy""mm""dd""'),900,60,20);

 

 

SELECT * FROM emp WHERE hiredate>'2-4-1981'--查找1981.4.2后入职的

SELECT * FROM emp WHEREhiredate>to_date('1981-4-2','yyyy-mm-dd')

 

 

SELECTto_number('$1,234,567,89','$999,999,999.99')+55FROM dual;

------------------------------------------------------------------------------------

SELECTCOUNT(*) FROM emp WHERE deptno=30;--查出部门号是30

SELECTAVG(sal),SUM(sal) FROM emp WHERE deptno=30;

SELECTMAX(sal),MIN(sal) FROM emp WHERE deptno=30;

SELECT trunc(,2FROM dual;

 

CREATESEQUENCE seq_emp INCREMENTBY1STARTWITH8000;--创建新序列

SELECT seq_emp.NEXTVALFROM dual;

SELECT seq_emp.CURRVALFROM dual;--查询当前的

INSERTINTO EMP VALUES(seq_emp.nextval,'小弟弟','啊滋玉',7777,

 TO_DATE('2012年07月16日''yyyy""mm""dd""'),900,60,20);--插入下一条

 DELETEFROM emp e WHERE e.ename='大爷';--删除name'大爷'

 SELECT * FROM emp WHERE deptno = 20ORDERBY sal ASC;

 SELECT ename FROM emp UNIONSELECT dname FROM emp ;--两个表联合查询

 

 SELECT * FROM emp;

 SELECT * FROM dept;

 SELECT e.ename,e.sal,d.NAMEFROM emp e,dept d WHERE e.deptno=d.deptno;--隐式内链接

 SELECT e.ename,e.sal,d.dname FROM emp e INNERJOIN dept d

  ON e.deptno=d.deptno AND e.sal>1600;--显示内连接

 SELECT e.ename,e.sal,d.dname FROM emp e leftJOIN dept d

  ON e.deptno=d.deptno AND e.sal>1600;--左连接

 SELECT e.ename,e.sal,d.dname FROM emp e fullJOIN dept d

  ON e.deptno=d.deptno AND e.sal>1600;--全链接

 

 SELECT sal FROM emp WHERE ename='ALLEN'

 SELECT * FROM emp WHERE sal>

  (SELECT sal FROM emp WHERE ename='ALLEN')--子查询(单行)以上一行为条件

 

SELECTename,job,sal,deptno FROM emp WHERE job IN

  (SELECTDISTINCT job FROM emp WHERE deptno=20--子查询(多行) all any in

 

 

 SELECT * FROM emp;

 

Select * from emp where name like’%’;


补充:

1. 查询当前数据库:

select name from v$database;

注:该指令需要用户具有dba权限

 

2. 查看当前用户

show user;

 

3. 产看数据库字符集:

1) select user('language') from dual;

2) select * from v$nls_parameters;

注:这两条指令都可以查看到该数据库的字符集,第二条指令查询的内容相对较多,第一条指令只显示字符集

 

4. 产看数据库所拥有的表:

select table_name from tabs;

 

5. 创建临时表空间:

create temporary tablespace test_temp tempfile 'E:/oracle/product/10.2.0/oradata/testserver/test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; 

 

6. 创建数据库表空间:

create tablespace test_data datafile 'd:/oracle/tablespace/test.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;

 

7. 创建用户并指定表空间:

create user username identified by password default tablespace test_data temporary tablespace test_temp; 

 

8. 给用户赋予权限:

grant connect, resource, dba to username;

注:此处赋予用户三个权限:connect,resource,和dba权限;

 

9. 修改数据库字符集:

      Startup nomount;
  Alter database mount exclusive;
  Alter system enable restricted session;
  Alter system set job_queue_process=0;
  Alter database open;
  Alter database character set zhs16gbk;

注:修改后要重启一下该数据库