(1)表中数据操作

插入数据:
a.插入单条 insert into myemp(empno,ename) values(1111,'张三');
b.批量插入 insert into myemp select * from emp; 使用了子查询
修改数据:
a.修改多个列 update myemp set ename=''糯米团子 ,sal=15000 where empno=7369;
删除数据:
a.使用delete删除数据 delete from myemp where empno=7369;
b.使用truncate 删除整张表数据 truncate table myemp;
c.delete和truncate 删除数据的区别
事务+内存+碎片+执行时间

(2)表操作
创建表:
a.基本创建表语句
create table myemp1(
id number(10) primary key,
name varchar2(10) not null,
gender varchar2(4) check(gender in('男','女'))
---constraint myemp1_id_pk primary key(id)
)
b.使用子查询创建表
create table myemp2 as select * from myemp where 1=2;
由于1=2为假,该语句只拷贝了结构,没有拷贝数据;
删除表:
a.彻底删除表
drop table myemp3 purge; 不加purge是暂时放到回收站中了
b.drop之后的数据放到了recyclebin回收站中
查看回收站:show recyclebin;
彻底清除回收站:purge recyclebin;
彻底删除表:drop table myemp3 purge;
查看回收站表数据: select * from "BIN$YTQc8f5pTZ6kuFyu4GSeug==$0";
c.闪回
flashback table myemp3 to before drop;
修改表:
a.修改表中列
oracle: alter table myemp3 modify ename vachar2(20); 不能带column
mysql : alter table myemp3 modify (column) ename varchar(20);
b.增加表中列
oracle: alter table myemp3 add gender varchar2(4);
mysql : alter table myemp3 add (column) gender varchar2(4);
c.删除表中列
oracle: alter table myemp3 drop column gender; 必须带column
mysql : alter table myemp3 drop (column) gender;
d.重新命名表中列名
oracle: alter table myemp3 rename column ename to myname; 必须带column
mysql : alter table myemp3 change (column) ename myname varchar(20);
e.重新命名表名
oracle: rename myemp3 to myemp4;
mysql : rename table mysqltname3 to mysqltname4; 必须带table

(3)事务
a.oracle和mysql事务区别:
oracle中事务:
在insert/update/delete 中默认操作之后需要commit才能改变真正改变数据;
mysql中事务:
直接执行insert/update/delete 就已经改变了数据
b.设置事务:
set transaction read only;
c.事务之保存点
创建保存点 savepoint a;
回滚保存点 rollback to savepoint a;
d.oracle中支持3种事务;
read commited, read only ,serializable

(4)oracle中的对象(表、约束、序列、索引、视图、同义词....)
约束(保证数据完整性):
create table myemp3(
id number(10),
name varchar2(10) constraint myemp3_name_nn not null,--非空约束
gender varchar2(4) default '男',--默认值
deptno NUMBER(2),
email varchar2(20),
constraint myemp3_id_pk primary key(id), --主键约束
constraint myemp3_gender_ck check(gender in('男','女')), --检查约束
constraint myemp3_email_uk unique(email), --唯一约束
constraint myemp3_deptno_fk foreign key(deptno) references dept(deptno) on delete set null --外键约束
-- 没有这种写法constraint myemp3_name_nn not null ;
)
序列(主键自增使用)
创建序列:create sequence myemp3_seq;
使用序列:在insert into myemp3 values(myemp3_seq.nextval,'海洋','女',10,'101001@qq.com');
获取当前值使用myemp3_seq.currval
注意:myemp3_seq.nextval 每调用一次nextval 指针向后移动一位,也就是该序列增加一次;
索引(提高检索速度):
创建索引:create index myemp3_index on myemp3(name,email) 联合索引
drop index myemp3_index;
创建索引的场景:
该列值很多,经常被查询
如果该列值经常做update 操作不适合

视图(复杂查询结果放到一张虚拟表中,对视图的操作其实是构成视图基表操作):
创建视图:create or replace view myview_view as select * from myemp3;
删除视图:drop view myview;
理解:一般视图不推荐做插入、修改操作,推荐做with read only 查询、
因为如果遇到一些特殊语句,insert,update 操作就不行。

同义词(给其他对象取一个别名,方便其他用户调用和缩写对象名称):
创建同义词:create synonym mysys_synonym for myemp3; for 可以是其他对象
删除同义词:drop synonym mysys_synonym;

(5)plsql基本结构和变量声明

关于这部分出自 https://baike.baidu.com/item/plsql/9042661?fr=aladdin

