设为首页 加入收藏

TOP

Oracle学习(八):处理数据(一)
2015-07-24 12:08:10 来源: 作者: 【 】 浏览:97
Tags: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 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇PostgreSQL自定义函数处理特殊需求 下一篇Oracle限制连接的IP

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: