MySQL與SQL Server的一些區別淺析_Mysql

來源:互聯網
上載者:User

1、mysql支援enum,和set類型,sql server不支援
2、mysql不支援nchar,nvarchar,ntext類型
3、mysql的遞增語句是AUTO_INCREMENT,而mssql是identity(1,1)
4、mssql預設到處表建立語句的預設值表示是((0)),而在mysql裡面是不允許帶兩括弧的
5、mysql需要為表指定儲存類型
6、mssql識別符是[],[type]表示他區別於關鍵字,但是mysql卻是 `,也就是按鍵1左邊的那個符號
7、mssql支援getdate()方法擷取目前時間日期,但是mysql裡面可以分日期類型和時間類型,擷取當前日期是cur_date(),當前完整時間是 now()函數
8、mssql不支援replace into 語句,但是在最新的sql20008裡面,也支援merge文法
9、mysql支援insert into table1 set t1 = ‘', t2 = ‘' ,但是mssql不支援這樣寫
10、mysql支援insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11 mssql不支援limit語句,是非常遺憾的,只能用top 取代limt 0,N,row_number() over()函數取代limit N,M
12、mysql在建立表時要為每個表指定一個儲存引擎類型,而mssql只支援一種儲存引擎
13、mysql不支援預設值為目前時間的datetime類型(mssql很容易做到),在mysql裡面是用timestamp類型
14、mssql裡面檢查是否有這個表再刪除,需要這樣:if exists (select * from dbo.sysobjects where id=id (N'uc_newpm') and  OBJECTPROPERTY(id, N'IsUserTable') = 1) 但是在mysql裡面只需要 DROP TABLE IF EXISTS cdb_forums;
15、mysql支援無符號型的整數,那麼比不支援無符號型的mssql就能多出一倍的最大數儲存
16、mysql不支援在mssql裡面使用非常方便的varchar(max)類型,這個類型在mssql裡面既可做一般資料存放區,也可以做blob資料存放區
17、mysql建立非叢集索引只需要在建立表的時候指定為key就行,比如:KEY displayorder (fid,displayorder) 在mssql裡面必須要:

複製代碼 代碼如下:
create unique nonclustered index index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers (username asc,appid asc)

18、mysql text欄位類型不允許有預設值
19、mysql的一個表的總共欄位長度不超過65XXX。
20、一個很表面的區別就是mysql的安裝特別簡單,而且檔案大小才23M左右(5.5.23),相比微軟這個龐然大物,安裝進度來說簡直就是.....
21、mysql的管理工具有幾個比較好的,mysql_front,和官方那個套件,不過都沒有SSMS的使用方便,這是mysql很大的一個缺點。
22、mysql的預存程序只是出現在最新的版本中,穩定性和效能可能不如mssql。
23、同樣的負載壓力,mysql要消耗更少的CPU和記憶體,mssql的確是很耗資源。
24、php串連mysql和mssql的方式都差不多,只需要將函數的mysql替換成mssql即可,如果是PDO方式只需要把mysql替換mssql即可。
25、mysql支援date,time,year類型,mssql到2008才支援date和time。

附:MySQL與MSSQL分頁的區別

之前一直用MySQL,雖然比起mssql這個龐大的資料庫系統mysql很苗條,但它並不遜色。以下說說這兩個在資料庫各自的分頁區別
例1,取出前十條

複製代碼 代碼如下:

SELECT * FROM table LIMIT 10;

在mssql中
複製代碼 代碼如下:

SELECT TOP 10 * FROM table

例2,每頁十條,取出第三頁
在MySQL中
複製代碼 代碼如下:

SELECT * FROM table LIMIT 20,10

在mssql中
複製代碼 代碼如下:

SELECT TOP 10 * FROM table WHERE id NOT IN(
        SELECT TOP 20 id FROM table ORDER BY id DESC
) ORDER BY id DESC;

由以上例子可以看出,在MySQL中分頁用LIMIT關鍵字,如果是LIMIT 10表示取前十條,如果是LIMIT 10,10表示位移十條取前十條記錄。在mssql中用top關鍵字,如果只取前n條記錄直接top n即可,但是要是分頁取就有點麻煩。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.