基础概念:Oracle数据库、实例、用户、表空间、表之间的关系

合集下载

Oracle的几个概念数据库名,全局数据库名,SID,实例,命名空间,schema

Oracle的几个概念数据库名,全局数据库名,SID,实例,命名空间,schema
实例发送请求,oracle实例负责向数据库获取数据。Oracle实例 = 内存结构+后台进程,所以Oracle实例是临时性的;可以通过startup nomount去启动实例,但是注意这时Oracle数据
库并没有启动,需要用open去启动数据库;一个实例只能对应一个数据库,一个数据库可以用多个实例;命名空间,有点复杂。命名空间定义了一组对象类型,在命名空间里,对象的名
Oracle9i 数据库的全域数据库名称;在您更改 DB_NAME 与 DB_DOMAIN 这两个起始参数后必须将 Oracle9i 数据库重新激活才会生效。此外,控制档也必须重新建立。 关于 DB_NAME
起始参数DB_NAME必须是文字字符串,且不能超过 8 个字符。在建立数据库的过程中,DB_NAME设定值会记录在资料文件、控制文件、以及重置日志文件之中。如果您激活 Oracle9i
的视图,至少,在一个schema中是不可能出现这种现象的;下面的对象类型有各自的命名空间:? Indexes? Constraints? Clusters? Database triggers? Private database links?
Dimensions所以你可以创建一个叫做myObject1的索引,即使在相同的schema中;不受Schema局限的对象类型(Non schema objects)有它们自己的命名空间,如下:? User roles?
而「网域名称」则是设定于 DB_DOMAIN 参数。这两个参数合并之后就可以在网际网络上唯一识别每一个 Oracle9i 数据库。举例来说,假设我们欲建立的 Oracle9i 数据库之全域数据库
名称为 ,那么可在起始参数档内设定下列两参数:DB_NAME = mydbDB_DOMAIN = Tips: 您可以执行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改

ORACLE数据库基础知识总结

ORACLE数据库基础知识总结

ORACLE数据库基础知识总结1、RMAN全备备份⽂件的顺序备份归档⽇志、所有的数据⽂件、控制⽂件、spfile、再次备份归档⽇志2、redo⽇志丢失恢复redo⽇志的三种状态是current、active、inactiveinactive,可以重建 clear logactive、current不能变成inactive,只能通过不完全恢复进⾏恢复,然后重建⽇志⽂件3、⼝令⽂件丢失恢复丢失可重建 orapwd file= password= enfries=重建完成之后ORACLE正常使⽤4、控制⽂件丢失恢复a> rman 可以备份控制⽂件b> 控制⽂件可以cp⼀份备⽤c> 控制⽂件可以重建⼿写5、体系结构物理:ORACLE数据库包括instance、database两部分。

instance包括SGA(系统全局区)跟⼀些后台进程组成的。

SGA包括:share pool、db buffer cache、redo log buffer、流池、⼤型池、JAVA POOL、share pool(共享池) :库缓存:缓存最近执⾏的代码,同样的sql多次执⾏不需要频繁读取数据字典中得数据数据字典缓存:存储oracle中得对象定义PL/SQL区:缓存存储过程、函数触发器等数据库对象。

db buffer cache(数据库缓存区)redo log buffercache(⽇志缓存区)常见的后台进程:DBWn:⽤于数据库缓存写⼊磁盘LGWn:⽤于log⽇志写⼊磁盘CKPT:检查点进程SMON:实例维护进程,系统监视器MMON:AWR主要进程PMON:维护⽤户进程,进程监视器ARCN:归档进程database包括数据⽂件、控制⽂件、⽇志⽂件等。

逻辑:oracle数据块-区-段-表空间-数据库-⽅案多个oracle数据块组成⼀个区,多个区组成⼀个段,多个段组成⼀个表空间,多个表空间组成⼀个数据库表空间和数据⽂件的关系:表空间是由⼀个或多个数据⽂件组成的,⼀个数据⽂件只属于⼀个表空间,表空间的⼤⼩是所有数据⽂件⼤⼩的总和。

oracle下的数据库实例、表空间、用户及其表的区分

oracle下的数据库实例、表空间、用户及其表的区分

oracle下的数据库实例、表空间、⽤户及其表的区分完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。

1) 数据库是⼀系列物理⽂件的集合(数据⽂件,控制⽂件,联机⽇志,参数⽂件等);2) Oracle数据库实例则是⼀组Oracle后台进程/线程以及在服务器分配的共享内存区。

在启动Oracle数据库服务器时,实际上是在服务器的内存中创建⼀个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据⽂件。

Oracle有⼀个很⼤的内存快,成为全局区(SGA)。

⼀、数据库、表空间、数据⽂件1、数据库数据库是数据集合。

Oracle是⼀种数据库管理系统,是⼀种关系型的数据库管理系统。

通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。

也即物理数据、内存、操作系统进程的组合体。

我们在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库)如下图:全局数据库名:就是⼀个数据库的标识,在安装时就要想好,以后⼀般不修改,修改起来也⿇烦,因为数据库⼀旦安装,数据库名就写进了控制⽂件,数据库表,很多地⽅都会⽤到这个数据库名。

启动数据库:也叫全局数据库,是数据库系统的⼊⼝,它会内置⼀些⾼级权限的⽤户如SYS,SYSTEM等。

