二、Oracle基本介绍和用法

1、Oracle介绍

ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或 B/S 体系结构的数据库之一。

2、Oracle体系结构

在这里插入图片描述

2.1数据库

Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个大数据库。

2.2实例

一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有 n 个实例。

2.3用户

用户是在实例下建立的。不同实例可以建相同名字的用户。

2.4 表空间

表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为 system 表空间)。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。

2.5数据文件(dbf、ora)

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

在这里插入图片描述

3、表操作

3.1表空间


---创建表空间
create tablespace testSpace
datafile 'E:\App\oracle\oradata\testSpace.dbf'
size 100m
autoextend on
next 10m;

--testSpace为表空间名称 
--datafile 指定表空间对应的数据文件
--size 后定义的是表空间的初始大小 
--autoextend on 自动增长 ,当表空间存储都占满时,自动增长 
--next 后指定的是一次自动增长的大小。

---删除表空间
drop tablespace testSpace;

3 .2用户

---创建用户
create user test
identified by lyt123456
default tablespace testSpace;

---identified by 后边是用户的密码 
---default tablespace 后边是表空间名称
---oracle 数据库与其它数据库产品的区别在于,表和其它的数据库对象都是存储在用户下的。

---给用户授权
--oracle数据库中常用角色
connect--连接角色,基本角色
resource--开发者角色
dba--超级管理员角色

---赋予test用户dba权限
grant dba to test;

3.3Oracle的数据类型

在这里插入图片描述
varchar和varchar2的区别:varchar(10):代表数据定长10;varchar2(10):数据最大长度10,当数据实际长度小于10,数值的长度是实际长度,节约空间。

3.4表的管理

--------------切换到test用户下--------------
create table person(
       pid number(20),
       pname varchar2(10)
);
---修改表结构
---添加一列
alter table person add (age number(3));
---修改列类型
alter table person modify age number(5);
---修改列名称
alter table person rename column age to agenum;
---删除一列
alter table person drop column agenum;

4、表数据操作

4.1数据的增删改查


---查询表中记录
select rowNum,person.* from person;
----添加一条记录
insert into person(pid,pname)values(12,'张三');

---此处新增用到的是person_sequence.nextval序列,后面会讲到
insert into person(pid,pname)values(person_sequence.nextval,'张三');
commit;
----修改一条记录
update person set pname ='zhangsan' where pid =1;
commit;

---删除表
drop table person;
---清除表数据
delete from person;
--先删除表,再次创建表。效果等同于删除表中全部记录。
--在数据量大的情况下,尤其在表中带有索引的情况下,该操作效率高。
--索引可以提供查询效率,但是会影响增删改效率。
truncate table person
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值