最近去铁科院面试,项目组长问了我这样一下问题:SQLServer与Oracle的区别是什么?从进入软件行业,从开始CS的编码到BS的编码过程中使用的都是SQLServer,在半年前开始敲DRP的过程中才接触到Oracle,当时给我的感觉Oracle太庞大了,也许对新鲜的事物都是这种感觉吧,下面我就来详细的介绍一下:
1.数据类型不同。
sql server 的数据类型
int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima, float,bit
oracle 的数据类型:number(p,s),char,varchar2,Date,LOB
注意:insert into table_name values('1','张三','男',date'2012-3-5');插入字符串日期前加date转换类型
2.获得当前系统时间的函数不同。
sql server :getdate()
oracle:sysdate
例如:设定日期格式的函数:to_char(sysdate,'yyy-mm-dd');
3.在oracle中没有默认约束的说法
sql server 中添加默认约束:alter table talbe_name add DF_table_name default('男') for sex;
oracle 中添加默认值:alter table table_name modify(sex default('男'));
4.连接变量和字符串的方式不一样
sql server 中连接:使用“+”连接,例如:print 'aaaa'+@name;
oracle 中连接:使用“||”连接,例如:dbms_output.put_line('aaa'||name);---name为变量
5.oracle没有identity自动增长列,而是使用序列实现增长
sql server 自动增长:在表的主键列中可直接使用identity(1,1)实现增长