Rumah >pangkalan data >tutorial mysql >Apakah kursor prosedur tersimpan mysql?

Apakah kursor prosedur tersimpan mysql?

青灯夜游
青灯夜游asal
2022-01-24 17:28:354564semak imbas

Dalam prosedur tersimpan MySQL, kursor juga dipanggil kursor Ia adalah pertanyaan pangkalan data yang disimpan pada pelayan DBMS Ia adalah operasi mendapatkan semula yang biasanya digunakan untuk bergerak ke hadapan atau ke belakang data yang diambil beroperasi.

Apakah kursor prosedur tersimpan mysql?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Dalam MySQL, pertanyaan dalam prosedur atau fungsi yang disimpan kadangkala mengembalikan berbilang rekod, dan menggunakan pernyataan SELECT yang mudah, tiada cara untuk mendapatkan baris pertama, baris seterusnya atau sepuluh baris pertama data , anda boleh Gunakan kursor untuk membaca rekod daripada keputusan pertanyaan yang ditetapkan satu demi satu. Kursor juga dipanggil kursor dalam beberapa bahan.

Pengenalan Kursor

1 Kursor: Juga dipanggil kursor, ia adalah pertanyaan pangkalan data yang disimpan pada pelayan DBMS bukan penyataan pilih, tetapi set keputusan diambil oleh penyataan.

2. Tujuan: Operasi ke hadapan atau ke belakang bagi data yang diambil, terutamanya digunakan untuk aplikasi interaktif, seperti pengguna menatal data pada skrin

3 >Boleh menandakan kursor sebagai baca sahaja, supaya data boleh dibaca, tetapi tidak boleh dikemas kini dan dipadam

    Boleh mengawal operasi arah yang boleh dilakukan (ke hadapan, ke belakang, pertama, terakhir, kedudukan mutlak, Kedudukan relatif, dsb.)
  • boleh menandakan beberapa lajur sebagai boleh diedit dan beberapa sebagai tidak boleh diedit
  • Tentukan julat supaya kursor boleh bertindak balas kepada permintaan khusus yang menciptanya (seperti prosedur tersimpan) atau Boleh diakses kepada semua permintaan
  • Cuma DBMS menyalin data yang diambil (daripada menunjukkan data aktif dalam jadual) supaya data tidak berubah semasa tempoh pembukaan kursor dan capaian
  • 4 , DBMS yang menyokong kursor: DB2, MariaDB, MySQL 5, SQL Server, SQLite, Oracle dan PostgreSQL, manakala Microsoft Access tidak menyokong
5. Kursor tidak begitu berguna untuk aplikasi berasaskan web (ASP, ASP.NET , ColdFusion, PHP, Python, Ruby, JSP, dll.), kebanyakan pembangun aplikasi web tidak menggunakan kursor

6. Gunakan:

untuk mengisytiharkan kursor: DECLARE cursor_name CURSOR FOR SELECT * FROM table_name; // Tiada data telah diambil lagi

Buka kursor: OPEN cursor_name; mendapatkan semula data, iaitu, pernyataan SELECT kursor yang ditentukan dilaksanakan, dan set hasil pertanyaan disimpan dalam kawasan memori tertentu.
-- MySQL游标的声明
DECLARE cursor_name CURSOR FOR select_statement

-- SQL Server游标的声明
DECLARE cursor_name CURSOR FOR select_statement [FOR [READ ONLY | UPDATE {[co lumn_list]}]]

-- Oracle游标的声明
DECLARE CORSOR cursor_name IS {select_statement}
Dapatkan data: FETCH cursor_name ke dalam var1,var2,...,varn; // Selepas kursor_name mengambil semula data, ia tidak akan dicetuskan sehingga pengambilan seterusnya Tanda tamat
-- MySQL打开游标
OPEN cursor_name


-- SQL Server打开游标
OPEN cursor_name


-- Oracle打开游标
OPEN cursor_name [param1 [, param2]]
Tutup kursor: TUTUP cursor_name;
-- MySQL游标获取数据
FETCH cursor_name INTO var1_name [, var2_name] ...


-- SQL Server游标获取数据
FETCH NEXT FROM cursor_name [INTO fetch_list]


-- Oracle游标获取数据
FETCH cursor_name  {INTO : host_var1 [[INDICATOR] : indicator_var1] [, : host_var2 [[INDICATOR] : indicator_var2]] | USING DESCRIPTOR DESCRIPTOR}
  • [Cadangan berkaitan:
tutorial video mysql
-- MySQL关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name


-- SQL Server关闭游标和释放资源
CLOSE cursor_name
DEALLOCATE cursor_name


-- Oracle关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name
]

Atas ialah kandungan terperinci Apakah kursor prosedur tersimpan mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn