国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL 連接查詢和存儲過程

這篇具有很好參考價值的文章主要介紹了MySQL 連接查詢和存儲過程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、連接查詢

mysql的連接查詢,通常都是將來自兩個或多個表的記錄行結合起來,基于這些表之間的共同字段,進行數據的拼接

首先,要確定一個主表作為結果集,然后將其它表的行有選擇性的連接到選定的主表結果上,使用較多的 連接查詢包括:內連接(子查詢)、左連接和右鏈接(外連)。

下面的實驗,均以下兩個表進行實驗

MySQL 連接查詢和存儲過程,mysql,數據庫

1、內連查詢

mysql中的內連接就是兩張或多張中同時符合某種條件的數據記錄的組合,通常在from子句中使用關鍵字inner join 來連接多張表,并使用on子句設置連接條件,內連接是系統(tǒng)默認的表連接,所以在from子句后可以省略inner 關鍵字,值使用關鍵字join。

同時有多個表時,也可以聯(lián)系使用inner join來實現多表的內連接,不過為了更好的性能,建議最好不要超過三個表。

語法格式:select 表名1.字段1 表名2.字段2 from 表名1 inner join 表名2 on 表名1.字段=表名2.字段;

select info.name,info.score from info inner join info2 on info.name=info2,name;
#查詢info表和info2表中name相同的行,只顯示,info表中的name和score字段數據

MySQL 連接查詢和存儲過程,mysql,數據庫MySQL 連接查詢和存儲過程,mysql,數據庫

2、左連接

左連接也可以被稱為左外連接,?在from子句中使用left join 或者 left outer join 關鍵字來表示。

左連接以左側表為基礎表,接收左表的所有行,并用這些行與右側參考中的記錄進行匹配,也就是說?匹配左表的所有行以及右表中符合條件的行。

select * from info left join info2 on info.name=info2.name;
#左表的內容將全部顯示,右表只會顯示與左表共同字段的記錄,當右表沒有數據將與null顯示

MySQL 連接查詢和存儲過程,mysql,數據庫

3、右鏈接

右連接也稱為右外連接,在from子句中使用right join 或者right outer join 關鍵字來表示。右連接跟左連接正好相反,它是以右表為基礎表,用于接收右表中所有行,并用這些記錄與左表中的行進行匹配。

select * from info right join info2 on info.name=info2.name;
#右表全部的內容顯示,左表只顯示相同字段的記錄,左表不足的地方以null顯示

MySQL 連接查詢和存儲過程,mysql,數據庫

二、存儲過程

1、存儲過程簡介

存儲過程與函數的直接效果類似,只不過存儲過程,封裝的是一組sql語句。

mysql數據庫過程是一組為了完成特定功能的sql語句的集合。

存儲過程這個功能時從5.0版本才開始支持的,它可以加快數據庫的處理速度,增強數據庫在實際應用中的靈活性。

存儲過程在使用過程中是將常用或復雜的工作預先使用sql語句寫好,并用一個指定的名稱存儲起來,這個過程編譯和優(yōu)化后存儲在數據庫服務器中,當需要使用該存儲過程時,只需要調用它即可。

操作數據庫的傳統(tǒng)sql語句在執(zhí)行時,需要先編譯,然后再去執(zhí)行,跟存儲過程一對比,明顯存儲過程在執(zhí)行速度更快,效率更高。存儲過程在數據庫中創(chuàng)建并保存。它不僅僅是sql了語句的集合,還可以加入一些特殊的控制結構,也可以控制數據的訪問方式。

2、存儲過程的優(yōu)點

執(zhí)行一次后,會將生成的二進制代碼駐留緩沖區(qū),提高執(zhí)行效率
sql語句加上控制語句的集合,靈活性高
在服務器端存儲,客戶端調用時,降低網絡負載
可多次重復被調用,可隨時修改,不影響客戶端調用。
可完成所有的數據庫操作,也可控制數據庫的信息訪問權限

3、語法

create procedure ?<過程名> ([過程參數....]) <過程體>
[過程參數....] 格式
<過程名>:盡量避免與內置的函數或字段重名
<過程體>:語句
[in|out|inout] <參數名><類型>

3.1 參數分類

存儲過程的主題部分,即過程體

以begin 開始,end結束,若只有一條sql語句,可省略begin 和end

以delimiter 開始和結束

3.2 不加參數的存儲過程

