今天老師帶著我們學習了:儲存過程的一些知識還有內建函式這兩塊內容。
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 語句每執行一次就編譯一次,...