Oracle基础知识1 : 单表查询1

SELECT * FROM emp;

–显示雇员表emp中所有的数据

SELECT * FROM dept;

–显示部门表dept中所有的数据

SELECT deptno,loc FROM dept;

–显示部分列

SELECT empno,ename,sal,hiredate,job 
FROM emp;

–显示部分列

SELECT ename,sal,sal+300
FROM emp;

–显示雇员姓名,工资以及加300元以后的工资

SELECT ename,sal,12*sal+100,12*(sal+100)
FROM emp;

–算数表达式的运用(先乘除,后加减,有括号先算括号里的)

SELECT ename AS Name , sal*12 "Annual Salary"
FROM emp;

–为列设置别名 : 如果用 AS ,列名会全部大写 ;
–如果用 “” 则会按照引号里面的内容原样输出 。(注意只能用双引号不能用单引号)
–列的别名可以用于 SELECT 与 ORDER BY ,不能用于 WHERE 。

SELECT ename||job AS "Employees"
FROM emp;

–使用连接符 || 将 ename 与 job 作为一个字符串连接并输入(并且列名为 Employees)

SELECT ename||' is a '||job AS "Employees Detail"
FROM emp;

–||同样可以连接自定义字符串(字符串必须由单引号引起来)

SELECT DISTINCT deptno 
FROM emp;

–使用DISTINCT消除重复记录

SELECT DISTINCT deptno,job  
FROM emp;

–先写的字段会作为主条件 , 但是查询结果不会被影响

SELECT ename,job,comm,20/comm
FROM emp
WHERE ename = 'KING';

–空值可以作为被除数~

DESCRIBE dept;
DESC dept;

–上面两句话都是显示表结构(好像DESC==DESCRIBE)

–比较运算符 :

SELECT ename,sal,comm
FROM emp
WHERE sal <= comm;

–显示工资小于等于奖金的人

SELECT ename,sal
FROM emp
WHERE sal BETWEEN 1000 AND 2000;

–显示工资在1000到2000的人

SELECT ename,hiredate
FROM emp
WHERE ename BETWEEN 'J' AND 'N';

–字符串同样可行

SELECT ename,mgr
FROM emp
WHERE mgr IN (7902,7566,7788);

–显示mgr为(7902,7566,7788)这个范围里面的记录。

SELECT empno,ename
FROM emp
WHERE ename IN ('FORD','ALLEN');
SELECT * 
FROM emp
WHERE ename LIKE 'S___';

–查询名字由S开头的雇员(用LIKE关键字)
–通配符 : % 代表任意多个字符 , _ 代表一个字符

SELECT * 
FROM emp
WHERE hiredate BETWEEN TO_DATE('1981-01-01','YYYY-MM-DD') AND TO_DATE('1981-12-31','YYYY-MM-DD');
SELECT * 
FROM emp
WHERE hiredate LIKE '%81';

–上面两句都可以显示1981年受雇的雇员( 日期是不是只能用TO_DATE()来写??)

SELECT ename 
FROM emp
WHERE ename LIKE '_A%';

–显示姓名第二个字母是A的雇员姓名

SELECT ename 
FROM emp
WHERE ename LIKE 'A\_B' ESCAPE '\';

–查找姓名是 A_B 的人 (此时 _ 就是 _ 本身而不代表单个字符)

SELECT * 
FROM emp
WHERE mgr IS NULL;

–显示 mgr 值为空的雇员

SELECT * 
FROM emp 
WHERE sal >= 2000 AND comm IS NULL;

–查询工资大于2000并且comm为空的雇员

SELECT ename,job
FROM emp
WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

–查询工作不为*的雇员(NOT还可以和其他运算符一起用 , 比如 BETWEEN , LIKE , NULL)

–运算符优先级(由先到后) : 比较运算符 , NOT , AND , OR

SELECT ename,job,sal
FROM emp
WHERE job = 'SALESMAN' 
OR job = 'PRESIDENT'
AND sal > 1500;

–验证优先级

SELECT * 
FROM emp
ORDER BY hiredate DESC;

–按照入职时间排序( DESC 是降序 , 默认升序 — ASC)

SELECT * 
FROM emp
ORDER BY deptno,sal;

–先按照 deptno 排序 , 再按照 sal 排序

这里写图片描述
emp表↑

这里写图片描述
dept表↑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值