??表基本查詢用 PL/SQL 的 scott 用戶自帶的四個(gè)表,選用兩個(gè)表進(jìn)行練習(xí)。
-
雇員表 emp
emp表 -
部門表 dept
dept表
一、簡單查詢
- 查看表結(jié)構(gòu)
desc dept;
- 查看所有列 ( 如果是大量數(shù)據(jù),不推薦使用此查詢命令 )
select * from dept;
- 查詢指定列 ( 如果是大量數(shù)據(jù),推薦使用此查詢命令 )
select userId from users;
- 打開顯示操作時(shí)間
set timing on;
- 復(fù)制多個(gè)數(shù)據(jù)
create table users(userid varchar2(20),username varchar2(30),userpssvarchar2(30));//先創(chuàng)建一個(gè)users表
insert into users values('a001','哈哈哈哈哈啊颯颯','qwert12345');//插入一條數(shù)據(jù)
insert into users values(userid,username,userpss) select * from users;//復(fù)制剛剛插入的數(shù)據(jù),可以多次復(fù)制
- 查看多少行數(shù)據(jù)
select count (*) from users;
- 取消重復(fù)行
select distinct deptno,job from emp; //取消deptno 和 Job 所出現(xiàn)的重復(fù)行
- 查詢 SMITH 的薪水,工作,所在部門。
(oracle對類大小寫有區(qū)分,對sql語句不區(qū)分)
select sal,job,deptno from emp where ename = 'SMITH';
- 顯示每個(gè)雇員的年工資
select sal*12,ename from emp;
- 使用列的別名
select sal*12 "年工資",ename from emp;
- 處理 null 值,使用 nvl
員工 12 個(gè)月的總共的工資+獎(jiǎng)金(因?yàn)楠?jiǎng)金有些人會(huì)出現(xiàn)空值)
select sal*12+nvl(comm,0)*12 "年工資",ename,comm from emp;
二、where語句
- 顯示工資高于 3000 的員工
select ename,sal from emp where sal>3000;
- 顯示入職日期,在某年某月入職得員工
select ename,hiredate from emp where hiredate>='1-1月-1980';
- 顯示多條件時(shí),用and來連接條件,比如:顯示工資到 2000 到 2500 之間得員工。
select ename,sal from emp where sal>=2000 and sal<2500;
三、like 操作符
% :表示任意0個(gè)到多個(gè)字符
_ :表示任意單個(gè)字符
- 顯示首字母為 S 的員工,工資
select ename,sal from emp where ename like 'S%';
- 顯示第三個(gè)字符為 O 的所有員工,工資
select ename,sal from emp where ename like '__O%';
四、where語句中 in 表達(dá)
- 顯示員工 empno 中 7499,7521,7788,7900員工的情況
select * from emp where empno in (7499,7521,7788,7900);
五、is null 語句
- 顯示沒有上級(jí)的雇員信息
select * from emp where MGR is null;
六、邏輯符號(hào)
或:or
和:and
- 查詢工資高于 500 或是崗位為 MANGER 的雇員,同時(shí)還要滿足他們的姓名首字母為大寫的 J
select * from emp where (sal>500 or job='MANGER') and ename like 'J%';
七、order by 語句
升序,由低到高:order by 默認(rèn)排序 或 asc
降序,由高到低:desc
- 按照雇員的工資由低到高顯示雇員的信息
select * from emp order by sal;
- 按照部門號(hào)升序,工資降序顯示雇員信息
select * from emp order by deptno asc,sal desc;
- 按照部門號(hào)升序,工資降序顯示雇員信息,同時(shí)按照入職時(shí)間降序
select * from emp order by deptno,sal desc,hiredate desc;
- 使用列的別名進(jìn)行排序
select ename,sal*12 as "年薪" from emp order by "年薪";

