问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql server 和 mysql 语法和关键字的区别

发布网友 发布时间:2022-04-23 17:38

我来回答

3个回答

热心网友 时间:2022-04-07 18:58

  1. MySQL支持enum,和set类型,SQL Server不支持

  2. MySQL不支持nchar,nvarchar,ntext类型

  3. MySQL的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1)

  4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的

  5. MySQL需要为表指定存储类型

  6. MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号

  7. MS SQL支持getdate()方法获取当前时间日期,但是MySQL里面可以分日期类型和时间类型,获取当前日期是current_date
(),当前完整时间是 now()函数

  8. MS SQL不支持replace into 语句,但是在最新的sql20008里面,也支持merge语法

  9. MySQL支持insert into table1 set t1 = „‟, t2 = „‟ ,但是MS SQL不支持这样写

  10. MySQL支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1),
(1,1), (1,1)

  11. MySQL在创建表时要为每个表指定一个存储引擎类型,而MS SQL只支持一种存储引擎

  12. MySQL不支持默认值为当前时间的datetime类型(MS SQL很容易做到),在MySQL里面 是用timestamp类型

  13. MS SQL里面检查是否有这个表再删除,需要这样:if exists (select * from dbo.sysobjects where
id = object_id(N'uc_newpm') and OBJECTPROPERTY(id,N'IsUserTable')=1)
但是在MySQL里面只需要 DROP TABLE IF EXISTS cdb_forums;

  14. MySQL支持无符号型的整数,那么比不支持无符号型的MS SQL就能多出一倍的最大数 存储

  15. MySQL不支持在MS SQL里面使用非常方便的varchar(max)类型,这个类型在MS SQL里
面既可做一般数据存储,也可以做blob数据存储

  16. MySQL创建非聚集索引只需要在创建表的时候指定为key就行,比如:KEY displayorder (fid,displayorder)
在MS SQL里面必须要:create unique nonclustered index
index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers (username
asc,appid asc)

  17. MySQL text字段类型不允许有默认值

  18. MySQL的一个表的总共字段长度不超过65XXX。

  19. 一个很表面的区别就是MySQL的安装特别简单,而且文件大小才110M(非安装版),相
比微软这个庞然大物,安装进度来说简直就是.....

  20. MySQL的存储过程只是出现在最新的版本中,稳定性和性能可能不如MS SQL。

  21. 同样的负载压力,MySQL要消耗更少的CPU和内存,MS SQL的确是很耗资源。

  22. mysql的ifnull()函数对应sql的isnull()函数;

  23. mysql的存储过程中变量的定义去掉@;

  24. mysql的每句结束要用";"

  25. SQLServer存储过程的AS在MySql中需要用begin .....end替换

  26. 字符串连接用concat()函数;如 SQLServer: Temp=‟select * from ‟+‟tablename‟+…+…
MySql:Temp=concat(‟select * from‟, ‟tablecname‟,…,…)

  27. mysql的uuid()对应mssql的GUID();

  28. MySql的out对应SQLServer的output,且mysql 的out要放在变量的前面,SQLServer
的output放在变量后面

  29. MySql out,in,inout的区别——MySQL 存储过程 “in” 参数:跟 C 语言的函数参 数的值传递类似, MySQL
存储过程内部可能会修改此参数,但对 in 类型参数的修改,对调用者(caller)来说是不可见的(not visible)。MySQL 存储过程 “out”
参数:从存储过程内部传值给调用者。在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值。MySQL 存储过程 inout 参数跟 out
类似,都可以从存储过程内部传值给调用者。不同的是:调用者还可以通过 inout 参数传递值给存储过程。

  30. MySQL的if语句为 if (条件) then end if; 或者 If (条件) then Else End if 或者
If(条件)then Elseif (注意不能写成 Else if ) Elseif … End if

  31. Mysql的Execute对应SqlServer的exec; (注意:必须想下面这样调用) Set @cnt=‟select * from
表名‟; Prepare str from @cnt; Execute str;

  32. MySql存储过程调用其他存储过程用call Call 函数名(即SQLServer的存储过程名)(‟参数1‟,‟参数2‟,……)

  33. mysql的日期

  1) 获得当前日期函数:curdate(),current_date()

  2) 获得当前时间函数:curtime();

  3) 获得当前日期+时间:now();

  4) MySQL dayof... 函数:dayofweek(), dayofmonth(), dayofyear()分别返回日期参
数,在一周、一月、一年中的位置。

  5) (注:周日=1,周一=2,周二=3,……)

  6) 返回本月的天数:select day(last_day(now()));

  7) MySQL 为日期增加一个时间间隔:date_add()

  8) select date_add(CURRENT_DATE(),interval „要增加的天数‟ day) as Fdate

  9) MySQL 为日期减去一个时间间隔:date_sub()

  10) select date_sub('1998-01-01 00:00:00', interval '1 1:1:1'
day_second);

  11) MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

  12) MySQL 拼凑日期、时间函数:makdedate(year,dayofyear),
