Oracle学习(八):处理数据
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学习(八):处理数据的更多相关文章
- oracle学习之数据库数据保存成文件
常常需要将数据库中的数据生成文档,由于比较喜欢脚本的方式,所以就需要使用spool的时候进行格式设置,以下简单整理了一下oracle中进行格式设置的一些东西,一共十八条,其实常用的也就那么几个,稍后会 ...
- oracle学习 八 分页(使用rownumber)(持续更)
rownumber是查询的数据集之后加入一个伪列(连续的)使用它可以去制作以oracle数据库为基础的分页,语句类似于公式直接套用如下: select * from (select rownum r, ...
- oracle学习 第二章 限制性查询和数据的排序 ——03
这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7 怎样使用转义(escape)操作符 ...
- Oracle学习笔记八 表空间
表空间 表空间是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间 . 分区表 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- oracle 学习
一.数据库语言部分1. SQL语言:关系数据库的标准语言2. PL/SQL:过程化语言Procedural Language3. SQL*Plus:简单的报表,操作系统接口 4. Oracle 8.0 ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表 ...
随机推荐
- .htaccess教程:简介、访问控制、验证、目录浏览控制
一..htaccess简介 1.什么是.htaccess .htaccess是一个纯文本文件,里面存放着Apache服务器配置相关的一些指令,它类似于Apache的站点配置文件,如httpd.conf ...
- 欧拉回路&欧拉通路判断
欧拉回路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次, 称这条回路为欧拉回路.具有欧拉回路的图成为欧拉图. 判断欧拉通路是否存在的方法 ...
- mac 安装mongodb与常用操作
1.安装 brew update brew install mongodb 2.启动mongo mongod --config /usr/local/etc/mongod.conf 3.启动 mong ...
- Gitlab部署及汉化操作
一.简介 GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. GitLab拥有与Github类似的功能 ...
- css控制单行文本溢出
1.溢出属性(容器的) overflow:visible/hidden(隐藏)/scroll/auto(自动)/inherit; visible:默认值,内容不会被修剪,会成现在元素框之外: hidd ...
- 使用OpenSSL自签发服务器https证书
OpenSSL官方推荐win32可执行文件版下载:http://www.slproweb.com/products/Win32OpenSSL.html ca.key CA私钥: openssl gen ...
- bzoj 1854 并查集 + 贪心
思路:这个题的并查集用的好NB啊, 我们把伤害看成图上的点,武器作为边,对于一个联通块来说, 如果是一棵大小为k的树,那么这个联通块里面有k - 1个伤害能被取到,如果图上有环那么k个值都能 取到,对 ...
- 获取 web 项目的绝对路径
获取 web 项目的绝对路径 <% String path = request.getContextPath(); String basePath = request.getScheme()+& ...
- eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本
eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本 在使用 eclipse 创建 maven 项目的时候,默认的 web.xml 的版本时 2.3,默认 jre 的版本 ...
- poj1475 Pushing Boxes(BFS)
题目链接 http://poj.org/problem?id=1475 题意 推箱子游戏.输入迷宫.箱子的位置.人的位置.目标位置,求人是否能把箱子推到目标位置,若能则输出推的最少的路径,如果有多条步 ...