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. acm专题---dfs+bfs

    题目来源:http://hihocoder.com/problemset/problem/1049 #1049 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描 ...

  2. leetcode 之Valid Sudoku(七)

    判断行.列.九宫格内数字是否重复. 按照行.列.九宫格进行检查即可. bool validSudoku(const vector<vector<char>>& boar ...

  3. ajax跨域的解决办法

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content ...

  4. HDU 3018 Ant Trip (并查集求连通块数+欧拉回路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 题目大意:有n个点,m条边,人们希望走完所有的路,且每条道路只能走一遍.至少要将人们分成几组. ...

  5. 【PAT】1009. 说反话 (20)

    1009. 说反话 (20) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其 ...

  6. LoadRunner:VuGen开发脚本步骤(二)

    一.介绍 Loadrunner的场景能够描述在测试活动中发生的各种事件.一个场景包括一个运行虚拟用 户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组 二 ...

  7. 使用CSS更改图标的颜色

    我们经常在很多网站上见到更改网站的主题时,图标的颜色也改变了,我们总是觉的这一项功能非常伟大,因为我们知道使用CSS是无法完成更改图片的颜色的.那么,网站上随心所欲的图标颜色是采用N多个图片不断的切换 ...

  8. HDU 6026 Deleting Edges

    最短路. 先建一个只包含最短路的有向无环图,每一个点选择任意一条入边即可生成一个树形图,那么树的种类就等于每个点的入度乘积. #include <bits/stdc++.h> using ...

  9. git clone https

    git clone 不需要输入密码步骤 1, vim ~/.git-credentials 2, git config --global credential.helper store 3, vim ...

  10. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...