设为首页 加入收藏

TOP

Oracle学习(8):处理数据(二)
2015-07-24 11:23:17 来源: 作者: 【 】 浏览:9
Tags:Oracle 学习 处理 数据
--- ----------
7900 JAMES 950
7902 FORD 3000
7934 MILLER 1300
1001 Tom 2000
1002 Mary 2000
1003 Mary
1004 Mike 2000
1005 aaa 3000
1006 Tomaa 1500


已选择20行。


SQL> /
输入 unknown 的值: job
原值 1: select empno,ename,&unknown
新值 1: select empno,ename,job


EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7788 SCOTT ANALYST
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK


EMPNO ENAME JOB
---------- ---------- ---------
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
1001 Tom CLERK
1002 Mary
1003 Mary
1004 Mike
1005 aaa
1006 Tomaa


已选择20行。


SQL> select *
2 from &t;
输入 t 的值: dept
原值 2: from &t
新值 2: from dept


DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON


SQL> /
输入 t 的值: salgrade
原值 2: from &t
新值 2: from salgrade


GRADE LOSAL HISAL
---------- ---------- ----------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999


SQL> host cls



从其它表中拷贝数据

?在INSERT语句中加入子查询。

INSERT INTO sales_reps(id, name, salary, commission_pct)

SELECT employee_id, last_name, salary, commission_pct

FROM employees

WHERE job_id LIKE '%REP%';


?不必书写 VALUES 子句。 ?子查询中的值列表应与INSERT 子句中的列名对应


SQL> --一次插入(拷贝)多条数据?
SQL> create table emp10 as select * from emp where 1=2; ( 因为1=2不成立,所以不会拷贝任何数据,但是会将表结构拷贝过来!


表已创建。


SQL> desc emp10
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)


SQL> insert into emp10
2 select * from emp where deptno=10;


已创建3行。


SQL> select * from emp10;


EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7782 CLARK MANAGER 7839 09-6月 -81 2450
10

7839 KING PRESIDENT 17-11月-81 5000
10

7934 MILLER CLERK 7782 23-1月 -82 1300
10



SQL> --在插入中使用子查询
SQL> create table emp20 as select * from emp where deptno=20;


表已创建。


SQL> select * from emp20;


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7788 SCOTT ANALYST 7566 13-7月 -87 3000 20
7876 ADAMS CLERK 7788 13-7月 -87 1100 20
7902 FORD ANALYST 7566 03-12月-81 3000 20




更新数据 update

?使用UPDATE 语句更新数据。

UPDATE table

SET column = value [, column= value, ...]

[WHERE condition];


?可以一次更新多条数据。

使用 WHERE 子句指定需要更新的数据

如果省略WHERE子句,则表中的所有数据都将被更新



可在update中使用子查询

删除:delete

SQL> --删除:delete
SQL> delete from emp10;


已删除3行。


SQL> truncate table emp20;


表被截断。


SQL> /*
SQL> 1. delete逐条删除;truncate先摧毁,再重建
SQL> 2. delete 不会释放空间;truncate会
SQL> 3. delete会产生碎片;truncate不会
SQL> 4. deleted可以闪回;truncate不可以闪回

SQL> */
SQL> select * from emp;


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 78
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle12cgriddb安装的的checklist 下一篇PL/SQLDeveloper导入导出Oracle数..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)
·金融界大佬力荐,Pyt (2025-12-25 04:49:42)
·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)