<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ```sql # 定義存儲過程的語法 CREATE PROCEDURE process_name(params_list) [COMMENT 'string'] [LANGUAGE SQL] [DETERMINISTIC | NOT DETERMINISTIC] [CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA] [SQL SECURITY {DEFINER | INVOKER}] BEGIN -- 業務邏輯代碼, -- 如果這里只有一條SQL語句,則可以省略BEGIN與END END; - process_name:自定義的存儲過程名稱,建議避免與MySQL中的函數重名 - params_list:參數列表,參數之間用 , 隔開 - 一個參數由三部分組成:【參數模式 參數名 參數類型】,如 in params varchar(255) - 參數名:建議不要與表中的列名同名 - 參數模式: - in:該參數可以作為輸入,也就是該參數需要調用方傳入值 - out:該參數可以作為輸出,也就是該參數可以作為返回值 - inout:該參數既可以作為輸入又可以作為輸出, 也就是該參數既需要傳入值,又可以返回值 - 參數類型:如varchar(255) 長度可省略 - COMMENT'string':用于對存儲過程的描述,其中string為描述內容,comment為關鍵字 - LANGUAGE SQL:指明編寫這個存儲過程的語言為SQL語言 - DETERMINISTIC:表示存儲過程對同樣的輸入參數產生相同的結果 - NOT DETERMINISTIC:表示存儲過程對同樣的輸入參數產生不相同的結果(默認) - CONTAINS SQL:表示存儲過程包含讀或寫數據的SQL語句(默認) - NO SQL:表示存儲過程不包含任何SQL語句 - READS SQL DATA:表示存儲過程只包含讀數據的SQL語句 - MODIFIES SQL DATA:表示存儲過程只包含寫數據的SQL語句 - SQL SECURITY:表示存儲過程的調用是用存儲過程的定義者的許可(definer,默認)來執行, 還是用調用者的許可(invoker)來執行 ``` ```sql # 案例演示準備數據 drop table if exists `user`; create table `user`( `id` int(11) primary key not null auto_increment, `username` varchar(255) not null, `password` varchar(255) not null )engine=INNODB default charset=utf8; insert into `user`(`id`, `username`, `password`) values(1, '張三', 'zhangsan'); insert into `user`(`id`, `username`, `password`) values(2, '李四', 'lisi'); ``` **演示1:向表插入一條數據** ```sql --結束符號默認為 ; ,存儲過程內使用 ; 結束一個語句 --在命令行模式下,為了便于區分可以自定義一個結束符號 $ delimiter $ create procedure proce_user01() begin insert into user(`id`,`username`, `password`) values(3, '王五', 'wangwu'); end $ # 調用存儲過程 mysql> call proce_user01() $ mysql> select * from user $ +----+----------+----------+ | id | username | password | +----+----------+----------+ | 1 | 張三 | zhangsan | | 2 | 李四 | lisi | | 3 | 王五 | wangwu | +----+----------+----------+ ``` **演示2:`in`與`out`參數模式** ```sql # 定義存儲過程 delimiter $ create procedure proce_user02(in inValue varchar(255), out outValue varchar(255)) begin select username into outValue from user where password=inValue; end $ # 調用存儲過程 call proce_user02('zhangsan', @outVal) $ mysql> select @outval $ +---------+ | @outval | +---------+ | 張三 | +---------+ ``` **演示3:`inout`參數** ```sql # 定義存儲過程 delimiter $ create procedure proce_user03(inout ioValue varchar(255)) begin -- 聲明局部變量 tempVal declare tempVal varchar(255) default null; set tempVal = ioValue; set ioValue = 'newIoValue'; select tempVal; end $ # 調用存儲過程 set @ioVal = 'oldIoValue' $ mysql> call proce_user03(@ioVal) $ +------------+ | tempVal | +------------+ | oldIoValue | +------------+ mysql> select @ioVal $ +------------+ | @ioVal | +------------+ | newIoValue | +------------+ ``` **演示4:登錄驗證** ```sql # 定義存儲過程 create procedure proce_login_user(in uname varchar(255), in pass varchar(255), out result int) begin select count(1) into result from `user` where password=pass and username=uname; end $ # 調用存儲過程 set @uname='王五' $ set @pass='wangwu' $ call proce_login_user(@uname, @pass, @result) $ mysql> select @result $ +---------+ | @result | +---------+ | 1 | +---------+ ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看