一、內建函式
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...