Artikel ini membawakan anda pengetahuan yang berkaitan tentang pembolehubah tersuai dan pembatas akhir pernyataan dalam mysql.
Kadangkala untuk melengkapkan fungsi biasa, banyak pernyataan perlu dilaksanakan dan setiap kali anda perlu memasukkan pernyataan ini satu demi satu satu dalam klien Pelbagai pernyataan menjengkelkan. Pakcik yang merancang MySQL
dengan sangat teliti memberikan kami sesuatu yang dipanggil 存储程序
ini boleh merangkum beberapa kenyataan dan kemudian memberikan pengguna cara mudah untuk memanggil program yang disimpan ini, dengan itu melaksanakan pernyataan ini secara tidak langsung. Mengikut kaedah panggilan yang berbeza, kita boleh membahagikan 存储程序
kepada beberapa jenis: 存储程序
, 存储例程
dan 触发器
. Antaranya, 事件
boleh dibahagikan kepada 存储例程
dan 存储函数
. Mari lukis gambar untuk menunjukkannya: 存储过程
secara rasmi, kami perlu terlebih dahulu memahami konsep pembolehubah tersuai dan pembatas akhir pernyataan dalam 存储程序
. MySQL
dan rentetan 100
Kami menetapkan nilai ini Dongdong memanggilnya '你好呀'
. Tetapi kadangkala untuk kemudahan, kami akan menggunakan simbol tertentu untuk mewakili nilai, dan nilai yang diwakilinya boleh berubah. Sebagai contoh, kami menetapkan bahawa simbol 常量
mewakili nombor a
, dan kemudian kami boleh membiarkan simbol 1
mewakili nombor a
Kami memanggil perkara seperti ini yang nilainya boleh berubah 2
, di mana simbol 变量
dipanggil a
pembolehubah ini. Dalam 变量名
, kita boleh menyesuaikan beberapa pembolehubah kita sendiri melalui penyataan MySQL
, contohnya: SET
mysql> SET @a = 1; Query OK, 0 rows affected (0.00 sec) mysql>
pembolehubah dan tetapkan integer a
kepada pembolehubah ini. Walau bagaimanapun, semua orang perlu memberi perhatian kepada hakikat bahawa bapa saudara yang mereka bentuk MySQL menetapkan bahawa kita mesti menambah simbol 1
di hadapan pembolehubah tersuai kami (walaupun ia agak pelik, ini adalah yang ditetapkan oleh orang lain, jadi semua orang boleh mematuhinya). @
, tetapi kita masih perlu menambah simbol SELECT
sebelum nama pembolehubah: @
mysql> SELECT @a; +------+ | @a | +------+ | 1 | +------+ 1 row in set (0.00 sec) mysql>
: a
mysql> SET @a = '哈哈哈'; Query OK, 0 rows affected (0.01 sec) mysql> SELECT @a; +-----------+ | @a | +-----------+ | 哈哈哈 | +-----------+ 1 row in set (0.00 sec) mysql>
mysql> SET @b = @a; Query OK, 0 rows affected (0.00 sec) mysql> select @b; +-----------+ | @b | +-----------+ | 哈哈哈 | +-----------+ 1 row in set (0.00 sec) mysql>
dan a
mempunyai nilai yang sama b
! '哇哈哈'
mysql> SET @a = (SELECT m1 FROM t1 LIMIT 1); Query OK, 0 rows affected (0.00 sec) mysql>
mysql> SELECT n1 FROM t1 LIMIT 1 INTO @b; Query OK, 1 row affected (0.00 sec) mysql>
dan SELECT m1 FROM t1 LIMIT 1
hanya mempunyai satu nilai, mereka boleh ditugaskan terus kepada pembolehubah SELECT n1 FROM t1 LIMIT 1
atau a
. Mari semak nilai kedua-dua pembolehubah ini: b
mysql> SELECT @a, @b; +------+------+ | @a | @b | +------+------+ | 1 | a | +------+------+ 1 row in set (0.00 sec) mysql>
pernyataan boleh digunakan: INTO
mysql> SELECT m1, n1 FROM t1 LIMIT 1 INTO @a, @b; Query OK, 1 row affected (0.00 sec) mysql>
rekod ini kepada pembolehubah , nilai. daripada lajur m1
diperuntukkan kepada pembolehubah a
. n1
b
Penghalang akhir pernyataan
akan mengesan perkara yang kami masukkan Adakah ia mengandungi salah satu daripada tiga simbol MySQL
, MySQL
atau ;
? Jika ya, kandungan yang kami masukkan akan dihantar ke pelayan. Dengan cara ini, jika kami ingin menghantar berbilang mesej ke pelayan sekaligus, kami perlu menulis pernyataan ini dalam satu baris, seperti ini: g
G
mysql> SELECT * FROM t1 LIMIT 1;SELECT * FROM t2 LIMIT 1;SELECT * FROM t3 LIMIT 1; +------+------+ | m1 | n1 | +------+------+ | 1 | a | +------+------+ 1 row in set (0.00 sec) +------+------+ | m2 | n2 | +------+------+ | 2 | b | +------+------+ 1 row in set (0.00 sec) +------+------+ | m3 | n3 | +------+------+ | 3 | c | +------+------+ 1 row in set (0.00 sec) mysql>
untuk menyesuaikan simbol pada penghujung input pernyataan pengesanan MySQL
, iaitu apa yang dipanggil delimiter
, contohnya: MySQL
mysql> delimiter $ mysql> SELECT * FROM t1 LIMIT 1; -> SELECT * FROM t2 LIMIT 1; -> SELECT * FROM t3 LIMIT 1; -> $ +------+------+ | m1 | n1 | +------+------+ | 1 | a | +------+------+ 1 row in set (0.00 sec) +------+------+ | m2 | n2 | +------+------+ | 2 | b | +------+------+ 1 row in set (0.00 sec) +------+------+ | m3 | n3 | +------+------+ | 3 | c | +------+------+ 1 row in set (0.00 sec) mysql>
delimiter $
命令意味着修改语句结束分隔符为$
,也就是说之后MySQL
客户端检测用户语句输入结束的符号为$
。上边例子中我们虽然连续输入了3个以分号;
结尾的查询语句并且按了回车键,但是输入的内容并没有被提交,直到敲下$
符号并回车,MySQL
客户端才会将我们输入的内容提交到服务器,此时我们输入的内容里已经包含了3个独立的查询语句了,所以返回了3个结果集。
我们也可以将语句结束分隔符
重新定义为$
以外的其他包含单个或多个字符的字符串,比方说这样:
mysql> delimiter EOF mysql> SELECT * FROM t1 LIMIT 1; -> SELECT * FROM t2 LIMIT 1; -> SELECT * FROM t3 LIMIT 1; -> EOF +------+------+ | m1 | n1 | +------+------+ | 1 | a | +------+------+ 1 row in set (0.00 sec) +------+------+ | m2 | n2 | +------+------+ | 2 | b | +------+------+ 1 row in set (0.00 sec) +------+------+ | m3 | n3 | +------+------+ | 3 | c | +------+------+ 1 row in set (0.00 sec) mysql>
我们这里采用了EOF
作为MySQL
客户端检测输入结束的符号,是不是很easy啊!当然,这个只是为了方便我们一次性输入多个语句,在输入完成之后最好还是改回我们常用的分号;
吧:
mysql> delimiter ;
小贴士: 我们应该避免使用反斜杠(\)字符作为语句结束分隔符,因为这是MySQL的转义字符。
推荐学习:mysql视频教程
Atas ialah kandungan terperinci Mari kita bincangkan tentang asas pembolehubah tersuai MySQL dan pembatas akhir pernyataan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!