MySql和Sql Server語法和關鍵字區別


640?wx_fmt=png

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‟,……)   



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM