Oracle概念与基本常识

一、启动的服务

1.oracle核心服务——OracleServiceORCL

2. oracle监听服务——OracleOraDb11g_home1TNSListener

3.oracle数据库工作日程调度(没有工作日程安排不用启动,占资源)——OracleJobSchedulerORCL

二、Sql Server与Oracle最大的不同

1. SQL SERVER 号称百万级数据(一个表的数据),但是其实做多20万条数据,超过20万条数据就用Oracle;

2. Sql中可以随时随意的创建数据库;但Oracle只有一个数据库,一台电脑只会安装一个数据库,Oracle只有账户。

三、账户、表空间、数据库

1. 关系

案例:两个同学创建2个不同的数据库

        这两个同学都要在Oracle中找自己的数据库,刚说了一个Oracle只有一个数据库,怎么办?为两个同学各创建一个账户,给

账户开辟数据库空间----表空间(TableSpace)。

        表空间代替了Sql里面的数据库,创建数据库就是开辟账户空间。

        注意:Oracle为A账户开辟个空间,为B账户开辟个空间,请问A和B是不是在用同一个数据库?不同账号之间能不能互访?

         答:A和B在同一个数据库;但是不能互访,除非开了访问权限

2. 数据库

       数据库是数据集合,Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。通常情况下我们称的“数据库”,并不

仅是指物理的数据集合,它包含物理数据、数据库管理系统(也即物理数据、内存、操作系统进程的组合体)。

        查询当前数据库名:select name from v$database;        (本人返回JANET)

3、数据库实例

      用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的

内存(SGA)所构成一个集合。其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象

一样。我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可

用的错误。

       实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。

       查询当前数据库实例名:select instance_name from v$instance;

       数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作

开发,要连接数据库,就得连接数据库实例名:

        jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)

       一个数据库可以有多个实例,在作数据库服务集群的时候可以用到。

4、表空间

    Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。有了数据库,

就可以创建表空间。

     表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效

率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表

空间只能属于一个数据库。

     创建表空间语法:

          Create TableSpace 表空间名称

           DataFile 表空间数据文件路径

           Size 表空间初始大小

            Autoextend on

     如:

        create tablespace db_test

        datafile 'D:\oracle\product\10.2.0\userdata\db_test.dbf'

        size 50m

        autoextend on;

查看已经创建好的表空间:

select default_tablespace, temporary_tablespace,d.username from dba_users d;

查看当前用户的缺省表空间:

select username,default_tablespace from user_users;

4、用户

Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。

上面我们建好了数据库和表空间,接下来建用户:

创建新用户:

CREATE USER 用户名

IDENTIFIEDBY 密码

DEFAULT TABLESPACE 表空间(默认USERS)

TEMPORARY TABLESPACE 临时表空间(默认TEMP)

如:

CREATE USER utest

IDENTIFIED BY utestpwd

DEFAULT TABLESPACE db_test

TEMPORARY TABLESPACE temp;

(这里临时表空间不能使用我们创建的db_test,不知为何?)

有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:

GRANT CONNECT TO utest;

GRANT RESOURCE TO utest;

GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。

查看数据库用户:

select * from dba_users;

2. 创建表空间

     ①基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。

     ②创建表空间的语法:create tablespace 表空间名

 

     例:

        Create tablespace ts_1

        Datafile ’e:111.dbf’ --数据库文件地址

        Size 100M --文件初始值大小

         --只要以上三行就行了,以下四行为了做某些控制而加

             autoextend on next 32 maxsize unlimited

            logging

            extent management local

          segment space management auto;

四、给表空间分配账户,给账户角色授权

1.首先创建账户,指定访问表空间,但是未给它赋值任何权限,登录时是等不了的!

Create user 用户名

identified by 密码

Default tablespace 表空间 --指定该用户管理的表空间

案例:

         create user u_dml

         identified by 123

         Default tablespace ts_1

2.给账户授予角色(注意需把账户和角色分清楚)

角色:李鹏飞是个学生    角色:学生

账户:李鹏飞是个学生    账户:李鹏飞

角色分类:

Connect:临时用户角色

Resource:正式用户角色

DBA:管理员(一般不用)

授予角色:

Grant connect , resource to 账户

撤销角色:

Revoke connect,resource from 账户

删除(撤销)用户:

DROP USER 用户名

DROP user 用户名 CASCAED

--CASCAED表示删除用户的同时删除其建立的实体

操作授权:

案例:将查询scott用户的stu表的权限授予test用户

           Grant select on scott.stu to test

猜你喜欢

转载自blog.csdn.net/qq_38986609/article/details/82501643