前段时间,因为要给自己开发的增加Oracle数据库的支持,所以学习了下Oracle的基础知识,发现使用方式跟MYSQL,MSSQL等数据库的思维有很大的不同,总结一下几点不同,希望给初学者一点经验,减少学习的时间:
一,Oracle数据没有数据库的概念
我们使用MSSQL等数据,习惯的思维是先有数据库,然后有表,然后有个用户可以访问这个数据库,但是Oracle是没有数据库这个概念的,他的用户就等于数据库,用户下面有表,这个是很大的不同,这个思维习惯要转变,要不然无法理解。
二,链接字符串和链接方式也有些不同
我摸索了一下,发现Oracle的链接字符串呢,写法有两种:
2.1,简洁模式
Data Source=XE;User ID=user;Password=pwd; 这种字符串很简介,但先需要在tnsnames.ora(在Oracle安装目录搜索一下可以找到)文件里配置如下:XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = mypc)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) 这种链接方式,对本地和远程数据库都有用,假如我有一个远程Oracle数据库,基本信息如下: IP : 33.33.33.33 端口:1521 服务名orcl 账号:u 密码:p 那么先在tnsnames.ora里增加一段代码如下: ycdb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 33.33.33.33)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 然后,链接字符串就可以写成: Data Source=ycdb;User ID=u;Password=p; 对比一下,应该很好理解。2.2,长模式 沿用上面的远程数据库例子,只是这种情况无需配置tnsnames.ora了,链接字符串就如下: Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=33.33.33.33)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));Password=p;User ID=u;对比一下,其实就是把tnsnames.ora的里代码全部写入到链接字符串了。至于那种方式比较方便,因人而已吧。我个人比较喜欢第一种写法,简洁,看着舒服。
感觉Oracle也没那么难,当然要精通估计会遇到不少坑。