我们⽤这些⾼级权限账号登陆就可以在数据库实例中创建表空间,⽤户,表了。

查询当前数据库名:select name from v$database;2、数据库实例⽤Oracle官⽅描述:实例是访问Oracle数据库所需的⼀部分计算机内存和辅助处理后台进程,是由进程和这些进程所使⽤的内存(SGA)所构成⼀个集合。

其实就是⽤来访问和使⽤数据库的⼀块进程,它只存在于内存中。

就像Java中new出来的实例对象⼀样。

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

Oracle数据库基本知识

Oracle数据库基本知识

Oracle数据库基本知识Oracle数据库基本知识Oracle Database,又名OracleRDBMS,或简称Oracle。

是甲骨文公司的一款关系数据库管理系统。

本文为大家分享的是Oracle数据库的基本知识,希望对大家有所帮助!它是在数据库领域一直处于领先地位的产品。

可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。

它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。

介绍ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

比如SilverStream 就是基于数据库的一种中间件。

ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

Oracle数据库最新版本为OracleDatabase 12c。

Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。

此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。

这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

就业前景从就业与择业的角度来讲,计算机相关专业的大学生从事oracle 方面的技术是职业发展中的最佳选择。

其一、就业面广:ORACLE帮助拓展技术人员择业的广度,全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位,大学生在校期间兴趣广泛,每个人兴趣特长各异,不论你想进入金融行业还是电信行业或者政府机构,ORACLE都能够在你的职业发展中给你最强有力的支撑,成为你最贴身的金饭碗。

ORACLE数据库与实例的关系

ORACLE数据库与实例的关系

ORACL‎E数据库与‎实例的关系‎1 数据库名1.1 数据库名的‎概念数据库名(db_na‎m e)就是一个数‎据库的标识‎,就像人的身‎份证号一样‎。

如果一台机‎器上装了多‎个数据库,那么每一个‎数据库都有‎一个数据库‎名。

在数据库安‎装或创建完‎成之后,参数DB_‎‎NAME被‎写入参数文‎件之中。

数据库名在‎$O racl‎e_HOME‎/admin‎/db_na‎m e/pfile‎/init.ora(或$ORACL‎E_BAS‎E/admin‎/db_na‎m e/pfile‎/init.ora或$ORACL‎E_HOM‎E/dbs/SPFIL‎E<实例名>.ORA)文件中############################################ Datab‎a se Ident‎i fica‎t ion###########################################db_do‎m ain=""db_na‎m e=orcl在创建数据‎库时就应考‎虑好数据库‎名,并且在创建‎完数据库之‎后,数据库名不‎宜修改,即使要修改‎也会很麻烦‎。

因为,数据库名还‎被写入控制‎文件中,控制文件是以二进‎制型式存储‎的,用户无法修‎改控制文件‎的内容。

假设用户修‎改了参数文‎件中的数据‎库名,即修改DB‎‎_NAME‎的值。

但是在Or‎‎acle启‎动时,由于参数文件中的DB‎‎_NAME‎与控制文件‎中的数据库‎名不一致,导致数据库‎启动失败,将返回OR‎‎A-01103‎错误。

1.2 数据库名的‎作用数据库名是‎在安装数据‎库、创建新的数‎据库、创建数据库‎控制文件、修改数据结‎构、备份与恢复‎数据库时都‎需要使用到‎的(注意这些时‎候不能使用‎s i d,还有alt‎‎e r datab‎a se时都‎是使用数据‎库名)。

有很多Or‎‎acle安‎装文件目录‎是与数据库‎名相关的,如:winnt‎: F:\oracl‎e\produ‎c t\10.2.0\orada‎t a\DB_NA‎M E\...又如参数文‎件p fil‎‎e:winnt‎: F:\oracl‎e\produ‎c t\10.2.0\admin‎\DB_NA‎M E\pfile‎\init.ora.54200‎88572‎9如果控制文‎件损坏或丢‎失,数据库将不‎能加载,这时要重新‎创建控制文‎件,方法是以n‎‎omoun‎t方式启动‎实例,然后以cr‎‎eate contr‎o lfil‎e命令创建‎控制文件,当然这个命‎令中也要指‎明D B_N‎‎A ME。

数据库之表与表之间的关系

数据库之表与表之间的关系

数据库之表与表之间的关系表1 foreign key 表2则表1的多条记录对应表2的⼀条记录,即多对⼀利⽤foreign key的原理我们可以制作两张表的多对多,⼀对⼀关系多对多:表1的多条记录可以对应表2的⼀条记录表2的多条记录也可以对应表1的⼀条记录⼀对⼀:表1的⼀条记录唯⼀对应表2的⼀条记录,反之亦然分析时,我们先从按照上⾯的基本原理去套,然后再翻译成真实的意义,就很好理解了1、先确⽴关系2、找到多的⼀⽅,吧关联字段写在多的⼀⽅⼀、多对⼀或者⼀对多(左边表的多条记录对应右边表的唯⼀⼀条记录)需要注意的:1.先建被关联的表,保证被关联表的字段必须唯⼀。

2.在创建关联表,关联字段⼀定保证是要有重复的。

其实上⼀篇博客已经举了⼀个多对⼀关系的⼩例⼦了,那我们在⽤另⼀个⼩例⼦来回顾⼀下。

