Dapatkah prosedur tersimpan mysql mengembalikan nilai?

Prosedur tersimpan MySQL adalah objek yang berisi satu atau lebih pernyataan SQL untuk digunakan kembali. Mereka sering mengandung logika bisnis. Robert Sheldon mendemonstrasikan cara membuat dan memanggil stored procedure

Artikel ini adalah bagian dari rangkaian lanjutan Robert Sheldon tentang Belajar MySQL. Untuk melihat 11 item dalam seri ini, klik di sini

Seperti kebanyakan sistem manajemen basis data relasional, MySQL mendukung penggunaan prosedur tersimpan yang dapat dipanggil sesuai permintaan oleh aplikasi berbasis data. Setiap prosedur tersimpan adalah objek database bernama yang berisi rutinitas yang terdiri dari satu atau lebih pernyataan SQL. Saat aplikasi memanggil stored procedure, MySQL mengeksekusi pernyataan tersebut dan mengembalikan hasilnya ke aplikasi.  

Rutin prosedur dapat mencakup berbagai pernyataan, termasuk bahasa definisi data (DDL) dan bahasa manipulasi data (DML). Prosedur tersimpan MySQL juga mendukung penggunaan parameter input dan output, menjadikannya alat yang sangat fleksibel untuk mengenkapsulasi logika pernyataan

Prosedur tersimpan memungkinkan kode SQL untuk digunakan kembali sesering yang dibutuhkan, membantu menyederhanakan pengembangan aplikasi dan mengurangi kesalahan pernyataan. Pengembang tidak perlu menulis kueri yang rumit untuk setiap permintaan aplikasi, dan tim QA tidak perlu menghabiskan banyak waktu untuk memverifikasi kueri saat menguji aplikasi

Kemampuan untuk menggunakan kembali kode juga mengurangi lalu lintas jaringan karena prosedur tersimpan dapat dipanggil dengan pernyataan CALL tunggal, tidak peduli seberapa rumit kueri yang mendasarinya. Prosedur tersimpan juga dapat memberikan tingkat keamanan yang lebih tinggi dengan mengabstraksi struktur basis data yang mendasarinya dan menghilangkan kueri ad hoc di tingkat aplikasi

Dalam artikel ini, saya mendemonstrasikan cara membuat dan memperbarui prosedur tersimpan, serta memanggilnya dengan pernyataan CALL. Anda akan mempelajari cara membuat prosedur dasar dan berparameter yang menggunakan parameter input dan output. Seperti artikel sebelumnya dalam seri ini, saya menggunakan edisi Komunitas MySQL di komputer Windows untuk membuat contoh, yang saya buat di MySQL Workbench, antarmuka pengguna grafis (GUI) yang disertakan dengan edisi Komunitas

Mempersiapkan lingkungan MySQL Anda

Contoh dalam artikel ini didasarkan pada database travel, yang merupakan database yang sama yang saya gunakan untuk artikel sebelumnya tentang tampilan MySQL. Artikel ini menggunakan tabel dan data yang sama untuk menunjukkan cara bekerja dengan prosedur tersimpan. Jika Anda mencoba contoh di artikel sebelumnya, database travel mungkin masih diinstal pada instance MySQL Anda. Jika tidak, Anda dapat menggunakan skrip SQL berikut untuk membuat database dan tabelnya

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

JATUH DATABASE JIKA ADA bepergian;

BUAT DATABASE perjalanan;

GUNAKAN bepergian;

BUAT TABEL produsen (

  manufacturer_id INT TIDAK DITANDATANGANI TIDAK NULL AUTO_INCREMENT,

  produsen VARCHAR(50) NOT NULL,

  buat_tanggal TIMESTAMP TIDAK NULL DEFAULT CURRENT_TIMESTAMP,

  last_update TIMESTAMP TIDAK NULL

    DEFAULT CURRENT_TIMESTAMP AKTIF UPDATE CURRENT_TIMESTAMP,

  UTAMA KUNCI (manufacturer_id) )

ENGINE=InnoDB AUTO_INCREMENT=1001;

BUAT TABEL pesawat (

  plane_id INT UNSIGNED TIDAK NULL AUTO_INCREMENT,

  pesawat VARCHAR(50) NOT NULL,

  manufacturer_id INT TIDAK DITANDATANGANI TIDAK NULL,

  tipe_mesin VARCHAR(50) NOT NULL,

  engine_count TINYINT TIDAK NULL,

  max_weight MEDIUMINT UNSIGNED TIDAK NULL,

  lebar sayap DECIMAL(5,2) NOT NULL,

  panjang_pesawat DECIMAL(5,2) NOT NULL,

  parking_area INT DIHASILKAN SELALU AS

              ((lebar sayap * plane_length)) STORED,

  icao_code CHAR(4) NOT NULL,

  buat_tanggal TIMESTAMP TIDAK NULL DEFAULT CURRENT_TIMESTAMP,

  last_update TIMESTAMP TIDAK NULL

    DEFAULT CURRENT_TIMESTAMP AKTIF UPDATE CURRENT_TIMESTAMP,

  UTAMA KUNCI (id_pesawat),

  KENDALA fk_manufacturer_id ASING ASING KUNCI (manufacturer_id)

    REFERENSI produsen (produsen_id) )

ENGINE=InnoDB AUTO_INCREMENT=101;

Tabel airplanes menyertakan kunci asing yang mereferensikan tabel manufacturers, jadi pastikan untuk membuat tabel sesuai urutan yang ditampilkan di sini. Setelah Anda membuat tabel, Anda dapat menambahkan data sampel ke dalamnya sehingga Anda dapat menguji prosedur tersimpan Anda. Untuk mengisi tabel, jalankan pernyataan INSERT berikut

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

MASUKKAN KE DALAM produsen (produsen)

NILAI ('Airbus'),

Postingan terbaru

LIHAT SEMUA