1. 建立数据库

备注:

1) oracle 不同于mysql 可以直接create database

2) oracle 创建schema时对应一个用户,即该schema的访问用户,与用户一一对应;但可以存在多个访问用户(带权限控制)

1.1 创建数据库文件

CREATE TABLESPACE XX LOGGING DATAFILE 'D:\app\XX\oradata\orcl\XX.dbf' SIZE 1000M;

create temporary tablespace XX tempfile 'D:\app\XX\oradata\orcl\XX.dbf' size 1000m;

1.2 创建用户

CREATE USER XX IDENTIFIED BY XX DEFAULT TABLESPACE XX TEMPORARY TABLESPACE XX;

1.3 授权

grant connect, resource to XX;
grant create session to XX;

2. 数据库操作(默认sccot用户):

2.1 create

create table persons(
person_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL,
score NUMBER,
type VARCHAR2(20)
);

备注:

1) ORA-02000: missing ALWAYS keyword : 在11g版本里不用用GENERATED BY DEFAULT AS IDENTITY ,要用PRIMARY KEY
2) oracle 本来只有number类型,用作number(19,2),即有小数位;后为了兼容其他数据库,新增int,只能是整形

2.2 insert

insert into persons values(1, 'fred', 'xu', 0, 'a');

insert into persons values(SEQ_PERSON_ID.NEXTVAL, 'fred3', 'xu3', 0, 'b')

备注:

1)oracle下设置自增没有mysql那么简单,步骤如下:

1.1) CREATE SEQUENCE SEQ_PERSON_ID start with 100; #创建一个序列
1.2) INSERT INTO persons VALUES(SEQ_PERSON_ID.NEXTVAL, 'fred1', 'xu1', 0, 'a');

#此时插入persons表记录的person_id被设置成了100

1.3)也可以采用触发器的形式
CREATE TRIGGER persons_trigger
BEFORE INSERT ON persons
FOR EACH ROW
WHEN (new.person_id is null)
begin
select SEQ_PERSON_ID.nextval into :new.person_id from sys.dual;
end;

备注:sys.dual 是个虚拟表,oracle保证里面只有一条记录
:new— 触发器执行过程中触发表作操作的当前行的新纪录
:old— 触发器执行过程中触发表作操作的当前行的旧纪录

在有触发器之后,插入数据时不需要填写主键 INSERT INTO persons(first_name, last_name, score, person_type) VALUES('fred2', 'xu2', 0, 'a');

2.3 select

select * from persons where first_name = 'fred' or last_name = 'xu1'
select * from persons where first_name like '%fred%'
select * from persons where CONCAT(first_name, last_name) like '%1%'

select * from users where rownum BETWEEN 0 AND 5 #利用rownum关键字分页

2.4 group by

select AVG(score), person_type from persons group by person_type
select AVG(score), person_type from persons group by person_type having person_type = 'b'

备注:

1)ORA-00979: not a GROUP BY expression group by 后的列要能被处理

2.5 in

select * from persons where person_type in ('a','b');

2.6 insert all

insert all
into persons(first_name, last_name, score, person_type) values('test', 'test', 1, 'c')
into persons(first_name, last_name, score, person_type) values('test1', 'test1', 1, 'c1')
into persons(first_name, last_name, score, person_type) values('test2', 'test2', 1, 'c2')

SELECT 1 FROM dual;

备注:

SELECT 1 FROM dual; 最后一次select必须有

2.7 视图

create view person_view as select * from persons where first_name like '%f%'

select * from person_view;

备注:

视图是需表,只是逻辑定义;除非是一种物化视图,那个才是有物理占用

2.8 索引

create index person_index on persons (first_name);

