sql系列(基础篇)-第二章约束和排序数据(一)

2014-11-24 17:02:49 · 作者: · 浏览: 0
   更好的看↑代码点击VIEW PLAN
第二章 约束和排序数据

1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息;
注意:使用 between 下边界 and 上边界时,条件包括边界值;

SCOTT@ORCL>l       
  1  select * from emp
  2* where sal between 1500 and 2500
SCOTT@ORCL>/

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

2. 在emp表中选择位于20,30 部门的员工的信息;

SCOTT@ORCL>select *from emp
  2  where deptno in (20,30);

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

11 rows selected.

3. 在emp表中选择位于员工的名字中包含大写字符 ‘A’ 的员工的信息;

SCOTT@ORCL>select * from emp
  2  where ename like '%A%';

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30

7 rows selected.
	
注意:如果查询的名字中包含%或者_ ,而且查询的时候又要查询这样的信息,需要用到换位码。
注意:通配符%,表示0或者多个字符一样;通配符_,表示1个字符一样;

	3.1 创建与 emp 表结构相同的表;
SCOTT@ORCL>
create table emp_n /* 参照emp表创建新表emp_n */ 2 as select * from emp where 1=2; /* 加where 1=2 一致表结构没有数据 */ Table created. SCOTT@ORCL>select * from emp_n; no rows selected 3.2 添加包含通配符的测试用数据; SCOTT@ORCL>insert into emp_n(empno,ename,sal) values(&empno,&ename,&sal); Enter value for empno: 1001 Enter value for ename: 'whwh%gogo' Enter value for sal: 1000 old 1: insert into emp_n(empno,ename,sal) values(&empno,&ename,&sal) new 1: insert into emp_n(empno,ename,sal) values(1001,'whwh%gogo',1000) 1 row created. SCOTT@ORCL>/ Enter value for empno: 1002 Enter value for ename: '%whwh' Enter value for sal: 2000 old 1: insert into emp_n(empno,ename,sal) values(&empno,&ename,&sal) new 1: insert into emp_n(empno,ename,sal) values(1002,'%whwh',2000) 1 row created. SCOTT@ORCL>/ Enter value for empno: 1003 Enter value for ename: 'whwh_gogo' Enter value for sal: 3000 old 1: insert into emp_n(empno,ename,sal) values(&empno,&ename,&sal) new 1: insert into emp_n(empno,ename,sal) values(1003,'whwh_gogo',3000) 1 row created. SCOTT@ORCL>/ Enter value for empno: 1004 Enter value for ename: '_gogo' Enter value for sal: 4000 old 1: insert into emp_n(empno,ename,sal) values(&empno,&ename,&sal) new 1: insert into emp_n(empno,ename,sal) values(1004,'_gogo',4000) 1 row created. SCOTT@ORCL>commit; Commit complete. SCOTT@ORCL>select * from emp_n; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --