MySQL 存儲過程(實驗報告)

一、實驗名稱: 存儲過程?

二、實驗日期: 2024 年5? 月 25 日

三、實驗目的:

  • 掌握MySQL存儲過程的創建及調用;

四、實驗用的儀器和材料:

硬件:PC電腦一臺;

配置:內存,2G及以上? 硬盤250G及以上

軟件環境:操作系統 windows7以上

數據庫環境:MySQL5.7或MySQL8.0.20

五、實驗步驟和方法

練習:(基于實驗3的表結構及數據)

1、創建存儲過程p_cx,實現可根據各種商品所屬類別進行查詢商品編號,名稱,所屬類別及價格。

2、創建一存儲過程p_intbm,通過帶參數的存儲過程向表bmxx中插入一條數據,傳入參數為bmbh,bmmc,并且如果插入主鍵重復數據,則將bmbh和bmmc插入錯誤記錄表splog中,數據插入時間賦為當前日期,操作標志位賦上'insert'。錯誤記錄表splog建表語句如下。

CREATE TABLE splog (spbjlog char(8),spmclog varchar(20),
sjlog datetime,
Bz varchar(10));

實驗準備:

create database test11;
use test11;#創建商品信息表
create table spxx
(spbh char(8) not null primary key,
spmc varchar(20) not null,
sslb varchar(8) not null,
jg float(10,2) not null,
sl int(4)  not null
)ENGINE=InnoDB default charset=utf8;insert into spxx values('10000001','空調','電器',1500,10),('10000002','書包','文具',100,20),('10000003','卷紙','日用品',30,50);#創建部門信息表
create table bmxx
(bmbh char(8) not null primary key,
bmmc varchar(10) not null)ENGINE=InnoDB default charset=utf8;#部門信息表插入數據
insert into bmxx values('1001','業務'),('1002','技術'),('1003','售后'),('1004','管理');

???

六、實驗結果或結論:即根據實驗過程中所見到的現象和測得的數據,作出結論。

創建存儲過程p_cx,實現可根據各種商品所屬類別進行查詢商品編號,名稱,所屬類別及價格:

#創建存儲過程p_cx,實現可根據各種商品所屬類別進行查詢商品編號,名稱,所屬類別及價格。
delimiter //
create procedure p_cx(in csslb varchar(8))
begin
select spbh,spmc,sslb,jg from spxx where sslb = csslb;
end //
delimiter ;# 存儲過程的調用alter
call p_cx('文具');
call p_cx('電器');

?

? 創建一存儲過程p_intbm,通過帶參數的存儲過程向表bmxx中插入一條數據,傳入參數為bmbh,bmmc,并且如果插入主鍵重復數據,則將bmbh和bmmc插入錯誤記錄表splog中,數據插入時間賦為當前日期,操作標志位賦上'insert':

delimiter //
create procedure p_intbm(in ibmbh char(8),ibmmc varchar(10))
Begin
declare done varchar(10);
DECLARE CONTINUE HANDLER FOR 1062 set done='false'; 
Insert into bmxx values(ibmbh,ibmmc);
If done='false' thenselect '插入重復數據';insert into splog values(ibmbh,ibmmc,current_time(),null);
end if;
set done='true';
end //
delimiter ;select * from bmxx;call p_intbm('1006','運維');  //重復運行幾次,專門記錄'插入重復數據'的日志表(splog)會記錄下來
drop procedure p_intbm;select * from splog;
日志為空,目前沒有重復插入數據

實驗心得可寫上實驗成功或失敗的原因,實驗后的心得體會、建議等。

創建存儲過程能夠提高性能,存儲過程在數據庫中編譯和存儲,可以減少網絡流量,提高性能。創建存儲過程具有重用性:存儲過程可以被多個應用程序調用,提高代碼的重用性。可以提高安全性:通過存儲過程,可以控制對數據庫的訪問權限,提高安全性。創建存儲過程還能夠簡化復雜操作:存儲過程可以包含復雜的業務邏輯,簡化數據庫操作。