这是⼀个书和出版社的⼀个例⼦,书要关联出版社(多个书可以是⼀个出版社,⼀个出版社也可以有好多书)。

谁关联谁就是谁要按照谁的标准。

书要关联出版社被关联的表create table press(id int primary key auto_increment,name char(20));关联的表create table book(book_id int primary key auto_increment,book_name varchar(20),book_price int,press_id int,constraint Fk_pressid_id foreign key(press_id) references press(id)on delete cascadeon update cascade);插记录insert into press(name) values('新华出版社'),('海燕出版社'),('摆渡出版社'),('⼤众出版社');insert into book(book_name,book_price,press_id) values('Python爬⾍',100,1),('Linux',80,1),('操作系统',70,2),('数学',50,2),('英语',103,3),('⽹页设计',22,3);运⾏结果截图:⼆、⼀对⼀例⼦⼀:⽤户和管理员(只有管理员才可以登录,⼀个管理员对应⼀个⽤户)管理员关联⽤户===========例⼦⼀:⽤户表和管理员表=========先建被关联的表create table user(id int primary key auto_increment, #主键⾃增name char(10));在建关联表create table admin(id int primary key auto_increment,user_id int unique,password varchar(16),foreign key(user_id) references user(id)on delete cascadeon update cascade);insert into user(name) values('susan1'),('susan2'),('susan3'),('susan4'),('susan5'),('susan6');insert into admin(user_id,password) values(4,'sds156'),(2,'531561'),(6,'f3swe');运⾏结果截图:例⼦⼆:学⽣表和客户表========例⼦⼆:学⽣表和客户表=========create table customer(id int primary key auto_increment,name varchar(10),qq int unique,phone int unique);create table student1(sid int primary key auto_increment,course char(20),class_time time,cid int unique,foreign key(cid) references customer(id)on delete cascadeon update cascade);insert into customer(name,qq,phone) values('⼩⼩',13564521,11111111),('嘻哈',14758254,22222222),('王维',44545522,33333333),('胡军',545875212,4444444),('李希',145578543,5555555),('李迪',754254653,8888888),('艾哈',74545145,8712547),('啧啧',11147752,7777777);insert into student1(course,class_time,cid) values('python','08:30:00',3),('python','08:30:00',4),('linux','08:30:00',1),('linux','08:30:00',7);运⾏结果截图:三、多对多(多条记录对应多条记录)书和作者(我们可以再创建⼀张表,⽤来存book和author两张表的关系)要把book_id和author_id设置成联合唯⼀联合唯⼀:unique(book_id,author_id)联合主键:alter table t1 add primary key(id,avg)多对多:⼀个作者可以写多本书,⼀本书也可以有多个作者,双向的⼀对多,即多对多 关联⽅式:foreign key+⼀张新的表========书和作者,另外在建⼀张表来存书和作者的关系#被关联的create table book1(id int primary key auto_increment,name varchar(10),price float(3,2));#========被关联的create table author(id int primary key auto_increment,name char(5));#========关联的create table author2book(id int primary key auto_increment,book_id int not null,author_id int not null,unique(book_id,author_id),foreign key(book_id) references book1(id)on delete cascadeon update cascade,foreign key(author_id) references author(id)on delete cascadeon update cascade);#========插⼊记录insert into book1(name,price) values('九阳神功',9.9),('葵花宝典',9.5),('辟邪剑谱',5),insert into author(name) values('egon'),('e1'),('e2'),('e3'),('e4'); insert into author2book(book_id,author_id) values(1,1),(1,4),(2,1),(2,5),(3,2),(3,3),(3,4),(4,5);多对多关系举例⽤户表,⽤户组,主机表-- ⽤户组create table user (id int primary key auto_increment,username varchar(20) not null,password varchar(50) not null);insert into user(username,password) values('egon','123'),('root',147),('alex',123),('haiyan',123),('yan',123);-- ⽤户组表create table usergroup(id int primary key auto_increment,groupname varchar(20) not null unique);insert into usergroup(groupname) values('IT'),('Sale'),('Finance'),('boss');-- 建⽴user和usergroup的关系表create table user2usergroup(id int not NULL UNIQUE au to_increment,user_id int not null,group_id int not NULL,PRIMARY KEY(user_id,group_id),foreign key(user_id) references user(id)ON DELETE CASCADEon UPDATE CASCADE ,foreign key(group_id) references usergroup(id)ON DELETE CASCADEon UPDATE CASCADE);insert into user2usergroup(user_id,group_id) values(1,1), (1,2),(1,3),(1,4),(2,4),(3,4);-- 主机表CREATE TABLE host(id int primary key auto_increment,ip CHAR(15) not NULL UNIQUE DEFAULT '127.0.0.1' );insert into host(ip) values('172.16.45.2'),('172.16.31.10'),('172.16.45.3'),('172.16.31.11'),('172.10.45.3'),('172.10.45.4'),('172.10.45.5'),('192.168.1.20'),('192.168.1.21'),('192.168.1.22'),('192.168.2.23'),('192.168.2.223'),('192.168.2.24'),('192.168.3.22'),('192.168.3.23'),('192.168.3.24');-- 业务线表create table business(id int primary key auto_increment,business varchar(20) not null unique);insert into business(business) values('轻松贷'),('随便花'),('⼤富翁'),('穷⼀⽣');-- 建⽴host和business关系表CREATE TABLE host2business(id int not null unique auto_increment,host_id int not null ,business_id int not NULL ,PRIMARY KEY(host_id,business_id),foreign key(host_id) references host(id),FOREIGN KEY(business_id) REFERENCES business(id));insert into host2business(host_id,business_id) values (1,1),(1,2),(1,3),(2,2),(2,3),(3,4);-- 建⽴user和host的关系create table user2host(id int not null unique auto_increment,user_id int not null,host_id int not null,primary key(user_id,host_id),foreign key(user_id) references user(id),foreign key(host_id) references host(id));insert into user2host(user_id,host_id) values(1,1), (1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(1,10),(1,11),(1,12),(1,13),(1,14),(1,15),(1,16),(2,2),(2,3), (2,4), (2,5), (3,10), (3,11), (3,12);练习。

oracle数据库面试题目(3篇)

oracle数据库面试题目(3篇)

第1篇1. 请简述Oracle数据库的体系结构,并说明各层的作用。

2. 请解释什么是Oracle实例?实例与数据库之间的关系是什么?3. 请简述Oracle数据库的存储结构,包括数据文件、控制文件、日志文件等。

4. 请说明Oracle数据库的内存结构,包括SGA、PGA等。

5. 请解释Oracle数据库的备份策略,包括全备份、增量备份、差异备份等。

6. 请说明Oracle数据库的恢复策略,包括不完全恢复、完全恢复等。

7. 请解释Oracle数据库的事务管理,包括事务的ACID特性。

8. 请说明Oracle数据库的锁机制,包括共享锁、排他锁等。

9. 请解释Oracle数据库的并发控制,包括多版本并发控制(MVCC)。

10. 请说明Oracle数据库的安全机制,包括角色、权限、用户等。

二、SQL语言1. 请简述SQL语言的组成,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等。

2. 请说明如何创建一个简单的表,包括表结构、字段类型、约束等。

3. 请编写一个查询语句,查询某个表中所有年龄大于30岁的记录。

4. 请编写一个更新语句,将某个表中年龄大于40岁的记录的年龄加1。

5. 请编写一个删除语句,删除某个表中年龄小于20岁的记录。

6. 请编写一个插入语句,插入一条记录到某个表中。

7. 请说明如何使用SQL语句实现分页查询。

8. 请说明如何使用SQL语句实现多表查询。

9. 请说明如何使用SQL语句实现子查询。

10. 请说明如何使用SQL语句实现联合查询。

三、Oracle高级特性1. 请解释什么是视图?如何创建视图?2. 请解释什么是索引?有哪些常见的索引类型?3. 请解释什么是触发器?如何创建触发器?4. 请解释什么是存储过程?如何创建存储过程?5. 请解释什么是函数?如何创建函数?6. 请解释什么是包?如何创建包?7. 请解释什么是序列?如何创建序列?8. 请解释什么是同义词?如何创建同义词?9. 请解释什么是物化视图?如何创建物化视图?10. 请解释什么是分区表?如何创建分区表?四、Oracle性能优化1. 请说明如何查看Oracle数据库的性能统计信息。

Oracle基本术语大全

Oracle基本术语大全

Oracle基本术语大全Oracle基本术语大全Oracle数据库系统是一个复杂的软件系统。

如果不了解其内部的结构原理及关系,就不可能设计和编写出高质量的应用软件系统,也不可能管理好一个复杂的应用系统。

为了帮助大家了解更多Oracle数据库知识,下文简要给出 ORACLE 8 /i数据库系统结构的描述。

§2.1 术语数据库块(BLOCK)ORACLE 数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。

ORACLE 块的大小是可以在安装时选择“自定义安装”来指定,也可以在CREATE E创建数据库实例时指定。

其最小为2K,最大可达为64K.瓶颈(Bottleneck)指限制系统性能的部件。

面向对象的关系数据库具有关系数据库的全部功能,同时又支持面向对象的数据库,称作面向对象关系数据库系统。

Oracle7是一种功能完备的关系数据库系统;oracle8是一种面向对象的关系数据库系统。

客户/服务器结构(Client/Server)有客户机、服务器、网络三要素的结构,客户机(PC机)通过网络与服务器相连和工作。

胖客户机(Fat Client)一般的Client/Server结构中的客户机均为胖客户机。

因为这些客户机需要配置较高的设备,如内存、硬盘、主频、CD_ROM等。

瘦客户机(Thin Client)也称作NC(网络计算机),是一种内存配置小(过去指一般只有4M,现无法定义),无硬盘,只有处理心片的处理机。

数据在线分析处理(OLAP)是一种能以快速、交互、方便的方式洞察数据情况的技术。

如Oracle E某press,Cognos(加拿大)的Power Play, Business Objects公司的Business Object 等。

多线程(MTS)一个用户可以同时运行多个程序对数据库进行访问,比如Visual C/C++可以提供同时启动多个进程,而Visual Basic则不能。

Oracle数据库简答题-考试重点

Oracle数据库简答题-考试重点

1.简单描述Oracle数据库体系结构的组成及其关系?答:Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。

其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成.逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成.实例是数据库运行的软件结构,由内存结构和后台进程组成。

数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。

2、说明Oracle数据库物理存储结构的组成?Oracle数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、口令文件等。

在控制文件中记录了当前数据库所有的数据文件的名称与位置、重做日志文件的名称与位置,以及数据文件、重做日志文件的状态等。

3、说明Oracle数据库数据文件的作用?数据文件中保存了数据库中的所有数据,包括数据字典以及用户数据。

4、说明Oracle数据库控制文件的作用?控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。

在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息加载数据文件和重做日志文件,最后打开数据文件和重做日志文件.5、说明Oracle数据库重做日志文件的作用?重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行DDL、DML语句的操作。

如果用户只对数据库进行查询操作,那么查询信息是不会记录到重做日志文件中的。

6、说明数据库逻辑存储结构的组成和相互关系.Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。

其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库.7、说明数据库表空间的种类,以及不同类型表空间的作用.数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。

Oracle 学习笔记

Oracle 学习笔记

Oracle数据库→表空间→用户→表表空间:包含表、视图、索引段:包含数据段、索引段、回退段、临时段数据块:是Oracle中最小的逻辑存储单元创建表空间:create tablespace rootspacedatafile 'rootfile' size 1000mautoextend on创建用户:create user root用户名rootidentified by root 密码rootdefault tablespace rootspace 默认表空间rootspacetemporary tablespace temp 临时表空间tempCREATE USER usernameIDENTIFIED BY password[DEFAULT TABLESPACE tablespace][TEMPORARY TABLESPACE tablespace];授予用户username【用户名】权限:·grant connect to username; CONNECT角色允许用户连接至数据库,并创建数据库对象·grant resource to username; RESOURCE角色允许用户使用数据库中的存储空间·grant create sequence to username; 此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中·grant select on test to username; 允许用户查询 TEST 表的记录·grant update on test to username; 允许用户更新 TEST 表中的记录·grant all on test to username; 允许用户插入、删除、更新和查询TEST 表中的记录·alter user username identified by newpassword;用于修改用户口令·drop user username cascade; 删除用户撤销用户权限:Revoke connect from username;设置显示行长度:Set linesize 12;伪列rownum:Select rownum,name from table;………………………………>Rownum name1 haha2 xxxx--创建表tb_stucreate table tb_stu(stu_id char(12) primary key,stu_name varchar(50) not null,sex varchar(5),birthday date)--查询表tb_stuselect * from tb_stu;--在表中插入tb_stu记录insert into tb_stu(stu_id,stu_name,sex,birthday) values('123456789012','李四','男',to_date('2009-9-9','yyyy-mm-dd'));--事务提交commit;--事务回滚rollback;--根据stu_name查询所有信息select * from tb_stu where stu_name='田七'--根据stu_id删除一条记录delete from tb_stu where stu_id=123456789015--根据stu_id修改一条记录update tb_stu set sex='女',stu_name='梁朝伟'where stu_id='123456789013';--to_date 修改存入数据库中日期的格式update tb_stu set birthday=to_date('2009-10-5','yyyy-mm-dd') wherestu_id='123456789014'--to_date 查询数据库中日期按指定格式输出select* from tb_stu where birthday between(to_date('2009-10-1','yyyy-mm-dd')) and (to_date('2009-12-1','yyyy-mm-dd'))--虚列 rownum 数据库中实际并不存在对符合条件的查询结果的编号select rownum,stu_id,stu_name,sex,birthday from tb_stu where sex='男';--在查询结果中进行查询select * from (select rownum rn,stu_id,stu_name,sex,birthday from tb_stu where sex='男') where rn<3;--创建表tb_employeecreate table tb_employee(em_id number primary key,em_name varchar(50) not null,sex varchar(2),birthday date,sal number(20,2))--向表tb_employee中插入数据insert into tb_employee values(1,'梁朝伟','男',sysdate,11000000);--按字段升序排列(默认的为升序)select * from tb_employee where sal>200order by sal asc--按字段升序排列select * from tb_employee where sal>200order by sal desc--取别名:将查询的字段按一个特定的字段名输出select em_name,((sal-2000)*0.2) 税收from tb_employee where sal>2000;--联合字段,将查询出的多个字段或者是字符串连接在一起,以一个字段输出,用“||”连接select em_name||'的应该缴税: '||((sal-2000)*0.2) as税收from tb_employee where sal>2000order by税收desc;--将em_name为“梁朝伟”的记录的birthday字段,按指定的日期格式进行修改update tb_employee set birthday=to_date('1969-1-1','yyyy-dd-mm') where em_name='梁朝伟';--查询birthday字段不为当前系统时间并且不为空的值--不等于的三种书写方式(!=,^=,<>)select * from tb_employee whereto_char(birthday,'yyyy')^=to_char(sysdate,'yyyy');-- or 连接的多条件“或”查询select * from tb_employee where birthday is null or em_id=1;--between 3 and 5 查询条件为:大于等于3同时小于等于5select * from tb_employee where em_id not between3and5;--查询条件为:大于其中任意一个(只要大于其中的某一个就为满足条件)select * from tb_employee where em_id > any(1,3,5);--查询条件为:小于其中所有的(只有比括号中所有的数字都小才为满足条件)select * from tb_employee where em_id < all(3,5);--下划线表示任意的以个字符select * from tb_employee where em_name like'周__';-- % 表示任意多个字符select * from tb_employee where birthday like'%';--快速创建和tb_stu相同的表结构的表tb_stu_temp1create table tb_stu_temp1as select * from tb_stu where1=2;--将表tb_stu按条件查询的结果插入表tb_stu_temp1中insert into tb_stu_temp1(select * from tb_stu);--查询所有的表select * from tab ;--根据表名查询表select * from tab where tname='tb_stu';如果2个表达式主键管理的:主表——子表先插入主表的数据,然后子表删除:先删从表数据,然后主表。

oracle基础概念

oracle基础概念

oracle基础概念
Oracle是一个关系型数据库管理系统,以下是一些Oracle基础概念:
数据库(Database):物理存储数据的集合,在物理上表现为数据文件、日志文件和控制文件等,在逻辑上以表空间形式存在。

全局数据库(Global Database):用于区分一个数据的标识,在安装数据库、创建新数据库、创建控制文件、修改数据库结构、利用RMAN备份时都需要使用。

数据库实例(Database Instance):每个启动的数据库都对应一个数据库实例,由这个实例来访问数据库中的数据。

表空间(Tablespace):一个逻辑概念,一个表空间对应一个或多个物理存储文件(dbf和ora文件)。

每个实例下面有多个表空间。

用户(User):用户是在实例下创建的,不同实例可以创建相同名字的用户。

用户与用户之间的数据是隔离的。

数据完整性(Data Integrity):保证数据的准确性和一致性,防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成的无效操作或错误信息。

这些概念是Oracle数据库的基础,理解这些概念有助于更好地使用和管理Oracle数据库。

数据库逻辑结构大全(精)

数据库逻辑结构大全(精)

Oracle数据库逻辑结构2.1.1Oracle系统体系结构话说与其他数据库产品不同,Oracle有其自己独特的系统体系结构。

Oracl e系统体系结构是整个Oracle服务器系统的框架,是管理和应用Oracle数据服务器的基础和核心。

Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。

其中,实例是维系物理结构和逻辑结构的核心,如图2-1和图2-2所示。

图2-1表明了数据库三级模式及其物理文件之间的关系。

图2-1 数据库模式及其物理文件关系示意图图2-2 Oracle系统体系结构与功能不论是Oracle的应用开发还是数据库管理都是以实例作为切入点的。

只不过Oracle的应用程序开发主要是以数据库的逻辑对象为主(如表、索引和视图等),而数据库管理则是针对数据库的全部内容。

Oracle数据库由构成物理结构的各种文件组成,如数据文件、控制文件和重做日志文件等;实例是Oracle在内存中分配的一段区域SGA和服务器后台进程的集合。

Oracle数据库服务器就是数据库和实例的组合。

2.1.2Oracle逻辑结构Oracle的逻辑结构是一种层次结构。

主要由:表空间、段、区和数据块等概念组成。

逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。

数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系,如图2-3和图2-4所示。

图2-3 Oracle 10g数据库层次结构图图2-4 段、区和数据块之间的关系1.数据块Oracle数据块(Data Block)是一组连续的操作系统块。

分配数据库块大小是在Oracle数据库创建时设置的,数据块是Oracle读写的基本单位。

数据块的大小一般是操作系统块大小的整数倍,这样可以避免不必要的系统I/O操作。

从Oracle9i开始,在同一数据库中不同表空间的数据块大小可以不同。

数据块是O racle最基本的存储单位,而表空间、段、区间则是逻辑组织的构成成员。

Orcal基础

Orcal基础

1、Oracle是一个数据库管理系统,是Oracle公司的核心产品。

Oracle数据库主要有以下特点:(1)支持多用户、大事务的事务处理。

(2)在保持数据安全性和完整性方面性能优越。

(3)支持分布式数据处理。

(4)具有可移植性。

2、Oracle基本概念在物理上表现为数据文件、日志文件和控制文件等。

在逻辑上以表空间形式存在。

1.全局数据库名2.数据库实例每个启动的数据库都对应一个数据库实例,由这个实例来访问数据库中的数据。

3.表空间每个Oracle数据库都是由若干个表空间构成的,用户在数据库中建立的所有内容都被存储到表空间。

一个表空间可以由多个数据文件组成,但一个数据文件只能属于一个表空间。

5.数据文件通常数据文件的扩展名是.dbf,是用于存储数据库数据的文件。

一个数据文件中可能存储很多个表的数据,而一个表的数据也可能存放在多个数据文件中,即数据库和数据文件不存在一对一的关系。

6.控制文件通常控制文件的扩展名.ctl是一个二进制文件。

一个数据库至少要有一个以上的控制文件,Oracle默认包含三个控制文件。

7.日志文件日志文件的扩展名是.log,它记录了数据的所有更改信息,并提供了一种数据恢复机制,确保在系统崩溃或是其他意外出现后重新恢复数据库。

8.模式和模式对象模式是数据库对象的集合。

3、Oracle数据类型有字符数据类型?1、char数据类型固定长度的字符串长度是1~2000字节默认其占用1字节。

2、varchar2数据类型可变长度的字符串长度是1~4000字节3、nchar 数据类型国家字符集数值数据类型?1、number数据类型可以存储正数、负数、零、定点数和精度为38位的浮点数。

2、日期时间数据类型date数据类型date数据类型用于存储表中的日期和时间数据。

3、timestamp数据类型用于存储日期的年、月、日以及时间的小时、分和秒。

4、LOB数据类型LOB又称为"大对象"数据类型。

Oracle数据库基础教程-参考答案

Oracle数据库基础教程-参考答案

Oracle数据库基础教程参考答案第1章Oracle数据库概述1.简答题(1)数据是描述事物的符号,是数据库中存储的基本对象。

在计算机中,用记录的形式来描述数据。

数据与数据的解释即数据的语义是紧密结合的。

数据库是指按一定的数据模型组织、描述和存储的数据的集合。

数据库管理系统是位于操作系统与用户之间的一层数据管理软件。

数据库系统是指数据库、数据库管理系统与计算机系统的结合。

通常,在不引起混淆的情况下将数据库系统简称为数据库。

(2)数据库管理系统的主要功能包括:数据定义、数据操纵、数据库运行与控制、数据库建立与维护、数据字典定义以及数据通信等。

数据库管理系统的内部分多个层次,由应用层、语言定义及其翻译处理层、数据存取层、数据存储层、操作系统以及数据库组成。

(3)数据库系统由数据库、操作系统、数据库管理系统、开发工具、应用系统、数据库管理员以及数据库用户组成。

(4)概念模型是用简单、清晰、用户易于理解的概念来描述现实世界具体事物及事物之间的关系。

它是现实世界到信息世界的抽象,是数据库设计人员进行数据库设计的工具,与具体的数据库管理系统无关。

组织数据模型是从数据组织方式的角度来描述信息,它决定了数据在数据库中的组织结构。

(5)E-R图由3个要素组成:实体、联系与属性。

实体之间的联系有1:1、1:n、n:n三种类型。

(6)Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。

(7)目前市场上常见的关系数据库管理系统包括Oracle、DB2、Sybase和SQL Server等。

Oracle是当今最大的数据库厂商Oracle公司的数据库产品。

它是世界上第一个商品化的关系型数据库管理系统,也是第一个推出与数据库结合的第四代语言开发工具的数据库产品。

DB2是IBM公司于1983年推出的一个商业化关系数据库管理系统,它是基于System R 基础上实现的。

ORACLE数据库基础教程课后参考答案(人民邮电出版社)

ORACLE数据库基础教程课后参考答案(人民邮电出版社)

ORACLE 10g 课后参考答案(答案仅供参考)第一章ORACLE 10g简介一、选择题1.下面不属于ORACLE 10g产品系列的是(D)A.Oracle数据库 10g标准版1B.Oracle数据库 10g标准版C.Oracle数据库 10g企业版D.Oracle数据库 10g网络版2.ORACLE 10g中的g表示(D)A.版本B.网络C.数据库D.网格计算3.下面关于ORACLE 10g数据库逻辑结构的描述错误的是(C)A.数据库由若干个表空间组成B.表空间由表组成C.表由数据块组成D.段由区间组成4.ORACLE管理数据库存储空间的最小存储单位是(A)A.数据块B.表空间C.表D.区间5.ORACLE分配磁盘空间的最小单位是(D)A.数据块B.表空间C.表D.区间6.下列不属于ORACLE表空间的是(D)A.大文件表空间B.系统表空间C.撤销表空间D.网格表空间7.当数据库服务器上的一个数据库启动时,ORACLE将分配一块内存区间,叫做系统全局区,英文缩写为(B)A.VGAB.SGAC.PGAD.GLOBAL二、填空题1.__视图__ 是虚拟的表,它在物理上并不存在。

可以把它看成是一个存储的查询。

2.创建___索引__可以提高读取数据的效率。

它的功能类似于书的目录,读者可以通过目录很快的在书中找到需要的内容。

3.有些表共享公共的列,并经常被同时访问,为了提高数据存取效率,把这些表在物理上存储在一起,得到的表的组合就是____簇____。

4.一个数据块对应磁盘上的一定数量的数据库空间,标准的数据块大小由初始参数(DB_BLOCK_SIZE )指定。

5.每个数据库都至少有一个系统表空间,被称为__SYSTEM _表空间。

6.每个ORACLE数据库都由3种类型的文件组成:数据文件、日志文件、控制文件。

7.ORACLE有两种内存结构,即_系统全局区_和_程序全局区_。

三、简答题1.简述ORACLE数据库逻辑结构中各要素之间的关系。

Oracle用户和模式,表空间

Oracle用户和模式,表空间

Oracle⽤户和模式,表空间oracle ⽤户与表空间关系oracle⽤户与表空间关系⽤户=商家表=商品表空间=仓库1. 1个商家能有很多商品,1个商品只能属于⼀个商家2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放⼊A和B3. 仓库不属于任何商家4. 商家都有⼀个默认的仓库,如果不指定具体仓库,商品则放到默认的仓库中oracle中⽤户的所有数据都是存放在表空间中的,很多个⽤户可以共⽤⼀个表空间,也可以指定⼀个⽤户只⽤某⼀个表空间。

表空间:创建表空间会在物理磁盘上建⽴⼀个数据⽂件,作为数据库对象(⽤户、表、存储过程等等)的物理存储空间;⽤户:创建⽤户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建⽤户后,可以在⽤户上,创建表、存储过程等等其他数据库对象;表:是数据记录的集合;创建过程:表空间--->⽤户--->表;所属关系:表空间包含⽤户包含表;所以在oracle下建⽴建表空间,建⽤户,设置⽤户的默认表空间,在⽤户下建表;--创建数据表空间create tablespace CICIloggingdatafile 'D:\oraclexe\app\oracle\oradata\CICI\CICI.DBF'size 32mautoextend onnext 32m maxsize 2048mextent management local;--创建⽤户并指定表空间CREATE USER cici IDENTIFIED BY ciciPROFILE DEFAULTDEFAULT TABLESPACE CICIACCOUNT UNLOCK;-- 为⽤户赋予权限GRANT connect, resource TO cici;grant create session to cici;查询数据库当前进程的连接数:select count(*) from v process; 查看数据库当前会话的连接数: select count(*) from v session;查看数据库的并发连接数:select count(*) from v session where status='ACTIVE'; 查看当前数据库建⽴的会话情况: selectsid,serial#,username,program,machine,status from v session;查询数据库允许的最⼤连接数:select value from v$parameter where name = 'processes';Oracle⽤户和模式的区别以下来⾃另⼀⽂:A⽤户是表table1的属主,B⽤户要查询table1中的数据1、⽤户A给⽤户B授权查询权限(⽤户B登录数据后可以查询,select * from A.table1,必须显⽰写上属主才能查询)2、⽤户A给table1建同义词,查询table1时,可以直接select * from table1,隐藏掉table1的属主create orreplace synonym lsfapcopr.tsysparameter for lsfapdata.tsysparameter;1、属主(owner)⽤简单的话来说就是数据库的⽤户。

ORACLE数据库与实例的关系

ORACLE数据库与实例的关系

ORACLE数据库与实例的关系ORACLE数据库与实例的关系1 数据库名1.1 数据库名的概念数据库名(db_name)就是一个数据库的标识,就像人的身份证号一样。

如果一台机器上装了多个数据库,那么每一个数据库都有一个数据库名。

在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。

数据库名在$Oracle_HOME/admin/db_name/pfile/init.ora(或$ORACLE_BASE/admin/db_name/pfile/init.ora或$ORACLE_HOME/dbs/SPFILE<实例名>.ORA)文件中############################################ Database Identification###########################################db_domain=""db_name=orcl在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。

因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。

假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。

但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。

1.2 数据库名的作用数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的(注意这些时候不能使用sid,还有alter database时都是使用数据库名)。

有很多Oracle安装文件目录是与数据库名相关的,如:winnt: F:\oracle\product\10.2.0\oradata\DB_NAME\...又如参数文件pfile:winnt:F:\oracle\product\10.2.0\admin\DB_NAME\pfile\init.ora.542008 85729如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create controlfile命令创建控制文件,当然这个命令中也要指明DB_NAME。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基础概念:Oracle数据库、实例、用户、表空间、表之间的关系
数据库:
Oracle数据库是数据的物理存储。

这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。

其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。

可以看作是Oracle就只有一个大数据库。

实例:
一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。

一个数据库可以有n个实例。

用户:
用户是在实例下建立的。

不同实例可以建相同名字的用户。

表空间:
表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。

数据文件(dbf、ora):
数据文件是数据库的物理存储单位。

数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。

而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。

一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

注:
表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。

由于oracle的数据库不是普通的概念,oracle是有用户和表空间对数据进行管理和存放的。

但是表不是有表空间去查询的,而是由用户去查的。

因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!
关系示意图:
理解1:
Oracle数据库可以创建多个实例,每个实例可以创建多个表空间,每个表空间下可以创建多个用户(同时用户也属于表空间对应的实例)和数据库文件,用户可以创建多个表(每个表随机存储在一个或多个数据库文件中),如下图:
理解2:
理解1MS有误。

实例下有和,授权访问,是管理的,经授权在中创建,随机存储到不同的中。

如下图所示:
操作1:
安装Oracle后会有默认的实例,即ORCL。

一般不创建多个实例,在默认实例下创建表空间和用户等。

1,运行CMD进入DOS界面,首先输入:sqlplus,回车;再输入:sys/sys as sysdba,回车,即进入“SQL〉”操作状态。

2,输入:CREATE TABLESPACE 表空间名称 LOGGING DATAFILE 'c:\表空间数据文件.ora' SIZE 500M autoextend on next 200m maxsize 2048m;,表空间创建完成。

3,输入:CREATE USER 用户名称 PROFILE default IDENTIFIED BY 用户密码 DEFAULT TABLESPACE 授权访问的表空间名称 TEMPORARY TABLESPACE temp ACCOUNT UNLOCK;,用户创建完成,并授权用户访问某表空间。

具体操作如下图所示:
操作2:
创建表和插入数据,并查询浏览插入的数据。

1,创建表,输入:
create table 表名(
字段名称1 字段类型,
字段名称2 字段类型,
字段名称3 字段类型
);,回车。

2,插入数据,输入:insert into 表名(字段1,字段2,字段3) VALUES(值1,值2,值3);,回车。

3,查询数据,输入:select * from 表名;,回车。

具体操作如下图所示:。

相关文档
最新文档