oracle sql server的区别,oracle与sqlserver的十大区别

http://blog.csdn.net/it_fengli/article/details/8213839 --sql server 与 oracle的区别: --DBMS 数据库管理系统 --1.数据类型不同。 --sql server 的数据类型:int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima, -

http://blog.csdn.net/it_fengli/article/details/8213839

--sql server 与 oracle的区别:

--DBMS 数据库管理系统

--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)实现增长

--oracle 使用序列自动增长:

create sequence se_id

start with 1

increment by 1

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

--6.条件语句if……else……的语法不同

--sql server中:

if 条件

begin

…………

end

else

begin

…………

end

--oracle中:

if 条件1 then

…………;

elsif 条件2 then

…………;

else

…………;

end if;

--7.case语句的语法不同

--sql server中:

--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中:

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;

--8.触发器创建语法不同

--sql server中:

--首先判断触发器是否已经存在

if exists (select * from sys.sysobjects where name='tr_delete')

--如果存在先删除

drop trigger tr_delete

go

--创建触发器

create trigger tr_delete

on bookInfo

instead of delete

as

--定义变量

declare @bookid int

select @bookid=Bookid from deleted---deleted执行删除语句( delete from BookInfo where BookId=1),自动生成的deleted表

--删除与该图书的相关记录(先删除从表再删除主表)

delete from borrowinfo where bookid=@bookid

delete from backinfo where bookid=@bookid

delete from BookInfo where BookId=@bookid

--判断

if @@error<>0

begin

print '删除失败'

rollback transaction

end

else

begin

print '删除成功'

end

go

delete from BookInfo where BookId=1

--oracle中:

--创建触发器

create or replace trigger tri_test

before insert or update or delete

on table_name

[for each row]---如果要使用 :new /:old 就必须使用行触发器

declare

nums varchar2(20);

begin

select'F'||lpad('aa',5,0)into

nums from dual;

end;

--9.oracle中的存储过程

--sql server中存储过程:

--判断存储过程是否已经存在

if exists(select * from sys.sysobjects where name='proc_name')

--如果存在先删除

drop proc proc_name

go

--创建存储过程语句

create proc/procedure proc_name

@参数名1 数据类型 [out/output],

@参数名2 数据类型 [out/output]

as

…………

go

--调用存储过程

--如果有输出参数,则需定义变量(假设@参数2为输出参数)

declare @变量名 数据类型

exec proc_name @参数名1='aaa',@参数名2=@变量名 out

---oracle中带游标及循环的存储过程

create or replace procedure proc_selCurrent

(

names varchar2

)

as

cursor cursor_sel

is

select DepositSum,cardType,name,state from CurrentAccount where name like '%'||names||'%';

dd number;

cc number;

nn varchar2(20);

sta number;

begin

open cursor_sel;

loop

fetch cursor_sel into dd,cc,nn,sta;

dbms_output.put_line('存款金额:'||dd||'姓名:'||nn);

exit when cursor_sel%notfound;

end loop;

close cursor_sel;

end;

--调用存储过程

begin

proc_selCurrent('a');

end;

--10.创建用户的方式不同

--sql server中

--1、创建登陆账号:sa-----123456

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

--修改登陆账户:

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

--禁用/启用登陆账号

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

--删除登陆账号

drop Login 登录名称

--2、创建用户:

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

--修改用户名

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

--删除用户名

drop user 用户名

---授权限

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

---oracle中:

---创建用户语法:

create user 用户名

identified by 密码

default tablespace users

temporary tablespace temp

quota 10M on users

--修改密码:

alter user 用户名 identified by 新密码

--授予权限:

grant create session to 用户名

--删除用户

drop user 用户名 cascade;

自己总结的一点,仅供参考 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle19C的dbhome,Windows server 安装Oracle19c (WINDOWS.X64_193000_db_home.zip) 过程碰到的问题总结...

