Fungsi MySQL: String, Numeric, User-Defined, Stored

Anonim

Apa fungsinya?

MySQL dapat melakukan lebih dari sekadar menyimpan dan mengambil data . Kami juga dapat melakukan manipulasi pada data sebelum mengambil atau menyimpannya. Di situlah Fungsi MySQL masuk. Fungsi hanyalah potongan kode yang melakukan beberapa operasi dan kemudian mengembalikan hasil. Beberapa fungsi menerima parameter sedangkan fungsi lainnya tidak menerima parameter.

Mari kita lihat secara singkat contoh fungsi MySQL. Secara default, MySQL menyimpan tipe data tanggal dalam format "YYYY-MM-DD". Misalkan kita telah membangun sebuah aplikasi dan pengguna kita ingin tanggal dikembalikan dalam format "DD-MM-YYYY", kita dapat menggunakan fungsi bawaan MySQL DATE_FORMAT untuk mencapai ini. DATE_FORMAT adalah salah satu fungsi yang paling banyak digunakan di MySQL. Kami akan melihatnya lebih detail saat kami membuka pelajaran.

Mengapa menggunakan fungsi?

Berdasarkan contoh yang diberikan dalam pendahuluan, orang yang berpengalaman dalam pemrograman komputer mungkin berpikir "Mengapa repot-repot Fungsi MySQL? Efek yang sama dapat dicapai dengan scripting / bahasa pemrograman?" Memang benar kita bisa mencapainya dengan menulis beberapa prosedur / fungsi dalam program aplikasi.

Kembali ke contoh DATE kami di pendahuluan, agar pengguna kami mendapatkan data dalam format yang diinginkan, lapisan bisnis harus melakukan pemrosesan yang diperlukan.

Ini menjadi masalah ketika aplikasi harus berintegrasi dengan sistem lain. Ketika kita menggunakan fungsi MySQL seperti DATE_FORMAT, maka kita dapat memiliki fungsionalitas itu yang disematkan ke dalam database dan aplikasi apa pun yang membutuhkan data mendapatkannya dalam format yang diperlukan. Ini mengurangi kerja ulang dalam logika bisnis dan mengurangi inkonsistensi data.

Alasan lain mengapa kita harus mempertimbangkan untuk menggunakan fungsi MySQL adalah fakta bahwa ini dapat membantu mengurangi lalu lintas jaringan di aplikasi klien / server . Business Layer hanya perlu melakukan panggilan ke fungsi yang disimpan tanpa perlu memanipulasi data. Rata-rata, penggunaan fungsi dapat sangat membantu meningkatkan kinerja sistem secara keseluruhan.

Jenis fungsi

Fungsi bawaan

MySQL dilengkapi dengan sejumlah fungsi bawaan. Fungsi bawaan adalah fungsi yang sudah diterapkan di server MySQL. Fungsi-fungsi ini memungkinkan kami untuk melakukan berbagai jenis manipulasi pada data. Fungsi bawaan pada dasarnya dapat dikategorikan ke dalam kategori yang paling sering digunakan berikut ini.

  • Fungsi string - beroperasi pada tipe data string
  • Fungsi numerik - beroperasi pada tipe data numerik
  • Fungsi tanggal - beroperasi pada tipe data tanggal
  • Fungsi agregat - operasikan pada semua tipe data di atas dan hasilkan kumpulan hasil yang diringkas.
  • Fungsi lain - MySQL juga mendukung jenis fungsi bawaan lainnya tetapi kami akan membatasi pelajaran kami hanya untuk fungsi yang disebutkan di atas.

Sekarang mari kita lihat masing-masing fungsi yang disebutkan di atas secara mendetail. Kami akan menjelaskan fungsi yang paling sering digunakan menggunakan "Myflixdb" kami.

Fungsi string

Kami sudah melihat apa fungsi string lakukan. Kami akan melihat contoh praktis yang menggunakannya. Di tabel film kami, judul film disimpan menggunakan kombinasi huruf kecil dan huruf besar. Misalkan kita ingin mendapatkan daftar kueri yang mengembalikan judul film dalam huruf besar. Kita bisa menggunakan fungsi "UCASE" untuk melakukan itu. Dibutuhkan string sebagai parameter dan mengubah semua huruf menjadi huruf besar. Skrip yang ditunjukkan di bawah ini menunjukkan penggunaan fungsi "UCASE".