在實踐過程中,熟悉存儲過程的語法和結構,了解存儲過程的創建和執行過程,掌握存儲過程中的語句格式,參數傳遞方式等。在編寫存儲過程前,需要明確存儲過程的目的和實現的功能,并且規劃好存儲過程的整體邏輯。需要注意存儲過程的性能問題:存儲過程的性能直接影響數據庫的整體性能,因此需要注意存儲過程的優化,比如盡量減少數據庫的訪問次數,避免不必要的操作等。需要注意安全問題:存儲過程中可能包含敏感數據,因此需要注意存儲過程的安全性,比如對存儲過程進行權限控制等。

創建存儲過程需要一定的經驗積累和技巧,因此需要多練習并不斷總結經驗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15813.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15813.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15813.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 配置本地解決下載 Gradle 慢的問題

步驟1 打開項目下 gradle/wrapper/gradle-wrapper.properties 文件。 步驟2 文件內容如下。 #Sat May 25 16:24:00 CST 2024 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionUrlhttps\://services.gradle.org/distributions/gradle-8.7-bin…

SW焊接路徑不能是閉合的

如果是整個圓,就不能作出焊件

【Docker學習】深入研究命令docker exec

使用docker的過程中,我們會有多重情況需要訪問容器。比如希望直接進入MySql容器執行命令,或是希望查看容器環境,進行某些操作或訪問。這時就會用到這個命令:docker exec。 命令: docker container exec 描述&#x…

ssm275寵物醫院管理系統+vue-手把手調試搭建

ssm275寵物醫院管理系統vue-手把手調試搭建 ssm275寵物醫院管理系統vue-手把手調試搭建

Jmeter預習第1天

