MySql存储过程简单说明

-- --------------------------
-- ######存储过程##
-- 存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来执行这些sql语句命令
-- --------------------------

-- 创建不带参数的存储过程
-- 创建一个查看总数的存储过程
-- 验证
DROP PROCEDURE IF EXISTS SELECT_COUNT;
-- 创建
CREATE PROCEDURE SELECT_COUNT()
BEGIN
	SELECT COUNT(id) FROM websites;
END;
-- 调用存储,查看结果
CALL SELECT_COUNT();


-- 创建一个带参数的存储过程
-- 根据名字查询总数
-- 验证
DROP PROCEDURE IF EXISTS SELECT_NAME_COUNT;
-- 创建
CREATE PROCEDURE SELECT_NAME_COUNT(in _name VARCHAR(225))
BEGIN
	SELECT COUNT(id) FROM websites WHERE `name`=_name;
END;
-- 调用存储,查看结果
CALL SELECT_NAME_COUNT('小米');

-- 创建带有输出参数的存储过程
-- 根据名字查询的信息,返回其对应的网站
-- 验证
DROP PROCEDURE IF EXISTS SELECT_BYNAME_URL; 
-- 创建
CREATE PROCEDURE SELECT_BYNAME_URL(
	in _name VARCHAR(225), -- 输入参数
	out _url VARCHAR(225), -- 输出参数
	inout _country VARCHAR(225) -- 输入输出参数
)
BEGIN
	SELECT url FROM websites WHERE`name`=_name
	AND country =_country
	INTO _url;
END;
-- 调用存储,查看结果
SET @_country = 'CN';
SET @_name = '淘宝';
CALL SELECT_BYNAME_URL(@_name,@_url,@_country);
SELECT @_name ,@_url ,@_country ;


-- 创建带有通配符的存储过程(模糊查询)
DROP PROCEDURE IF EXISTS SELECT_BYNAME_LIKE;
CREATE PROCEDURE SELECT_BYNAME_LIKE(in _likename VARCHAR(225))
BEGIN
		SELECT * FROM websites WHERE `name` LIKE _likename;
END;
-- 调用
CALL SELECT_BYNAME_LIKE('%米%');

-- 使用存储过程进行增删改
-- 添加信息
DROP PROCEDURE IF EXISTS ADD_websites;
CREATE PROCEDURE ADD_websites(
	_id INT(11),
	_name VARCHAR(225),
	_url VARCHAR(225),
	_alexa INT(11),
	_country VARCHAR(225)
)
BEGIN
	INSERT INTO  websites(id,name,url,alexa,country)
	VALUES(_id,_name,_url,_alexa,_country);
END;
-- 调用
CALL ADD_websites(9,'日报','hwww.xxoo.x','122','CN');

-- 修改信息
-- 根据id修改信息
DROP PROCEDURE IF EXISTS UPDATE_websites
CREATE PROCEDURE UPDATE_websites(
	_id INT(11),
	_name VARCHAR(225),
	_url VARCHAR(225),
	_alexa INT(11),
	_country VARCHAR(225)
)
BEGIN
	UPDATE websites SET `name`=_name,url=_url, alexa=_alexa,country=_country  WHERE id=_id;
END;
-- 执行调用
CALL UPDATE_websites(9,'东准','ww12w.21232.com',100,'CN')


-- 根据id删除某条记录
DROP PROCEDURE IF EXISTS DELETE_websites;
CREATE PROCEDURE DELETE_websites( _id INT )
BEGIN
	DELETE FROM websites WHERE id=_id;
END;
-- 测试
CALL DELETE_websites(9);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值