http://www.hechaku.com/Oracle/oracle_tables_chack.html

通过scott用户下的表来演示如何使用select语句,接下来对emp、dept、salgrade表结构进行解说。

  1. emp 雇员表
  2.  
  3. 字段名称 数据类型 是否为空 备注
  4.  
  5. -------- ----------- -------- --------
  6.  
  7. EMPNO NUMBER(4) 员工编号
  8.  
  9. ENAME VARCHAR2(10) Y 员工名称
  10.  
  11. JOB VARCHAR2(9) Y 职位
  12.  
  13. MGR NUMBER(4) Y 上级的编号
  14.  
  15. HIREDATE DATE Y 入职日期
  16.  
  17. SAL NUMBER(7,2) Y 月工资
  18.  
  19. COMM NUMBER(7,2) Y 奖金
  20.  
  21. DEPTNO NUMBER(2) Y 所属部门
  22.  
  23. -------------------------------------------
  24.  
  25. job字段:
  26.  
  27. clerk 普员工
  28.  
  29. salesman 销售
  30.  
  31. manager 经理
  32.  
  33. analyst 分析师
  34.  
  35. president 总裁
  1. dept 部门表
  2.  
  3. 字段名称 数据类型 是否为空 备注
  4.  
  5. -------- ----------- -------- --------
  6.  
  7. DEPTNO NUMBER(2) 部门编号
  8.  
  9. DNAME VARCHAR2(14) Y 部门名称
  10.  
  11. LOC VARCHAR2(13) Y 部门所在地点
  12.  
  13. -------------------------------------------
  14.  
  15. DNAME字段:
  16.  
  17. accounting 财务部
  18.  
  19. research 研发部
  20.  
  21. operations 业务部
  22.  
  23. salgrade 工资级别表
  24.  
  25. 字段名称 数据类型 是否为空 备注
  26.  
  27. -------- --------- -------- --------
  28.  
  29. GRADE NUMBER Y 级别
  30.  
  31. LOSAL NUMBER Y 最低工资
  32.  
  33. HISAL NUMBER Y 最高工资

1、查看表结构 desc emp;

2、查询所有列

  1. select * from dept;
  2.  
  3. 备注:切忌动不动就用select *,使用*效率比较低,特别在大表中要注意。
  4. 3set timing on/off;
  5.  
  6. 打开显示操作时间的开关,在底部显示操作时间。
  7.  
  8. egsql> insert into tb_stu values('', 'zhangsan', 24);
  9.  
  10. 1 row inserted
  11.  
  12. executed in 0.015 seconds

4、insert into...select...表复制语句 语法:insert into table2(field1,field2,...) select value1,value2,... from table1

--创建tb_dept表

  1. create table tb_dept
  2.  
  3. (
  4.  
  5. deptno number(4) not null,
  6.  
  7. dname varchar2(14),
  8.  
  9. loc varchar2(13)
  10.  
  11. )
  12.  
  13. --添加主键约束
  14.  
  15. alter table tb_dept add constraint tb_dept primary key (deptno);

--insert into...select...用法 insert into tb_dept (deptno, dname, loc) select a.deptno, a.dname, a.loc from dept a;

  1. SQL> show linesize;
  2. linesize 80
  3. SQL> select * from EMP;
  4.  
  5. EMPNO ENAME JOB MGR HIREDATE SAL COMM
  6. ---------- ---------- --------- ---------- -------------- ---------- ----------
  7. DEPTNO
  8. ----------
  9. 7369 SMITH CLERK 7902 17-12月-80 800
  10. 20
  11.  
  12. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300
  13. 30
  14.  
  15. 7521 WARD SALESMAN 7698 22-2 -81 1250 500
  16. 30
  17.  
  18. EMPNO ENAME JOB MGR HIREDATE SAL COMM
  19. ---------- ---------- --------- ---------- -------------- ---------- ----------
  20. DEPTNO
  21. ----------
  22. 7566 JONES MANAGER 7839 02-4 -81 2975
  23. 20
  24.  
  25. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400
  26. 30
  27.  
  28. 7698 BLAKE MANAGER 7839 01-5 -81 2850
  29. 30
  30.  
  31. EMPNO ENAME JOB MGR HIREDATE SAL COMM
  32. ---------- ---------- --------- ---------- -------------- ---------- ----------
  33. DEPTNO
  34. ----------
  35. 7782 CLARK MANAGER 7839 09-6 -81 2450
  36. 10
  37.  
  38. 7788 SCOTT ANALYST 7566 19-4 -87 3000
  39. 20
  40.  
  41. 7839 KING PRESIDENT 17-11月-81 5000
  42. 10
  43.  
  44. EMPNO ENAME JOB MGR HIREDATE SAL COMM
  45. ---------- ---------- --------- ---------- -------------- ---------- ----------
  46. DEPTNO
  47. ----------
  48. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0
  49. 30
  50.  
  51. 7876 ADAMS CLERK 7788 23-5 -87 1100
  52. 20
  53.  
  54. 7900 JAMES CLERK 7698 03-12月-81 950
  55. 30
  56.  
  57. EMPNO ENAME JOB MGR HIREDATE SAL COMM
  58. ---------- ---------- --------- ---------- -------------- ---------- ----------
  59. DEPTNO
  60. ----------
  61. 7902 FORD ANALYST 7566 03-12月-81 3000
  62. 20
  63.  
  64. 7934 MILLER CLERK 7782 23-1 -82 1300
  65. 10
  66.  
  67. 已选择14行。
  68.  
  69. SQL> set linesize 100;
  70. SQL> select * from EMP;
  71.  
  72. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  73. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  74. 7369 SMITH CLERK 7902 17-12月-80 800 20
  75. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  76. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  77. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  78. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  79. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  80. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  81. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  82. 7839 KING PRESIDENT 17-11月-81 5000 10
  83. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  84. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  85.  
  86. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  87. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  88. 7900 JAMES CLERK 7698 03-12月-81 950 30
  89. 7902 FORD ANALYST 7566 03-12月-81 3000 20
  90. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  91.  
  92. 已选择14行。
  93.  
  94. SQL> set pagesize 20;
  95. SQL> select * from EMP;
  96.  
  97. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  98. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  99. 7369 SMITH CLERK 7902 17-12月-80 800 20
  100. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  101. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  102. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  103. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  104. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  105. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  106. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  107. 7839 KING PRESIDENT 17-11月-81 5000 10
  108. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  109. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  110. 7900 JAMES CLERK 7698 03-12月-81 950 30
  111. 7902 FORD ANALYST 7566 03-12月-81 3000 20
  112. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  113.  
  114. 已选择14行。
  115.  
  116. SQL> set linesize 120;
  117. SQL> select * from EMP;
  118.  
  119. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  120. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  121. 7369 SMITH CLERK 7902 17-12月-80 800 20
  122. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  123. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  124. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  125. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  126. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  127. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  128. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  129. 7839 KING PRESIDENT 17-11月-81 5000 10
  130. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  131. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  132. 7900 JAMES CLERK 7698 03-12月-81 950 30
  133. 7902 FORD ANALYST 7566 03-12月-81 3000 20
  134. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  135.  
  136. 已选择14行。
  137.  
  138. SQL> select * from dept;
  139.  
  140. DEPTNO DNAME LOC
  141. ---------- -------------- -------------
  142. 10 ACCOUNTING NEW YORK
  143. 20 RESEARCH DALLAS
  144. 30 SALES CHICAGO
  145. 40 OPERATIONS BOSTON
  146.  
  147. SQL> desc dept;
  148. 名称 是否为空? 类型
  149. ----------------------------------------------------------------- -------- --------------------------------------------
  150. DEPTNO NOT NULL NUMBER(2)
  151. DNAME VARCHAR2(14)
  152. LOC VARCHAR2(13)
  153.  
  154. SQL> desc emp;
  155. 名称 是否为空? 类型
  156. ----------------------------------------------------------------- -------- --------------------------------------------
  157. EMPNO NOT NULL NUMBER(4)
  158. ENAME VARCHAR2(10)
  159. JOB VARCHAR2(9)
  160. MGR NUMBER(4)
  161. HIREDATE DATE
  162. SAL NUMBER(7,2)
  163. COMM NUMBER(7,2)
  164. DEPTNO NUMBER(2)
  165.  
  166. SQL> set timing on;
  167. SQL> desc emp;
  168. 名称 是否为空? 类型
  169. ----------------------------------------------------------------- -------- --------------------------------------------
  170. EMPNO NOT NULL NUMBER(4)
  171. ENAME VARCHAR2(10)
  172. JOB VARCHAR2(9)
  173. MGR NUMBER(4)
  174. HIREDATE DATE
  175. SAL NUMBER(7,2)
  176. COMM NUMBER(7,2)
  177. DEPTNO NUMBER(2)
  178.  
  179. SQL> select * from dept;
  180.  
  181. DEPTNO DNAME LOC
  182. ---------- -------------- -------------
  183. 10 ACCOUNTING NEW YORK
  184. 20 RESEARCH DALLAS
  185. 30 SALES CHICAGO
  186. 40 OPERATIONS BOSTON
  187.  
  188. 已用时间: 00: 00: 00.03
  189. SQL> select * from EMP;
  190.  
  191. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  192. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  193. 7369 SMITH CLERK 7902 17-12月-80 800 20
  194. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  195. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  196. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  197. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  198. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  199. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  200. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  201. 7839 KING PRESIDENT 17-11月-81 5000 10
  202. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  203. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  204. 7900 JAMES CLERK 7698 03-12月-81 950 30
  205. 7902 FORD ANALYST 7566 03-12月-81 3000 20
  206. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  207.  
  208. 已选择14行。
  209.  
  210. 已用时间: 00: 00: 00.10
  211. SQL> select * from tab;
  212.  
  213. TNAME TABTYPE CLUSTERID
  214. ------------------------------ ------- ----------
  215. BONUS TABLE
  216. DEPT TABLE
  217. EMP TABLE
  218. SALGRADE TABLE
  219.  
  220. 已用时间: 00: 00: 00.04
  221. SQL> create table tb_dept
  222. 2 (
  223. 3 deptno number(4) not null,
  224. 4 dname varchar2(14),
  225. 5 loc varchar2(13)
  226. 6 );
  227.  
  228. 表已创建。
  229.  
  230. 已用时间: 00: 00: 01.37
  231. SQL> select * from tab;
  232.  
  233. TNAME TABTYPE CLUSTERID
  234. ------------------------------ ------- ----------
  235. BONUS TABLE
  236. DEPT TABLE
  237. EMP TABLE
  238. SALGRADE TABLE
  239. TB_DEPT TABLE
  240.  
  241. 已用时间: 00: 00: 00.00
  242. SQL> desc tb_dept;
  243. 名称 是否为空? 类型
  244. ----------------------------------------------------------------- -------- --------------------------------------------
  245. DEPTNO NOT NULL NUMBER(4)
  246. DNAME VARCHAR2(14)
  247. LOC VARCHAR2(13)
  248.  
  249. SQL> alter table tb_dept add constraint tb_dept primary key (deptno);
  250.  
  251. 表已更改。
  252.  
  253. 已用时间: 00: 00: 00.43
  254. SQL> desc tb_dept;
  255. 名称 是否为空? 类型
  256. ----------------------------------------------------------------- -------- --------------------------------------------
  257. DEPTNO NOT NULL NUMBER(4)
  258. DNAME VARCHAR2(14)
  259. LOC VARCHAR2(13)
  260.  
  261. SQL> select * from DEPT;
  262.  
  263. DEPTNO DNAME LOC
  264. ---------- -------------- -------------
  265. 10 ACCOUNTING NEW YORK
  266. 20 RESEARCH DALLAS
  267. 30 SALES CHICAGO
  268. 40 OPERATIONS BOSTON
  269.  
  270. 已用时间: 00: 00: 00.01
  271. SQL> insert into tb_dept(dept_no,dname,loc) select dept.deptno,dept.dname,dept.loc from dept;
  272. insert into tb_dept(dept_no,dname,loc) select dept.deptno,dept.dname,dept.loc from dept
  273. *
  274. 1 行出现错误:
  275. ORA-00904: "DEPT_NO": 标识符无效
  276.  
  277. 已用时间: 00: 00: 00.01
  278. SQL> insert into tb_dept(deptno,dname,loc) select dept.deptno,dept.dname,dept.loc from dept;
  279.  
  280. 已创建4行。
  281.  
  282. 已用时间: 00: 00: 00.14
  283. SQL> select * from tb_dept;
  284.  
  285. DEPTNO DNAME LOC
  286. ---------- -------------- -------------
  287. 10 ACCOUNTING NEW YORK
  288. 20 RESEARCH DALLAS
  289. 30 SALES CHICAGO
  290. 40 OPERATIONS BOSTON
  291.  
  292. 已用时间: 00: 00: 00.01
  293. SQL>

