Oracle简介
一、数据库分类
1、小型数据库:access、foxbase
2、中型数据库:informix、sql server、mysql
3、大型数据库:sybase、db2、oracle
二、项目中如何合理地使用数据库,可以依据如下三个方面入手
1、项目的规模
a、负载量有多大,即用户数有多大
b、成本
c、安全性
小型数据库
1、负载量小,用户大概100人之内
比如:留言板、信息管理系统
2、成本在千元之内
3、对安全性要求不高
中型数据库
比如负载量 日访问量5000~10000
成本在万元内
比如商务网站
大型数据库
海量负载,可以处理海量数据(sybase<oracle<db2(海量数据处理能力))
安全性高,相对贵
三:Oracle简介
世界上的所有行业几乎都在应用Oracle技术,《财富》100强中的98家公司都采用Oracle技术。Oracle是第一个跨整个产品线(数据库、业务应用软件和应用软件开发与决策支持工具)开发和部署100%基于互联网的企业软件的公司。Oracle是世界领先的信息管理软件供应商和世界第二大独立软件公司。
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
特点
四、sys用户和system用户
Oracle安装会自动的生成sys用户和system用户
(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(安装时设定。用户手动给的)
(2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager(安装时设定 用户手动给的)
(3)、一般讲,对数据库维护,使用system用户登录就可以拉
注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
(4)、普通用户:scott hr 密码:安装时内置好的,系统设定,默认是tiger,默认锁定的。上网找一条命令解锁就行了
C:> sqlplus 请输入用户名:sys 输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以。 SQL> alter user scott account unlock; 用户已更改. SQL> commit; 提交完成. SQL> conn scott/tiger 更改scott口令 新口令:tiger 重新键入新口令:tiger 口令已更改 已连接。 //完成。
要想登录要SYS或者SYSOPER权限,连接多次失败后,点左上角小钥匙重新连接。
主流版本9i(Internet) 10g/11g(grid) /12c(Cloud)
I含义:突现公司对internet/intranet的支持
G含义:突现对网格的支持
C含义:cloud(云)
1.数据库系统和数据库的管理系统
数据库系统=数据库的管理系统+oper操作员+硬件
1.Oracle的监听和客户端
H:\app\happy\product\11.2.0\dbhome_1\NETWORK\ADMIN
listener.ora 监听的配置
tnsnames.ora 客户端配置
2.连接Oracle可以被正常连接,必须保证下列服务启动
监听程序
数据库服务:
3.PL/SQL Developer
PL/SQL是用于从各种环境中访问Oracle数据库的一种比较复杂的编程语言。它与数据库服务器集成在一起,也是标准数据库安装的一部分。
4.创建一个用户Dog 1
--创建一个狗狗用户dog 密码是1
create user dog identified by 1
--给dog分配两个角色 Connect 和Resource
grant Connect,Resource to dog
Oracle主要组件
一个数据库可以有N个实例。
解析:内存如何操作硬盘上文件,通过进程进行。Oracle实例(内存中)如何操作硬盘上的文件,也是通过进程。
SGA(System Global Area):系统区全局区,一个实例只有一个SGA。
PGA(Process Global Area):进程全局区,可以有多个,根据客户端请求自动创建进程。
JDBC连接到实例中的PGA上,客户端的增删改查操作的都是PGA中的数据,而并非整个实例。客户端做commit操作就会将PGA中的数据提交到SGA中。然后再将SGA中的数据提交到DB中。该过程也称为“两阶段提交 two-phase commit”
2.关于物理文件名和逻辑文件名
解析:物理文件名:就是和硬盘上的确切路径下的文件 相关联的一个真实文件
逻辑文件名:就是用户在脑袋中自己随机命名的一个用于区别其他名称的一个别名,或者说是代名词,可以随意命名。
3.Oracle中的模式大家可以理解成用户
一个用户对应一种模式
控制文件:
控制文件记录了如下信息:
1、数据库的创建时间
2、数据文件的位置
3、日志文件的位置
等
作用是指导数据库 找到数据文件,日志文件并将数据库启动到 open 状态。
实例和数据库的关系
实例:数据库服务启动后,在内存中的单元
数据库:硬盘上的文件,物理介质硬盘
数据库的核心
PAG:
SGA:
DBWR:(数据的读取和写入)
LGWR:(日志文件的读取写入)
SMON:(清理临时变空间)
PMON:(异常中断之后的清理,处理和释放资源)
CKPT:(检查点,保证数据库的一致性,这是指脏数据写入到硬盘,保证内存和硬盘上的数据是一样的;)
5.监听文件的位置
app--->Happy(用户名)---->product------>NOTWORK--->ADMIN----->listener.ora
6.服务的开启顺序
先监听,再启动数据库服务
@echo
net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
@pause
03.Oracle基本概念
01.表空间
解析:一个数据库下可以开N个表空间,一个表空间可以包含N个数据文件.表空间是逻辑概念。
02.全局数据库名
全局数据库名是为了保证你的数据库系统中每个数据库名称都是唯一的,由数据库域名加上数据库名构成;
全局数据库名=数据库域名+数据库名,如福建节点的全局数据库名是:oradb.fj.orcl
03.模式和用户可以看成对等的关系。从A模式下切换到B模式。
04.安装Oracle注意事项
选择安装目录最好是非系统盘
安装时可以直接创建数据库(ORCL),也可以选择不创建
服务器的主机名不能有特殊字符(PC-20070210023):-*()&……等
数据库安装完毕,千万不要更改主机名
Oracle很脆弱,比女人还脆弱。
企业管理器:SQL Server 管理工具
05.启动、关闭数据库
OracleService<SID>:数据库服务
OracleOraDb11g_home1TNSListener :数据库监听服务
OracleDBConsole<SID>:企业管理器服务
在Oracle11G中通过如下网址访问企业管理服务
https://localhost.localdomain:1158/em/console/logon/logon
6.常用数据类型
字符串 Nvarchar2
数字 number
日期和时间 Date
大二进制类型 BLOB
大文本类型 CLOB类型SQL Server中的Text或者是nvarchar(max)
Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR
(20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2
(20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。
如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row
Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。
Oracle中是是根据用户来隔离表的
默认情况下,当前登录的用户只能看到自己创建的表
--创建用户 create user t14 identified by t14 第一个t14是用户,第二个t14是密码 --授权 权限管理 用户 角色 权限 grant connect,resource to t14 resource:允许创建表;connect:可以连接数据库 --创建一个表 序列 create table student ( sid number primary key not null, --手工录入的 sname nvarchar2(32), sage number ) --测试数据 insert into student values(3,'张三2',23); insert into student values(4,'小龙2',24) delete from student where sid=2 select stu.*,rowid,rownum from student stu --如何查询student表中自然排序(进入表中的先后顺序)的第3条记录? select * from ( select student.*,rownum rn from student ) temp where rn=3 --员工表中获取薪水从高到低排序的第5-8条记录 select * from ( select emp.*,rownum rn from ( select * from emp order by sal desc ) emp where rownum<=8 ) temp where rn>=5
9.rownum在内存中构建的是 不断裂的编号列
rowid: AAAVaO----AAE----AAAAfk----AAA 6:对象号 3:文件号 6:块编号 3:记录号(行号)
一个小练习作业:
将自己PC上的Oracle服务公布到局域网。
1:找Oracle安装目录----->配置和移植工具------>Net Manager工具,点开的是本地---->监听程序---->将localhost改成本机IP:如(192.168.16.6)。然后点击保存网络配置。
有个小的隐式规则:自动将IP转成本机的计算机名称,保存到app/Happy(用户名)/product/11.2.0/dbhome_1/NETWORK/ADMIN/listener.ora文件的对应的节点处。
下次你打开Net Manager的时候,你会发现Oracle会读取对应的配置文件,读出来的是计算机名称。
2.重新配置监听
解析:找Oracle安装目录----->配置和移植工具------>Net Configuration Assistent---->重新配置监听
3.关闭本机的防火墙或添加入站规则!