欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle入门级知识详解

程序员文章站 2022-04-08 10:39:03
一. Oracle基本介绍 1. 什么时候用Oracle数据库? SQL SERVER 号称百万级数据(一个表的数据),但是其实做多20万条数据 超过20万条数据就用Orac...

一. Oracle基本介绍

1. 什么时候用Oracle数据库

SQL SERVER 号称百万级数据(一个表的数据),但是其实做多20万条数据

超过20万条数据就用Oracle

2. Oracle的版本

Oracle8i/9i(internet)基于网络的;

Oracle10g/11g基于网络,oracle10g/11g (grid)基于网格的,它的客户端就是个web程序了,可以在IE里打开的:oracle->Database Control - orcl点下就会在IE中打开,如果找不到地址就是没开动OracleDBConsoleorcl服务(DBC控制器),该功能就相当于SQL Server;

orcale12c;

3. Oracle 12c --oracle 11g的升级版,应用服务器方面,很炫,但对初学者来说,然并卵

4.

二.启动的服务

1.//oracle核心服务

OracleServiceORCL

2. //oracle监听服务

OracleOraDb11g_home1TNSListener

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

OracleJobSchedulerORCL

二. Oracle默认的账户scott

密码:tiger(安装时设置)

他下面存在几个常用的表:emp,dept,salgrade等表

三.Sql与Oracle最大的不同:

Sql中可以随时随意的创建数据库;

但Oracle只有一个数据库,一台电脑只会安装一个数据库。

Oracle只有创建账户,

四.账户、表空间、数据库

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

这两个同学都要在Oracle中找自己的数据库,刚说了一个Oracle只有一个数据库,怎么办?为两个同学各创建一个账户,给账户开辟数据库空间----表空间(TableSpace)。

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

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

不同账号之间能不能互访?

同一个数据库;不能互访,除非开了访问权限

五. 创建数据库和账户

数据库

物理的:数据库文件.dbf; 日志文.log; 控制文件.ctl;

虚拟的:表空间(可以用户开辟)

问先创建表空间还是账户?

答:先创建表空间,再给用户

关于账户

Sys、system管理员账户,在装软件时就已分配好的,因此可以用这账户开辟空间。

Scott(释放账户:给我们看和用的)密码是tiger。

注意:千万不要去改这账户和密码,全球都是一样的。(最好不要改,以防装逼失败,无法进入数据库)

关于账户登录

可以用sys或system管理员账号登录,也可以用scott账户登录

1.在开始菜单中选择oracle目录--应用程序开发--sql plus

2.在cmd状态下,直接通过命令sqlplus来登录。

当然cmd下的用户界面差,我们用PL-SQL第三方来操作oracle,但是不能说sqlplus就不用了,以后在unix下面就只能用sqlplus写代码,比较悲催

思考:

A.管理员账户可以调用一般账户的表吗?

select * from scott.emp;

答:可以

B.一般账户可以调一般账户的表吗?

答:授权之后才可以访问

C.代表代码写完的标志是?

‘;’,用分号代表代码写完了,可以执行

D.模式是什么?

模式是账户的另一个名称

比如scott就是一个账户,比如其它的对象就是个模式

每个对象都是个模式

六.创建表空间

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

创建表空间的语法:

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;

七. My Objects(我的对象)

Functions 函数-

Procedures 存储过程-

Packages 包-

Package bodies 包体-

Types 类型-

Type bodies 类型体-

Triggers 触发器-

Java sources

Jobs 工作

Queues 队列

Queue table 队列表格

Libraries

Directories

Tables 表格-

Views 视图-

Materialized views

Sequences 序列-

Users 用户-

Profiles 控制文件-

Reles 角色-

Synonyms 同义词-

Database links

Tablespaces 表空间-

Clusters

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

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

Create user 用户名

identified by 123

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

九.建表

建的表都在tables里面

两种建表方式:

1.视图

2.代码

Create table tb_1(

Sid number, --int类型用number

Sname varchar2(20) --没有varchar

Sex varchar2(4)

);

表中的约束写法

PK

FK

default

unique

check

not null

--查看表中的数据

Select *from tb_1;

问:Orecle中有没有表示列?

oracle没有表示列,不过有一个替代品(触发器+序列)

--插入数据

Insert into tb_1(sid,sname,sex)

Values(10,’张天’,’男’)

--视图版的创建表

--视图版的添加表:

右击Tables--新建--主键:在键里,名称自己取,类型primary,选定哪个列做主键,联合主键就选两个,请问有几个主键?1个主键,多个联合主键

删除列:右侧的减号

--怎么把建表的脚本给我?

右下角--view SQL

--建完表后点“应用”

--指定表和字段的注释

COMMENT ON TABLE PET IS ‘宠物’;

COMMENT on COLUMN pet.name is’宠物昵称’

注意:不要物理删除硬盘上的dbf文件,oracle启动时到时找不到文件,oracle也启动不了,需要重装oracle。

删用户:

Drop user 用户名;

删表空间:

Drop tablespace 表空间;

视图也可以删,但别去无聊操作,要用就用代码。