Oracle19c的下载地址&#xff1a;链接: https://pan.baidu.com/s/1snqyViOAoeffAztPes_Tvw提取码: 9kb6Oracle19c的安装过程&#xff1a;解压缩安装包&#xff1a;解压结果 以管理员方式运行setup开始安装 一直默认走到安装完成即可创建用户cmd执行sqlplus命令&#xff0c;输入…

oracle01537,ORACLE REUSE实验

一、查看数据文件位置SQL> show user;User is "SYS"SQL> desc dba_data_files;Name Type Nullable Default Comments--------------- ------------- -------- ------- ---------------------------------------------------FILE_NAME …

oracle数据库配置管理,Oracle配置管理

一、连接Oracle1、Oracle建立连接的过程无论是通过sqlplus命令连接还是第三方工具远程连接到Oracle&#xff0c;都需要建立客户端与服务端之间的连接。Oracle Net Service组件就是为了用于建立连接的&#xff0c;这个组件在安装Oracle时已经安装。1)在服务器端有一个listener监…

oracle 插入一个语句,oracle如何通过1条语句插入多个值 oracle通过1条语句插入多个值方法...

本篇文章小编给大家分享一下oracle通过1条语句插入多个值方法&#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家供大家参考&#xff0c;有需要的小伙伴们可以来看看。在实践过程中遇到一个问题&#xff0c;我想往数据库插入多条数据时&#xff0c;使用了如下语句&#x…

linux内核 默认路由表,[Linux] linux路由表-Go语言中文社区

路由表用于决定数据包从哪个网口发出&#xff0c;其主要判断依据是目标IP地址Linux路由表其实有2个主要概念&#xff1a;按顺序走路由策略,在路由策略对应的路由表中匹配规则路由策略(rule)路由表(table)查看所有的路由策略,32766那个策略最有用,对应的main路由表也是默认展示的…

linux添加源地址ping,实战经验:Linux Source NAT在Ping场景下的应用

原标题&#xff1a;实战经验&#xff1a;Linux Source NAT在Ping场景下的应用有时候&#xff0c;有这样的一种需求&#xff1a;需要修改IP数据包中的源地址&#xff0c;比如&#xff0c;从某一个主机发送Ping包到另一个主机&#xff0c;需要修改源地址为另一个源(通常&#xff…

mac远程linux的ide,Jupyter notebook在mac:linux上的配置和远程访问

IPython 和 JupyterIPython 通常指的是一个 Python REPL(交互式解释器) shell。提供了远比 Python shell 强大的 shell 环境。IPython 是 Iteractive Python shell的缩写。 Notebook 是一个基于 IPython 的 web 应用。截止 IPython 3.0 &#xff0c;IPython 变得越来越臃肿&…

Linux升级glibc版本汉字乱码,Linux CentOS6升级glibc库过程

CentOS6升级glibc库过程hadoop无法加载native库&#xff0c;可能原因是 glibc库版本过低&#xff0c;需要升级。第一&#xff1a;安装以下软件yum -y install zlib zlib-devel gcc gcc-c libtool openssl openssl-devel automake autoconf libtool pcre*第二、查看系统glibc版本…

linux图形界面 革命,Windows 95带来的革命

CDECDE1993年6月-在“公用桌面环境“是与Sun&#xff0c;惠普&#xff0c;IBM和合资Unix系统实验室。CDE&#xff0c;通用桌面环境(CommonDesktopEnvironment)的缩写。CDE是一种运行于UNIX&#xff0c;基于Motif部件工具箱开发的商业桌面环境。惠普的OpenVMS采用CDE作为标准的桌…

real time linux pdf,【整理】ubuntu real time Linux

ubuntu real timeUbuntu不支持实时可参考看看如何才能支持想要自己编译实时内核的话参考去&#xff1a;下载&#xff1a;The Real Time Preempt Patch然后自己编译即可。对于实时系统所支持的功能和特性以及平台&#xff0c;详见这里提供了 已编译好的实时的Debian相关内容或参…