oracle 简单备注的更多相关文章

  1. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  2. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  3. Oracle简单的备份和恢复-导出和导入(1)

    ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(1) Oracle简单的备份和恢复-导出和导入 1. 用户导出自己的表(emp,dept)返回顶部 1.1, 我们启动Oracl ...

  4. Oracle简单的备份和恢复-导出和导入(2)

    ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(2) 简单的备份和恢复-导出和导入(2) 1. 用户导入导出文件中的一张表(emp)返回顶部 0.1, 我们在sql plus中 ...

  5. Oracle简单的备份和恢复-导入和导出-目录

    ylbtech-Oracle:Oracle简单的备份和恢复-导入和导出-目录 Oracle安全运行离不开良好的备份和恢复机制,因为我们不是DBA.所以我们也就不过多的讲解DBA的备份和恢复.作为程序员 ...

  6. oracle简单存储过程以及如何查看编译错误

    oracle简单存储过程以及如何查看编译错误; CREATE OR REPLACE PROCEDURE procedure_test ISval VARCHAR2(200);BEGIN /* val ...

  7. oracle 简单的sysTimeStamp类型转date 类型

    oracle  简单的SYSTIMESTAMP 类型转date 类型 SELECT SYSTIMESTAMP , SYSTIMESTAMP+0 FROM dual; SAMPLE_TIME ----- ...

  8. Oracle简单脚本演示样例

    Oracle简单脚本演示样例 1.添加表 --改动日期:2014.09.21 --改动人:易小群 --改动内容:新增採购支付情况表 DECLARE VC_STR           VARCHAR2( ...

  9. Data Base oracle简单使用及管理工具使用

    oracle简单使用及管理工具使用 一.常用工具: 1.sqldeveloper 2.navicat for oracle 3.PLSQL Developer 4.toad

随机推荐

  1. maven入门 (二)_私服安装与上传下载

    本篇文章主要介绍maven的私服安装和 jar包的上传与下载.毕竟大家还是在公司需要上传jar包到自己公司私服的. 1.安装私服 下载链接: https://pan.baidu.com/s/17dbQ ...

  2. bug排查小结

    mysql cpu利用率偏高,并且长时间居高不下. show processlist 发现有一个单表查询的sql语句出现的频率比较高, 这个单表查询中规中矩,where语句中条件都使用”=“连接,再加 ...

  3. React Native系列(6) - 编译安卓私有React-Native代码

    为何要自己编译React Native安卓私有代码 我们在开发中遇到一个HTTP2的问题,React Native安卓客户端在和HTTP2支持的服务器通讯的过程中会有crash,见 React-Nat ...

  4. JavaScript设计模式 Item 2 -- 接口的实现

    1.接口概述 1.什么是接口? 接口是提供了一种用以说明一个对象应该具有哪些方法的手段.尽管它可以表明这些方法的语义,但它并不规定这些方法应该如何实现. 2. 接口之利 促进代码的重用. 接口可以告诉 ...

  5. 双层嵌套json字符串(即json对象内嵌json数组)解析为Map

    之前我层写过一篇文章,介绍了json与map的相互转化,但当时只涉及到单一的json对象或json数组,对json对象内嵌套这json数组的json字符串无法处理,这篇文章主要解决这个问题. 之前的那 ...

  6. C++雾中风景9:emplace_back与可变长模板

    C++11的版本在vector容器添加了emplace_back方法,相对于原先的push_back方法能够在一定程度上提升vector容器的表现性能.所以我们从STL源码角度来切入,看看这两种方法有 ...

  7. VMware下对Ubuntu进行扩充磁盘大小

    今天用虚拟机的时候,发现虚拟机快满了,提示磁盘空间小,不得不扩充虚拟机空间.经过百度搜索,终于搞定了,记录如下 平台:VMware(10.0.3)+Ubuntu 14.04(32bit) 1.选择VM ...

  8. HTML5 & MUI 界面样式

    垂直居中+自动换行 样式效果如下所示,当文字没有超出一行时,显示如“备注信息”,当文字超出一行时,显示如“维修地点” HTML代码如下: <div class="mui-input-r ...

  9. 【gcd+stl】UVa1642 Magical GCD

    Description 一个长度为n的数列,选一个连续子序列,使得子序列的公约数*长度最大,求这个最大值.n<=1e5. Solution 连续子序列一般都要用滑动窗口是吧(固定r,快速计算最优 ...

  10. BZOJ_2242_[SDOI2011]计算器_快速幂+扩展GCD+BSGS

    BZOJ_2242_[SDOI2011]计算器_快速幂+扩展GCD+BSGS 题意: 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p, ...