一.Oracle的情况
甲骨文公司,拉里 埃里森
java是sun但是Oracle收购
jdk开发环境
www.oracle.com.cn
目前最好用的数据库之一(大型数据库)
二.软件开发结构
Linux + java + Oracle/MySQL/SQLServer + Tomcat(Weblogic) + sun主机
三.Oracle的结构
SQLServer
库
表 表 表
Oracle有两种结构:
1.物理结构
表空间中 tablespace
2.逻辑结构
用户
表 表 表
前期工作
OracleServiceORCL服务不要设置为自动启动
设置为手动
开启window服务
开始运行==>services.msc
直接通过命令行启动服务
命令提示符(管理员)==>net start oracleserviceorcl
登录时遇到了TNS错误
你的监听没有开启,要不然就是监听失效了
TNSListener
重配监听:
开始菜单==>oracle==>net configuration assistant
先停止服务,重新配置或者(删除,再添加)
使用oracle一定要先启动
服务
oracleserviceorcl
监听
TNSListener
四.使用CMD操作Oracle
1.输入 sqlplus
退出sqlplus 使用 ctrl+c退出sqlplus
五.登录方式
ora-01031 : insufficient privilegesa权限不足 --- windows10家庭版用户
没有用户名密码的(忘记密码)
1.进入cmd
2.使用不登录的方式进入sqlplus工具
sqlplus/nolog
3.使用系统管理员方式连接oracle数据库
conn "/"@orcl as sysdba
密码 直接回车跳过
oracle数据默认有一个访客用户scott,默认是上锁的,需要解锁
sys---超级管理员
system---普通管理员
---管理员权限最高---可以更改任意用户密码
scott---访客 -- 默认锁定
ORA-28000: the account is locked
-- 正式库(生产环境)
-- 测试库(工作环境)
4.进行密码修改
修改 用户 用户名 设置密码为 abc;
alter user scott identified by abc;
切换用户 :
连接 connect 用户名/密码;
conn scott/ccat;
conn sys/ccat as sysdba;系统管理员
conn sys/ccat as sysoper;系统操作员
5.账号被锁定
ora 28000 : the account is locked 账户被锁定
解锁用户
alter user scott account unlock;
锁定用户
alter user scott account lock;
使用用户登陆
sys 密码
scott 密码
system 密码
sqlplus "sys/密码@数据库服务名 as sysdba"这样写在cmd中就可以以DBA身份登陆了
sys和system用户的区别
【system】用户只能用normal身份登陆em。
【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。
“SYSOPER”权限,即数据库操作员权限,权限包括:
打开数据库服务器 关闭数据库服务器
备份数据库 恢复数据库
日志归档 会话限制
“SYSDBA”权限,即数据库管理员权限,权限包括:
打开数据库服务器 关闭数据库服务器
备份数据库 恢复数据库
日志归档 会话限制
管理功能创建数据库
六.新建表、用户
create table 表名; 错误;
create table 表名(...); 正确;
-- 插入数据;
创建表成功后,使用命令插入数据 -- 成功;使用命令查询表数据 -- 成功;
但登录PL/SQL后,查询表数据 --- 失败(原因:命令行没有commit)
创建 用户 用户名 密码 (注意:如果是scott登录,那么创建失败;因为权限不够;)
create user hrit identified by accp;
创建成功后,用该用户登录(注意:如果换成sys登录,可以创建成功;但创建的用户登录失败;因为没授权;)
授予 权限 给 用户
grant connect to zfl2;
//创建用户成功后,修改密码
alter user hrit identified by accp;
----
Oracle 三大角色
1.connect: 连接,连接数据库必须有此权限
2.resource: 资源,使用该数据库中所有资源都必须有此权限
3.dba: database admin,数据库管理员,只要有管理员权限,不需要以上两种权限都可以任意操作数据库.
----
删除 用户 用户名 级联(删除用户的同时删除与之有关的数据)
不要轻易删除一个用户,为什么?不熟悉的请不要动
drop user hrit cascade;
conn scott/tiger
但你要保证scott用户拥有create session权限
并且该用户没有被锁
<解锁用户:alter user 用户名 account unlock;>
<锁住用户:alter user 用户名 account lock;>
七.修改密码(新建用户后操作该项)
alert: 警告框
修改 用户 用户名 新密码
alter user scott identified by accp;
八.权限
Oracle 三大角色(角色名)
1.connect: 连接,连接数据库必须有此权限
2.resource: 资源,使用该数据库中所有资源都必须有此权限
3.dba: database admin,数据库管理员,只要有管理员权限,不需要以上两种权限都可以任意操作数据库.
授权:
授予 角色 给 用户名
grant connect to hrit;
<同时授予多个:grant connect, resource to 用户名;>
撤销 角色 从 用户名
revoke connect from hrit;
断开链接
disc
-------------------------------------------------- 知识点 2
1.监听服务:Oracle...Listener
2.实例服务:OracleService+实例名
3.配置监听
4.配置本地Net服务名
1) 实例名
2) 本地Net服务名(网络服务名)
用户名
sys 超级管理员 sysdba身份 (当我们忘记密码时)
system 超级管理员 normal身份
scott 示例用户 normal身份
身份
1) normal 普通身份
2) sysdba SYSDBA身份
工具:
sqlplus
常用命令:
显示当前用户:show user
断开连接:disc
连接:conn 用户名/密码@网络服务名 [as sysdba]
清屏:clear scr
退出:exit
无用户名密码,进入sqlplusw:在cmd下输入:
sqlplus /nolog
不输入用户名和密码,以sysdba的身份连接数据库:
conn ''/''@orcl as sysdba
改别人的密码:alter user 用户名 identified by 密码;
创建用户:create user 用户名 identified by 密码;
删除用户:drop user 用户名 [cascade];
解锁用户:alter user scott account unlock; 解锁 -----------------!!!
alter user scott account lock; 锁定
!!!!!!!!Scott用户默认是锁定的!!!!!!!!!
不解锁,无法登录,会提示用户已经锁定(安装成功时的口令管理中可以设置)
权限
1) 系统权限:dba、connect、resource
2) 对象权限:设置某用户具有对某个对象的访问权限(对象简单理解为表)
赋系统权限:grant 权限1,权限2.. to 用户;
去系统权限:revoke 权限1... from 用户;
赋对象权限:grant 权限1,.. on 对象 to 用户;
去对象权限:revoke 权限1,.. on 对象 from 用户;
角色:权限管理工具,使权限管理更加简单 -----------------!!!
创建角色:create role 角色名;
删除角色:drop role 角色名;
赋权限:grant 权限1.. to 角色名;
--赋予登陆权限
grant create session to 用户名;
--赋予用户无限表空间
grant unlimited tablespace to 用户名;
表空间 :
--查看表空间所在硬盘位置
select name from v$datafile
一个数据库可以有多个表空间,一个表空间里可以有多个表。表空间就是存多个表的物理空间; 可以指定表空间的大小位置等。
建立表空间(一般建N个存数据的表空间和一个索引空间):
创建表空间:create tablespace ts1 datafile 'C:\tablespace\ts1.dbf' size 50M;
自动扩展大小:create tablespace ts2 datafile 'C:\tablespace\ts2.dbf' size 50M autoextend on next 10M;
设置最大空间:create tablespace ts3 datafile 'C:\tablespace\ts3.dbf' size 50M autoextend on next 10M maxsize 1024M;
更改用户默认表空间:alter database default tablespace ts1;
表空间改名:alter tablespace ts1 rename to tss1;
删除表空间:drop tablespace ts2 including contents and datafiles;
术语(粗略看一下即可)
Windows服务:操作系统的服务,cmd中运行services.msc打开管理界面。
Oracle监听服务:名为“Oracle...Listener”的Windows服务。
Oracle实例服务:名为“OracleService+实例名”的Windows服务。
实例:Oracle数据库实例。容易与网络服务名搞混。
网络服务名:Oracle客户端连接服务器时,需要用到的一个名字。容易与实例名搞混。
表空间:Oracle中最大的存储单元,数据是存放在一个又一个的表空间里面。
用户:登陆的时候要用的到用户名
身份:sysdba身份
角色:一种权限管理工具
权限:系统权限、对象权限、(甚至角色)、的统称
系统权限:dba、connect、resource 是三个最常见的系统权限
对象权限:对表、视图、存储过程等对象的访问权限,赋权时通常要加on关键字
Net Manager:用于手动配置监听和网络服务名
监听配置向导:Net Manager的向导版
sqlplus:Oracle自带的客户端cmd版
sqlplusw:Oracle自带的客户端界面版(其实还是打命令)
T-SQL:SQLServer对标准SQL的扩展
PL/SQL:Oracle对标准SQL的扩展
PL/SQL Developer:第三方Oracle客户端工具
Oracle连接字符串:用户名/密码@网络服务名 [as sysdba]
九.导入导出
导出: exp
----------------------------------------------------------------------------- 导入导出
C:\Users\>exp
用户名: hrit/accp
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
输入数组提取缓冲区大小: 4096 >
导出文件: EXPDAT.DMP > F:/hrit.dmp
(1)E(完整的数据库), (2)U(用户) 或 (3)T(表): (2)U >
导出权限 (yes/no): yes >
导出表数据 (yes/no): yes >
压缩区 (yes/no): yes >
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的用户...
要导出的用户: (按 RETURN 退出) > hrit
要导出的用户: (按 RETURN 退出) >
-----------------------------------------------------------------------------
导入: imp
-----------------------------------------------------------------------------
C:\Users\>imp
Import: Release 10.2.0.3.0 - Production on 星期四 1月 4 16:01:57 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
用户名: hrit/accp
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
导入文件: EXPDAT.DMP> F:\hrit.dmp
输入插入缓冲区大小 (最小为 8192) 30720>
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
只列出导入文件的内容 (yes/no): no >
由于对象已存在, 忽略创建错误 (yes/no): no > yes
导入权限 (yes/no): yes >
导入表数据 (yes/no): yes >
导入整个导出文件 (yes/no): no > yes
. 正在将 HRIT 的对象导入到 HRIT
. . 正在导入表 "PERSON"导入了 1 行
成功终止导入, 没有出现警告。