Rumah > pangkalan data > tutorial mysql > Cara menggunakan gelung prosedur tersimpan MySql

Cara menggunakan gelung prosedur tersimpan MySql

WBOY
Lepaskan: 2023-05-26 11:06:40
ke hadapan
1227 orang telah melayarinya

Penerangan Senario

Mari kita ambil senario mudah Pertama, kita mungkin mempunyai situasi di mana jadual markah peperiksaan (t_achievement) mempunyai sekumpulan skrip SQL untuk diproses dan perlu bergantung pada jadual pelajar yang lain. ( t_student) Data meringkaskan markah ujian beberapa pelajar dan merekodkannya dalam jadual ringkasan skor (t_achievement_report).

Penyelesaian

  • Salah satu cara ialah mendapatkan data jadual pelajar untuk diringkaskan melalui keutamaan kod, dan kemudian pindahkan data maklumat pelajar ke ringkasan gred satu persatu mengikut kepada proses ringkasan gred Kod perniagaan diproses.

  • Cara lain juga turut menjadi tema kami hari ini, dan itu adalah melakukannya melalui prosedur tersimpan.

Kes

Buat penyataan jadual:

-- 学生信息表
DROP TABLE IF EXISTS t_student;
CREATE TABLE `t_student` (
  `id` BIGINT(12) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `code` VARCHAR(10) NOT NULL COMMENT '学号',
  `name` VARCHAR(20) NOT NULL COMMENT '姓名',
  `age` INT(2) NOT NULL COMMENT '年龄',
  `gender` CHAR(1) NOT NULL COMMENT '性别(M:男,F:女)',
  PRIMARY KEY (`id`),
  UNIQUE KEY UK_STUDENT (`code`)
) CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Salin selepas log masuk
-- 学生成绩表
DROP TABLE IF EXISTS t_achievement;
CREATE TABLE `t_achievement` (
  `id` BIGINT(12) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `year` INT(4) NOT NULL COMMENT '学年',
  `subject` CHAR(2) NOT NULL COMMENT '科目(01:语文,02:数学,03:英语)',
  `score` INT(3) NOT NULL COMMENT '得分',
  `student_id` BIGINT(12) NOT NULL COMMENT '所属学生id',
  PRIMARY KEY (`id`) 
) CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Salin selepas log masuk
-- 成绩汇总表
DROP TABLE IF EXISTS t_achievement_report;
CREATE TABLE `t_achievement_report` (
  `id` BIGINT(12) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `student_id` BIGINT(12) NOT NULL COMMENT '学生id',
  `year` INT(4) NOT NULL COMMENT '学年',
  `total_score` INT(4) NOT NULL COMMENT '总分',
  `avg_score` DECIMAL(4,2) NOT NULL COMMENT '平均分',
  PRIMARY KEY (`id`) 
) CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Salin selepas log masuk

Memulakan data:

rreee 🎜>

Cara menggunakan gelung prosedur tersimpan MySql

Cara menggunakan gelung prosedur tersimpan MySql

Prosedur tersimpan:

Di sini kami mengambil senario di atas sebagai contoh dan menggunakan prosedur tersimpan gelung ke Memproses data. Tulis prosedur tersimpan untuk meringkaskan markah setiap pelajar dalam data di atas.

INSERT INTO t_student(id, CODE, NAME, age, gender) VALUES
(1, '2022010101', '小张', 18, 'M'),
(2, '2022010102', '小李', 18, 'F'),
(3, '2022010103', '小明', 18, 'M');
INSERT INTO t_achievement(YEAR, SUBJECT, score, student_id) VALUES
(2022, '01', 80, 1),
(2022, '02', 85, 1),
(2022, '03', 90, 1),
(2022, '01', 60, 2),
(2022, '02', 90, 2),
(2022, '03', 98, 2),
(2022, '01', 75, 3),
(2022, '02', 100, 3),
(2022, '03', 85, 3);
Salin selepas log masuk
rrree
  • Hasil pelaksanaan mengembalikan hasil pertanyaan 3, iaitu id rekod pelajar terakhir

Cara menggunakan gelung prosedur tersimpan MySql

Cara menggunakan gelung prosedur tersimpan MySql

Atas ialah kandungan terperinci Cara menggunakan gelung prosedur tersimpan MySql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan