MySQL编程

SQL文件链接在最下面

MySQL编程

MySQL编程的实用:数据库开发人员可以将功能复杂、使用频繁的MySQL代码封装成MySQL存储过程,从而提高MySQL代码的重用性。

 

一、用户自定义变量:

用户自定义变量用于存储MySQL存储程序运行期间所产生的临时变量,它分为用户会话变量和局部变量。

如下做出用户会话变量练习:

1.1、用户会话变量 ,set 命令可以创建和赋值用户变量;select命令可以输出用户变量;

 

set @userName='张三',@age=18;
set @age=@age+1;
select @userName,@age;

 

1.2 、使用会话select命令也可以创建和赋值用户变量;

select @userName:='李四';
select @userName;

1.3、统计“优乐网”商品的数量,并将该数量赋值给用户会话变量@productNum。

(1)方法一:使用set+子查询

 

set @productNum=(select count(*) from product);
select @productNum;

 

(2)方法二:使用select+子查询

select @productNum:=(select count(*) from product);
select @productNum;

(3)方法二的三种简化形式

select count(*) into @productNum from product;
select count(*) from product into @productNum;
select @productNum:=count(*) from product;

 

第二节、存储过程:

SQL语句的执行遵循“先编译在执行”原则,而存储过程(Stored Procedure)完美体现了这一原则。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程中的名字并给定参数来调用执行它。

 

delimiter $$
create procedure procedure_productInfo()
begin
   select * from product;
end;
$$
delimiter ;

call procedure_productInfo();

 

begin end 相当于{}  里面可以有多条SQL语句,其中,默认情况下每条SQL语句的结束标记是“ ; ”(效果是结束该命名)。有时候会有多条MySQL语句密不可分,不能中途结束命令,所以需要通过操作临时的重新设置命令结束标记。

delimiter $$ 自定义结束符号

 

 

如下做出用户会话变量练习:

2.1、临时的重新设置命令结束标记;

 

delimiter $$
delimiter ;

 

2.2创建一个名为 proc_product_info 的存储过程,其将获取所有商品的标题、类型名、团购价、地区名和商店名,并按照类型和团购价升序显示;

 

drop procedure if exists proc_productInfo;
delimiter $$
create procedure proc_productInfo()
begin
  select title 标题,categoryName 类型名,currentPrice 团购价,areaName 地区名,shopName 商店名
  from product,category,area,shop
  where product.categoryID=category.categoryID and product.areaID=area.areaID and product.shopID=shop.shopID
  order by categoryName,currentPrice;
end
$$
delimiter ;

call proc_productInfo();

 

2.3创建一个名为 proc_ProductStatistics 的存储过程,将获取不同类型的商品服务的个数和平均团购价;

 

drop procedure if exists proc_ProductStatistics;
delimiter $$
create procedure proc_ProductStatistics()
begin
   select categoryName 商品型名,count(product.productID) 商品数量,avg(currentPrice) 评价团购价
   from product,category
   where product.categoryID=category.categoryID
   group by categoryName;
end
$$
delimiter ;

call proc_ProductStatistics();

 

...........

 

 

 

总之,定义和使用自定义变量会让 SQL 语句更加灵活和易于管理。

 

posted @ 2023-09-12 14:08  编程小白-新成  阅读(141)  评论(0编辑  收藏  举报