Oracle数据库是Oracle(中文名称叫甲骨文)公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。
Oracle数据库涉及银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等,Oracle的市场占有率最高,显然Oracle的主要用户涉及面非常广。
Oracle产品是免费的,可以在Oracle官方网站上下载到安装包,但是Oracle服务是收费的。在Java开发中,Oracle数据库是非常理想的选择。
http://www.oracle.com/index.html
http://www.oracle.com/cn/downloads/index.html
Oracle公司成立以来,从最初的数据库版本到Oracle7i、Oracle8i、Oracle9i,Oracle10g,Oracle11g到Oracle12c虽然每一个版本之间的操作都存在一定的差别,但是Oracle对数据的操作基本上都遵循SQL标准。因此对Oracle开发来说版本之间的差别不大。(以后都为Oracle12c下操作)……
Oracle同MySQL一样,数据库软件和客户端软件是分开的。MySQL是基于数据库的,即每个项目可以创建一个单独的数据库。Oracle是基于用户的,即在Oracle中只创建一个数据库,在该数据库中位每个项目创建一个用户,每个用户使用自己创建的数据表。
Oracle数据库安装后的全局数据库名是数据库在服务器网络中的唯一标识。
安装过程中的口令管理中,可以对数据库用户设置密码,设置是否锁定。
Oracle中为管理员预置了两个用户分别是sys和system,密码为全局数据库口令。sys相当于老板,system相当于总经理,所有的资源都是sys用户的,system可以调配这些资源。Oracle客户端使用用户名和密码登录Oracle系统后才能对数据库操作。
SQL*Plus命令行客户端,在windows的cmd中:
连接数据库命令: conn 用户名/密码 as连接身份@服务器连接字符串
连接身份:表示该用户连接后拥有的权限。(sysdba、sysoper、normal)
sysdba: 即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。sys用户 必须用sysdba身份才能登录,system用户可以用普通身份登录。
sysoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。
normal:即普通用户,权限只有查询某些数据表的数据。默认的身份是normal用户。
服务器连接字符串:
客户端工具可以根据“服务器连接字符串”对服务器进行连接,有了连接字符串后客户端就可以像操作本机一样操作远程数据库,因此“服务器连接字符串”的配置也叫本地网络服务配置,如果SQL*Plus工具启动在服务器上,并且服务器上只有一个数据库实例的情况下,连接字符串可以缺省,在连接字符串中包括连接服务器的协议,服务器的地址服务器的端口等设置,Oracle服务名等,该配置文件在Oracle安装目录下的: network/ADMIN/ tnsnames.ora。
Oracle的服务:OracleServiceORCL和OracleOraDB12Home1TNSListener;
OracleServiceORCL该服务是oracle数据库启动的基础,只有该服务启动了,Oracle数据库才能正常启动。这是必须启动的服务。
OracleOraDB12Home1TNSListener该服务是服务器端为客户端提供的监听服务,只有该服务在服务器上正常启动,客户端才能连接到服务器。该监听服务接收客户端发出的请求,然后将请求传递给数据库服务器。一旦建立了连接,客户端和数据库服务器就能直接通信了。
Oracle启动和关闭:startup open; shutdown immediate;
Oracle数据库中,默认情况下,所有系统的数据,SQL关键字等都是大写的,在操作过程中,Oracle会自动把这些内容转换为大写,因此用户操作时不需考虑大小写问题,一般情况下,为了良好的程序风格,程序中建议关键字用大写,非关键字可以使用小写。
Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。Oracle的用户可以用CREATE USER命令来创建。
CREATE USER 用户名 IDENTIFIED BY 口令(密码) [ACCOUNT LOCK|UNLOCK]
eg:CREATE USER tskk IDENTIFIED BY tskk123 ACCOUNT UNLOCK;
修改用户的密码:ALTERUSER 用户名 IDENTIFIED BY 新密码;
修改用户处于锁定(非锁定)状态:ALTER USER 用户名 ACCOUNT LOCK|UNLOCK;
Oracle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。
系统权限比如:CREATE SESSION,CREATE TABLE等,拥有系统权限的用户,允许拥有相应的系统操作。
数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。
Oracle在SQL*Plus中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/)。如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。使用ED命令可以打开缓冲区。
CONNECT角色:主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECT role。CONNECT是使用Oracle的简单权限,拥有CONNECT角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。
RESOURCE角色:更可靠和正式的数据库用户可以授予RESOURCErole。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。 DBA角色:DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。用户system拥有DBA角色。
DBA角色:DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。用户system拥有DBA角色。
授予角色给用户:GRANT角色|权限 TO 用户(角色)
回收权限:REVOKE 角色|权限 FROM 用户(角色)