delimiter @@    ##將語句的結束符號從分號臨時修改為@@,以防出問題,可以自定義

create proceduer  ydq()  #創(chuàng)建存儲過程,過程自定義,()可帶參數 
begin              #過程體以關鍵字begin開始
select * from info;    #過程體語句(可有多條)
end @@             #過程體以關鍵字end結尾

delimiter ;        #將語句的結束符號恢復為分號

show create proceduer ydq\G
#查看存儲過程信息

call ydq();   #調用存儲過程

以下面兩個表,寫出內連查詢的存儲過程

MySQL 連接查詢和存儲過程,mysql,數據庫MySQL 連接查詢和存儲過程,mysql,數據庫

3.3 帶參數的存儲過程

in輸入參數: in 表示調用者向過程傳入值(傳入值可以是字面量或變量)

out輸出參數: out表示過程向調用者傳出值(可以返回多個值)(傳出值只能是變量)

inout輸入/輸出參數: inout,即表示調用者向過程傳入值,又表示過程向調用者傳入值(只能是變量)

delimiter $$
create procedure ydq01(in inname varchar(40))
begin
create table if not exists ydq(id int(4),name varchar(40),score decimal(5,2));
insert into ydq values(1,'zhangsan',100),(2,'lisi',99);
select * from ydq where name=inname;
end $$
delimiter ;
call ydq01('lisi')

MySQL 連接查詢和存儲過程,mysql,數據庫MySQL 連接查詢和存儲過程,mysql,數據庫

3.4刪除存儲過程

drop procedure if exists ydq;
#刪除ydq存儲過程

MySQL 連接查詢和存儲過程,mysql,數據庫

3.5 事務和存儲過程有什么區(qū)別?

事務

實際而言,是存儲引擎的特性
目的性: 事務,是為了保證數據的一致性、完整性、原子性、持久性(ACID)
存儲過程

存儲過程中,包含了事務。(要看具體的存儲引擎,因為myisam不支持事務)

存儲過程的目的性: 簡化復雜性操作

? 減少數據庫資源消耗

? 可以通過傳參,方便、靈活的進行sql查詢類操作

三、總結

1、連接查詢

連接查詢分為內連查詢和左查詢、右查詢。

內連接:使用inner join 連接不同的表,顯示的數據為左右表都同時滿足的條件

左連接: 使用left join 連接不同的表,以左表為基礎顯示,去匹配右表顯示滿足條件的記錄

右連接: 使用 right joi 連接不同的表,以右表為基礎顯示,去匹配左表顯示滿足條件的記錄

2、存儲過程

存儲過程是將一些sql語句存儲在集合里面,當需要執(zhí)行這些語句的時候,就可進行call調用這個存儲過程,整體邏輯跟shell中函數一致。

主要可避免提高執(zhí)行sql語句的效率、提高靈活率。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-700697.html

