欢迎来到天天文库
浏览记录
ID:1768411
大小:86.91 KB
页数:37页
时间:2017-11-13
《postgresql 与 ms sqlserver在过程语言中的差异》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PostgreSQL与MSSQLServer在过程语言中的差异数据类型数字类型SqlserverNumeric/decimal精确数值型从-10的38次方-1,到10的38次方-1bit整型其值只能是0、1或空值int整型-2的31次方到2的31次方smallint整型-2的15次方到2的15次方tinyint0到255之间的整数float浮点数real浮点数postgreSQLNumeric(p,s)/Decimal(p,s)任意精度数值,p必须为正数,s可以为零或者正数smallint2字节
2、小范围整数,-32768到+32767Integer/Int4字节常用的整数,-2147483648到+2147483647bigint8字节大范围的整数,-9223372036854775808到9223372036854775807real4字节变精度,不精确6位十进制数字精度doubleprecision8字节变精度,不精确15位十进制数字精度serial4字节自增整数,1到+2147483647bigserial8字节大范围的自增整数,1到9223372036854775807字符类型S
3、qlserverchar定长,最大8000varchar变长,SQLServer2005后可以通过varchar(MAX)来允许最大存储2G的数据text最多存储有2G字符nchar定长,最大4000国际化字符nvarchar变长。ntext最多存储有1G国际化字符postgreSQLcharactervarying(n)varchar(n)变长,有长度限制character(n)char(n)定长,不足补空白text变长,无长度限制"char"1字节,单字节内部类型name64字节,用于对象名
4、的内部类型日期类型Sqlservertime格式:hh:mm:ss[.nnnnnnn],00:00:00.0000000到23:59:59.9999999,固定5个字节date格式:YYYY-MM-DD,0001-01-01到9999-12-31,固定3个字节datetime2格式:YYYY-MM-DDhh:mm:ss[.fractionalseconds],0001-01-01到9999-12-31,精度小于3时为6个字节;精度为3和4时为7个字节。所有其他精度则需要8个字节。postgreS
5、QLtimestamp[(p)][withouttimezone]包括日期和时间8字节精确到1毫秒/14位timestamp[(p)]withtimezone日期和时间8字节精确到1毫秒/14位interval[(p)]时间间隔12字节精确到1毫秒/14位date只用于日期4字节精确到1天time[(p)][withouttimezone]只用于一日内时间8字节精确到1毫秒/14位伪类型postgreSQLvoid应用于过程语言(PL/pgSQL)编写的函数表示一个函数不返回数值record应用
6、于过程语言(PL/pgSQL)编写的函数标识一个函数返回一个未声明的行类型变量定义与赋值Sqlserver3>DECLARE4>@testvalueASVARCHAR(20);5>BEGIN6>SET@testvalue='FirstTest!';7>PRINT(@testvalue);8>END;9>gopostgreSQLSQL>DECLARE2testvalueVARCHAR(20);3BEGIN4testvalue:='FirstTest!';5RAISENOTICE'Testvalue
7、is%',testvalue;6END;IF/ELSE控制结构Sqlserver1>DECLARE2>@testvalueASINT;3>BEGIN4>SET@testvalue=100;5>6>IF@testvalue>1007>BEGIN8>PRINT('100+');9>END10>ELSEIF@testvalue=10011>BEGIN12>PRINT('100');13>END14>ELSE15>BEGIN16>PRINT('100-');17>END18>19>END;20>gopo
8、stgreSQLIF...THEN…ENDIF;IF...THEN...ELSE…ENDIF;IF...THEN...ELSEIF…THEN…ENDIF;IF...THEN...ELSIF...THEN...ELSE…ENDIF;IF...THEN...ELSEIF...THEN...ELSE…ENDIF;(注:ELSEIF是ELSIF的别名)1DECLARE2testvalueINT;3BEGIN4testvalue:=100;56IFtestvalue>100THEN7RAISENOTICE
此文档下载收益归作者所有