1.知识点:能够对比以下的录屏进行阅读

SQL> --SQL语句
SQL> --1. DML语句(Data Manipulation Language 数据操作语言): insert update delete select
SQL> --2. DDL语句(Data Definition Language 数据定义语言): create/alter/drop/truncate table
SQL> -- create/drop view,create/drop index(sequence,synonym)
SQL> --3. DCL语句(Data Control Language 数据控制语言): commit rollback SQL> --插入insert
SQL> --插入新员工
SQL> --隐式插入null值
SQL> insert into emp(empno,ename,sal,deptno)
2 values(1001,'Tom',1000,10);
SQL> --显式插入null值
SQL> insert into emp(empno,ename,sal,deptno)
2 values(1001,'Tom',null,10);
SQL> --引用系统參数
SQL> insert into emp(empno,ename,sal,hiredate,deptno)
2 values(1002,'Mary',2000,sysdate,20); SQL> --地址符 &:功能跟Preparement类似
SQL> insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno); SQL> --在DML语句中使用地址符
SQL> select empno,ename,&a
2 from emp; SQL> --一次插入(拷贝)一批数据
SQL> --一次性将emp中全部20号部门的员工插入到emp20
SQL> insert into emp20
2 select * from emp where deptno=20; --嵌套子查询 SQL> --truncate:截断;
SQL> truncate table emp20; --等同于: delete from emp20; SQL> --delete和truncate table的差别:delete性能好于truncate
SQL> --1. delete是DML,truncate是DDL (DML能够rollback,DDL不能够)
SQL> --2. delete逐条删除;truncate先摧毁,再重建
SQL> --3. delet会产生碎片;truncate不会
SQL> --4. delete不会释放空间;truncate会 SQL> --插入时会提示插入一行,set feedback off 关闭提示
SQL> set feedback off SQL> --Oracle中的事务
SQL> --1. 事务的起始标志: DML语句
SQL> --2. 事务的结束标志: 提交: 显式提交:commit
SQL> -- 隐式提交 :运行DDL语句后自己主动提交;正常退出 exit;
SQL> -- 回滚: 显式回滚 rollback
SQL> -- 隐式回滚:非正常退出,掉电,宕机 SQL> --控制事务
SQL> --保存点
SQL> create table testsavepoint
2 (tid number,tname varchar2(20));
SQL> insert into testsavepoint values(1,'Tom');
SQL> insert into testsavepoint values(2,'Mary');
SQL> --定义保存点
SQL> savepoint a;
SQL> insert into testsavepoint values(3,'Moke');
SQL> rollback to savepoint a; --回滚到保存点a SQL> --数据库的隔离级别
SQL> --Oracle支持的隔离级别:read commited(默认):读已提交数据
SQL> --serializable():串行化,差点儿不用;由于没有并发,效率低
SQL> --read only:仅仅读

2.在Sqlplus下实际运行的结果录屏

SQL> /*
SQL> SQL语句
SQL> 1. DML语句(Data Manipulation Language 数据操作语言): insert update delete select
SQL> 2. DDL语句(Data Definition Language 数据定义语言): create/alter/drop/truncate table
SQL> create/drop view,create/drop index (sequence,synonym)
SQL> 3. DCL语句(Data Control Language 数据控制语言): commit rollback
SQL> */
SQL> --插入insert
SQL> --插入新员工
SQL> desc emp
名称 是否为空? 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
EMPNO NOT NULL 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 emp(empno,ename,sal,deptno)
2 values(1001,'Tom',1000,10); 已创建 1 行。 SQL> --隐式插入null值、显式插入空值
SQL> insert into emp(empno,ename,sal,hiredate,deptno)
2 values(1002,'Mary',2000,sysdate,20); 已创建 1 行。 SQL> --地址符 &
SQL> insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno);
输入 empno 的值: 1003
输入 ename 的值: 'Mike'
输入 sal 的值: 3000
输入 deptno 的值: 20
原值 1: insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno)
新值 1: insert into emp(empno,ename,sal,deptno) values(1003,'Mike',3000,20) 已创建 1 行。 SQL> /
输入 empno 的值: 1004
输入 ename 的值: 'abc'
输入 sal 的值: 4000
输入 deptno 的值: 10
原值 1: insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno)
新值 1: insert into emp(empno,ename,sal,deptno) values(1004,'abc',4000,10) 已创建 1 行。 SQL> insert into emp(empno,ename,sal,deptno) values(&empno,'&ename',&sal,&deptno)
2 ;
输入 empno 的值: 1005
输入 ename 的值: fakfj
输入 sal 的值: 3000
输入 deptno 的值: 10
原值 1: insert into emp(empno,ename,sal,deptno) values(&empno,'&ename',&sal,&deptno)
新值 1: insert into emp(empno,ename,sal,deptno) values(1005,'fakfj',3000,10) 已创建 1 行。 SQL> rollback; 回退已完毕。 SQL> host cls SQL> --在DML语句中使用地址符
SQL> select empno,ename,&a
2 from emp;
输入 a 的值: sal
原值 1: select empno,ename,&a
新值 1: select empno,ename,sal EMPNO ENAME SAL ---------- ---------- ----- 7369 SMITH 800 7499 ALLEN 1600 7521 WARD 1250 7566 JONES 2975 7654 MARTIN 1250 7698 BLAKE 2850 7782 CLARK 2450 7788 SCOTT 3000 7839 KING 5000 7844 TURNER 1500 7876 ADAMS 1100 EMPNO ENAME SAL ---------- ---------- ----- 7900 JAMES 950 7902 FORD 3000 7934 MILLER 1300 已选择14行。 SQL> /
输入 a 的值: job
原值 1: select empno,ename,&a
新值 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 已选择14行。 SQL> select * from &a;
输入 a 的值: dept
原值 1: select * from &a
新值 1: select * from dept DEPTNO DNAME LOC ------ -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> /
输入 a 的值: emp
原值 1: select * from &a
新值 1: 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 7839 09-6月 -81 2450 10 7788 SCOTT ANALYST 7566 13-7月 -87 3000 20 7839 KING PRESIDENT 17-11月-81 5000 10 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 13-7月 -87 1100 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- -------------- ----- ---------- ------ 7900 JAMES CLERK 7698 03-12月-81 950 30 7902 FORD ANALYST 7566 03-12月-81 3000 20 7934 MILLER CLERK 7782 23-1月 -82 1300 10 已选择14行。 SQL> host cls SQL> --一次插入(拷贝)一批数据
SQL> create table emp20 as select * from emp where 1=2; 表已创建。 SQL> desc emp20
名称 是否为空? 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
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 emp20; 未选定行 SQL> --一次性将emp中全部20号部门的员工插入到emp20
SQL> insert into emp20
2 select * from emp where deptno=20; 已创建5行。 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 SQL> commit; 提交完毕。 SQL> truncate table emp20; 表被截断。 SQL> select * from emp20; 未选定行 SQL> --等同于: delete from emp20;
SQL> /*
SQL> delete和truncate table的差别
SQL> 1. delete是DML,truncate是DDL (DML能够rollback,DDL不能够)
SQL> 2. delete逐条删除;truncate先摧毁,再重建
SQL> 3. delet会产生碎片;truncate不会
SQL> 4. delete不会释放空间;truncate会
SQL> */
SQL> set feedback off
SQL> @c:\sql.sql --加载5000条数据用于測试
SQL> select count(*) from testdelete; COUNT(*) ---------- 5000 SQL> set timing on
SQL> delete from testdelete;
已用时间: 00: 00: 00.04
SQL> drop table testdelete purge;
已用时间: 00: 00: 01.92
SQL> set timing off
SQL> @c:\sql.sql
SQL> select count(*) from testdelete; COUNT(*) ---------- 5000 SQL> set timing on
SQL> truncate table testdelete;
已用时间: 00: 00: 00.54
SQL> set timing off
SQL> host cls SQL> /*
SQL> Oracle中的事务
SQL> 1. 事务的起始标志: DML语句
SQL> 2. 事务的结束标志: 提交: 显式提交 commit
SQL> 隐式提交 DDL 语句,正常退出 exit
SQL> 回滚: 显式 rollback
SQL> 隐式 非正常退出,掉电,宕机
SQL> */
SQL> --保存点
SQL> create table testsavepoint
2 (tid number,tname varchar2(20));
SQL> set feedback on
SQL> insert into testsavepoint values(1,'Tom'); 已创建 1 行。 SQL> insert into testsavepoint values(2,'Mary'); 已创建 1 行。 SQL> --定义保存点
SQL> savepoint a; 保存点已创建。 SQL> insert into testsavepoint values(3,'Moke'); 已创建 1 行。 SQL> rollback to savepoint a; 回退已完毕。 SQL> select * from testsavepoint; TID TNAME ---------- -------------------- 1 Tom 2 Mary 已选择2行。 SQL> commit; 提交完毕。 SQL> spool off