到了這里,關于MySQL 連接查詢和存儲過程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Mysql數據庫(五) Mysql命令行客戶端:內連接查詢、左連接查詢、右連接查詢、自連接查詢、子查詢

    Mysql數據庫(五) Mysql命令行客戶端:內連接查詢、左連接查詢、右連接查詢、自連接查詢、子查詢

    目錄 一、 連接查詢 對多個表進行查詢 1.0 數據準備 1.1 連接查詢 1.2 內連接?INNER JOIN 1.3 左連接?LEFT JOIN 1.4 右連接?RIGHT JOIN 1.5 FULL OUTER JOIN 1.6 自連接查詢 1.7 子查詢-嵌套在查詢中 在之前的文章當中,我們在 base_1 當中有了一個 stu 表,記錄的是學生的name age height等信息 第一步

    2024年02月13日
    瀏覽(23)
  • Mysql查詢數據庫連接狀態(tài)及連接信息

    使用MySQL時,需要了解當前數據庫的情況,例如當前的數據庫大小、字符集、用戶等等。下面總結了一些查看數據庫相關信息的命令 查看顯示所有數據庫 查看當前使用的數據庫 查看數據庫使用端口 查看當前數據庫大小 例如,我要查看INVOICE數據庫的大小,那么可以通過下面

    2024年02月11日
    瀏覽(30)
  • ⑧【MySQL】數據庫查詢:內連接、外連接、自連接、子查詢、多表查詢

    ⑧【MySQL】數據庫查詢:內連接、外連接、自連接、子查詢、多表查詢

    個人簡介:Java領域新星創(chuàng)作者;阿里云技術博主、星級博主、專家博主;正在Java學習的路上摸爬滾打,記錄學習的過程~ 個人主頁:.29.的博客 學習社區(qū):進去逛一逛~ 多表關系 : 一對一 :在 任意一方 加入外鍵,關聯(lián)另一方的主鍵,并設置外鍵為唯一(UNIQUE)。 一對多(

    2024年02月05日
    瀏覽(23)
  • MySQL數據庫——存儲過程-變量(系統(tǒng)變量、用戶定義變量、局部變量)

    目錄 系統(tǒng)變量? 1.查看系統(tǒng)變量? 2.設置系統(tǒng)變量 演示示例 用戶定義變量 1.賦值? 2.使用 演示示例 局部變量 聲明? 賦值 演示示例 變量 在MySQL中變量分為三種類型: 系統(tǒng)變量、用戶定義變量、局部變量。 系統(tǒng)變量是MySQL服務器提供,不是用戶定義的,屬于服務器層面。分為全

    2024年02月05日
    瀏覽(43)
  • Mysql數據庫實驗報告--實驗五 存儲過程和觸發(fā)器

    Mysql數據庫實驗報告--實驗五 存儲過程和觸發(fā)器

    在這個系列會更新一些最近老師要求寫的實驗報告~ 大家盡量對著我的文章做一個參考,不要盲目的cv,畢竟這個對于我們以后的工作學習還是十分重要的。 從這個實驗開始,就不在cmd命令行里面進行mysql數據庫的操作,因為代碼長度和代碼的復雜性,需使用 MySQL Workbench: 雙

    2024年02月09日
    瀏覽(101)
  • 使用MySQL存儲過程提高數據庫效率和可維護性

    使用MySQL存儲過程提高數據庫效率和可維護性

    MySQL 存儲過程是一種強大的數據庫功能,它允許你在數據庫中存儲和執(zhí)行一組SQL語句,類似于編程中的函數。存儲過程可以大幅提高數據庫的性能、安全性和可維護性。本文將詳細介紹MySQL存儲過程的使用。 MySQL存儲過程是一組預編譯的SQL語句,它們以一個名稱存儲在數據庫

    2024年02月08日
    瀏覽(22)
  • MySQL數據庫——存儲過程-介紹以及基本語法(特點、創(chuàng)建、調用、查看、刪除、示例)

    MySQL數據庫——存儲過程-介紹以及基本語法(特點、創(chuàng)建、調用、查看、刪除、示例)

    目錄 介紹 特點 基本語法 創(chuàng)建 調用 查看 刪除? 示例? 存儲過程是 事先經過編譯 并 存儲在數據庫 中的一段 SQL 語句的 集合 ,調用存儲過程可以簡化應用開發(fā)人員的很多工作,減少數據在數據庫和應用服務器之間的傳輸,對于提高數據處理的效率是有好處的。 存儲過程思想

    2024年02月06日
    瀏覽(100)
  • 【MySQL】探索MySQL存儲過程的魔力,初學者的數據庫編程秘笈(內含實戰(zhàn)SQL腳本)

    【MySQL】探索MySQL存儲過程的魔力,初學者的數據庫編程秘笈(內含實戰(zhàn)SQL腳本)

    ?????作者名稱:DaenCode ??作者簡介:啥技術都喜歡搗鼓搗鼓,喜歡分享技術、經驗、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:重溫MySQL MySQL存儲過程作為一種服務器端的 數據庫編程方式 ,提供了高效、可重用的方法來執(zhí)行相對復雜的數據庫操

    2024年02月15日
    瀏覽(94)
  • QT實現連接MySQL數據庫以及查詢等操作

    QT實現連接MySQL數據庫以及查詢等操作

    功能包含數據庫的增刪改查和界面的顯示,因為沒有用.ui文件所以控件的位置都是手動設置的,寫的有點費勁 首先打開Navicat,新建一個名字為bak_db的數據庫,然后新建查詢導入下面的sql語句: 然后刷新顯示表已經創(chuàng)建好了,接下來就開始進行操作了: 文件結構 源碼在我的

    2024年02月04日
    瀏覽(30)
  • 查詢Oracle和MySQL數據庫中當前所有連接信息

    查詢Oracle當前所有連接信息: 查詢MySQL當前所有連接信息: 在這兩個查詢中,我為每個字段添加了中文別名,以提高查詢結果的可讀性

    2024年02月12日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包