連接方式:左關聯、右關聯、內關聯、外關聯、全關聯
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
)