Oracle
1. oracle介绍
-
ORACLE 数据库是目前世界上使用最为广泛的数据 库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能
-
作为一个关系数据库, 它是一个完备关系的产品
-
作为分布式数据库它实现了分布式处理功能
2.oracle体系结构
2.1数据库Database
数据库是数据的物理存储,包括数据文件ORA、DBF、控制文件、联机文件、参数文件,oracle数据库是一个大数据库,一个操作系统只有一个库。
2.2实例instance
一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构 (Memory Structures)组成。一个数据库可以有 n 个实例。
2.3用户User
用户是在实例下建立的。不同实例可以建相同名字的用户。
2.4表空间
对物理数据库上相关数据文件的逻辑映射。
一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每 个数据库至少有一个表空间(称之为system表空间)。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。
2.5数据文件ORA、DBF
数据文件是数据库的物理存储单位。
数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。
而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。
一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
用户把数据放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。
2.6注意事项
由于 oracle 的数据库不是普通的概念,oracle 是有用户和表空间对数据进行管理和存放的。
但是表不是有表空间去查询的,而是由用户去查的。
因为不同用户可以在同一个表空间建立同一个名字的表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xTFB0vA1-1607842323062)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20201212144529756.png)]
3.管理表空间
一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立多个表。
- 使用超级用户cmd登录
sqlplus sys/sys as sysdba
- 创建表空间
-- 创建表空间
create tablespace lj_test
datafile 'D:\oracle\lj_test.dbf'
size 10m
-- 自动增长 ,当表空间存储都占满时,自动增长
autoextend on
next 1m;
--删除表空间
drop tablespace lj_test;
4.管理用户
- 查询用户
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户
select * from user_users; 查看当前用户信息
- 创建用户
--创建用户
create user lj
identified by lj
default tablespace lj_test;
- 赋予用户权限
--给用户授权
--oracle数据库中常用角色
-- connect 连接角色,基本角色
-- resource 开发者角色
-- dba 超级管理员角色
--给lj用户授予dba角色
grant dba to lj;
--查询当前用户的权限
select * from session_privs;
---切换到lj用户下
alter session set current_schema = lj;
-- 查询你 当前用户下,有哪些表
SELECT * FROM user_tables
-- 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]
SELECT * FROM all_tables
-- 查询当前数据库所有的表, 需要你有 DBA 的权限
SELECT * FROM dba_tables
注意:只有当前用户有权限可以赋予创建的用户权限,没有权限则不能
- 删除用户
drop user lj cascade
4.1connect连接角色
是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
4.2resource 开发者角色
是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
4.3dba 超级管理员角色
拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构
并且系统权限也需要DBA授出,且可以操作全体用户的任意基表,包括删除
5.管理表
5.1Oracle数据类型
varchar,varchar2 表示一个字符串
number number(n)表示一个整数,长度是 n
number(m,n):表示一个小数,总长度是 m,小数是 n,整数是 m-n
date 表示日期类型
clob 大对象,表示大文本数据类型,可存4G
blob 大对象,表示二进制数据,可存 4G
5.2管理表结构
- 建表
---创建一个person表
create table person(
id number(20) primary key,
name varchar2(10),
gender number(1) default 1,
birthday date
);
- 删除表
----三个删除
--删除表中全部记