Jmeter參數化(重點) 本質:使用參數的方式來替代腳本中的固定為測試數據 實現方式: 定義變量(最基礎) 文件定義的方式(所有測試數據都是固定的情況下[死數據],eg:注冊登錄&#xff0…

Linux -- 進程間通信的五種方式

IPC(InterProcess Communication)的方式通常有管道(包括無名管道和命名管道)、消息隊列、信號量、共享存儲、Socket、Streams等。其中Socket和Stream支持不同主機上的兩個進程IPC。 管道(Pipes)&#xff1a…

STM32中斷編程入門

文章目錄 一、 理論部分1.中斷系統2.中斷執行流程3.NVIC的基本結構4.EXTI介紹5.AFIO復用IO口 二、實驗目的:學習stm32中斷原理和開發編程方法。使用標準完成以下任務:(一)實驗一 開關控制LED的亮滅1.代碼部分2.運行結果 &#xff…

Qt | QFormLayout 類(表單布局)

01、上節回顧 Qt | QGridLayout 類(網格布局)02、簡介 1、QFormLayout 布局以兩列的形式列出其子項目, 2、QFormLayout 被分成兩列,左列是標簽(label)部分,通常由標簽 QLabel 組成,右列是由 字段(field)部分,通常是 QLineEdit 行編輯器,QSpinBox 旋轉框等部件,注意:…

【簡單易用,新人友好】一個輕量級生物信息學流程框架,從此解決99%的生物信息學流程搭建問題...

生物信息學數據分析流程的搭建是一項繁重而復雜的工作。隨著行業的發展,各種生信流程框架層出不窮,比如有: NextflowSnakemakeCWLWDL 各種標準,各種規則,令人眼花繚亂。選擇太多,往往令人無所適從。特別是新進入行業的…

小程序的深層了解

一:wxss的全局樣式和局部樣式 寫在文件上,第一個路徑會執行全局和局部自帶的wxss給wxml,會執行wxml,會執行json和js. 無論那個文件都會執行文件夾內的和外部的app.wxss,但是如果有一樣的屬性,則看屬性的權重,權重一樣,則設置局部樣式. 二:全局配置 wx:key"寫的是data內…

17.7K星開源產品分析平臺:Posthog

Posthog:開源洞察,產品優化的得力助手 - 精選真開源,釋放新價值。 概覽 PostHog是一個全面開源的平臺,旨在幫助團隊構建更好的產品。它提供了從產品分析到會話回放、功能標志和A/B測試等一系列工具,支持自托管&#x…

如何通過Nginx配置將請求轉發到conf.d目錄下的各個配置文件

目錄 如何通過Nginx配置將請求轉發到conf.d目錄下的各個配置文件1. 修改主配置文件 nginx.conf2. 在 conf.d 目錄中創建站點配置3. 設置站點根目錄和權限4. 檢查配置并重新加載Nginx總結 如何通過Nginx配置將請求轉發到conf.d目錄下的各個配置文件 在使用Nginx進行網站管理時&…

讀人工智能時代與人類未來筆記14_管控人工智能

1. 管控人工智能 1.1. 歷史上的戰場進一步推進到與數字網絡相連的所有地方 1.2. 數字程序現在控制著一個由眾多實體系統構成的龐大且仍在不斷增長的領域,而且越來越多的此類系統已實現網絡化 1.2.1. 在某些情況下甚至連門鎖和冰箱都實現了網絡化 1.2.2. 這催生出…

拋出異常時仍然需要記錄錯誤日志

場景:當service的方法執行拋出異常時,事務會發生回滾,導致無法記錄錯誤日志 解決:切面 其他:1.日志需要記錄日志標題,保存入參 2.失敗時會拋出異常;日志需要判斷執行是否成功,記錄…

2024年漢字小達人活動4個多月開賽:18道歷年選擇題和答案、解析

根據近年的安排,2024年第11屆漢字小達人比賽還有4個多月就啟動,那么孩子們如何利用這段時間有條不紊地備考呢?我的建議是兩手準備:①把小學1-5年級的語文課本上的知識點熟悉,重點是字、詞、成語、古詩。②把歷年真題刷…

聯想端游聯運SDK接入指南

1. 接入流程 本文檔主要介紹了 聯想PC游戲SDK接入流程、聯想游戲提供的功能、接入注意事項等。 1.1. 接入方式 1. 聯想游戲SDK2.1版本支持“賬號防沉迷支付”接入方式; a. 聯想提供賬號注冊、登錄等能力 b. 聯想提供防沉迷服務 c. 聯想提供游戲內支付 1.2. 對…

【學習筆記】計算機組成原理(八)

CPU 的結構和功能 文章目錄 CPU 的結構和功能8.1 CPU的結構8.1.1 CPU的功能8.1.2 CPU結構框圖8.1.3 CPU的寄存器8.1.4 控制單元CU和中斷系統 8.2 指令周期8.2.1 指令周期的基本概念8.2.2 指令周期的數據流 8.3 指令流水8.3.1 指令流水原理8.3.2 影響流水線性能的因素8.3.3 流水…

meinheld-gunicorn-flask VS uvicorn-gunicorn-fastapi 性能對比測試

本文會使用如下兩個項目:meinheld-gunicorn-flask 與 uvicorn-gunicorn-fastapi 前文有測過 Flask vs FastApi 性能對比測試,可能不夠有說服力,這次使用了號稱最快的wsgi或asgi服務器gunicorn來運行flask或fastapi。 上面meinheld-gunicorn…

數據庫-SQL性能分析

SQL執行頻率 慢查詢日志 慢查詢日志記錄了所有執行時間超過指定參數(long_query_time,單位:秒,默認10秒)的所有 SQL語句的日志。 MySQL的慢查詢日志默認沒有開啟,我們可以查看一下系統變量 slow_query_l…

html5 筆記02

目錄 01 svg的基本使用 02 svg繪圖 03 進程和線程 01 svg的基本使用 svg和canvas的區別: canvas: 1.canvas作為一個容器只有一個dom元素 ,內部元素無法使用dom操作 (canvas不能展開然后選擇不到 svg查看元素能選中因為是通過標簽控制的) 2.canvas 是配合js完成各種繪制效果 …