儲存過程和內建函式

2021-06-16 07:14:27 字數 2485 閱讀 8220

今天老師帶著我們學習了:儲存過程的一些知識還有內建函式這兩塊內容。

1,儲存過程:

1)使用儲存的原因:mysql伺服器在快取機制做了改進,使用類似預處理的那種方式,由於沒有編譯器,因此

mysql

儲存過程不會像外部語言(

c)編寫的程式執行的那麼快。提公升速度最主要的方法有兩種:降低網路的資訊流量,減少使用者與伺服器之間的互動;因為儲存過程是在伺服器端執行,所以使用儲存過程就會減少客戶與伺服器之間的資訊量。改變主機語言也可以,儲存過程只是資料庫邏輯而不是應用程式,可移植性好,和作業系統、主機型號等無關;

2)語法格式:create procdure 儲存過程名(引數)

特徵描述

sql語句體

例子:use  test;

create  procedure  p1()

begin 

/*this is my first procedure*/

end;

3)儲存過程中應該注意的:

begin。。。

end相當於

{}的作用

如果sql

語句體只有一句可以省略

begin

。。end

名稱不區分大小寫,盡量避免與內建函式同名,假如同名則在名稱()  之間加空格;

名稱長度限制64

字元;

()可以為空,不能省略

通常select

不會出現在儲存過程體內

大部分的ddl

、dml

都是合法語句

非法語句:

create procedure  db.p()  drop  database  db;

含有use  

庫名等

4)儲存過程的呼叫:

語法格式:call  儲存過程名

(…);

5)帶有描述資訊的儲存過程:

例子:     create  procedure  p3()

language sql ----宣告用什麼語言來實現儲存過程

( 目前只支援sql

語句,將來可能會使用

php

來代替sql)

not  deterministic---返回的結果不確定

sql  security  definer----建立者

comment  『 

a  procedure

』---

給儲存過程加注釋

select  *  。。。

------sql 

語句體;

2,內建函式:

1)字串函式:ascii():返回

char

型別資料中第乙個對應的整型;

char():輸入

0-255

之間的整數,返回

char

型別;

left(字元,長度):可以對欄位內容進行擷取

right(字元,長度)

rpad(』填充物件』,最終的長度,填充內容):

lpad :擷取、填充

replace(「被作用的物件」,被替換的內容,替換後的內容);

例:select replace('123ab123a123','a','f');

結果: 123fb123f123

c oncat:連線字串,逗號作為分隔符

例: select concat ('a','b');

結果: ab

substring(「被作用的物件」,開始擷取位置,擷取的長度);

例: select substring('abcdef'tg,1,2);

結果:ab

(開始擷取的位置從1

開始,>=1…………………是負數,表示從後向前擷取)

strcmp(字元

1,字元

2);按照位元組比較相等  

0,大於 

1,小於 -1

例: select strcmp('a','b');

結果:1

2)日期和時間函式:now();curtime()curdate()year()    

3)控制流函式: ifnull()nullif() if()

4)格式化函式format:針對浮點 date_format:日期格式化time_format:時間格式化

注意:字元和時間日期需要單引號

5) 型別轉換

語法格式:  cast(要轉換的物件  

as  

型別);

6)常量

例如:『a』  12  3.14

變數:儲存執行過程中的臨時結果

1)使用者變數(和會話

---連線伺服器到退出伺服器的一段時間)

@變數名一定要初始化

set @a=2;

select @a;

select 返回結果分幾類:表,列,行,值(標量)

2)系統變數  

@@version

結語:時間過的真快,轉眼第三週了,我要加倍努力了!

內建函式與儲存過程

一 內建函式 rpad 被填充物件 最終長度,填充內容 lpad 擷取 填充 replace 被作用的物件 被替換的內容,替換後的內容 concat 連線字串,逗號作為分隔符 substring 被作用的物件 開始擷取的位置,擷取的長度 開始擷取的位置從1開始,1 是負數,表示從後向前擷取 strc...

儲存過程和儲存函式

1 mysql 在操作子程式時,由於需要使用分號 所以要使用delimiter先重新定義分界符為 以下 包含的內容表示注釋 delimiter 使用delimiter 把定界符由 設定為 注意 delimiter 和 之間的空格。1 建立子程式 儲存過程和儲存函式的統稱 create procedu...

儲存過程和儲存函式

儲存過程 stored procedure 是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫。中使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它 優點 1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而 一般sql 語句每執行一次就編譯一次,...