sql和oracle之间的语法差异是什么?
SQL和Oracle的语法差异包括数据类型不同、获取当前系统时间的函数不同、Oracle中没有默认约束、变量和字符串连接方式不同、case语句不同等。
p >
不同的数据类型
SQL Server 数据类型:int、smallint、char、varchar、nchar、nvarchar、 ntext,datetime,smalldatetime,money,decima,float,bit
Oracle 数据类型:number(p,s),char,varchar2,Date,LOB
获取当前系统时间的函数不同
sql server: getdate()
oracle: sysdate
例如:设置日期格式函数
to_char(sysdate,'yyy-mm-dd');
Oracle语句中没有默认约束
sql中添加默认约束服务器:
alter table talbe_name add DF_table_name default('male') for sex;
在oracle中添加默认值:
alter table table_name edit(sex default('male'));
连接变量和字符串的方法不同 strong>
在sql server中连接:使用“+”连接,例如:
print 'aaaa'+ @name;
oracle连接:使用“||”连接,例如:
dbms_output.put_line( 'aaa'|| name);//name是一个变量
Oracle没有identity自动增长列,而是使用序列来实现增长
SQL server自动增长:在主键列中表的可以直接使用identity(1,1)来实现增长
oracle使用序列自动增长:
创建序列se_id start with 1increment by 1
使用序列来实现自动增长:se_id.nextval
条件语句if...else...的语法不同
sql在服务器中:
if 条件开始…………结束 else begin …………结束
在oracle中:
如果条件 1 那么…………; elsif条件2然后…………;别的 …………; end if;
case语句的语法不同
在sql server中:
select ....case.... (else)....end....语句 select Stuno '学号',casewhen Grade>=90 and Grade<=100 then '★★★★ ' 当成绩 >=80 且成绩 <90 时,则为 '★★★' 当成绩 >=70 且成绩 <80 时,则为 '★★' 当成绩 >= 60 且成绩 <70 时,则为 '★' 否则 '差' 结束为 '成绩来自分数 go
oracle:
声明nums number:=&nos;--&nos表示提示传入值begin case nums when 100 then dbms_output.put_line('满分,不错');when 90 then dbms_output.put_line('90分页非常好'); end case ; end;
创建用户有不同的方法
在sql server中
创建登录帐户:sa-- ---123456
创建登录登录名,密码='登录密码'
修改登录帐户:
p>
更改登录登录名,name='新登录名',password='新登录密码'
禁用/启用登录帐户
更改登录登录名禁用/启用
删除登录帐户
drop Login 登录名
创建用户:
创建用户用户名for/from Login 登录名
修改用户名
使用 name='新用户名' 更改用户用户名
删除用户名
删除用户用户名
授予限制
授予用户名对表名的选择/更新/删除/插入< p>oracle中:
创建用户语法
创建由密码标识的用户用户名默认表空间usertemporary用户表空间 tempquota 10M
更改密码
更改新密码识别的用户用户名
授予权限
向用户名授予创建会话
删除用户
drop user usernamecascade;
以上就是关于SQL和Oracle语法差异的全部内容了,感谢您的阅读!相信大家都有了一定的了解.我希望c分享的内容会对大家有所帮助。如果您想了解更多知识,欢迎关注行业资讯频道!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > sql和oracle之间的语法差异是什么?