5、统计 select count (*) from emp;

  1. SQL> select count(*) from emp;
  2.  
  3. COUNT(*)
  4. ----------
  5. 14
  6.  
  7. 已用时间: 00: 00: 00.02

6、查询指定列 select ename, sal, job, deptno from emp;

  1. SQL> select ename,sal,job,deptno from emp;
  2.  
  3. ENAME SAL JOB DEPTNO
  4. ---------- ---------- --------- ----------
  5. SMITH 800 CLERK 20
  6. ALLEN 1600 SALESMAN 30
  7. WARD 1250 SALESMAN 30
  8. JONES 2975 MANAGER 20
  9. MARTIN 1250 SALESMAN 30
  10. BLAKE 2850 MANAGER 30
  11. CLARK 2450 MANAGER 10
  12. SCOTT 3000 ANALYST 20
  13. KING 5000 PRESIDENT 10
  14. TURNER 1500 SALESMAN 30
  15. ADAMS 1100 CLERK 20
  16. JAMES 950 CLERK 30
  17. FORD 3000 ANALYST 20
  18. MILLER 1300 CLERK 10
  19.  
  20. 已选择14行。
  21.  
  22. 已用时间: 00: 00: 00.02
  23. SQL>

7、如何取消重复行,select distinct deptno, job from emp;

  1. SQL> select distinct deptno from emp;
  2.  
  3. DEPTNO
  4. ----------
  5. 30
  6. 20
  7. 10
  8.  
  9. 已用时间: 00: 00: 00.05
  10. SQL> select distinct deptno,job from emp;
  11.  
  12. DEPTNO JOB
  13. ---------- ---------
  14. 20 CLERK
  15. 30 SALESMAN
  16. 20 MANAGER
  17. 30 CLERK
  18. 10 PRESIDENT
  19. 30 MANAGER
  20. 10 CLERK
  21. 10 MANAGER
  22. 20 ANALYST
  23.  
  24. 已选择9行。
  25.  
  26. 已用时间: 00: 00: 00.02