SELECT `movie_id`,`title`, UCASE(`title`) FROM `movies`;

SINI

  • UCASE (`title`) adalah fungsi bawaan yang mengambil judul sebagai parameter dan mengembalikannya dalam huruf besar dengan nama alias` upper_case_title`.

Menjalankan skrip di atas di meja kerja MySQL terhadap Myflixdb memberi kita hasil berikut yang ditunjukkan di bawah ini.

 
movie_id title UCASE('title')
16 67% Guilty 67% GUILTY
6 Angels and Demons ANGELS AND DEMONS
4 Code Name Black CODE NAME BLACK
5 Daddy's Little Girls DADDY'S LITTLE GIRLS
7 Davinci Code DAVINCI CODE
2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL
9 Honey mooners HONEY MOONERS
19 movie 3 MOVIE 3
1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4
18 sample movie SAMPLE MOVIE
17 The Great Dictator THE GREAT DICTATOR
3 X-Men X-MEN

MySQL mendukung sejumlah fungsi string. Untuk daftar lengkap semua fungsi string bawaan, lihat tautan ini http://dev.mysql.com/doc/refman/5.0/en/string-functions.html di situs web MySQL.

Fungsi numerik

Seperti yang disebutkan sebelumnya, fungsi ini beroperasi pada tipe data numerik. Kita dapat melakukan perhitungan matematis pada data numerik dalam pernyataan SQL.

Operator aritematik

MySQL mendukung operator aritmatik berikut yang dapat digunakan untuk melakukan komputasi dalam pernyataan SQL.

Nama

Deskripsi

DIV

Pembagian bilangan bulat

/

Divisi

-

Pengurangan

+

Tambahan

*

Perkalian

% atau MOD

Modulus

Sekarang mari kita lihat contoh masing-masing operator di atas

Divisi Integer (DIV)

SELECT 23 DIV 6 ;

Menjalankan skrip di atas memberi kita hasil sebagai berikut.

3

Operator divisi (/)

Sekarang mari kita lihat contoh operator divisi. Kami akan memodifikasi contoh DIV.

SELECT 23 / 6 ;

Menjalankan skrip di atas memberi kita hasil sebagai berikut.

3.8333

Operator pengurangan (-)

Sekarang mari kita lihat contoh operator pengurangan. Kami akan menggunakan nilai yang sama seperti pada dua contoh sebelumnya

SELECT 23 - 6 ;

Menjalankan skrip di atas memberi kita 17

Operator tambahan (+)

Sekarang mari kita lihat contoh operator penjumlahan. Kami akan memodifikasi contoh sebelumnya.

SELECT 23 + 6 ;

Menjalankan skrip di atas memberi kita 29

Operator perkalian (*)

Sekarang mari kita lihat contoh operator perkalian. Kami akan menggunakan nilai yang sama seperti pada contoh sebelumnya.

SELECT 23 * 6 AS `multiplication_result`;

Menjalankan skrip di atas memberi kita hasil sebagai berikut.

multiplication_result

138

Operator modulo (-)

Operator modulo membagi N dengan M dan memberi kita sisanya. Sekarang mari kita lihat contoh operator modulo. Kami akan menggunakan nilai yang sama seperti pada contoh sebelumnya.

SELECT 23 % 6 ;

ATAU

SELECT 23 MOD 6 ;

Menjalankan skrip di atas memberi kita 5

Sekarang mari kita lihat beberapa fungsi numerik yang umum di MySQL.

Lantai - fungsi ini menghapus tempat desimal dari angka dan membulatkannya ke angka terendah terdekat. Skrip yang ditunjukkan di bawah ini menunjukkan penggunaannya.

SELECT FLOOR(23 / 6) AS `floor_result`;

Menjalankan skrip di atas memberi kita hasil sebagai berikut.

Floor_result

3

Round - fungsi ini membulatkan angka dengan tempat desimal ke bilangan bulat terdekat. Skrip yang ditunjukkan di bawah ini menunjukkan penggunaannya.

SELECT ROUND(23 / 6) AS `round_result`;

