數據庫的連接方式、存儲過程

連接方式:左關聯、右關聯、內關聯、外關聯、全關聯
MySQL數據庫只支持前三種。
左關聯:左表爲主表,顯示左邊全部的和右邊與左邊相同的
右關聯:右表爲主表,顯示右邊全部的和左邊與右邊相同的
內關聯:只顯示滿足條件的!

存儲過程:保存在數據庫上的一段可執行代碼。類似於函數。
它的語法是:
它的語法是:
Create procedure sp_name (參數..)
Begin
SQL語句
End;
調用它的方法:
Call sp_name(參數…); //空參時則括號中不填內容
注意:有個小細節,在寫存儲過程時需要修改分隔符,防止立馬執行,當存儲過程寫完後再將設置還原

示例:
無參存儲過程:

DELIMITER $$  //修改分隔符
CREATE PROCEDURE p1()
BEGIN
    INSERT INTO stud VALUES('1012','劉飛',27,'北京');
    DELETE FROM stud WHERE sno = '1011';
    UPDATE stud SET saddress = '武昌' WHERE sno = '1004';
END $$  //定義結束
DELIMITER ; //分隔符還原
CALL p1(); //調用

帶參數的存儲過程:

DELIMITER $$
CREATE PROCEDURE p2(IN id VARCHAR(15),IN sname VARCHAR(15),IN age INT,IN saddress VARCHAR(30))
BEGIN
    INSERT INTO stud VALUES(id,sname,age,saddress);
END $$
DELIMITER ;
CALL p2('1013','趙高',36,'咸陽');
DROP PROCEDURE p2;

帶返回值的存儲過程:

DELIMITER $$
CREATE PROCEDURE p3(IN id VARCHAR(15),IN sname VARCHAR(15),IN age INT,IN saddress VARCHAR(30),OUT num INT)
BEGIN
    INSERT INTO stud VALUES(id,sname,age,saddress);
    SELECT COUNT(*)INTO num FROM stud;
END $$
DELIMITER ;
CALL p3('1014','趙高',36,'咸陽',@aa);
SELECT @aa;

說到這裏,補一個知識點:命名規則。
系統變量:@@變量名
用戶變量:@變量名

MySQL區分大小寫查詢:
mysql查詢默認是不區分大小寫的 如:
select  * from  table_name where  a like  ‘a%’   
select  * from  table_name where  a like  ‘A%’   
select * from table_name where a like ‘a%’
select * from table_name where a like ‘A%’
效果是一樣的。
要讓mysql查詢區分大小寫,可以:
select  * from  table_name where  binary  a like  ‘a%’  
select  * from  table_name where  binary  a like  ‘A%’   
select * from table_name where binary a like ‘a%’
select * from table_name where binary a like ‘A%’
也可以在建表時,加以標識 
create table table_name(
     a varchar(20) binary
)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章