mysql存儲過程查詢表
『壹』 mysql 如何查看某個表在哪些存儲過程中用那個到了
SELECT * FROM mysql.proc
WHERE type = 'PROCEDURE'
AND specific_name = 'P_UserBetDayDetail'
AND Body LIKE '%Report_UserBetDayDetail%';
mysql.proc:表示查詢的目標表;
type = 'PROCEDURE':表示查詢的是存儲過程;
specific_name = 'P_UserBetDayDetail' :表示查詢的具體存儲過程名稱;
Body LIKE '%Report_UserBetDayDetail%':表示存儲過程內容中包含的表。
『貳』 存儲過程怎麼在mysql查詢里執行
方法一:(直接查詢,比較實用,查看當前自定義的存儲過程)
select `specific_name` from MySQL.proc where `db` = 'your_db_name' and `type` = 'procere'
方法二:(查看資料庫里所有存儲過程+內容)
show procere status;
方法三:(查看當前資料庫里存儲過程列表)
select specific_name from mysql.proc ;
方法四:(查看某一個存儲過程的具體內容)
select body from mysql.proc where specific_name = 'your_proc_name';
查看存儲過程或函數的創建代碼 :
show create procere your_proc_name;
show create function your_func_name;
『叄』 mysql資料庫怎麼創建一個存儲過程查詢兩個表的關聯數據、怎麼查
首先打開新建--建立查詢或者查詢向導,把兩個標的這些欄位都添加進去,然後內部關聯就是a的aid和b的aid內部連接,然後篩選條件就是a.aid=b.aid 然後查詢去向選擇『表』然後填上你想存的表的名字,如果是要求寫出SQL語句的話你就做好上面步驟之後點查詢設計器裡面的SQL按鈕,就會出來那些命令段,復制就好了
『肆』 mysql存儲過程實現數據查詢與插入
INSERT into total_score_tmpD(
DepartmentNameEnd, StaffId,
StaffName,
CountPerHour,
SkillScoreDisCount ,
DealCount ,
ValueCount,
ValueCountDisCount
)
SELECT DepartmentName, StaffId,
StaffName,
3600/(Select DealAvgSeconds from deal_name_type where DealId='121300')*AVG(DealAvgSeconds/WaitSeconds) ,
Round(3600/(Select DealAvgSeconds from deal_name_type where DealId='121300')*avg(DealAvgSeconds/WaitSeconds)/(select Max(SunValue) From total_score_tmp33)*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='工作技能權重'),2),
count(StaffId),
Sum(DealValue),
Round(Sum(DealValue)/(select Max(SunValue) From total_score_tmp44)*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='工作效益權重'),2)
From deal_record
where DepartmentName like concat(DepartmentName2,'%') and DealDateTime BETWEEN STARTDealDateTime and endDealDateTime
group by StaffId;
insert into total_score_tmpc(DepartmentName , StaffId,
StaffName,
ClientNum ,
EvaluateScore ,
EvaluateScoreDisCount)
SELECT DepartmentName, StaffId,
StaffName,
count(StaffId),
Sum(EvaluatePrice),
Round((Sum(EvaluatePrice)/(select Max(SunValue) From total_score_tmp22))*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='服務評價權重'),2)
From evaluate_record
where DepartmentName like concat(DepartmentName2,'%') and EvaluateDateTime BETWEEN STARTDealDateTime and endDealDateTime
group by StaffId;
『伍』 存儲過程,mysql查表A的所有數據,同時又想知道滿足A.欄位1 = A.欄位2 的數據有哪些
一條查詢語句只能返回一組數據,用存儲過程也一樣,無法同時返回所有數據,又返回符合條件的數據
只能拆分成2個語句去查詢
『陸』 mysql 搜索表被哪個存儲過程使用
假設A表有3個欄位,ID, DATA1,DATA2
簡單的話可以不使用存儲過程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)
如果你的應用比較復雜,在嵌套中還有復雜的運算,存儲過程可以如下例子:
CREATE PROCEDURE test(in_start int,in_end int)
BEGIN
DECLARE ids TEXT;
select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;
select * from A where FIND_IN_SET(ID,ids) > 0;
END
註: in_start, in_end是DATA1的篩選范圍。 後面一個select直接返回一個表
直接用SQL和使用存儲過程各有利弊,存儲過程在你使用大量查詢及SQL運算的時候效率很高,而且存儲過程一旦寫入資料庫會被自動編譯運行速度比較快,而SQL是每次執行都需要被編譯一次的。但是存儲過程的調試比較麻煩,不像你使用編程語言和SQL的時候可以單步調試。而且如果沒有熟練掌握存儲過程的效率優化情況下,使用存儲過程可能比使用SQL更慢。
『柒』 MySQL怎麼寫存儲過程查詢某個表的某一條記錄,並把這條記錄的所有列名對應的值以json格式返回呢
給你個思路吧,既然你能問出這種問題應該是有了思路就會自己做的人,就不幫你寫代碼了。
首先,你確定這個表的所有欄位中沒有二進制內容,如果沒有的話,下面這個思路你可以試試,但是如果有的話估計就需要對二進制進行特別的處理了,如果你有的話再追問吧。
思路開始:
1.如果你是對一張確定的表(提前已經知道表結構)進行這樣的處理,那就查詢出來一條記錄,通過Mysql的字元串拼接函數CONCAT,按照JSON格式,慢慢的拼一個字元串,最後通過select這個字元串返回這個字元串就行了。
2.如果之前你並不知道,這個表的結構,甚至你根本不知道自己要處理的是那張表,那麼存儲過程中你需要傳遞一個表名進來,然後查詢information_schema資料庫中的COLUMNS表,從而獲得這個表的具體欄位信息,以及各個欄位的先後順序(為後面拼接字元串使用),剩下的就跟1中描述的思路一樣了。
雖然不知道你的用處是什麼,不過,以我個人的經驗,這種返回JSON的方式並不可取,這樣會增加資料庫的負擔,理論上應該是將數據出來後自己在程序中拼接。
『捌』 怎麼在mysql中查詢已建立的存儲過程
1、首先先創建一個存儲過程,代碼如圖,存儲過程主要的功能是為表JingYan插入新的數據。
『玖』 mysql 怎麼查詢存儲過程中用到哪些表
假設A表有3個欄位,ID, DATA1,DATA2
簡單的話可以不使用存儲過程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)
如果你的應用比較復雜,在嵌套中還有復雜的運算,存儲過程可以如下例子:
CREATE PROCEDURE test(in_start int,in_end int)
BEGIN
DECLARE ids TEXT;
select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;
select * from A where FIND_IN_SET(ID,ids) > 0;
END
註: in_start, in_end是DATA1的篩選范圍。 後面一個select直接返回一個表
直接用SQL和使用存儲過程各有利弊,存儲過程在你使用大量查詢及SQL運算的時候效率很高,而且存儲過程一旦寫入資料庫會被自動編譯運行速度比較快,而SQL是每次執行都需要被編譯一次的。但是存儲過程的調試比較麻煩,不像你使用編程語言和SQL的時候可以單步調試。而且如果沒有熟練掌握存儲過程的效率優化情況下,使用存儲過程可能比使用SQL更慢。