8、查询smith所在部门,工作,薪水 select deptno, job, sal from emp where ename = '

SMITH'; 注意:oracle对内容的大小写是敏感的,所以ename='smith'和ename='SMITH'是不同的

  1. SQL> select deptno,job,sal from emp where ename='smith';
  2.  
  3. 未选定行
  4.  
  5. 已用时间: 00: 00: 00.06
  6. SQL> select deptno,job,sal from emp where ename='SMITH';
  7.  
  8. DEPTNO JOB SAL
  9. ---------- --------- ----------
  10. 20 CLERK 800
  11.  
  12. 已用时间: 00: 00: 00.01
  13. SQL>

9、nvl函数

  1. 格式为:nvl(string1, replace_with)   
  2.  
  3. 功能:如果string1null,则nvl函数返回replace_with的值,否则返回string1的值。  
  4.  
  5. 注意事项:string1replace_with必须为同一数据类型,除非显示的使用to_char函数。  
  6.  
  7. eg、如何显示每个雇员的年工资?
  8.  
  9. select sal*13+nvl(comm, 0)*13 "年薪" , ename, comm from emp;
  1. SQL> select sal*13+nvl(comm,0) "年薪",ename,comm from emp;
  2.  
  3. 年薪 ENAME COMM
  4. ---------- ---------- ----------
  5. 10400 SMITH
  6. 21100 ALLEN 300
  7. 16750 WARD 500
  8. 38675 JONES
  9. 17650 MARTIN 1400
  10. 37050 BLAKE
  11. 31850 CLARK
  12. 39000 SCOTT
  13. 65000 KING
  14. 19500 TURNER 0
  15. 14300 ADAMS
  16. 12350 JAMES
  17. 39000 FORD
  18. 16900 MILLER
  19.  
  20. 已选择14行。
  21.  
  22. 已用时间: 00: 00: 00.06
  23. SQL>

