Oracle备忘录(八)--表

来源:互联网 发布:左程云算法最优解 pdf 编辑:程序博客网 时间:2024/05/29 17:58
SQL> /*SQL> SQL类型SQL> 1. DML(Data Manipulation Lanuage 数据操作语言): select insert update deleteSQL> 2. DDL(Data Definition Language 数据定义语言): create/alter/drop/truncate tableSQL>                                                create/drop view/sequence/index/synonymSQL> 3. DCL(Data Control Language 数据控制语言): commit rollbackSQL> */SQL> host clsSQL> --隐式/显式插入nullSQL> --地址符   &SQL> insert into emp(empno,ename,sal,deptno)  2  values(&empno,&ename,&sal,&deptno);输入 empno 的值:  1002输入 ename 的值:  'Mary'输入 sal 的值:  5000输入 deptno 的值:  10原值    2: values(&empno,&ename,&sal,&deptno)新值    2: values(1002,'Mary',5000,10)已创建 1 行。SQL> /输入 empno 的值:  1003输入 ename 的值:  'Mike'输入 sal 的值:  6000输入 deptno 的值:  30原值    2: values(&empno,&ename,&sal,&deptno)新值    2: values(1003,'Mike',6000,30)已创建 1 行。SQL> ed已写入 file afiedt.buf  1  insert into emp(empno,ename,sal,deptno)  2* values(&empno,'&ename',&sal,&deptno)  ---下面字符串就不用加引号了SQL> /输入 empno 的值:  1004输入 ename 的值:  Jerry输入 sal 的值:  5000输入 deptno 的值:  10原值    2: values(&empno,'&ename',&sal,&deptno)新值    2: values(1004,'Jerry',5000,10)SQL> select empno,ename,&t  2  from emp;输入 t 的值:  sal原值    1: select empno,ename,&t新值    1: select empno,ename,sal     EMPNO ENAME             SAL                                                ---------- ---------- ----------                                                      1001 Tom              6000                                                      1002 Mary             5000                                                      1003 Mike             6000                                                      1004 Jerry            5000                                                      7369 SMITH             800                                                      7499 ALLEN            1600                                                已选择18行。SQL> /输入 t 的值:  deptno原值    1: select empno,ename,&t新值    1: select empno,ename,deptnoSQL> 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> rollback;回退已完成。SQL> host clsSQL> --批处理--加上where 1 = 2 就是为了不复制表中的数据--当然可以选定要的数据添加到新建的表中 --如: where deptno = 10 就把部门为10的加入到了新建的表SQL> create table emp10 as select * from emp where 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> select * from emp10;未选定行SQL> --一次性从emp中  将所有10号部门的员工插入到emp10SQL> insert into emp10  2  select * from emp where deptno=10;已创建3行。                                                                       SQL> set linesize 120SQL> col sal for 9999SQL> host clsSQL> --更新数据SQL> --删除数据SQL> /*SQL> --delete 和truncate的区别SQL> --1. delete逐条删除 truncate 先摧毁表 再重建SQL> --2. **** delete 是DML(可以回滚),truncate是DDL(不可以回滚)SQL> --3. delete不会释放空间 truncate会SQL> --4. delete会产生碎片 truncate不会SQL> --5. delete可以闪回,truncate不可以SQL> */SQL> set feedback off  --去除 “选中14行”这样的字眼--执行sql语句SQL> @c:\sql.sqlSQL> select count(*) from testdelete;  COUNT(*)                                                                                                              ----------                                                                                                                    5000                                                                                                              SQL> set timing onSQL> delete from testdelete;已用时间:  00: 00: 00.04SQL> set timing offSQL> drop table testdelete purge;   --彻底删除,不放入回收站SQL> @c:\sql.sqlSQL> select count(*) from testdelete;  COUNT(*)                                                                                                              ----------                                                                                                                    5000                                                                                                              SQL> set timing onSQL> truncate table testdelete;已用时间:  00: 00: 07.87SQL> set timing offSQL> host clsSQL> /*SQL> Oracle中的事务SQL> 1. 起始标志: DML语句SQL> 2. 结束标志: 提交: 显式提交 commitSQL>                    隐式提交 正常退出exit ,DDL语句SQL>              回滚: 显式  rollbackSQL>                    隐式  掉电,宕机,非正常退出SQL> */SQL> --保存点SQL> create table testsavepointSQL> set feedback on--创建保存点语法SQL> savepoint a;SQL> rollback to savepoint a;SQL> commit;SQL> spool off

0 0
原创粉丝点击