arm64 linux 除零正常返回,arm64程序调用规则

前言这篇主要介绍arm64程序调用规则&#xff0c;详细分析了程序调用过程中&#xff0c;参数是如何传递的。Android、iOS、Linux等基本遵循这些规则&#xff0c;但是各个操作系统平台也有小部分自己特定的规则。下一篇&#xff0c;我将介绍iOS平台的特定规则。术语介绍术语意义A…

苹方字体 for linux,苹果苹方字体

苹果苹方字体是一款很实用的字体软件&#xff0c;苹果苹方字体是为中国苹果用户打造的全新字体&#xff0c;共有六种字重&#xff0c;使用方便&#xff0c;能够满足用户在阅读时不同的字体需求&#xff0c;并且苹果苹方字体还可以在安卓、Linux 等其他平台和设备上使用&#xf…

linux系统关机half,Linux 学习 (六) 关机与重启命令

JavaScript基础 DOM的操作1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Windows对象操作 一.属性和方法: window对象——浏览器 ...推荐《HeadFirst设计模式》相对于国内初版的,HeadFirst真的是更好的…

职坐标c语言,C/C++知识点之hexdump的C语言实现

本文主要向大家介绍了C/C知识点之hexdump的C语言实现&#xff0c;通过具体的内容向大家展示&#xff0c;希望对大家学习C/C知识点有所帮助。1 void hexdump(char *buf, int len)2 {3 int i 0;45 printf("\n----------------------hexdump-----------------------…

C语言编杂志程序,c语言程序错误修改

题目:杂志订阅管理系统使用计算机对一种杂志的订阅进行管理,该杂志最多订户不超过10人,每个订户的信息包括:姓名 性别 地址 电话号码 杂志单价 订阅数 订阅期限(至**年**月)。现要求用菜单选择并完成下述的功能&#xff1a;(1)增加新订户&#xff0c;既将订户的全部信息输入到文…

c语言关键词中英翻译机编程,课程设计--C语言关键字中英翻译机

《课程设计--C语言关键字中英翻译机》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《课程设计--C语言关键字中英翻译机(21页珍藏版)》请在人人文库网上搜索。1、课课 程程 设设 计计 报报 告告 学院、系&#xff1a; 专业名称&#xff1a; 课程设计科目 所在班级&…

c语言参数不能用 吗,如何在C语言中禁止“未使用的参数”警告?

您可以使用gcc / clang的未使用属性&#xff0c;但是我在标头中使用这些宏&#xff0c;以避免在整个源代码中__attribute__都有gcc特定的属性&#xff0c;而且到处都有点冗长/难看。#ifdef __GNUC__# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))#else# defin…

c语言龙贝格积分法实验报告,数值作业:龙贝格算法计算积分C语言实现

数值作业:龙贝格算法计算积分C语言实现数值作业:龙贝格算法计算积分C语言实现根据Romberg算法计算定积分&#xff0c;和变步长的Simpson算法的输入都一样&#xff0e;算法基本分析&#xff1a;输入a,b(积分上下限),n为积分区间等分数&#xff0c;eps为计算精度&#xff0c;我这…

软件设计师考c语言,软件设计师教程考点精讲之C语言三大定律

2016下半年软考软件设计师报名即将开始&#xff0c;同学们是否在学习过程中遇到了一些困难&#xff0c;下面由希赛软考学院为打算参加下半年考试的你们准备了一些软件设计师教程考点精讲之Java编程性能措施&#xff0c;希望对大家有所帮助。自己总结的&#xff0c;觉得能帮助初…

用c语言程序算自己的年龄,新手编的小程序:计算年龄和出生后经历的天数的小程序...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#includeint main(){int i,j,k,t,m,a,b,c0;int x,y,z,n;printf ("请按下面格式输年-月-日\n");printf("请输入现在年月日&#xff1a;\n");scanf ("%d-%d-%d",&i,&j,&k);printf("请…