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. UUID工具类

    在数据库中,一张数据表中的主键,通常会用自增的整型值或者UUID字符串来表示.其中,UUID可以产生全球唯一的标识符,从而确保主键的唯一. import java.util.UUID; /** * 工 ...

  2. rds 与mysql 进行主从同步

    .rds上默认会有server-****,只需要配置从数据库: .从数据库的配置流程: .[mysqld] log-bin = mysql-bin-changelog #要和主库中的名字一样 rela ...

  3. java基础12 抽象类(及关键字:abstract)

    抽象类:abstract 1.应用的场景 我们描述一类事物时,存在着某种行为,但这种行为目前不具体,那么我们就可以抽取这种行为的声明,但是不去实现这种行为,我们就需要使用抽象类. 2.抽象的好处 强制 ...

  4. BeanUtils封装对象时一直提示ClassNotFoundException:org.apache.commons.beanutils.BeanUtils

    导包明明正确了,依赖包也全都导对了,还是出错. 困扰了3天. 后来看到这篇博文,https://blog.csdn.net/yanshaoshuai/article/details/81624890 ...

  5. python_异常处理

    常用异常种类 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportError 无法引入模块 ...

  6. Vue进阶篇

    前引 今天是2018年12月30,虽不是2018年的最后一天,但是却是自己在2018年写的最后一篇博客了,昨天下班在地铁上闲来无事,翻起了关注的一些公众号发的技术博文,里面就提到写博客的重要性,其实这 ...

  7. DNS区域传送漏洞的安全案例

      DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务 ...

  8. JavaWeb知识回顾-servlet生命周期。

    Servlet生命周期 生命周期,很容易理解,拿人来说,就是你从出生到离开的这一过程.无论是什么技术,只要谈到生命周期都可以这样理解. Servlet的生命周期就是从它被创建到毁灭的过程,整个过程可以 ...

  9. 总结开发ERP软件应遵循的一些基本原则

    总结一下做管理软件,有哪些项是经过检验的条款,必须遵守的. 界面篇 1  要保存用户的偏号(profile/favourite). ASP.NET 2.0引入此功能,当用户修改默认的控件的属性时,框架 ...

  10. CodeForces 785B Anton and Classes

    简单判断. 找第一类区间中$R$最大的,以及第二类区间中$L$最小的,判断距离. 找第二类区间中$R$最大的,以及第一类区间中$L$最小的,判断距离. 两种情况取个最大值即可. #include &l ...