Đang sống chết với MySql và 1 ngày đẹp trời bạn có ý định thử làm quen với Sql vì nghĩ dù gì cũng thành thạo với database rồi. Nếu có ý định đó thì trước khi bắt đầu mời bạn đọc qua bài viết này để thấy sự khác nhau cơ bản giữa MySql và SqlServer nhé.

MySql và SqlServer là 2 hệ cơ sở dữ liệu đối lập nhau

  • MySql có sẵn và miễn phí vì nó là là mã nguồn mở, nhưng SQLServer thì không. Cái gì ko miễn phí thì đương nhiên bạn phải bỏ tiền ra và mua nó .
  • Đừng tưởng MySql bạn có workbench giao diễn dễ nhìn trực quan, vì nó chả đáng là bao nếu so với Microsoft SQL Server Management Studio.
  • Về các function hay stored procedure ở SqlServer bạn được hỗ trợ nhiều hơn và họ cũng khuyến khích bạn dùng những thứ này hơn.

MySql và SqlServer có cú pháp khác nhau

1. Những câu lệnh cơ bản

comment trong MySql và SqlServer bạn sẽ dùng -- nhưng trong Mysql bạn phải thêm 1 khoảng trắng vào sau --

VD: -- select

Nối chuỗi

MySql CONCAT(string, string2, …)

SqlServer chỉ đơn giản là string + string2 + …

Số hàng bị ảnh hưởng của câu lệnh truy vấn

--MySql

SELECT .... ;
SELECT FOUND_ROWS();

-- SqlServer

SELECT .... 
GO
SELECT @@ROWCOUNT

2. Các kiểu dữ liệu tương đương

Sql Server MySql
BIT TINYINT
FLOAT(p) DOUBLE
SMALLMONEY DECIMAL(6,4)
MONEY DECIMAL(15,4)
NTEXT LONGTEXT
NVARCHAR(max) LONGTEXT
XML LONGTEXT
TEXT LONGTEXT
IMAGE LONGBLOB
ROWVERSION BINARY(8)
TIMESTAMP BINARY(8)
SMALLDATETIME DATETIME

3. Các hàm cơ bản thường dùng tương ứng

Sql Server MySql
CONVERT(DATETIME, string, style) STR_TO_DATE(string, format)
CONVERT(VARCHAR, datetime, style) DATE_FORMAT(datetime, format)
DATEADD(unit, value, exp) TIMESTAMPADD(unit, value, exp)
DATEDIFF(units, start, end) TIMESTAMPDIFF(units, start, end)
GETDATE() NOW()
GETUTCDATE() UTC_TIMESTAMP()
HOST_NAME() @@HOSTNAME
LEN(string) CHAR_LENGTH(RTRIM(string))
STR(float, len, decimal) CONVERT(float, CHAR)

4. Những câu query thần thánh

Limit

--Trong MySql lấy 3 vị trí đầu tiên.

Select * from tbl Limit 0,3

--Trong SqlServer lấy 3 vị trí đầu tiên. Select TOP 3 * from tbl

Trigger

Trigger trong SqlServer và MySql có sự khác biệt cơ bản về cú pháp, nhưng ta chỉ cần nhớ 2 điều sau.

INSERTED = NEW

DELETED = OLD

SqlServer MySql
IF … ELSE IF … IF condition THEN … END IF;
FLOAT(p) IF … ELSEIF …
WHILE condition BEGIN stmts END WHILE condition DO stmts END WHILE;

Lời kết

Có lẽ đọc xong bạn sẽ nghĩ rằng SqlServer tốt hơn MySql nhưng thực sự là không phải vậy. Tùy mục đích sử dụng hay những ngôn ngữ thường dùng mà bạn sẽ lựa chọn việc sử dụng HQT nào cho hợp lý.

Bài viết trên chỉ là so sánh nho nhỏ giữa MySql và SqlServer, trên thực tế có rất nhiều HQT khác như Oracle, Informix, Postgres,... đó toàn là những RDMS (Relational Database Management System) nổi tiếng. Nên việc các developer phải sử dụng chúng là điều tất yếu. Nhưng nếu bạn nắm vững Sql căn bản hoặc ORM của các ngôn ngữ sử dụng thì vấn đề này không còn là khó khăn.

Tìm hiểu rõ hơn về SqlServerMySql các bạn tham khảo link dưới nhé SqlServer là gì? MySql là gì?

Viết câu trả lời

Drop Images