maketime(hour,minute,second)

  13) 例:select makedate(2001,31); -- '2001-01-31'

  14) select makedate(2001,32); -- '2001-02-01'

  15) 本周时间(起始)

  16) select date_sub(CURRENT_DATE(),interval dayofweek(curdate())-2 day) as
Fdate

  17) 本周时间(结束)

  18) select date_add(CURRENT_DATE(),interval dayofweek(curdate())+3 day) as
Fdate

  19) 上周时间(起始)

  20) select date_sub(CURRENT_DATE(),interval dayofweek(curdate())+5 day) as
Fdate

  21) 上周时间(结束)

  22) select date_sub(CURRENT_DATE(),interval dayofweek(curdate())-1 day) as
Fdate

  23) 本月时间(起始)

  24) select DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) as Fdate

  25) 本月时间(结束)

  26) Select date_add(current_date(),interval day(last_day(CURDATE()))
-day(CURDATE()) day) as Fdate

  27) 上月时间(起始)

  28) select DATE_SUB(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())
DAY),interval day(last_day(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE()) DAY)))- 1
day) as Fdate

  29) 上月时间(结束)

  30) select DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE()) DAY) as Fdate

  31) 今年时间(起始)

  32) select makedate(year(curdate()),1) as FDate

  33) 今年时间(结束)

  34) select DATE_SUB(makedate(year(curdate())+1,1) ,INTERVAL 1 day) as
Fdate

  35) 去年时间(起始)

  36) select makedate(year(curdate())-1,1) as Fdate

  37) 去年时间(结束)

  38) select DATE_SUB(makedate(year(curdate()),1) ,INTERVAL 1 day) as
FDate

  39) DATE_FORMAT(date,format):根据format字符串格式化date值。下列修饰符 可以被用在format字符串中

  40) %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st,
2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数,
数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b
缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12)
%I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T
时间,24 小时(hh:mm:ss) %S 秒(00……59) %s 秒(00……59) %p AM或PM

  41) %w 一个星期中的天数(0=Sunday ……6=Saturday ) %U 星期(0……52), 这里星期天是星期的第一天 %u
星期(0……52), 这里星期一是星期的第一天 %% 一个文字“%”。

  42) 例:所有的其他字符不做解释被复制到结果中。 mysql> select DATE_FORMAT('1997-10-04
22:23:00', '%W %M %Y'); ->'Saturday October 1997' mysql>select
DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');

  43) -> '22:23:00'

  44) mysql>select DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b
%j');

  45) ->'4th 97 Sat 04 10 Oct 277'

  46) mysql>select DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S
%w');

  47) ->'22 22 10 10:23:00 PM 22:23:00 00 6'

  34. MySql存储过程中没有return函数,在MySql中可以用循环和out参数代替 If EXISTS(SELECT * FROM
T_Chance WHERE FCustID=CostomerID) return 0 改写为: (在参数中定义一个out变量:out temp
varchar(100);) BEGIN Loop1:loop SELECT count(*) FROM T_Chance WHERE
FCustID=CostomerID int @cnt If @cnt>0 then begin set temp=0; leave loop1;
end; end if end loop loop1;

  35. (13) select @a=count(*) from VW_Action 在mySql中修改为:select count(*) from
VW_Action into @a;

  36. (14)MySQL中没有top关键字,需要用limit代替且放在后面
注意,在MySQL中的limit不能放在子查询内,limit不同与SQLServer,它可 以规定范围 limit a,b——范围a-b SQL SERVER
: select top 8 * from table1 MYSQL: select * from table1 limit 5;

  37. (15)即使存储过程没有参数也要写括号“()”

  38. (16) 当一个存储过程中有创建临时表时 create procere up_test () begin drop table if
exists tb1; create TEMPORARY table tb1//注意添加TEMPORARY table ( id int, name
varchar(20) );//注意最后加分号 insert tb1 values('1','jim'); select * from tb1; end

  39. (17)建表中自增长问题: create table user ( Id varchar(10) primary key
auto_increment not null, Name varchar(20) not null, Password varchar(20),
create_date datetime ); auto_increment 自增长

  40. (18) "Unable to convert MySQL date/time value to
System.DateTime"这是因为在日期
列中有"0000-00-00"数据值,要修正这个问题,你可以把这些数据设为null,或者在连接字符串中设置"Allow Zero Datetime=True"
。 41. (19) MySQL视图的FROM子句不允许存在子查询,因此对于SQL Server中FROM
子句带有子查询的视图,需要手工进行迁移。可通过消除FROM子句中的子查询,或将FROM子句中的子查询重构为一个新的视图来进行迁移。

热心网友 时间:2022-04-07 20:16