Oracle学习(八):处理数据的更多相关文章

  1. oracle学习之数据库数据保存成文件

    常常需要将数据库中的数据生成文档,由于比较喜欢脚本的方式,所以就需要使用spool的时候进行格式设置,以下简单整理了一下oracle中进行格式设置的一些东西,一共十八条,其实常用的也就那么几个,稍后会 ...

  2. oracle学习 八 分页(使用rownumber)(持续更)

    rownumber是查询的数据集之后加入一个伪列(连续的)使用它可以去制作以oracle数据库为基础的分页,语句类似于公式直接套用如下: select * from (select rownum r, ...

  3. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  4. Oracle学习笔记八 表空间

    表空间 表空间是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间 .   分区表 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下 ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. Oracle学习指南

    Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...

  7. oracle 学习

    一.数据库语言部分1. SQL语言:关系数据库的标准语言2. PL/SQL:过程化语言Procedural Language3. SQL*Plus:简单的报表,操作系统接口 4. Oracle 8.0 ...

  8. Oracle学习系列1-7

    Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...

  9. Oracle学习系列7

    Oracle学习系列7 ************************************************************************************ 关联表 ...

随机推荐

  1. 间隔查询显示命令watch

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...

  2. Crypt加密函数简介(C语言)

    定义函数 char * crypt (const char *key,const char * salt); 函数说明 crypt是个密码加密函数,它是基于Data Encryption Standa ...

  3. 【LOJ】#2174. 「FJOI2016」神秘数

    题解 这道题的结论很显然= = 就是暴力求的话,把一个区间的数排一下序,如果当前这个数大于前面所有数的前缀和+1,那么前缀和+1即我们所求的答案 那么我们设置一个当前答案(初始为1),在主席树上求出来 ...

  4. LoadRunner常用函数汇总

    LoadRunner命令汇总 . 命令行分析函数 (1)lr_get_attrib_double() 检索脚本命令行中使用的double类型变量 (2)lr_get_attrib_string() 检 ...

  5. loadrunner中Run-time-Setting设置

  6. 使用Unity解耦你的系统—PART3——依赖注入

    继续学习Unity,在前几篇中已经将Unity的使用方法做了一个还算详细的介绍了,主要是如何通过代码及配置文件来注册对象之间的关系.Unity内置所有的生命周期管理使用介绍,及Unity的Regist ...

  7. 用php写的一个猜数字的程序

    写一个php的猜数字的小程序,提高自己对php的熟悉程度. <?php $count=rand(0,100); $number = (isset($_POST['number'])) ? $_P ...

  8. maven的认识

    >>>>>>>>>> 安装完成后,设置为环境变量 命令行输入,如下图片就表明成功 >>>>>>>& ...

  9. TensorFlow——module 'tensorflow' has no attribute 'xxx'

    tf.sub()更改为tf.subtract() tf.mul()更改为tf.multiply() tf.types.float32更改为tf.float32 tf.pact()更改为tf.stact ...

  10. 常用排序算法的Python实现

    冒泡排序 算法思想: 对于一组需要排序的数据,对于相邻的两个数进行比较,使较大(或者较小)的数一直向后推,经过多层排序之后,使整个序列是有序的. 算法实现: def bubble_sort(L): l ...