MySQL存储结构的使用_MySQL
前言:
今天公司老大让我做一个MySQL的调研工作,是关于MySQL的存储结构的使用。这里我会通过3个例子来介绍一下MySQL中存储结构的使用过程,以及一些需要注意的点。
笔者环境:
系统:Windows 7
MySQL:MySQL 5.0.96
准备工作:
1.新建两张数据表:student1, student2
新建student1
DROP TABLE IF EXISTS student1; CREATE TABLE student1 ( id INT NOT NULL auto_increment, name TEXT, age INT, PRIMARY KEY(id) );
新建student2
DROP TABLE IF EXISTS student2; CREATE TABLE student2 ( id INT NOT NULL auto_increment, name TEXT, age INT, PRIMARY KEY(id) );
2.向student1中新增数据
INSERT INTO student1 (name, age) VALUES ('xiaoming', 18); INSERT INTO student1 (name, age) VALUES ('xiaohong', 17); INSERT INTO student1 (name, age) VALUES ('xiaogang', 19); INSERT INTO student1 (name, age) VALUES ('xiaoyu', 18); INSERT INTO student1 (name, age) VALUES ('xiaohua', 20);
实现功能说明:
1.打印student1中的部分信息
2.把student1中的部分数据复制到student2中
3.传入参数作为限制条件,把student1中的部分数据复制到student2中
注意事项:
在编写存储结构的时候,我们不能以分号(;)结束。因为我们的SQL语句就是以分号(;)结尾的。这里我们要修改一下存储结构的结束符号(&&)。
这里我们使用MySQL中的DELIMITER进行修改,并在存储结构创建完毕时,再改为分号(;)结束即可。
关于这一点在后面的例子中有所体现。在编写MySQL的触发器中,也会用到类似的情况。
使用方式:
1.打印student1中的部分信息
--------------------------------------------------------------- DROP PROCEDURE IF EXISTS test_pro1; --------------------------------------------------------------- DELIMITER && CREATE PROCEDURE test_pro1() BEGIN set @sentence = 'select * from student1 where age<19;'; prepare stmt from @sentence; execute stmt; deallocate prepare stmt; END && DELIMITER ;
2.复制表存储过程的编写(不带参数)
--------------------------------------------------------------- DROP PROCEDURE IF EXISTS test_pro2; --------------------------------------------------------------- DELIMITER && create procedure test_pro2() begin DECLARE stop_flag INT DEFAULT 0; DECLARE s_name TEXT default ''; DECLARE s_age INT default 0; DECLARE cur1 CURSOR FOR (select name, age from student1 where age<19); DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET stop_flag=1; open cur1; fetch cur1 into s_name, s_age; while stop_flag<>1 DO insert into student2(name, age) values(s_name, s_age); fetch cur1 into s_name, s_age; end while; close cur1; end && DELIMITER ;
3.复制表存储过程的编写(带参数)
--------------------------------------------------------------- DROP PROCEDURE IF EXISTS test_pro3; --------------------------------------------------------------- DELIMITER && create procedure test_pro3(IN p_age INT) begin DECLARE stop_flag INT DEFAULT 0; DECLARE s_name TEXT default ''; DECLARE s_age INT default 0; DECLARE cur1 CURSOR FOR (select name, age from student1 where age<p_age); continue="" cur1="" declare="declare" fetch="" for="" handler="" into="" open="" set="" sqlstate="" stop_flag="1;" while="">1 DO insert into student2(name, age) values(s_name, s_age); fetch cur1 into s_name, s_age; end while; close cur1; end && DELIMITER ;</p_age);>
4.使用方式:
call test_pro1(); or call test_pro1(123);

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Lambda表達式是無名稱的匿名函數,其語法為:(parameter_list)->expression。它們具有匿名性、多樣性、柯里化和閉包等特徵。在實際應用中,Lambda表達式可用於簡潔地定義函數,如求和函數sum_lambda=lambdax,y:x+y,並透過map()函數應用於列表來進行求和操作。

internet的基本架構與技術起源於ARPANET。 ARPANET是電腦網路技術發展中的一個里程碑,它的研究成果對促進網路技術的發展起到了重要的作用,並未internet的形成奠定了基礎。 arpanet(阿帕網)為美國國防部高級研究計劃署開發的世界上第一個運營的數據包交換網絡,它是全球互聯網的始祖。

MySQL.proc表是MySQL資料庫中儲存預存程序和函數資訊的系統表,透過深入了解其結構及用途,可以更好地理解預存程序和函數在MySQL中的運作機制,並進行相關的管理和最佳化。以下將詳細解析MySQL.proc表的結構及用途,並提供具體的程式碼範例。 1.MySQL.proc表的結構MySQL.proc表是一個系統表,儲存了所有預存程序和函數的定義和相關信息

如何使用HTML和CSS實現一個具有固定導航選單的佈局在現代網頁設計中,固定導航選單是常見的佈局之一。它可以使導航選單始終保持在頁面頂部或側邊,使用戶可以輕鬆瀏覽網頁內容。本文將介紹如何使用HTML和CSS實作一個具有固定導航選單的佈局,並提供具體的程式碼範例。首先,需要建立一個HTML結構來呈現網頁的內容和導覽選單。以下是一個簡單的範例

如何在MySQL中設計商城的評估表結構?在一個商城系統中,評價是非常重要的功能之一。評價不僅可以提供給其他使用者參考,還可以幫助商家了解使用者對商品的回饋和意見。設計一個合理的評價表結構對於商城系統的運作和使用者體驗至關重要。本文將介紹如何在MySQL中設計商城的評估表結構,並提供具體的程式碼範例。首先,我們需要建立兩個基本的表:商品表和使用者表。商品表(produc

Python中有四種常見的製程控制結構,分別是順序結構、條件結構、循環結構、跳轉結構。下面將一一介紹並提供對應的程式碼範例。順序結構:順序結構是程式從上到下依照預定的順序執行的結構,沒有特定的關鍵字或語法。範例程式碼:print("這是順序結構範例1")print("這是順序結構範例2")print("這是順

標題:探秘Linux檔案系統的內部結構Linux作業系統以其穩定性和靈活性而聞名,檔案系統作為其核心之一,扮演著關鍵的角色。深入了解Linux檔案系統的內部結構不僅有助於我們理解作業系統的工作原理,還可以幫助我們更好地進行系統管理和最佳化。本文將以詳細的程式碼範例與解釋,探討Linux檔案系統的內部結構。一、檔案系統簡介檔案系統是電腦用於組織和儲存檔案以及對文

Oracle主目錄的結構與管理技巧Oracle資料庫作為業界領先的企業級資料庫管理系統,其主目錄結構與管理技巧對於資料庫管理員來說是非常重要的。本文將詳細介紹Oracle主目錄的架構、重要目錄和管理技巧,並提供具體的程式碼範例,幫助讀者更好地理解和管理Oracle資料庫。 Oracle主目錄結構在Oracle資料庫中,主目錄包含兩個重要的目錄:ORACLE_BA
