oracle入门注意点

Oracle入门

1.连接字符串在Oracle中用**||** ,SqlServer中用+,MySQL中用concat(‘a’,‘b’,‘c’)

在MySQL中from 后的表如果是(select…)这种,那么后面必须有别名

Orcale的大字段用clob,图像用blob,clob字段在Hibernate的映射文件中用String就可以

2.mysql,orcale,sqlserver 语句执行顺序

开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果

3.Orcale中没有TOP,是通过

select * from (select * from A order by id desc) where rownum=1

注:不能直接写 select * from A where rownum=1 order by id desc 因为语句执行的顺序是先where再order by ,如果这样写就无法按id的排序来取第一个了。

4.不能写rownum=2或rownum>1这样,因为Orcale 默认必须包含第一条。

如果非要取第二条的话,可以写成:

select * from (select id,rownum as row_num from lws_q_bl_result r where r.sample_id = ‘B10226072’) where row_num=2

mysql:

limit是mysql的语法
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录

5.orcale 生成唯一序列是 select sys.guid() from dual ,mysql是 select uuid() from dual

6.MySql和Orcale的ID自增

mysql 在数据库中实现ID自增

由于Orcale的ID是在插入该条数据之前就通过select SEQ_BLOG_ID.nextval from dual 获得的

7.mysql与oracle的区别

相同点:

1.都是关系型数据库管理系统
2.都是目前比较流行的数据库

不同点:
1.单引号的处理
Mysql里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
2.自动增长的数据类型处理
Mysql是一个自动增长的数据类型,插入数据的时候,不需要管理,它自己会自动增长,Oracle不支持自动增长的数据类型,通过建立一个自动增长的序列号来完成自动增长。
3.sql语句的扩展和灵活性
Mysql对sql语句有很多非常实用而方便的扩展,比如limit功能,insert可以一次插入多行数据,select某些管理数据可以不加from。
Oracle在这方面感觉更加稳重传统一些。
4.事物提交方式
oracle默认不自动提交,需要用户手动提交。
Mysql默认是自动提交。不支持事物。
Mysql默认自动提交,也就是你提交一个query,他就直接执行,我们可以通过
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
5.Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。

  1. Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理系统)最好的工具。
  2. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
    8. 长字符串的处理 长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
    9. 空字符的处理 Mysql的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按Mysql的NOT NULL来定义Oracle表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
    10. 字符串的模糊比较 Mysql里用 字段名 like ‘%字符串%’;
    Oracle里也可以用 字段名 like ‘%字符串%’ 但这种方法不能使用索引, 速度不快。
    11. 翻页的SQL语句的处理
    MySQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用 SEEK定位到结果集的位置。Oracle处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值