Oracle入门级知识详解
一. 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 表空间;
视图也可以删,但别去无聊操作,要用就用代码。