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

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

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

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

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!