Oracle入门

Oracle简介:

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。

ps:是所有数据库中一直处于领先地位的产品,缺点就是贵,有钱的公司才用得起。

Oracle基本概念:

启动的服务:

核心服务:OracleServiceORCL

监听服务:OracleOraDb11g_home1TNSListener

数据库工作日程调度:OracleJobSchedulerORCL

Oracle和Mysql最大的不同:

Oracle适用于银行,金融,电商等对数据可用性、健壮性、安全性、实时性要求比较高的行业。Mysql生于互联网,长与互联网,应用也大多是互联网企业。

ps:其实也就是贵,赚钱的行业才用的起oracle,像刚起步的小公司也就只能用用便宜的mysql。

Oracle体系:

现在开始绕口令:

一个电脑只有一个Oracle数据库

一个数据库有多个实例

一个实例有多个用户

一个用户只有一个表空间

一个表空间可以给多个用户可以使用

一个表空间有一个或多个数据文件

一个数据文件只能属于一个表空间

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

当数据文件属于表空间时,不能删除单独的数据文件,要先删除表空间才能删除数据文件。在删除表空间的时候,数据文件不会跟着表空间的删除而删除。

Oracle常用函数:

转换函数:

to_date

to_char

to_number

分析函数:

当需要给数据做排序的时候使用,生成一列专门用来做排名,比如给年级各个班学会排名次

rank

同一区域内,值相同,为同一个序号,但是下一个序号会根据个数跳号

dense_ranl

同一个区域内,值相同,为同一个序号,下一个序号不跳号

row_number

同一个区域内,值不同,不跳号

over

一般搭配前面三个,函数里面可以写gourp by、order by等

其他函数:

nvl(value1,value2)

转换空值,如果value1为null返回value2,否则返回value1

nvl2(value1,value2,value3)

转换空值,如果value1的值为null 函数返回value3 否则函数返回value2 也就是说函数永远不会返回value1

decode

类似于选择结构,给特定的值输出特定的结果。


Oracle数据库应用

表空间:

表空间是数据库的逻辑储存空间,顾名思义,就是存放表的空间。表空间至少要有一个数据文件,大小和位置可以自己定义。表空间分为3类,为永久表空间,临时表空间,UNDO表空间。我们平时用的也就是永久表空间,后面两个只要知道就可以了。一般都是Oracle自动帮我们管,临时表就是存放临时表的,UNDO表空间存放事务产生的旧数据,用于回滚。

Mysql中区分是用数据库区分的,但是Oracle中只有一个数据库,所以Oracle区分不同的数据库是用用户区分的。用户和表空间的关系是

用户=商家 表=商品 表空间=仓库

对于表空间的操作就不细讲了,只要知道表空间的关键字是tablespace,数据字典是user_tablespace(用户),dba_tablespace(系统管理员)。语法和别的差不多,所有的操作基于这个操作就好了。

用户权限:

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

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

语法:

Create user 用户名

identified by 密码

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

案例:

create user u_dml

identified by 123

Default tablespace ts_1
  • 查询用户
SELECT *

FROM dba_users

WHERE username='用户名';
  • 查看表空间限额
SELECT *

FROM dba_ts_quotas

WHERE username='用户名';
  • 修改用户的表空间限额
Alter user 用户名(大写) quota 限额大小 (20M) to 表空间名(大写)

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

角色分类:

Connect:临时用户角色

Resource:正式用户角色

DBA:管理员(一般不用)

授予角色:

Grant connect , resource to 账户

撤销角色:

Revoke connect,resource from 账户

授予权限:

  • 授权系统权限
grant create session to 账户
  • 授权表权限
Grant select on scott.emp to 账户
  • 将scott用户下的emp所有权限赋值给账户
Grant all on scott.emp to 账户
  • 撤销权限:
revoke select on scott.emp from 账户
  • 删除(撤销)用户:
DROP USER 用户名

Drop user 用户名 cascade;

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