Oracle数据库基础SQL语句(一)—基础篇
查询所有
SELECT * FROM EMP;
查询指定列
SELECT JOB,COMM FROM EMP;
更改了列名
SELECT JOB AS 工作 from EMP;
去掉重复的
SELECT DISTINCT JOB AS 工作 from EMP;
给工资加200 注意此处并不是在数据库中加了200,而是查询时显示的加200
select SAL+200 as 工资加200 FROM emp;
select SAL from EMP;
查询工资大于1500的员工
select EMPNO,ENAME,JOB,MGR,SAL FROM EMP WHERE SAL>1500;
使用逻辑运算符
SELECT SAL FROM EMP WHERE SAL>1500 and SAL<>1600;
优先级 注意小括号运用
比较运算符高于逻辑运算符 not>and>or (所以有的时候有没有括号不碍事)
select EMPNO from EMP where not(EMPNO=7369);
select EMPNO from EMP where not EMPNO=7369 and EMPNO=7499;
模糊查询 _只能代表一个字符,%可以代表0到多个任意字符
关键字LIKE
select JOB from EMP where JOB LIKE '_A%';
范围查询 BETWEEN(小) AND (大)
此区间为闭合区间 包括2000和3000
SELECT EMPNO,JOB,SAL FROM EMP WHERE SAL BETWEEN 2000 AND 3000;
加个not^_^
SELECT EMPNO,JOB,SAL FROM EMP WHERE SAL NOT BETWEEN 2000 AND 3000;
范围查询 IN/not IN in后边是小括号,里边是具体的值,不是范围,用于查名字是什么什么的了
select EMPNO,JOB from EMP where JOB in('CLERK');
对查询的结果进行排序 ORDER BY ASC(升序) DESC(降序)
注:此语句中两个字段一个升序,一个降序,则当job相同时,在按后边的empnd的降序排
select EMPNO,JOB,MGR from EMP ORDER BY JOB ASC, EMPNO DESC;
case when 主要用在select中
相当于又生成了一行,这一行的值由job里的数值来进行改变(一定要试一试)
SELECT JOB,EMPNO,case JOB when 'CLERK' THEN '好工作' WHEN 'MANAGER' THEN '坏工作' ELSE '其他' END as 工作 from EMP;
第二种写法,decode函数
select JOB, DECODE(JOB,'CLERK','好工作','MANAGER','坏工作','其他') as 工作 from EMP;