数据库的连接方式、存储过程

连接方式:左关联、右关联、内关联、外关联、全关联
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
)

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