10、使用列的别名 select ename "姓名", sal*12 as "年收入" from emp;

  1. SQL> select ename "姓名"sal*12 as "年收入" from emp;
  2.  
  3. 姓名 年收入
  4. ---------- ----------
  5. SMITH 9600
  6. ALLEN 19200
  7. WARD 15000
  8. JONES 35700
  9. MARTIN 15000
  10. BLAKE 34200
  11. CLARK 29400
  12. SCOTT 36000
  13. KING 60000
  14. TURNER 18000
  15. ADAMS 13200
  16. JAMES 11400
  17. FORD 36000
  18. MILLER 15600
  19.  
  20. 已选择14行。
  21.  
  22. 已用时间: 00: 00: 00.05
  23. SQL>

11、如何处理null值 使用nvl函数来处理

12、如何连接字符串(||) select ename || ' is a ' || job from emp;

  1. SQL> select ename || ' is a ' || job from emp;
  2.  
  3. ENAME||'ISA'||JOB
  4. -------------------------
  5. SMITH is a CLERK
  6. ALLEN is a SALESMAN
  7. WARD is a SALESMAN
  8. JONES is a MANAGER
  9. MARTIN is a SALESMAN
  10. BLAKE is a MANAGER
  11. CLARK is a MANAGER
  12. SCOTT is a ANALYST
  13. KING is a PRESIDENT
  14. TURNER is a SALESMAN
  15. ADAMS is a CLERK
  16. JAMES is a CLERK
  17. FORD is a ANALYST
  18. MILLER is a CLERK
  19.  
  20. 已选择14行。
  21.  
  22. 已用时间: 00: 00: 00.06
  23. SQL>

13、使用where子句 问题:如何显示工资高于3000的员工? select * from emp where sal > 3000; 问题:如何查找1982.1.1后入职的员工? select ename,hiredate from emp where hiredate >'1-1 月-1982'; 问题:如何显示工资在2000到3000的员工? select ename,sal from emp where sal>=2000 and sal<=3000;

  1. SQL> select * from emp;
  2.  
  3. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  4. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  5. 7369 SMITH CLERK 7902 17-12月-80 800 20
  6. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  7. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  8. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  9. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  10. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  11. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  12. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  13. 7839 KING PRESIDENT 17-11月-81 5000 10
  14. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  15. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  16. 7900 JAMES CLERK 7698 03-12月-81 950 30
  17. 7902 FORD ANALYST 7566 03-12月-81 3000 20
  18. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  19.  
  20. 已选择14行。
  21.  
  22. 已用时间: 00: 00: 00.08
  23. SQL> select * from emp where sal > 3000;
  24.  
  25. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  26. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  27. 7839 KING PRESIDENT 17-11月-81 5000 10
  28.  
  29. 已用时间: 00: 00: 00.02
  30.  
  31. SQL> select ename,hiredate from emp where hiredate>'1-1月-1982';
  32.  
  33. ENAME HIREDATE
  34. ---------- --------------
  35. SCOTT 19-4 -87
  36. ADAMS 23-5 -87
  37. MILLER 23-1 -82
  38.  
  39. 已用时间: 00: 00: 00.03
  40. SQL> select ename,sal from emp where sal>=2000 and sal<=3000;
  41.  
  42. ENAME SAL
  43. ---------- ----------
  44. JONES 2975
  45. BLAKE 2850
  46. CLARK 2450
  47. SCOTT 3000
  48. FORD 3000
  49.  
  50. 已用时间: 00: 00: 00.03
  51. SQL>

