sql和oracle的语法上有什么区别


本文摘自PHP中文网,作者清浅,侵删。

sql和oracle语法上的区别有:1、数据类型不同;2、获得当前系统时间的函数不同;3、创建用户的方式不同;4、连接变量和字符串的方式不一样;5、条件语句“if…else…”的语法不同等等。

sql和oracle的语法区别有数据类型不同,获得当前系统时间的函数不同,在oracle没有默认约束,连接变量和字符串的方式不一样,case语句不一样等

数据类型不同

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

例如:设定日期格式的函数

1

to_char(sysdate,'yyy-mm-dd');

在oracle中没有默认约束的说法

sql server 中添加默认约束:

1

alter table talbe_name add DF_table_name default('男') for sex;

oracle 中添加默认值:

1

alter table table_name modify(sex default('男'));

连接变量和字符串的方式不一样

sql server 中连接:使用“+”连接,例如:

1

print 'aaaa'+@name;

oracle 中连接:使用“||”连接,例如:

1

dbms_output.put_line('aaa'||name);//name为变量

oracle没有identity自动增长列,而是使用序列实现增长

sql server 自动增长:在表的主键列中可直接使用identity(1,1)实现增长

oracle 使用序列自动增长:

1

2

3

create sequence se_id

start with 1

increment by 1

使用序列实现自动增长:se_id.nextval

条件语句if……else……的语法不同

sql server中:

1

2

3

4

5

6

7

8

if 条件

          begin

            …………

          end

          else

          begin

            …………

          end

oracle中:

1

2

3

4

5

6

7

if 条件1 then

             …………;

          elsif 条件2 then

             …………;

          else

            …………;

          end if;

case语句的语法不同

sql server中:

1

2

3

4

5

6

7

8

9

select ....case.....(else)....end....语句

            select stuno '学号',case

            when grade>=90 and grade<=100 then '★★★★'

            when grade>=80 and grade<90 then '★★★'

         when grade>=70 and grade<80 then '★★'

         when grade>=60 and grade<70  then '★'

            else '差'

            end as '等级' from score

            go

oracle中:

1

2

3

4

5

6

7

8

9

10

declare

      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

1

create Login 登陆名称 with password='登陆密码'

修改登陆账户:

1

alter Login 登陆名称 with name='新登录名称' and password='新登录密码'

禁用/启用登陆账号

1

alter Login 登录名称 disable(禁用)/enable(启用)

删除登陆账号

1

drop Login 登录名称

创建用户:

1

create user 用户名 for/from Login 登陆名称

修改用户名

1

alter user 用户名 with name='新用户名'

删除用户名

1

drop user 用户名

授权限

1

grant select/update/delete/insert on 表名 to 用户名

oracle中:

创建用户语法

1

2

3

4

5

create user 用户名

identified by 密码

default tablespace users

temporary tablespace temp

quota 10M on users

修改密码

1

alter user 用户名 identified by 新密码

授予权限

1

grant create session to 用户名

删除用户

1

drop user 用户名 cascade;

以上就是sql和oracle的语法上有什么区别的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

sql和oracle的语法上有什么区别

更多相关阅读请进入《sql语法》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...