天天看點

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

平時和資料打交道比較多的測試同學,可能會經常接觸到資料庫,增删改查是最基本的sql語句運用,但是遇到一些特殊場景的時候,需要同時對大批量資料進行操作,常備的基本句式可能就應付不過來了,例如你要準備5萬條測試資料,難道要用insert into一行行新增嗎;或者讓你批量修改某張大表中的某一列資料呢?

這種時候我們往往需要借助存儲過程。

存儲過程,就是在資料庫中編寫的sql語句集合,隻要編寫一次就可以反複使用,學習過Python或者其它語言的同學,把它當成函數或者方法,可能會更加容易了解一點。

----------------------------------------

首先,我們來學習一下,存儲過程的基本結構:

存儲過程叫做procedure,我們使用create語句來建立,begin和end中間的部分,就是存儲過程需要執行的語句。

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

test是這個存儲過程的名字,括号裡面可以寫傳入或者傳出的參數,我們來寫個簡單的例子。

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

這個例子裡面,添加了兩行新内容,in a int,in b int ,表示可以接收使用者傳入的兩個整型值,select a+b 表示将使用者傳入的兩個值相加後輸出列印。

調用剛剛寫好的存儲過程,我們使用call。

call後面加上存儲過程的名字,括号中加上傳入的參數值,數量和順序要與定義的參數類型和數量一緻。

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

----------------------------------------

除了可以在括号中定義參數,也可以在存儲過程内部定義。

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

declare是聲明變量的名字和類型,set給這個變量指派,select将其值輸出列印。

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

----------------------------------------

接下來可以講講最基本的兩個控制語句了。

----------------------------------------

if 判斷語句在存儲過程中的基本結構是:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

寫一個簡單的腳本:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

腳本的意思是,讓使用者輸入一個數,我在過程内定義一個數,然後比較兩個數字的大小。

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

----------------------------------------

循環語句可選擇的比較多,這裡我們主要用while來嘗試一下。

while的基本文法結構是:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

我們來寫個簡單的例子

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

循環的列印1到10的數(一定要注意循環中是否有自增或者自減的存在):

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

----------------------------------------

現在我們來看看如何使用随機函數來制造随機的數字、随機的字元串和随機的日期。

随機函數在mysql中是rand(),這個函數随機的範圍是0--1之間的小數。

★如果想要随機某個範圍的整數,有個基本的數學公式:

floor(開始值+rand()*(結束值-開始值+1));

例如要随機50-100之間的整數,可以使用floor(50+rand()*(100-50+1));

★随機字元串需要将rand()随機,substr()字元串截取,concat()字元串拼接這幾個函數結合起來運作

舉個例子,加入現在想要随機一個姓名,可以簡單的這麼設計,随機一個姓,再随機一個名,然後拼起來。

現在實作姓的随機:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

在百家姓中随機一個位置,然後截取一個長度的字元,這不就是随機一個姓氏嗎。

相同的操作再來一遍:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

現在我們有了随機的名。

最後拼接一下:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

随機的名字出現了!

★随機的日期我們也可以實作一下:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

看到這裡的同學們,肯定覺得腳本已經漸漸瘋狂......

還沒有停止,我們把這些随機統統塞到一起去,實作往表中指定插入資料的效果。

現在有張空表,往裡面插入100行測試資料:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...
call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...
call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

看下效果:

call 存儲過程時必須聲明表示符_mysql資料庫中的存儲過程以及常用随機值的腳本運用...

搞定!!!

學會了嗎?

小z老師講測試