Oracle数据库学习
2017-10-21 01:36
204 查看
实现Oracle 数据库的安装
管理数据表
简单存放数据
更新数据
python接口
Oracle 11g 安装在 D:\app\Sean\product 下
此外,参考了网址[Oracle 11g数据库安装及配置] (http://blog.csdn.net/u010784236/article/details/52072085) 用于数据表的后续配置,如添加表等。
如何彻底卸载oracle(http://jingyan.baidu.com/article/3c343ff70bb3ea0d3779632c.html):
因为Oracle在Windows下的卸载有一些麻烦,如果不能完全卸载有可能影响将来的再次安装,常规卸载方法是运行Oracle的自带的卸载程序,可遗憾的是在卸载时总不能完全卸载,有时候是注册表没有处理干净,或者用专门的卸载工具才可以,但是当再次安装Oracle时,就会出现莫名其妙的问题,并且这种卸载方式比较麻烦,比较慢,下面介绍一种比较快并且能够彻底卸载Oracle的方法。
关闭oracle所有的服务。可以在windows的服务管理器中关闭;(控制面板-管理工具-服务)
打开注册表:在运行中regedit 打开路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务!
打开注册表,找到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
删除该oracle目录,该目录下注册着Oracle数据库的软件安装信息。
删除注册的oracle事件日志,打开注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
删除注册表的以oracle开头的所有项目。
删除环境变量path中关于oracle的内容。
鼠标右键右单击“我的电脑属性高级环境变量PATH 变量。
删除Oracle在该值中的内容。注意:path中记录着一堆操作系统的目录,在windows中各个目录之间使用分号(; )隔开的,删除时注意。
建议:删除PATH环境变量中关于Oracle的值时,将该值全部拷贝到文本编辑器中,找到对应的Oracle的值,删除后,再拷贝修改的串,粘贴到PATH环境变量中,这样相对而言比较安全。
重新启动操作系统。
以上1~5个步骤操作完毕后,重新启动操作系统。
重启操作系统后各种Oracle相关的进程都不会加载了。这时删除Oracle_Home下的所有数据。(Oracle_Home指Oracle程序的安装目录)
删除C:\Program Files下oracle目录。
(该目录视Oracle安装所在路径而定)
删除开始菜单下oracle项,如:
C:\Documents and Settings\All Users\「开始」菜单\程序\Oracle - Ora10g
如果不删除开始菜单下的Oracle相关菜单目录,没关系,这个不影响再次安装Oracle.当再次安装Oracle时,该菜单会被替换。
至此,Windows平台下Oracle就彻底卸载了。
然后在解压后的 D:\app\Sean\product\instantclient_11_2目录下新建NETWORK\ADMIN目录,在ADMIN目录下新建tnsnames.ora文件,添加数据库TNS
注意:tnsnames.ora文件也可以从Oracle数据库HOME目录的NETWORK\ADMIN目录,还要把sqlnet.ora拷贝过来。然后确定HOST配置是否正确,如果HOST是主机名,需要把主机名后面的域名去掉
建立数据库–>创建用户和授予权限–>连接数据库建立表格、操作表格
在完成Oracle软件安装后,DBA就应该对组织和管理数据库负责任,其主要任务是:
启动和关闭数据库;
创建数据库;
删除数据库;
调整初始化参数;
管理网络。
对于数据库的管理,必须要具有SYSDBA和SYSOPER的角色,才有权启动、关闭、运行数据库。SYSDBA角色拥有SYS数据表的所有权限,SYSOPER的角色拥有Public数据表的所有权限。
注意字符集选择 UTF8
注意创建数据库之后,需要修改目录 D:\app\Sean\instantclient_11_2\NETWORK\ADMIN 下的tnsnames.ora 文件将新的数据库添加到PL/SQL登录的备选数据库中,此处以CSMAR为例。
删除数据库的时候,除了按照DBCA的步骤之外,还需要删除注册表和一些其他数据,例如删除了数据库CSMAR,本机的一些路径设定如下:
$ORACLE_SID = CSMAR
$ORACLE_BASE = D:\app\Sean
$ORACLE_HOME = D:\app\Sean\product\11.2.0\dbhome_2
此时需要手工删除实例相关的配置:
删除ORACLEBASE/admin/ORACLE_SID所有目录。
删除$ORACLE_HOME/dbs下和SID相关的文件和参数文件,包括hc_CSMAR.dat,init.ora,lkBISAL,orapwbisal。
Step 2. 文件–新建–用户,并给用户搭配相应的权限,参考了这里。新建了一个用户,表空间在Users,角色为connect,系统权限包括create session,以及对表格的操作,表空间中不受限额。
点击应用后,即可生成用户,还可以查看对应的SQL代码如下:
新建完成之后,点击钥匙(也就是登录按钮),然后切换成新的用户进行登录。
在创建数据库时,已经为SYS等4个账户设定了口令,其中SYS与SYSTEM具有管理员权限,在SQL*Plus工具中使用SYSTEM账户登录Oracle数据库。
通过数据字典dba_users,查看Oracle账户的锁定状态,如下:(v其中,OPEN表示账户为解锁状态;EXPIRED表示账户为过期状态(需要设置口令才能解除此状态);LOCKED表示账户为锁定状态。)
使用ALTER USER语句为scott账户解锁:
再使用ALTER USER语句为scott账户设置口令,如下:
通过数据字典dba_users查看现在scott账户的状态,通过查询结果可以看出,scott账户已经被成功解锁。在使用数据字典dba_users时,需要注意其字段的值是区分大小的。
给用户解锁
CHAR 类型。
VHARCHAR2和VARCHAR类型
VARCHAR数据类型
NVARCHAR和NVARCHAR2类型
Long 类型
数值类型
NUMBER类型
浮点数类型
BINARY_FLOAT
BINARY_DOUBLE
日期和时间类型
DATE类型
TIMESTAMP类型
大对象类型
BLOB类型
BFILE类型
详细介绍可以参考:简书:Oracle数据库数据类型, oracle数据类型
处理方法:在环境变量中新增以下变量值对:
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.ZHS16GBK
暂时没有解决,猜测仍然是字符集选择问题,database character set 选择了WE8MSWIN1252 似乎这是英文的字符集,会产生中文乱码,考虑更改字符集
解决
在建立表格的时候就选UTF8 编码或者中文编码。
新建日历文件表格
参考这里:教你Excel数据通过plsql导入到Oracle
注意,在设定“每次提交”时选择0,这样会把所有都提交。
未完待继续添加
管理数据表
简单存放数据
更新数据
python接口
Oracle 数据库安装
安装Oracle 11g.
主要参考网页:Oracle 11g数据库详细安装步骤图解注意以管理员模式运行setup.exeOracle 11g 安装在 D:\app\Sean\product 下
此外,参考了网址[Oracle 11g数据库安装及配置] (http://blog.csdn.net/u010784236/article/details/52072085) 用于数据表的后续配置,如添加表等。
卸载Oracle 11g.
Windows 平台彻底卸载Oracle 11通常较为麻烦,可以参考如下网址给出的步骤如何彻底卸载oracle(http://jingyan.baidu.com/article/3c343ff70bb3ea0d3779632c.html):
因为Oracle在Windows下的卸载有一些麻烦,如果不能完全卸载有可能影响将来的再次安装,常规卸载方法是运行Oracle的自带的卸载程序,可遗憾的是在卸载时总不能完全卸载,有时候是注册表没有处理干净,或者用专门的卸载工具才可以,但是当再次安装Oracle时,就会出现莫名其妙的问题,并且这种卸载方式比较麻烦,比较慢,下面介绍一种比较快并且能够彻底卸载Oracle的方法。
关闭oracle所有的服务。可以在windows的服务管理器中关闭;(控制面板-管理工具-服务)
打开注册表:在运行中regedit 打开路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务!
打开注册表,找到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
删除该oracle目录,该目录下注册着Oracle数据库的软件安装信息。
删除注册的oracle事件日志,打开注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
删除注册表的以oracle开头的所有项目。
删除环境变量path中关于oracle的内容。
鼠标右键右单击“我的电脑属性高级环境变量PATH 变量。
删除Oracle在该值中的内容。注意:path中记录着一堆操作系统的目录,在windows中各个目录之间使用分号(; )隔开的,删除时注意。
建议:删除PATH环境变量中关于Oracle的值时,将该值全部拷贝到文本编辑器中,找到对应的Oracle的值,删除后,再拷贝修改的串,粘贴到PATH环境变量中,这样相对而言比较安全。
重新启动操作系统。
以上1~5个步骤操作完毕后,重新启动操作系统。
重启操作系统后各种Oracle相关的进程都不会加载了。这时删除Oracle_Home下的所有数据。(Oracle_Home指Oracle程序的安装目录)
删除C:\Program Files下oracle目录。
(该目录视Oracle安装所在路径而定)
删除开始菜单下oracle项,如:
C:\Documents and Settings\All Users\「开始」菜单\程序\Oracle - Ora10g
如果不删除开始菜单下的Oracle相关菜单目录,没关系,这个不影响再次安装Oracle.当再次安装Oracle时,该菜单会被替换。
至此,Windows平台下Oracle就彻底卸载了。
安装Oracle client
主要参考网页: PL/SQL Developer连接本地Oracle 11g 64位数据库,解压后放在 目录 D:\app\Sean\product 下然后在解压后的 D:\app\Sean\product\instantclient_11_2目录下新建NETWORK\ADMIN目录,在ADMIN目录下新建tnsnames.ora文件,添加数据库TNS
oracle ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = sean-PC)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
注意:tnsnames.ora文件也可以从Oracle数据库HOME目录的NETWORK\ADMIN目录,还要把sqlnet.ora拷贝过来。然后确定HOST配置是否正确,如果HOST是主机名,需要把主机名后面的域名去掉
Oracle 数据库管理操作
目的:主要通过在本地建立一些数据表,存放在研究中经常用到的数据,并且定期更新数据库(约半年一次更新),不需要非常强大的SQL功能。建立数据库–>创建用户和授予权限–>连接数据库建立表格、操作表格
在完成Oracle软件安装后,DBA就应该对组织和管理数据库负责任,其主要任务是:
启动和关闭数据库;
创建数据库;
删除数据库;
调整初始化参数;
管理网络。
对于数据库的管理,必须要具有SYSDBA和SYSOPER的角色,才有权启动、关闭、运行数据库。SYSDBA角色拥有SYS数据表的所有权限,SYSOPER的角色拥有Public数据表的所有权限。
1. 新建数据库|删除数据库
主要通过DBCA完成,主要参考博客 Oracle数据库管理(一):创建和删除数据库注意字符集选择 UTF8
注意创建数据库之后,需要修改目录 D:\app\Sean\instantclient_11_2\NETWORK\ADMIN 下的tnsnames.ora 文件将新的数据库添加到PL/SQL登录的备选数据库中,此处以CSMAR为例。
CSMAR = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SSID = CSMAR) (SERVICE_NAME = CSMAR) ) )
删除数据库的时候,除了按照DBCA的步骤之外,还需要删除注册表和一些其他数据,例如删除了数据库CSMAR,本机的一些路径设定如下:
$ORACLE_SID = CSMAR
$ORACLE_BASE = D:\app\Sean
$ORACLE_HOME = D:\app\Sean\product\11.2.0\dbhome_2
此时需要手工删除实例相关的配置:
删除ORACLEBASE/admin/ORACLE_SID所有目录。
删除$ORACLE_HOME/dbs下和SID相关的文件和参数文件,包括hc_CSMAR.dat,init.ora,lkBISAL,orapwbisal。
2. PL/SQL 创建用户、授予权限等
Step 1. 以system 账号登录数据库CSMAR,Step 2. 文件–新建–用户,并给用户搭配相应的权限,参考了这里。新建了一个用户,表空间在Users,角色为connect,系统权限包括create session,以及对表格的操作,表空间中不受限额。
点击应用后,即可生成用户,还可以查看对应的SQL代码如下:
-- Create the user create user SEAN identified by 123456 default tablespace USERS temporary tablespace TEMP profile DEFAULT password expire quota unlimited on users; -- Grant/Revoke role privileges grant connect to SEAN; grant dba to SEAN with admin option; -- Grant/Revoke system privileges grant create session to SEAN with admin option; grant create table to SEAN with admin option; grant delete any table to SEAN with admin option; grant insert any table to SEAN with admin option; grant select any table to SEAN with admin option; grant unlimited tablespace to SEAN with admin option; grant update any table to SEAN with admin option;
新建完成之后,点击钥匙(也就是登录按钮),然后切换成新的用户进行登录。
在创建数据库时,已经为SYS等4个账户设定了口令,其中SYS与SYSTEM具有管理员权限,在SQL*Plus工具中使用SYSTEM账户登录Oracle数据库。
通过数据字典dba_users,查看Oracle账户的锁定状态,如下:(v其中,OPEN表示账户为解锁状态;EXPIRED表示账户为过期状态(需要设置口令才能解除此状态);LOCKED表示账户为锁定状态。)
使用ALTER USER语句为scott账户解锁:
SQL> ALTER USER scott ACCOUNT UNLOCK;
再使用ALTER USER语句为scott账户设置口令,如下:
SQL> ALTER USER scott IDENTIFIED BY tiger;
通过数据字典dba_users查看现在scott账户的状态,通过查询结果可以看出,scott账户已经被成功解锁。在使用数据字典dba_users时,需要注意其字段的值是区分大小的。
给用户解锁
3. 新建数据表
通过PL/SQL完成1. Oracle 中支持的数据类型有:
字符数据类型CHAR 类型。
VHARCHAR2和VARCHAR类型
VARCHAR数据类型
NVARCHAR和NVARCHAR2类型
Long 类型
数值类型
NUMBER类型
浮点数类型
BINARY_FLOAT
BINARY_DOUBLE
日期和时间类型
DATE类型
TIMESTAMP类型
大对象类型
BLOB类型
BFILE类型
详细介绍可以参考:简书:Oracle数据库数据类型, oracle数据类型
2. Issue 新建表格 comment中中文乱码
参考这里解决: PLSQL Developer建表时注释(COMMENT)中文乱码的解决方案(Windows)处理方法:在环境变量中新增以下变量值对:
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.ZHS16GBK
暂时没有解决,猜测仍然是字符集选择问题,database character set 选择了WE8MSWIN1252 似乎这是英文的字符集,会产生中文乱码,考虑更改字符集
解决
在建立表格的时候就选UTF8 编码或者中文编码。
新建日历文件表格
-- Create table create table TRD_CALE ( markettype NUMBER, clddt DATE, daywk NUMBER, state VARCHAR2(10) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); -- Add comments to the columns comment on column TRD_CALE.markettype is '市场类型,1=上海A,2=上海B,4=深圳A,8=深圳B, 16=创业板'; comment on column TRD_CALE.clddt is '日历日期,以YYYY-MM-DD表示'; comment on column TRD_CALE.daywk is '星期,1=星期一,2=星期二,3=星期三,4=星期四,5=星期五 6=星期六,0=星期天'; comment on column TRD_CALE.state is '开始情况,‘O’=开市(Open),‘C’=休市(Close)';
4. 批量插入数据
从外部数据格式中导入数据,例如excel, csv, dbf甚至SAS, Stata等格式的数据等。参考这里:教你Excel数据通过plsql导入到Oracle
注意,在设定“每次提交”时选择0,这样会把所有都提交。
2. 从python接入数据库
Required python packages: cx_Oracle. 代码文件参考: Github地址# -*- coding: utf-8 -*- # test for conneted to Oracle 11g database. import cx_Oracle as ora usr = "system" psw = "123456" host = "localhost" port = 1521 sid = "csmar" dsn = ora.makedsn(host, port, sid) # define the destination to Oracle database. con = ora.connect(usr, psw, dsn) # connected to Oracle database. con = ora.connect("system", "123456", "localhost/csmar") print(con.version) con.close
未完待继续添加
相关文章推荐
- oracle学习总结--------oracle数据库的启动流程
- Oracle数据库学习第一天
- Oracle数据库中的“锁”学习小结
- oracle数据库学习之循序渐进
- Oracle数据库学习笔记之异常处理,存储过程
- Oracle数据库的连接配置(学习笔记)
- Oracle数据库学习3之修改、插入、更新语句
- Oracle数据库学习14之包
- Oracle数据库学习小结(二)
- oracle数据库学习小结
- Oracle数据库学习---查询语句
- oracle学习之--2oracle数据库服务器的安装和简单的了解
- CC++初学者编程教程(12) 基于rhel6.3的Oracle数据库学习环境搭建
- Oracle学习----Oracle数据库简介
- Oracle数据库学习
- Oracle数据库SQL语句学习
- oracle数据库学习(中)
- ORACLE数据库学习之逻辑结构
- ORACLE数据库学习之数据库的优化
- Oracle数据库初级学习-y