Menjalankan skrip di atas memberi kita hasil sebagai berikut.

Round_result

4

Rand - fungsi ini digunakan untuk menghasilkan nomor acak, nilainya berubah setiap kali fungsi tersebut dipanggil. Skrip yang ditunjukkan di bawah ini menunjukkan penggunaannya.

SELECT RAND() AS `random_result`;

Fungsi yang disimpan

Fungsi tersimpan sama seperti fungsi bawaan, kecuali Anda harus menentukan sendiri fungsi yang disimpan. Setelah fungsi tersimpan dibuat, fungsi tersebut dapat digunakan dalam pernyataan SQL seperti fungsi lainnya. Sintaks dasar untuk membuat fungsi tersimpan seperti yang ditunjukkan di bawah ini

CREATE FUNCTION sf_name ([parameter(s)])RETURNS data typeDETERMINISTICSTATEMENTS

SINI

  • "CREATE FUNCTION sf_name ([parameter (s)])" bersifat wajib dan memberitahu server MySQL untuk membuat fungsi bernama `sf_name 'dengan parameter opsional yang ditentukan dalam tanda kurung.
  • "RETURNS data type" adalah wajib dan menentukan tipe data yang harus dikembalikan oleh fungsi.
  • "DETERMINISTIC" berarti fungsi akan mengembalikan nilai yang sama jika argumen yang sama diberikan padanya.
  • "PERNYATAAN" adalah kode prosedural yang dijalankan oleh fungsi.

Sekarang mari kita lihat contoh praktis yang mengimplementasikan fungsi bawaan. Misalkan kita ingin tahu film sewaan mana yang sudah melewati tanggal pengembalian. Kita dapat membuat fungsi tersimpan yang menerima tanggal kembali sebagai parameter dan kemudian membandingkannya dengan tanggal saat ini di server MySQL. Jika tanggal saat ini kurang dari tanggal film kembali, maka kita mengembalikan "Tidak" kalau tidak kita mengembalikan "Ya". Skrip yang ditunjukkan di bawah ini membantu kami mencapai itu.

DELIMITER |CREATE FUNCTION sf_past_movie_return_date (return_date DATE)RETURNS VARCHAR(3)DETERMINISTICBEGINDECLARE sf_value VARCHAR(3);IF curdate() > return_dateTHEN SET sf_value = 'Yes';ELSEIF curdate() <= return_dateTHEN SET sf_value = 'No';END IF;RETURN sf_value;END|

Menjalankan skrip di atas membuat fungsi tersimpan `sf_past_movie_return_date`.

Sekarang mari kita uji fungsi tersimpan kita.

SELECT `movie_id`,`membership_number`,`return_date`,CURDATE() ,sf_past_movie_return_date(`return_date`) FROM `movierentals`;

Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil sebagai berikut.

 
movie_id membership_number return_date CURDATE() sf_past_movie_return_date('return_date')
1 1 NULL 04-08-2012 NULL
2 1 25-06-2012 04-08-2012 yes
2 3 25-06-2012 04-08-2012 yes
2 2 25-06-2012 04-08-2012 yes
3 3 NULL 04-08-2012 NULL

Fungsi yang ditentukan pengguna

MySQL juga mendukung fungsi yang ditentukan pengguna yang memperluas MySQL. Fungsi yang ditentukan pengguna adalah fungsi yang dapat Anda buat menggunakan bahasa pemrograman seperti C, C ++ dll. Dan kemudian menambahkannya ke server MySQL. Setelah ditambahkan, mereka dapat digunakan seperti fungsi lainnya.

Ringkasan

  • Fungsi memungkinkan kita untuk meningkatkan kemampuan MySQL.
  • Fungsi selalu mengembalikan nilai dan secara opsional dapat menerima parameter.
  • Fungsi bawaan adalah fungsi yang dikirimkan bersama MySQL. Mereka dapat dikategorikan menurut tipe data yang mereka operasikan yaitu string, tanggal dan fungsi numerik bawaan.
  • Fungsi yang disimpan dibuat oleh pengguna dalam server MySQL dan dapat digunakan dalam pernyataan SQL.
  • Fungsi yang ditentukan pengguna dibuat di luar MySQL dan dapat dimasukkan ke dalam server MySQL.