![MySQL高級(jí)教程 筆記_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/dea965b6-a92d-4470-bbdc-7ef63c82aa1e/dea965b6-a92d-4470-bbdc-7ef63c82aa1e1.gif)
![MySQL高級(jí)教程 筆記_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/dea965b6-a92d-4470-bbdc-7ef63c82aa1e/dea965b6-a92d-4470-bbdc-7ef63c82aa1e2.gif)
![MySQL高級(jí)教程 筆記_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/dea965b6-a92d-4470-bbdc-7ef63c82aa1e/dea965b6-a92d-4470-bbdc-7ef63c82aa1e3.gif)
![MySQL高級(jí)教程 筆記_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/dea965b6-a92d-4470-bbdc-7ef63c82aa1e/dea965b6-a92d-4470-bbdc-7ef63c82aa1e4.gif)
![MySQL高級(jí)教程 筆記_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/9/dea965b6-a92d-4470-bbdc-7ef63c82aa1e/dea965b6-a92d-4470-bbdc-7ef63c82aa1e5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、泰牛程序員 PHP學(xué)院 MySQL-高級(jí)1標(biāo)題1錯(cuò)誤!未定義書簽。1.1標(biāo)題2錯(cuò)誤!未定義書簽。1.1.1標(biāo)題3錯(cuò)誤!未定義書簽。1 概述MySQL中的SQL編程的話題.觸發(fā)器, 存儲(chǔ)函數(shù), 存儲(chǔ)過(guò)程以上的是三個(gè)名詞, 在SQL編程中, 地位是: 程序的載體, 程序的結(jié)果.編程所涉及的要素:變量, 數(shù)據(jù)類型, 流程控制, 函數(shù), 運(yùn)算符, 表達(dá)式.2 函數(shù)2.1 內(nèi)置函數(shù)MySQL自動(dòng)提供的函數(shù)!例如: database(), now(), md5()2.2 自定義函數(shù) 存儲(chǔ)函數(shù)用戶定義定義的, 存儲(chǔ)在MySQL中的函數(shù).2.2.1 create function, 創(chuàng)建函數(shù)適用語(yǔ)法:來(lái)創(chuàng)建函
2、數(shù)2.2.2 調(diào)用函數(shù)2.2.3 drop function , 刪除函數(shù) drop function if exists function-name;3 變量 編程要素程序 處理數(shù)據(jù). 數(shù)據(jù)在程序中的容器, 就是變量.強(qiáng)類型3.1 全局變量函數(shù)外定義的變量變量不需要聲明, 直接去設(shè)置即可!PS, 內(nèi)置的變量: set autocommit = off, 不以 開頭3.2 局部變量函數(shù)內(nèi)定義的變量使用declare來(lái)聲明.不需要使用, 表示是用戶自定義變量.強(qiáng)類型, 定義的局部變量, 必須定義為某種類型, 類型的表述與字段的類型一致!3.3 重疊(嵌套)作用域局部?jī)?nèi), 可訪問(wèn)到全局變量PS:
3、與JS保持一致13.4 變量的賦值3.4.1 set 變量 = 值 3.4.2 select into 變量當(dāng)需要為變量賦值的數(shù)據(jù), 來(lái)源于SQL中select語(yǔ)句的查詢結(jié)果時(shí), 可以使用select into完成變量的賦值.一次性, 賦值多個(gè)變量:函數(shù)內(nèi), 也可以使用4 流程控制 編程要素循環(huán)和分支4.1 分支- IF測(cè)試結(jié)果4.1.1 內(nèi)置分支函數(shù): if()不是分支, 是典型的 三元運(yùn)算, 的函數(shù)封裝語(yǔ)法MySQL不支持三元運(yùn)算符 ? :.4.2 分支-CASE測(cè)試結(jié)果4.3 循環(huán) while條件滿足, 則循環(huán)繼續(xù)其中標(biāo)簽, 用于在循環(huán)終止時(shí), 一次性的終止多層循環(huán)! 類似于JS的語(yǔ)法.
4、 例如:4.4 循環(huán) 終止終止當(dāng)前循環(huán):(continue), iterate終止全部:(break), leave終止, 都需要配合 循環(huán)語(yǔ)句的標(biāo)簽使用!ierate:leave:如果需要終止多層:需要在 后邊跟隨 不同的標(biāo)簽即可5 過(guò)程 存儲(chǔ)過(guò)程 procedure與函數(shù)類似, 都是一段功能代碼的集合, 稱之為過(guò)程.與函數(shù)不一樣的是, 函數(shù)由于完成某個(gè)特定的操作點(diǎn), 例如, md5(), 獲取md5摘要信息, 不是用來(lái)實(shí)現(xiàn)某中也無(wú)路基操作, 而是就是實(shí)現(xiàn)特定的操作. 過(guò)程是, 某個(gè)特定的業(yè)務(wù)邏輯. 當(dāng)我們需要使用SQL完成某件事時(shí)候, 使用過(guò)程, 而在過(guò)程的完成中, 需要一些特殊的操作,
5、就是函數(shù).例如: 需要插入, 1000條記錄到某測(cè)試表中, 此時(shí)就應(yīng)該創(chuàng)建過(guò)程.而在插入的時(shí)候, 需要隨機(jī)的獲取學(xué)生的姓名, 就可以定義一個(gè)函數(shù), 完成獲取隨機(jī)的學(xué)生姓名工作.映射到PHP程序: 瀏覽器所請(qǐng)求的一個(gè)URL, 對(duì)應(yīng)的PHP代碼, 就是一段過(guò)程. (例如, 商品添加, 用戶注冊(cè)), 就是過(guò)程.而在完成這個(gè)過(guò)程中, 需要將用戶的密碼做md5處理, md5就是函數(shù).因此, 函數(shù)在意的是處理結(jié)果,函數(shù)具有返回值.而過(guò)程是一段執(zhí)行, 不具有返回值.語(yǔ)法5.1 創(chuàng)建過(guò)程: create procedure注意: 沒(méi)有返回值 參數(shù)有輸入方式之分.過(guò)程內(nèi)的寫法, 與函數(shù)是一致的. 5.2 調(diào)用過(guò)
6、程, call 過(guò)程()過(guò)程的調(diào)用不能出現(xiàn)在表達(dá)式中, 需要使用獨(dú)立的語(yǔ)法進(jìn)行獨(dú)立調(diào)用. / 表達(dá)式中max(class_id) + 10;需要用 call5.3 刪除過(guò)程, drop procedure5.4 參數(shù)的輸入類型, in, out, inoutin, out, inout, 表示, 過(guò)程的參數(shù)的數(shù)據(jù)的傳遞方向. in: 由外向內(nèi)傳遞out: 由內(nèi)向外傳遞inout: 雙向傳遞, 即可內(nèi)向外, 也可外向內(nèi)內(nèi), 外, 指的是, 過(guò)程外和過(guò)程內(nèi).創(chuàng)建 過(guò)程外的三個(gè)變量:以三個(gè)變量作為實(shí)參, 調(diào)用過(guò)程:在獲取過(guò)程外三個(gè)變量的值:inout 雙向傳遞, 類似于 PHP中的引用傳遞!由于過(guò)程
7、沒(méi)有返回值, 需要在過(guò)程處理后, 得到過(guò)程的處理結(jié)果數(shù)據(jù), 就因該, 使用 帶有out類型的參數(shù).一個(gè)數(shù)據(jù)時(shí)被多個(gè)過(guò)程連續(xù)處理, 典型的需要 inout類型的參數(shù).6 練習(xí)一個(gè)純粹的MySQL管理員需要完成某些操作, 需要使用過(guò)程, MySQL自帶的編程方式.例如, 需要?jiǎng)?chuàng)建大量的測(cè)試數(shù)據(jù), 可以過(guò)程完成:確定測(cè)試表的結(jié)構(gòu)確定需要插入的數(shù)據(jù)格式要求: 學(xué)號(hào)要 從1開始 遞增.班級(jí)ID, 從1-100 隨機(jī)姓名, 隨機(jī)得來(lái)說(shuō)明: 任意編程實(shí)現(xiàn):編寫, 需要的函數(shù):獲取班級(jí)ID生成名字:生成信息生成學(xué)號(hào)從1開始 遞增it-0000001it-0000002取得已有的最大學(xué)號(hào).調(diào)用過(guò)程即可:測(cè)試數(shù)據(jù)
8、7 觸發(fā)器 trigger事件驅(qū)動(dòng)程序: 監(jiān)聽元素某些事件, 當(dāng)事件被觸發(fā)時(shí), 事件處理器被調(diào)用.(PS: 類似于JS的事件驅(qū)動(dòng))觸發(fā)器的事件: insert, delete, update擴(kuò)展開共六種: before insert, after insertbefore delete, after deletebefore update, after update事件都是記錄對(duì)象的事件, row的before insert, row after insert.語(yǔ)法7.1 創(chuàng)建觸發(fā)器, create trigger綁定事件處理器, 到 row 元素上.測(cè)試, 在學(xué)生表的添加事件上 增加觸發(fā)器程
9、序:一旦學(xué)生表添加, 則在學(xué)生日志表中, 加入一條記錄檢測(cè)學(xué)生日志表:觸發(fā)程序被自動(dòng)調(diào)用觸發(fā)器, 只是 調(diào)用方式不同于存儲(chǔ)過(guò)程而已, 都是功能的集合.7.2 刪除觸發(fā)器drop trigger tigger-name7.3 new, old預(yù)定義的變量, 表示觸發(fā)該事件的行對(duì)象.就是 事件源記錄. 使用 new, old 來(lái)引用這個(gè)事件源記錄.new 和 old的區(qū)別:new, 新紀(jì)錄old, 舊記錄.只有在update事件時(shí), 才會(huì)出現(xiàn) 新舊記錄同時(shí)存在的情況. 更新: 將舊記錄更改成新紀(jì)錄.在 insert事件中, 只有new可用. before insert, after insert
10、, 都可以使用new.在delete事件中, 只有 old可用. before delete after delete 都可以使用 old無(wú)論是 before還是insert 都一樣.7.4 事件的觸發(fā)可能會(huì)出現(xiàn)執(zhí)行一條語(yǔ)句 , 觸發(fā)多個(gè)事件的情況.有些語(yǔ)句, 帶有邏輯判定功能:replace into, 嘗試插入, 如果沖突, 則替換(刪除舊的,插入新的)類似的: insert into on duplicate key update 沖突時(shí)更新一個(gè)表, 的一個(gè)事件, 僅僅可以綁定一個(gè)事件處理器.一個(gè)表 最多可以有6個(gè)觸發(fā)器.8 架構(gòu)讀寫分離, 負(fù)載均衡.8.1 讀, 寫服務(wù)器分離設(shè)計(jì):56
11、.101, MySQL 充當(dāng)寫服務(wù)器.再添加2臺(tái)linux 充當(dāng)讀服務(wù)器:初始化mac地址完全復(fù)制復(fù)制后, 啟動(dòng)復(fù)制的服務(wù)器:刪除, 之前所保留的 虛擬化網(wǎng)卡的文件, 使新生成的網(wǎng)卡生效.修改 eth0的配置文件: 修改mac地址參數(shù):修改為, virtualbox生成的mac地址:保持一致init 6 重啟8.2 讀從寫服務(wù)器 復(fù)制數(shù)據(jù)在主服務(wù)器上開一個(gè)復(fù)制賬號(hào), 從服務(wù)器利用這個(gè)復(fù)制賬號(hào), 從主服務(wù)器進(jìn)行復(fù)制.配置過(guò)程如下:8.2.1 主服務(wù)器8.2.1.1 開啟二進(jìn)制日志8.2.1.2 指定唯一的服務(wù)器ID保證唯一即可!需要重啟 mysqld(可以與步驟一一起完成)8.2.1.3 增加復(fù)制賬號(hào)登錄主MySQL, 增加賬號(hào), 刷新權(quán)限.8.2.1.4 記錄
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 虛擬演播室制作設(shè)備項(xiàng)目籌資方案
- 文山2024年云南文山市緊密型醫(yī)療衛(wèi)生共同體總醫(yī)院招聘54人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)減脂儀市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)高效低噪音節(jié)能離心通風(fēng)機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年紅瑪瑙情侶吊墜項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)短袖迷彩服行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年洗衣車項(xiàng)目可行性研究報(bào)告
- 2025年有色打字機(jī)項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)小麥胚芽油軟膠囊行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年實(shí)木復(fù)合拼花門項(xiàng)目可行性研究報(bào)告
- 化學(xué)選修4《化學(xué)反應(yīng)原理》(人教版)全部完整PP課件
- 《煤礦安全規(guī)程》專家解讀(詳細(xì)版)
- 招聘面試流程sop
- 建筑公司工程財(cái)務(wù)報(bào)銷制度(精選7篇)
- 工程設(shè)計(jì)方案定案表
- 最新2022年減肥食品市場(chǎng)現(xiàn)狀與發(fā)展趨勢(shì)預(yù)測(cè)
- 第一章-天氣圖基本分析方法課件
- 暖氣管道安裝施工計(jì)劃
- 體育實(shí)習(xí)周記20篇
- 初二物理彈力知識(shí)要點(diǎn)及練習(xí)
- 復(fù)合材料成型工藝及特點(diǎn)
評(píng)論
0/150
提交評(píng)論