Oracle数据库02

 

1、注释语句

  --这是注释。

2、查询表中全部数据

  SELECT * FROM EMP;

  --这里的"*"表示全部数据。

3、查询表中部分数据

  SELECT EMPNO,ENAME,JOB FROM EMP;

4、对表中的字段进行运算

  SELECT SAL, SAL*12 FROM EMP;

5、对表中的字段进行重命名

  SELECT SAL,SAL*12 AS "年薪" FROM EMP;

  --这里的AS和双引号可以省略,但是不可以使用单引号。

6、字段拼接

   SELECT '编号:'||EMPNO||'姓名:'||ENAME||'职位:'||JOB||'薪资:'||SAL AS INFO FROM EMP;

  --可以参考或者模仿Java中字符串的拼接。相当于Java中的"+",但是Oracle中的"+"和"||"不一样。

7、去除重复行

  SELECT DISTINCT JOB FROM EMP;

  --这里的distinct 是指后面的所有字段的组合。

8、排序

  SELECT ENAME,SAL FROM EMP ORDER BY SAL ASC;

  SELECT ENAME,SAL FROM EMP ORDER BY SAL DESC;

  --ASC是升序(默认),DESE是降序。可以嵌套排序,如:

  SELECT ENAME,SAL,JOB FROM EMP ORDER BY SAL,ENAME DESC;

  --先对SAL升序排序,在这个基础上再对ENAME进行降序排序。

9、WHERE语句

  SELECT * FROM EMP WHERE EMPNO = 7369;

  --对查询结果的进一步控制,后面可以接许多语句。

  SELECT *FROM EMP WHERE ENAME = 'SMITH';

  SELECT * FROM EMP WHERE SAL >= 1600 AND SAL <=2450;

  SELECT * FROM EMP WHERE SAL BETWEEN 1600 AND 2450;

  SELECT * FROM EMP WHERE HIREDATE = '17-12月-1980';

  --注意对日期的查询。

  SELECT * FROM WHERE SAL != 800;

  --!=也可以用<>替换

  SELECT * FROM EMP WHERE ENAME IN('SMITH','JONES');

  --ENAME在集合('SMITH','JONES')中的。

  SELECT * FROM EMP WHERE ENAME = 'SMITH' OR ENAME'JONES';

  --OR关键字,或者的意思。

  SELECT * FROM EMP WHERE COMM IS NULL;

  SELECT * FROM EMP WHERE COMM IN NOT NULL;

  SELECT * FROM EMP WHERE NOT COMM IS NULL;

  SELECT * FROM EMP WHERE ENAME LIKE '%S';

  --LIKE是模糊查询的关键字,所谓的模糊查询,有点像Java中的正则表达式,但要简单的多。

  --%代表任意多个任意字符,_代表一个任意字符

  --转义字符可以自己定义,需要使用关键字ESCAPE,如:

  SELECT * FROM EMP WHERE ENAME LIKE '%A_%' ESCAPE 'A';

10、字符函数

  SELECT ENAME,LOWER(ENAME),UPPER(ENAME),INITCAP(ENAME) FROM EMP;

  --LOWER是小写,UPPER是大写,INITCAP是首字母大写。

  SELECT ENAME,REPLACE(ENAME,'A','a') FROM EMP;

  --REPLACE是替换,将查询到的所有结果中的'A'替换成'a'。

  SELECT ENAME,SUBSTR(ENAME,1,3)FROM EMP;

  --字符串截取,相当于Java中的substring(),要注意的是Oracle中字符串下标是从1开始的。

  SELECT 1+1 FROM DUAL;

  --这里的表DUAL是虚拟的表

  SELECT INSTR('HELLO','H') FROM DUAL;

  --下标,相当于Java中的indexOf()。

  SELECT CONCAT('HELLO','ORACLE')FROM DUAL;

  --字符串拼接。

  SELECT LENGTH('HELLO') FROM DUAL;

  --获取字符串的长度。

11、数值函数

  SELECT CEIL(3.5),FLOOR(3.5),ROUND(3.5)FROM DUAL;

  --CEIL向上取整,FLOOR向下取整,ROUND四舍五入。

  SELECT TRUNC(3.5,1) FROM DUAL;

  --TRUNC(X,Y);x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。

12、日期函数

  SELECT SYSDATE FROM DUAL;

  SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;

  SELECT ENAME,ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12)FROM EMP;

  SELECT SYSDATE,LAST_DAY(SYSDATE) FROM DUAL;

13、转换函数

  SELECT '12.5' + 30 FROM DUAL;

  SELECT TO_CHAR(12345,'L999,999,999.99') FROM DUAL;

  SELECT TO_CHAR(12345,'$000,000,000.00') FROM DUAL;

  SELECT TO_DATE('2017/3/2 16:39:00','YYYY-MM-DD HH24:MI:SS') FROM DUAL;

  SELECT TO_NUMBER('12345') FROM DUAL;

14、通用函数

  SELECT ENAME,SAL,COMM,SAL+NVL(COMM,0) INCOME FROM EMP ORDER BY INCOME DESC;

  --NVL( 字段名,返回值A);  当字段名为null时,直接返回" 返回值A"

  --当字段名不为null时,直接返回字段名对应值。

  SELECT ENAME,SAL,COMM,NVL2(COMM,SAL+COMM,SAL) FROM EMP;

  --NVL2(字段名,返回值A,返回值B)
      --当字段名不为null,返回" 返回值A"
      --当字段名为null,返回" 返回值B"

  SELECT ENAME,JOB,DECODE(JOB,'CLERK','职员','SALESMAN','销售','MANAGER','经理','ANALYST','分析师','PRESIDENT','总裁') 职位 FROM EMP;

  --DECODE( 字段名,值1 ,返回A ,值2 ,返回B ,值3 ,返回C );

  --当字段名=值1 返回A,当字段名=值2 返回B

  

 

  

 

转载于:https://www.cnblogs.com/huanhuan10/p/6501813.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值