Jika kita sering membuat program database dengan perintah yang kita simpan didalam database seperti stored procedure, function, atau trigger kadang terdapat perbedaan bahasa pemrogramman antara di MySQL dengan SQL Server. Berikut kita akan membahas beberapa perbedaan antara aplikasi database tersebut.
Untuk parameter di dalam SQL Server selalu menggunakan awalan ‘@’, sedangkan pada MySQL kita dapat mengidentifikasikan parameter dengan karakter apapun dan kita bahkan dapat membuat parameter local tanpa mendeklarasikannya terlebih dahulu, yaitu dengan menambahkan karakter “@” pada awalan parameter yang dibuat.
Pada SQL Server kita dapat mengetikan perintah
‘DECLARE v1 [datatype], v2 [datatype], v3 [datatype]’
tetapi pada MySQL kita harus mengetikan perintah
‘DECLARE v1 [datatype]; DECLARE v2 [datatype]; DECLARE v3 [datatype]’
‘DECLARE v1 [datatype], v2 [datatype], v3 [datatype]’
tetapi pada MySQL kita harus mengetikan perintah
‘DECLARE v1 [datatype]; DECLARE v2 [datatype]; DECLARE v3 [datatype]’
SQL Server tidak perlu mengetikan perintah ‘BEGIN … END’ untuk batasan sebuah Stored Procedure atau Function. Tetapi dalam MySQL kita perlu mengetikan perintah ‘BEGIN … END’ untuk Stored Procedure atau Function yang memiliki lebih dari satu baris perintah.
Contoh:
DELIMITER$$
CREATE PROCEDURE proc1(id int)
BEGIN
[statement 1];
[statement 2];
END$$
DELIMITER;
DELIMITER$$
CREATE PROCEDURE proc1(id int)
BEGIN
[statement 1];
[statement 2];
END$$
DELIMITER;
Pada SQL Server kita tidak perlu mengetikan karakter ‘;’ (titik koma) pada setiap akhir perintah. Tetapi pada MySQL membutuhkan karakter ‘;’ pada setiap akhir perintah, karena MySQL merupakan aplikasi console yang membutuhkan pembatas untuk setiap perintah yang dituliskan menjadi pembatas dengan perintah yang lainnya dalam satu Procedure atau Function.
SQL Server memiliki fungsi ‘SET NOCOUNT’ dan ‘@@ROWCOUNT’ untuk memperoleh jumlah row hasil execute. Sedangkan pada MySQL tidak memiliki perintah untuk ‘SET NOCOUNT’, tetapi memiliki fungsi ‘row_count()’ untuk mendapatkan jumlah row hasil execute dari query delete, insert, atau update, ‘found_rows()’ untuk mendapatakan jumlah row hasil execute dari query select.
SQL Server memiliki perintah perulangan ‘WHILE … BEGIN’. Sedangkan MySQL memiliki perintah perulangan ‘WHILE … DO’.
SQL Server dapat menggunakan perintah ‘SELECT’ atau ‘SET’ untuk mengisi data ke variable.
Contoh:
DECLARE @v1 int, @v2 int
SELECT @v1 = 10, @v2 = 20
DECLARE @v1 int, @v2 int
SELECT @v1 = 10, @v2 = 20
Sedangkan MySQL hanya dapat menggunakan perintah ‘SET’ untuk mengisi data ke variable.
Contoh:
DECLARE v1 int;
DECLARE v2 int;
SET v1 = 10;
SET v2 = 20;
DECLARE v1 int;
DECLARE v2 int;
SET v1 = 10;
SET v2 = 20;