• Mysql程序控制流语句


    create database xskc character set=utf8;
    use xskc;
    create table s(sno char(2) primary key,sname char(10),ssex char(2),sage smallint,ssdept char(4));
    insert into s values('01','AAA','女',17,'IS');
    insert into s values('02','BBB','男',18,'IS');
    insert into s values('03','CCC','女',17,'CS');
    insert into s values('04','DDD','男',19,'CS');
    insert into s values('05','EEE','男',18,'CS');
    insert into s values('06','FFF','女',17,'CS');
    create table c(cno char(3) primary key,cname char(12),cpno char(3),credit smallint);
    insert into c values('c1','程序设计','c2',2);
    insert into c values('c2','高等数学','c2',3);
    insert into c values('c3','数据结构','c1',3);
    insert into c values('c4','离散数学','',2);
    insert into c values('c5','人工智能','c4',2);
    create table sc(sno char(2) not null,cno char(3) not null,grade smallint,primary key(sno,cno));
    insert into sc values('01','c1',90);
    insert into sc values('01','c2',80);
    insert into sc values('01','c3',60);
    insert into sc values('02','c1',80);
    insert into sc values('02','c2',70);
    insert into sc values('02','c3',80);
    insert into sc values('03','c1',80);
    insert into sc values('03','c3',70);
    $$
    
    #第一题 1、查询每个学生的姓名,年龄,所在系,并在每个记录行中显示序号
    delimiter $$
    use xskc$$
    set @i=0$$
    create function f1() returns int
       begin
         set @i=@i+1;
         return @i;
       end $$
    
    select f1() row,sname,sage,ssdept from s$$
    +------+-------+------+--------+
    | row  | sname | sage | ssdept |
    +------+-------+------+--------+
    |    1 | AAA   |   17 | IS     |
    |    2 | BBB   |   18 | IS     |
    |    3 | CCC   |   17 | CS     |
    |    4 | DDD   |   19 | CS     |
    |    5 | EEE   |   18 | CS     |
    |    6 | FFF   |   17 | CS     |
    +------+-------+------+--------+
    6 rows in set (0.00 sec)
    
    #第二题 2、定义函数查询某门课程的选课人数
    create function f2(name char(10)) returns int
        begin
           return (select count(*) from sc where cno=(select cno from c where cname=name));
        end$$
    set @name='查询课程'$$
    select f2(@name) sum $$
    +------+
    | sum  |
    +------+
    |    3 |
    +------+
    1 row in set (0.00 sec)
    
    
    #练习题 3、查询每个学生的姓名,年龄,所在系,并在每个记录行中显示序号,期中序号生成用函数实现
    create function f3(cj int) returns char(2)
    begin
      declare dj char(2);
      case
        when cj>=90 then set dj='优';
        when cj>=50 then set dj='良';
        when cj>=70 then set dj='中';
        when cj>=60 then set dj='及';
        else set dj='不';
      end case;
    return dj;
    end$$
    
    select sno,cno,grade,f3(grade) from sc$$
    +-----+-----+-------+-----------+
    | sno | cno | grade | f3(grade) |
    +-----+-----+-------+-----------+
    | 01  | c1  |    90 | 优        |
    | 01  | c2  |    80 | 良        |
    | 01  | c3  |    60 | 良        |
    | 02  | c1  |    80 | 良        |
    | 02  | c2  |    70 | 良        |
    | 02  | c3  |    80 | 良        |
    | 03  | c1  |    80 | 良        |
    | 03  | c3  |    70 | 良        |
    +-----+-----+-------+-----------+
    8 rows in set (0.00 sec)
    

      

  • 相关阅读:
    Toad 常用快捷键
    Oracle Form删除list项
    不得重新使用的登录口令
    OE_ORDER_PUB.PROCESS_ORDER to Release a hold on sales order in R12
    OE_ORDER_PUB.PROCESS_ORDER to Apply hold on a sales order
    说明性弹性域段
    使用VPD解决EBS中信息屏蔽问题
    Oracle EBS客户化程序中格式化金额
    Form开发中组件控制的几个常用方法
    .Net的差评
  • 原文地址:https://www.cnblogs.com/thx2199/p/14844701.html
Copyright © 2020-2023  润新知