一、首先我们来看一下两者的本质区别有哪些:
1.二者所遵循的基本原则是它们的主要区别:开放vs保守
2.从发行费用上来说,MySQL不全是免费,但很便宜
3.纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存;当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。
总体上来说,两者各有优缺点,总结如下:
优点:
MYSQL短小精悍,容易上手,操作简单,免费供用的。相对其它数据库有特色又实用的语法多一些。SQL怎么也算是大型数据库,稳定,能做一般大系统的数据仓库,运行速度明显比MYSQL快N多(海量数据下这个优势显而易见)。
缺点:
MYSQL难担当大系统的数据仓库,运行速度慢,不够稳定,有掉线的情况。SQL SERVER价格贵(当然没说5元盗版),使用起来比MYSQL要难一些,毕竟东西大了说道多点。

二、语法和关键字区别
1. MySQL支持enum,和set类型,SQL Server不支持
2. MySQL不支持nchar,nvarchar,ntext类型
3. MySQL的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1)
4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的
5. MySQL需要为表指定存储类型
6. MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号
7. MS SQL支持getdate()方法获取当前时间日期,但是MySQL里面可以分日期类型和时间类型,获取当前日期是current_date (),当前完整时间是 now()函数
8. MS SQL不支持replace into 语句,但是在最新的sql20008里面,也支持merge语法
9. MySQL支持insert into table1set t1 = ‘’, t2 = ‘’ ,但是MS SQL不支持这样写
10. MySQL支持insert into tabl1values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11. MySQL在创建表时要为每个表指定一个存储引擎类型,而MS SQL只支持一种存储引擎
12. MySQL不支持默认值为当前时间的datetime类型(MS SQL很容易做到),在MySQL里面是用timestamp类型
等等。。。。还有很多,这些都需要我们在日常学习和工作中总结认识。

热心网友 时间:2022-04-07 21:50

语法和关键字区别

MySQL支持enum,和set类型,SQL Server不支持

MySQL不支持nchar,nvarchar,ntext类型

MySQL的递增语句是AUTO_INCREMENT

MySQL需要为表指定存储类型

MySQL支持insert into table1set t1 = ‘’, t2 = ‘’

MySQL支持insert into tabl1values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)

MySQL在创建表时要为每个表指定一个存储引擎类型

MySQL不支持默认值为当前时间的datetime类型

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我这个配置能玩大唐无双2吗 PK什么的能卡么? 求高手解答 这样的配置还要加什么玩大唐无双才不卡 这个配置能玩大唐无双双开吗? windows7旗舰版系统玩大唐无双零双开卡怎么办?卡死了。 玩大唐无双的时候双开过地图太卡怎么解决啊 全民枪战我用QQ号,但它说密码数字英文,下划线组成,应该怎样弄啊?_百 ... 小太阳取暖器头晕呕吐 取暖器用的会头晕吗,可能的原因和使用注意事项 男孩姓孙含越字好名字 简单特别的男孩名字越 中间是越的男孩名字大全 如何防治SQL注入? 数据库,新手建表问题! 用的SQLserver2008,网上查的有两种方法,一种直接... 执行下面的哪些命令将释放用户以前持有的所有表锁 .net的sqlserver事务里,delete语句如何只锁行,不锁表 sql server 怎么保证查询出的结果不能被其他电脑访问,具体如下_百度知 ... sqlserver 怎么清理 dm sql server里update时,是行锁还是表锁问题 如何在SQLServer中锁定某行记录 解析:如何快速掌握SQLServer的锁机制 00后属牛的本历年多少岁? 为什么说本历年结婚不好? 本历年家里能贴春联吗本历年家里能贴春联吗? 为什么本历年不能结婚? 本历年为什么要避星星? 本命年和本历年有啥不同?它们的概念分别是? 什么叫本历年? 本历年的来历是什么? 本历年是多大? 联想手机开机密码锁如何破解? 联想手机电脑怎么取消开机密码 CI怎么连接sqlserver2012,用的是PHPstudy SQL SERVER 中如何使用行锁? 分布式光伏发电项目的并网模式一般有几种? 分布式光伏发电项目的并网模式都有哪几种? 安装分布式光伏发电项目可以选择哪种并网模式? 在什么情况下分布式光伏发电项目的并网模式会分类,又会分为几种? 广东电网的分布式光伏发电的并网模式有几种? 请问一下什么是分布光伏发电项目的并网模式有几种呢? 我想问一下光伏发电的并网模式有几种? 我想问问现在的分布光伏发电项目的并网模式有几种? 从2022年起,广东省汉语言文学自考专科科目有哪些? 广东软件工程自考科目有哪些要考试? 广东省自考专科汉语言文学专业需要考的是哪十五科? 2020今年四月份广东省汉语言文学本科自考考哪几科? 广东自考法律大专需要考哪些科目 广东自考专升本要考哪些课程 在广东自考专升本和*专升本分别要考几门科目阿?不知道得勿入!!! 自考广东会计 的本科需要考哪些科目 请问在广东自考会计学专科需要考哪些科目?? 广东学前教育自考有哪些科目