Mysql学习笔记(七)mysql编程基础之自定义函数。

delimiter $$
create function fn_liangzifunction() returns int
no sql
begin
    set @row_no = @row_no + 1;
    return @row_no;
end;
$$
delimiter ;

delimiter $$
create function fn_get_name(student_num int) returns char(50)
reads sql data
begin
    declare student_names char(50);
    select student_name into student_names from student where student_no = student_num;
    return student_names;
    end;
$$
delimiter ;

#将查询结果赋予变量。

delimiter $$
create function fn_get_choose_count(student_no1 int) returns int(50)
reads sql data
begin
    declare choose_num int(50);
    select count(*) into choose_num from choose where student_no = student_no1;
    return choose_num;
end;
$$
delimiter ;

delimiter $$
create function fn_get_name(no int,role char(50)) returns char(50)
reads sql data
begin
    declare name char(50);
    if(‘student‘=role) then
        select student_name into name from student where student_no=no;
    elseif(‘teacher‘=role) then
        select teacher_name into name from teacher where teacher_no=no;
    else set name = ‘输入有误‘;
    end if;
    return name;
end;
$$
delimiter ;

#if else
delimiter  $$
create function fn_get_name(no int,role char(20)) returns char(20)
reads sql data
begin
    declare name char(20);
    if(role=‘student‘) then
        select student_name into name from student where student_no=no;
    elseif(role=‘teacher‘) then
        select teacher_name into name from teacher where teacher_no=no;
    else set name=‘输入错误‘;
    end if;
    return name;
end;
$$
delimiter ;

#switch case

delimiter $$
create function fn_get_week(week_no int) returns char(20)
no sql
begin
    declare week char(20);
    case week_no
        when 0 then set week = ‘星期一‘;
        when 1 then set week = ‘星期二‘;
        when 2 then set week = ‘星期三‘;
        when 3 then set week = ‘星期四‘;
        when 4 then set week = ‘星期五‘;
        else set week = ‘今天休息‘;
    end case;
    return week;
end;
$$
delimiter ;

#根据现在的时间判断问候语

delimiter $$
create function fn_get_hello(time int) returns char(20)
no sql
begin
    declare hello char(20);
    if(time < 9) then
        set hello = ‘早上好‘;
    elseif( 9 < time and time <= 12) then
        set hello = ‘上午好‘;
    elseif( 12 < time and time <= 18) then
        set hello = ‘下午好‘;
    elseif(18 < time and time < 22)   then
        set hello = ‘晚上好‘;
    else
        set hello = ‘晚安‘;
    end if;
    return hello;
end;
$$
delimiter ;

#练习switch case 语句

delimiter $$
create function fn_get_myweek(day int) returns char(50)
no sql
begin
    declare weekname char(50);
    case day
        when 1 then set weekname = ‘星期一‘;
        when 2 then set weekname = ‘星期2‘;
        when 3 then set weekname = ‘星期3‘;
        when 4 then set weekname = ‘星期4‘;
        when 5 then set weekname = ‘星期5‘;
        else set weekname = ‘星期日‘;
    end case;
    return weekname;
end;
$$
delimiter ;

#while语句
#和其他编程一样,当条件表达式值为true时,就一直执行循环体,直到条件表达式为false。

delimiter $$
create function fn_get_mysum(num int) returns int
no sql
begin
    declare sum int default 0;
    declare start int default 0;
    while start < num do
        set start = start + 1;
        set sum   = sum   + start;
    end while;
    return sum;
end;
$$
delimiter ; 

#while中的内部控制语句
#leave   相当于php循环中的break了。
# 至于下面的add_num,相当于给while的循环起一个名字。

delimiter $$
create function fn_get_sum1(n int) returns int
no sql
begin
    declare sum   int  default 0;
    declare start int  default 0;
    add_num : while true do
        set start = start + 1;
        set sum   = sum   + start;
        if(start = n) then
          leave add_num;
        end if;
    end while add_num;
    return sum;
end;
$$
delimiter;
时间: 2024-12-28 16:37:48

Mysql学习笔记(七)mysql编程基础之自定义函数。的相关文章

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

MySQL学习笔记之一 MySQL入门

本人之前接触的关系型数据库主要是oracle和sqlserver,而对于mysql知之甚少,但查阅网上资料发现,mysql与oracle非常相似,所以学起来应该不会很费劲,在总结的时候可能更多的把关注点放在它与oracle的不同之处. 一.简介 MySQL是一个真正的多用户.多线程SQL数据库服务器.SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言.MySQL是一个客户端/服务器结构的实现, 它由一个服务器守护程序mysqld和很多不同的客户程序和库组成. MySQL的普及并不局限于

java学习笔记14--多线程编程基础1

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易

MySQL学习笔记 初涉MySQL

1.在Linux下安装MySQL # yum -y install mysql mysql-server mysql-devel        修改字符集:/etc/my.conf配置文件 vi /etc/my.conf [mysqld] default-character-set=utf8 character_set_server=utf8 [client] default-character-set=utf8 2.启动和停止MySQL服务 # service mysqld start 3.登

MySQL学习笔记七:存储引擎

1.MySQL存储引擎的设计采用“插件式”方案,用户可以很方便地选择使用哪种存储引擎,想使用mysql没有提供的引擎时,可以自己安装进去. 查看支持的存储引擎 mysql> show engines\G *************************** 1. row *************************** Engine: FEDERATED Support: NO Comment: Federated MySQL storage engine Transactions: N

mysql查询语句(mysql学习笔记七)

Sql语句 一般顺序GHOL : group by,having ,order by,limit     如果是分组,应该使用对分组字段进行排序的group by语法                     Limit start ,length                    去除重复记录默认为all Select distinct 字段  from Select distinct * from 没用(所有字段组合不相同才认为不相同,用在这里基本没用),记录值完全一样时取其一个 Unio

MySQL学习笔记之MySQL安装详解

前言 虽然现在NoSQL发展迅速,但MySQL还是非常受欢迎的,成千上万的公司依旧采用LAMP OR LNMP的搭配来进行开发,因此MYSQL的学习还是有一定的必要. 安装环境:Windows 7,需要.NET FRAMEWORK 4.0的支持 MySQL版本:5.6.10.1 安装 1.双击SETUP安装文件开始安装,前面的三步都是点“下一步”即可. 2.到第四步出现如下图所示界面. 这步我是选择Custom安装类型,比较自由,然后指定安装目录和存放数据目录. 3.接下来的几步都可以直接“下一

mysql学习笔记之十二(存储过程和函数)

存储过程和函数,一种数据库对象,用来实现将一组关于表操作的SQL语句代码当做一个整体来执行,也是与数据库对象表关联最紧密的数据库对象.在数据库系统中,当调用存储过程和函数时,则会执行这些对象中所设置的sql语句组从而实现相应的功能. 一.存储过程和函数的相关概念 针对表的一个完整操作往往不是单条sql语句就可以实现,而是需要一组sql语句来实现. 例: 为了购买商品的订单处理: (1)在生成订单之前,首先需要查看商品库存中是否有相应的商品 (2)如果库存中存在相应的商品,按着需要预定商品以便不将

MySQL学习笔记1 mysql简介

查询使用sql语言,(结构化查询语言) 传统数据库遵循ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解. nosql (不遵循ACID) 关于sql与nosql google bigtable /amazon dynamo 开源 facebook cass