內建函式與儲存過程

2021-06-17 16:23:56 字數 2931 閱讀 9647

一、內建函式

rpad(『被填充物件』,最終長度,填充內容)

lpad:擷取、填充

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

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

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

開始擷取的位置從1開始,>=1

-------------------------------是負數,表示從後向前擷取

strcmp:(字元1,字元2):按照位元組比較

相等:0,大於:1 小於:-1

時間日期函式

mysql page115-129

now():

curtime():當前時間

curdate():當前日期

year():  year(now()-出生日期)獲取年齡

練習其他函式

1、加密函式

2、控制流函式

ifnull()

nullif();

if()

3、格式化函式

format  小數格式化

date_format: 日期格式化

time_format: 時間格式化

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

4、型別轉換

cast(要轉換的物件 as 型別)

5、系統資訊函式

二語言結構

ddl:資料定義語言create alter drop

dml: 資料操縱語言insert  delete update select(查詢語言)

dcl:資料控制語言 grant revoke 等

三、常量(值一直不變的量)

『a』 12  3 3.14

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

1)使用者變數(和會話----連線伺服器到退出伺服器的一段時間)

@變數名

一定要初始化

定義使用者變數:set @a=2,@;

獲取該變數資訊:select @a

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

2)系統變數

@@version

select @@version;

儲存過程

類似函式:批量處理

1、  為什麼使用

mysql伺服器在快取機制做了改進,使用了類似預處理的那種方式,由於沒有編譯器,因此mysql儲存過程不會像外部語言(c)編寫的程式執行的那麼快,提公升速度最主要的方法有兩種:降低網路的資訊流量,減少使用者與伺服器之間的互動;

因為儲存過程是在伺服器端執行,所以使用儲存過程就會減少客戶與伺服器的資訊量。

改變主機語言也可以,儲存過程只是資料庫邏輯而不是應用程式,可移植性好,和作業系統、主機型號等無關;

2、  要求

²        proc表

²        具有create routine(例程)的許可權

²        返回標量值

²        隱含呼叫use庫名,刪除資料庫,儲存過程也被刪除

3、  語法格式

create procedure 儲存過程名(引數)

特徵描述

sql語句體

4、  例如

1)  use 庫名;

2)  create procedure p1()

begin

/* this  is my first procedure */

end;

注意:u       begin……end 相當於{}的作用

u       如果sql語句體只有一句可以省略begin……end

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

u       名稱長度限制為64字元

u       ()可以為空不能省略

u       通常情況下select不會出現在儲存過程體內

u       大部分ddl、dml都是合法語句

非法語句

create procedure db.p() drop database  db;

含有use 庫名等

3)  呼叫儲存過程

call 儲存過程名(。。。)

4)帶有描述資訊儲存過程

create procedure p3()

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

目前只支援sql語句,將來可能會使用php來代替sql語句

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

sql security definer----建立者

comment 『a procedure』-----給儲存過程加注釋

select * .....sql語句體

5)當語句體內容兩條以上,結束符

sql:

create procedure p4()

begin

select * from kc;---會給出錯誤提示,直接結束儲存過程的宣告

select * from xs;

end;

delimiter----宣告結束符

delemiter//

引數:  [in|out|inout] 參變數  資料型別

declare:宣告儲存過程的區域性變數

1)第一種方法:分兩步實現

declare 變數名  資料型別;宣告

定義的變數不進行初始化,預設為null,該值進行的所有操作,結果都為空

set 變數=值(也可以是表示式); 賦值

2)第二種方法

也可用同一條語句完成變數的宣告和初始化

declare 變數名 資料型別 default 值;

儲存過程是我們今天新學的,有好多的函式需要我們記住,所以我們一定要先把這些函式練習一遍,然後把儲存過程了解了,今天老師說了考試有淘汰制,我是相當的緊張啊,希望我不是淘汰的那個!加油!加油!加油!

儲存過程和內建函式

今天老師帶著我們學習了 儲存過程的一些知識還有內建函式這兩塊內容。1,儲存過程 1 使用儲存的原因 mysql伺服器在快取機制做了改進,使用類似預處理的那種方式,由於沒有編譯器,因此 mysql 儲存過程不會像外部語言 c 編寫的程式執行的那麼快。提公升速度最主要的方法有兩種 降低網路的資訊流量,減...

儲存過程與儲存函式

plsql中語法 create or replace procedure 過程名 引數名 in out 型別 asbegin end 宣告pro add sal儲存過程,作用是給指定員工漲1000元工資,並列印出漲前和漲後工資 create orreplace procedure pro add s...

函式與儲存過程

函式是命名了的 儲存在資料庫中的 pl sql 程式塊。函式接受零個或多個輸入引數,有乙個返回值,返回值的資料型別在建立函式時定義。定義函式的語法如下 function name parameter parameter,return datatypes is local declarations b...