欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql如何操作相同類型多張表提取到一張表

本文主要給大家簡單講講MySQL如何操作相同類型多張表提取到一張表,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql如何操作相同類型多張表提取到一張表這篇文章可以給大家?guī)硪恍嶋H幫助。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),博望企業(yè)網(wǎng)站建設(shè),博望品牌網(wǎng)站建設(shè),網(wǎng)站定制,博望網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,博望網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

有時候需要從多張相同類型的表中提取數(shù)據(jù),這些表有一些相同的列或者表結(jié)構(gòu)完全相同,同時表名存在一定的規(guī)律,如果表數(shù)量少還好,如果表數(shù)量多的話則會比較繁瑣。可以通過存儲過程將多張表的數(shù)據(jù)提取到一張表的方法來降低工作量。

先創(chuàng)建測試表并生成測試數(shù)據(jù)。
以下存儲過程創(chuàng)建10張測試表,每張表生成10條測試數(shù)據(jù)。

mysql如何操作相同類型多張表提取到一張表

drop PROCEDURE if EXISTS create10tables;
create PROCEDURE create10tables()
BEGIN
DECLARE t_name VARCHAR(32);
DECLARE i INT;
DECLARE j INT;
DECLARE continue HANDLER for not found set t_name = "";
set i = 0;
set j = 0;
create_loop:LOOP
set i = i + 1;
set t_name = CONCAT("ttest",i);
set @dropsql = CONCAT('drop table if EXISTS ',t_name);
#select @dropsql;
prepare dropsql from @dropsql;
EXECUTE dropsql;
DEALLOCATE prepare dropsql;
set @createsql = concat('create table ',t_name,' (id int(11) not null auto_increment,modifytime timestamp null default current_timestamp,vdata varchar(32) ,primary key(id));');
#select @createsql;  
prepare createsql from @createsql;
EXECUTE createsql;
DEALLOCATE prepare createsql;
insert_loop:LOOP
set j = j+1;
if j > 10 THEN
LEAVE insert_loop;
end if;
set @insertsql = concat('insert into ',t_name,'(vdata) values(md5(rand()));');
#select @insertsql;
PREPARE insertsql from @insertsql;
EXECUTE insertsql;
deallocate PREPARE insertsql;
end LOOP insert_loop;
set j = 0;
if i > 10 THEN
LEAVE create_loop;
end if;
end LOOP create_loop;
END;
#執(zhí)行create10tables 生成表與數(shù)據(jù)
call create10tables();

有了表和數(shù)據(jù),可以在information_schema數(shù)據(jù)庫的innodb_tables表中看到新生成的對應(yīng)的表名。這里可以通過該表將所有的表名查出來,然后進行數(shù)據(jù)提取。SQL如下:
drop PROCEDURE if exists selectalldata;
drop table if exists t_test;
create PROCEDURE selectalldata()
BEGIN
DECLARE done int DEFAULT FALSE;
DECLARE t_name VARCHAR(32);
declare i int;
DECLARE cur1 CURSOR for SELECT table_name from  information_schema.TABLES where table_name like "ttest%";
DECLARE continue HANDLER for not found set done = TRUE;
open cur1;
set i = 0;
read_loop:LOOP
fetch cur1 into t_name;
if done THEN
LEAVE read_loop;
end if;
if i = 0 THEN
set @createsql = concat('create table t_test (id int(11) not null auto_increment,modifytime timestamp null default current_timestamp,vdata varchar(32) ,primary key(id));');
#select @createsql;  
prepare createsql from @createsql;
EXECUTE createsql;
DEALLOCATE prepare createsql;
set i = i + 1;
end if;
set @insertsql = concat('insert into t_test(modifytime,vdata) select modifytime,vdata from ',t_name);
prepare insertsql from @insertsql;
EXECUTE insertsql;
DEALLOCATE prepare insertsql;
end LOOP;
close cur1;
END;
#執(zhí)行selectdata
call selectalldata();
執(zhí)行之后可以在t_test表中看到已經(jīng)將所有的數(shù)據(jù)都提取出來了。

實際操作中,根據(jù)需要修改對應(yīng)的SQL語句即可。

mysql如何操作相同類型多張表提取到一張表就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

當前標題:mysql如何操作相同類型多張表提取到一張表
URL分享:http://www.chinadenli.net/article24/jdjeje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作外貿(mào)建站域名注冊微信公眾號自適應(yīng)網(wǎng)站營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)