14、如何使用like操作符 %:表示0到多个字符 _:表示任意单个字符 问题:如何显示首字符为s的员工姓名和工资? select ename,sal from emp where ename like 's%'; 如何显示第三个字符为大写o的所有员工的姓名和工资? select ename,sal from emp where ename like '__o%';

转义:scape

查询名字中包含 "_" 的员工

  1. select * from emp where ename like '%\_%' escape '\'

若要转义单引号,需要两个单引号来转义

  1. 已用时间: 00: 00: 00.01
  2. SQL> select ename,sal from emp where ename like 'S%';
  3.  
  4. ENAME SAL
  5. ---------- ----------
  6. SMITH 800
  7. SCOTT 3000
  8.  
  9. 已用时间: 00: 00: 00.01
  10. SQL> select ename,sal from emp where ename like '__O%';
  11.  
  12. ENAME SAL
  13. ---------- ----------
  14. SCOTT 3000
  15.  
  16. 已用时间: 00: 00: 00.01

15、在where条件中使用in 问题:如何显示empno为7844,7839,123,456的雇员情况? select * from emp where empno in (7844, 7839, 123, 456);

  1. SQL> select * from emp where empno in (7844,7839,456);
  2.  
  3. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  4. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  5. 7839 KING PRESIDENT 17-11月-81 5000 10
  6. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  7.  
  8. 已用时间: 00: 00: 00.05
  9. SQL>

16、使用is null的操作符 问题:如何显示没有上级的雇员的情况? 错误写法:select * from emp where mgr = ''; 正确写法:select * from emp where mgr is null;

  1. SQL> select * from emp ;
  2.  
  3. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  4. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  5. 7369 SMITH CLERK 7902 17-12月-80 800 20
  6. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  7. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  8. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  9. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  10. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  11. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  12. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  13. 7839 KING PRESIDENT 17-11月-81 5000 10
  14. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  15. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  16. 7900 JAMES CLERK 7698 03-12月-81 950 30
  17. 7902 FORD ANALYST 7566 03-12月-81 3000 20
  18. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  19.  
  20. 已选择14行。
  21.  
  22. 已用时间: 00: 00: 00.08
  23. SQL> select * from emp where mgr is null;
  24.  
  25. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  26. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  27. 7839 KING PRESIDENT 17-11月-81 5000 10
  28.  
  29. 已用时间: 00: 00: 00.01
  30. SQL>

