zoukankan      html  css  js  c++  java
  • Oracle学习笔记1

      本人刚从MySQL转学Oracle,刚接触时的感觉,MySQL与Oracle在sql语法上大致相似。很大区别是MySQL与Oracle在表空间分配时的区别:MySQL可以建立多个数据库,每个数据库包含多张表。Oracle建立多个表空间,每一个表空间对应多张表。每一个表空间授权给一个用户进行使用。如此看来Oracle的表空间相当于MySQL的库,但是有一个很大的区别是Oracle中可以把一个表空间中的表分区到其他的表空间,来提升查询的速率。

      下载:   数据库 Oracle11g,可视化图形界面 Toad for Oracle 12.11

      Oracle下好后自带sqlplus,可以对 oracle数据库通过命令行进行操作;比较好用的Oracle的可视化图形界面是toad;个人目前比较偏好于sqlplus。

      下面讲一下sqlplus的操作:

      进入命令行之后通过输入 sqlplus 用户名/密码 即可进入SQL> 操作。 oracle11g有着几个默认用户 ,其中常用的有sys、system、scott。 但是通过以上行红字操作system和scott是无法进入sql操作的。需要对用户进行解锁(百度),之后才能对它们进行操作。sqlplus每次进来它的宽度linesize和每页显示个数pagesize都是设置的很不合理的。我们可以写入命令set linesize 300;与set pagesize 300; 让我们每次查询出显示的格式变得规整。但是每次重新启动oracle的操作时这些设置都会被重置。为了便捷参考文章 https://www.cnblogs.com/befer/p/5152696.html。最快的办法就是将$ORACLE_HOME/sqlplus/admin

    路径下glogin.sql中末尾添加:

    --SQLPLUS默认编辑器设置为vi
    define _editor=vi
    --默认打开DBMA_OUTPUT,这样不必要每次在输入这个命令,同时将默认缓冲池设置得尽可能大
    set serveroutput on size 1000000
    --假脱机输出文本时,会去除文本行两端的空格,而且行宽不定,如果设置为off(默认设置),假脱机输出的文本行宽度则等于所设置的linesize
    set trimspool on
    --设置选择LONG和CLOB列时显示的默认字节数
    set long 5000
    --设置显示的文本宽为200个字符
    set linesize 200
    --设置SQLPLUS多久打印一次标题,将此参数设置大些这样每页只显示一次标题
    set pagesize 9999
    --设置AUTOTRACE得到解释计划输出的默认宽度,一般80足够放下整个计划
    column plan_plus_exp format a80
    --设置SQLPLUS提示符,显示格式为用户@数据库名
    column global_name new_value gname
    set termout off
    define gname=idle
    column global_name new_value gname
    select lower(user) ||'@'|| substr(global_name,1,decode(dot,0,length(global_name),dot-1)) global_name
    from (select global_name,instr(global_name,'.') dot from global_name);
    set sqlprompt '&gname>'
    set termout on

    glogin.sql将在sqlplus在启动的时候运行。相当于我们全局设置。

      MySQL与Oracle还有一个区别是事务提交,MySQL是自动进行事务提交而Oracle是不会自动提交事务的 ,关于Oracle的事物提交可以查看 https://blog.csdn.net/rudygao/article/details/18667539,前几天就遇到一个Bug写JDBC连接Oracle数据库时,通过sqlplus插入表中几条数据,然而在Java代码中死活查询不出来,原因就是没有进行事务提交。个人建议将set autocommit on (设置自动进行事务提交)也写入以上配置中;

      到这里了我们也可能不满足系统给我们提供的默认用户,我们可以尝试百度关于创建空间和用户以及将表空间授权给用户http://blog.csdn.net/loongshawn/article/details/50458950推荐一篇相关文章。首先我们查看我们表空间路径比如:C:Oracleoradataorcl 然后我们便通过文章中的操作新建.DBF文件并给这个表空间起名,接着新建用户,最后进行授权。然后发现我们在表空间中新建表进行插入操作还是没有权限。我们需要 执行SQL> grant resource to <用户名> 之后就好使了。

      接下来我就使用java通过JDBC连接Oracle。基本上的操作与MySQL没有任何差异。通过这篇文章中的代码 https://www.cnblogs.com/JimKing/p/9327748.html 可以了解一下如何进行的JDBC连接Oracle。进行驱动连接的Jar包使用 ojdbc6-11.2.0.3.jar ,进行Oracle连接的URL为 jdbc:oracle:thin:@127.0.0.1:1521:orcl

  • 相关阅读:
    C++ 用宏实现swap(a,b)
    C++ string类的实现
    博客园代码高亮Html转换小程序,Linux/Mac下可用
    C++STL
    数据结构课程设计(基于二叉排序树的身份证管理系统)
    简单模拟B1011
    简单模拟B1001
    双向链表的双向冒泡排序 c++
    IO流处理文件读取到字节数组,再从字节数组读取到文件,Java实现
    Java多人聊天室第一版
  • 原文地址:https://www.cnblogs.com/JimKing/p/9328521.html
Copyright © 2011-2022 走看看