anyuan2002.com - vwin网

查找: 您的方位主页 > 网络频道 > 阅览资讯:Oracle,SQL Server 数据库较MySql数据库,Sql句子差异
vwin娱乐场

Oracle,SQL Server 数据库较MySql数据库,Sql句子差异

2019-04-03 07:16:00 来历:www.anyuan2002.com 【

Oracle,SQL Server 数据库较MySql数据库,Sql句子差异

1.联络型数据库

百度百科
联络数据库,是建立在联络模型基础上的数据库,借助于调集代数等数学概念和办法来处理数据库中的数据。实际国际中的各种实体以及实体之间的各种联络均用联络模型来表明。规范数据查询言语SQL便是一种根据联络数据库的言语,这种言语履行对联络数据库中数据的检索和操作。 联络模型由联络数据结构、联络操作调集、联络完整性束缚三部分组成。
简单说,联络型数据库是由多张能相互联接的二维队伍表格组成的数据库。

当时干流的联络型数据库有MySQL、Oracle、 SQL Server、Microsoft Access等。

2.Oracle 操作句子与MySql的差异

  • with…as: Oracle数据库子查询不能直接运用as 命名,需求先运用with…as…句子命名,后查询。
with tt as (select * from emp)
select select * from from tt ;
  • Oracle数据库没有limit函数,约束查询成果行数,选用伪列rownum进行。
select rownum, e.* from e where rownum < 11;              -- 显现10条成果
  • Oracle数据库对字段,表进行别号时,能够省掉 as:
select stuName as 名字,stuAge as 年纪,stuID as 身份号 from stuInfo;
select stuName 名字,stuAge 年纪,stuID 身份号 from stuInfo;
  • 表名修正 (rename ------- rename to):
alter table monthly_indicator rename to mi;
  • 针对字段进行修正时,字段名前需求加 column:
alter table mi rename column avgaqi to averageaqi;
alter table mi drop column averageaqi;
  • 虚表的运用:
select 1+1 from dual;                        #并不是真的需求去表里查询,仅用于语法补位。
select initcap('hello world') from dual;               #initcap 首字母变成大写。
select instr('hello world','w') from dual;              #instr 查询字符串呈现的方位。
select concat(lower('HELLO'), upper('world')) from dual;       #concat 函数,衔接字符串。
select replace('hello earth','earth','world') from dual;       #replace 函数,替换字符串。
select substr('hello world',3,5) from dual;             #substr 函数,提取字符串中开始方位(3),提取长度(5)。
select last_day(sysdate) from dual;                 #last_day 函数,当时月份最终一天的日期。
select to_date('2019-01-01','YYYY-MM-DD') from dual;         #to_date 函数,将文本转换成正确的日期型日期。

Oracle 存储进程

Oracle数据库存储进程差异较大,进程具体转载:Oracle存储进程

3.SQL Server 操作句子与MySql的差异

SQL Server运用T-SQL言语,是SQL程序设计言语的增强版

  • 局部变量声明,MySql中@为用户变量;SQL Server中句子完毕不需求运用分号;承认
declare @myparam int       --声明局部变量
select @myparam = 1       --为局部变量赋值
print @myparam          --检查局部变量
  • 查询成果添加补白列
select *, 补白 = case
when f_price < 10 then 
'廉价'
when f_price >= 10 and f_price <= 20 then 
'一般'
when f_price > 20 then 
'贵'
else '-'
end
from fruits
  • 符号,flag_name: + goto flag_name 组成。
declare @x int
set @x = 1
printout:            -- 设定符号
print @x
select @x = @x + 1
while @x < 5
goto printout         -- 流程转向符号
  • if,while等判别,循环函数包括规模由begin…end确认,MySql中则由end if; end while;作为完毕标识。
declare @m int
set @m = 10
while @m > 0
begin
 set @m = CAST(@m as varchar(4))
 exec('alter table fruits drop column c'+ @m)
 set @m = CAST(@m as int)
 set @m = @m -1
end
  • 贮存进程
create proc Proc_OutPutTest             --创立
@numA int,                      --numA为存储进程的参数
@numB int,                      --numB为另一参数
@numReturn int output                 --此为Output,也便是存储进程的回来值
as
begin
if(@numA>@numB)
  set @numReturn=@numA
else
  set @numReturn=@numB                 --A>B的时分回来A,不然回来B
end                           --begin...end确认存储进程包括句子规模。 

declare @numReceive int  --先声明一个变量用来接纳存储进程的回来值
exec Proc_OutPutTest 1,2, @numReceive output
    --调用存储进程并用@numReturn接纳存储进程的回来值
select @numReceive                         --将会回来(1,2)中较大的数字:2
 
 

本文地址:http://www.anyuan2002.com/a/question/100229.html
Tags: sql Server oracle
修改:vwin网
关于咱们 | 联络咱们 | 友情链接 | 网站地图 | Sitemap | App | 回来顶部