本人刚从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 。