(五)Oracle 的 oracle 表查询的更多相关文章

  1. Oracle笔记 多表查询

    Oracle笔记  多表查询   本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查 ...

  2. Oracle基础(五):多表查询

    一.多表查询 (一)简单多表查询 1.多表查询的机制 1)SQL: SELECT * FROM emp; --14条记录 SELECT * FROM dept;--4条记录 SELECT * FROM ...

  3. Oracle的多表查询

    多表查询概念: 所谓多表查询,又称表联合查询,即一条语句涉及到的表有多张,数据通过特定的连接进行联合显示. 基本语法: select column_name,.... from table1,tabl ...

  4. oracle SQL多表查询

    SQL多表查询 1.集合理论 1.1 什么是集合 具有某种特定性质的事物的总体. 集合的特性:无序性.互异性.确定性. 一个集合可以小到从一个表中取出一行中的一列.              1 ro ...

  5. Oracle查询优化-多表查询

    --合并结果集 --1.union all UNION ALL--单纯合并 ; --2.union UNION --将重复结果集合并 ; --------------使用命令窗口执行,查看union与 ...

  6. Oracle之多表查询

    -多表查询 1.交叉连接 select * from t_class for update; select * from t_student for update; select for update ...

  7. oracle数据库单表查询

    今天给大家分享的是关于数据库的单表查询,像单表查询/多表查询/分组查询/子查询,这些方法的使用在实际项目过程中会经常用到,作为一名合格的测试人员如果不会数据库那肯定是不行的,行走江湖可能随时会面临被侮 ...

  8. oracle习题-emp表查询练习

    emp表查询练习 1 查询emp表的全部记录 Select * from emp; 2 查询出每个雇员的编号.姓名.基本工资 Select empno,ename,sal from emp; 3 查询 ...

  9. mybatis学习(五)----实现关联表查询

    一.一对一的表查询 查询班级表中班级号为1的对应的记录(包括教师的具体信息) 1.首先建立数据表 数据表class和techear,class表中只有一个外键techear_id,sql脚本如下: C ...

  10. 五 mysql之多表查询

    目录 一 介绍 二 多表连接查询 1.交叉连接:不适用任何匹配条件.生成笛卡尔积 2.内连接:只连接匹配的行 3 .外链接之左连接:优先显示左表全部记录 4 .外链接之右连接:优先显示右表全部记录 5 ...

随机推荐

  1. java学习之—栈

    /** * 栈 * Create by Administrator * 2018/6/11 0011 * 上午 10:20 **/ public class StackX { private int ...

  2. Golang的md5 hash计算

    Golang计算md5值的方法都是接收byte型slice([]byte).而且使用习惯上也觉得略奇怪. 看了好几个例子才看懂. 感觉Golang标准库在设计这些模块的时候,都会考虑使用带New关键字 ...

  3. sonar结合jenkins

    一.下载jenkins插件 二.系统设置 三.获取token值 4.调整 Jenkins 构建设置

  4. maven 中的pom中的 dependencyManagement 和 dependencies

    参考:maven pom.xml 中 dependencyManagement和dependencies详解 现在的项目基本上都是使用多module来管理的,这就涉及到一个问题,多module之间如何 ...

  5. Python实现快速排序--数据结构

    快速排序(Quick Sort) 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序n个元素要O(nlogn)次比较.在最坏状况下则需要O(n^2)次比较,但这种状况并不常见.事实上,快速 ...

  6. js写插件教程入门

    原文地址:https://github.com/lianxiaozhuang/blog 转载请注明出处   1. 点击add可以添加个自input的内容到div里并实现变颜色 <div id=& ...

  7. Nginx 返回响应过滤响应内容

    陶辉94课 过滤模块 从下到上顺序 ngx_http_proxy_module 模块 Syntax: proxy_ignore_headers field ...; Default: — Contex ...

  8. C#使用读写锁解决多线程并发写入文件时线程同步的问题

    读写锁是以 ReaderWriterLockSlim 对象作为锁管理资源的,不同的 ReaderWriterLockSlim 对象中锁定同一个文件也会被视为不同的锁进行管理,这种差异可能会再次导致文件 ...

  9. table-layui

    本文章为原创文章,转载请注明出处 html <div class="layui-btn-group tableBtn"> <button class=" ...

  10. BZOJ2150部落战争——最小路径覆盖

    题目描述 lanzerb的部落在A国的上部,他们不满天寒地冻的环境,于是准备向A国的下部征战来获得更大的领土. A国是一 个M*N的矩阵,其中某些地方是城镇,某些地方是高山深涧无人居住.lanzerb ...