基本结构:
declare
--声明变量
begin
--plsql体执行其他操作
end;
变量声明:
set serveroutput on --注意这里使用sqldeveloper 工具需要将控制台输出打开一次就行
DECLARE
id constant number(2):=1;--使用constant 关键词定义常量
name VARCHAR2(10):='贺文锦';--定义指定类型变量
mysal emp.sal%type;--定义引用存在表的列类型
myrow emp%rowtype;--定义引用存在表行类型
BEGIN
--常量就不能再赋值了 id:=2 错误
SELECT sal INTO mysal FROM emp WHERE empno=7369;
SELECT * INTO myrow FROM emp WHERE empno=7369;
dbms_output.put_line(id);
dbms_output.put_line(name);
dbms_output.put_line(mysal);
dbms_output.put_line(myrow.ename || ' ' || myrow.sal);
END;

oracle03的更多相关文章

  1. Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...

  2. Oracle-03:关系型数据库和非关系的数据库的各自优缺点与区别

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 常见的非关系型数据库: Mongo DB Redis HBase 二维表的介绍: 在关系模型中,数据结构表示为 ...

  3. oracle-03 表的管理

    一.表名和列名的命名规则1).必须以字母开头2).长度不能超过30个字符3).不能使用oracle的保留字4).只能使用如下字符 a-z,a-z,0-9,$,#等 二.数据类型1).字符类char 长 ...

  4. (Oracle)自定义调用AWR&ADDM

    Oracle->自定义调用AWR&ADDM 需求描述: 前面设定每天自动生成AWR用于提供前一天的数据库状态信息,但因数据库和信息过多不利于直观检查.此次新增ADDM诊断. ADDM诊断 ...

  5. (Oracle)自定义调用AWR

    Oracle->自动发送AWR报告 2016年9月21日 09:31 需求描述: 每日或定期手动使用AWR报告来检查Oracle数据库状态不仅耗时也费力,需求使用脚本自动收集AWR报告.   分 ...

随机推荐

  1. Python核心编程笔记--动态属性

    一.动态语言与静态语言 1.1 静态语言特点: a. 在定义变量时需要指定变量的类型,根据指定的类型来确定变量所占的内存空间 b. 需要经过编译才能运行 c. 在代码编译后,运行过程不能对代码进行操作 ...

  2. linux centos下安装dokuwiki

    首先先大致介绍一下wiki: DokuWiki是一个开源wiki引擎程序,运行于PHP环境下.Doku Wiki 程序小巧而功能强大.灵活,适合中小团队和个人网站知识库的管理. DokuWiki可以与 ...

  3. 关于Bitcoin的分叉之路

    今年对与bitcoin来讲是不平凡的一年,它经历了价格的暴涨.腰斩和再次暴涨,对于这些现象背后的利益博弈网上分析的文章很多,我就不再赘述了.我们从技术的角度上分析一下bitcoin的发展历程,同时预测 ...

  4. Android 中log 找到关键log

    SYS_ANDROID_EVENT_LOG1. aee_exp文件夹中有 db.fatal.00.SWT. 2. 准备工作: gat打开db.fatal.00.SWT.dbg文件,即会生成.DEC文件 ...

  5. I/O模型详细解析

    内核空间和用户空间:由于操作系统都包括内核空间和用户空间(或者说内核态和用户态),内核空间主要存放的是内核代码和数据,是供系统进程使用的空间.而用户空间主要存放的是用户代码和数据,是供用户进程使用的空 ...

  6. Windows AD域升级方

    前面的博客中我谈到了网络的基本概念和网络参考模型,今天我们来谈企业中常用的技术,Windows AD 域,今天我的笔记将重点讲解Windows AD 域的升级和迁移方法,通过3个小实验进行配置,真实环 ...

  7. Python pandas ERROR 2006 (HY000): MySQL server has gone away

    之前在做python pandas大数据分析的时候,在将分析后的数据存入mysql的时候报ERROR 2006 (HY000): MySQL server has gone away 原因分析:在对百 ...

  8. java数据结构与算法(一)

    1.数据结构概念 所谓的数据结构是数据之间的关系,都是为了提高程序效率而设计的. 分为逻辑关系和物理关系两种. 逻辑关系:人为的一种逻辑思维的认为. (1)集合:在一个范围内有多个数据,数据之间没有关 ...

  9. python函数高级特性

    掌握了Python的数据类型.语句.函数,基本可以编写出很多有用的程序了.但是Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好.基于这一思想,我们来介绍python中 ...

  10. \(?0\d{2}[) -]?\d{8}正则表达式的解释

    正则表达式30分钟出现了这样一个正则表达式:(?0\d{2}[) -]?\d{8} "("和")"也是元字符,所以需要转义. ?匹配零或一次 (? 表示 出现( ...