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表示删除用户的同时删除其建立的实体