• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 思想汇报 > 正文

    MySQL实验报告5存储过程与函数11x

    时间:2020-10-07 12:29:00 来源:勤学考试网 本文已影响 勤学考试网手机站

    四、实验内容及程序代码

    1、sch数据表的表结构如表7、1所示,sch表的数据如表7、2

    表7、1 sch 表结构

    字段名

    数据类型

    主键

    外键

    非空

    唯一

    自增

    id

    INT(10)

    就是

    就是

    就是

    n ame

    VARCHAR(50)

    就是

    class

    VARCHAR(50)

    就是

    表7、2 sch表的内容

    id

    n ame

    class

    1

    李明

    C1

    2

    小梅

    C2

    1)建表sch并插入数据。

    LMLdDdse uidriyeu

    mysql> 匚reate table sch(

    > i d i nt(10) pri mary key,

    -> neme varchar(50) not null,

    -> class varchar(50) not nul1);

    Query OK, 0 rows affected (0.42 sec)

    mysql> i nsert into sch values (1, ' 明"「匚1?儿〔2「小梅',rc2 r); Query OK, 2 rows affected CO. 10 sec^)

    Records: 2 Duplicates: 0 Warnings: 0

    创建一个存储函数,用来统计表sch中的记录数。

    delimiter $$

    create PROCEDURE coun t_sch5(out size int)

    BEGIN

    select coun t(*) into size from sch;

    END

    $$

    delimiter;

    TOC \o "1-5" \h \z tzmTI 1 rz <1 li rTt_£ <_ K i ;

    Qu ery OK w IL ir-ow aLiF"Fe<z t ed CO' - 08 se<= 5

    my s q 1 > sdaut 住;

    *—— *

    I 〒2已 I

    鲁 +

    2 I

    1 row i n 乞已七 €0. 0*0 s e<z J

    3)创建一个存储过程,通过调用存储函数的方法来获取表 sch中的记录数与sch表中id的与。

    delimiter $$

    create PROCEDURE coun t_sch2(out s_a in t,out s_id int) BEGIN

    select coun t(*) into s_a from sch;

    select sum(id) as s_id from sch;

    END

    $$

    delimiter;

    + +

    I s_id I

    4 4

    I 3 I

    1 row in set 〔0.01 sec)

    2、创建一存储过程 in sert_stude nt_con dition_user, 利用自定义错误触发条件定义

    当插入学生的性别不就是 “男”或“女”时结束存储过程,并提示“学生性别不正确”

    表7、3 student 表结构

    字段名

    数据类型

    主键

    外键

    非空

    唯一

    自增

    sno

    Char(10)

    就是

    就是

    就是

    sn ame

    VARCHAR(20)

    就是

    ssex

    CHAR(2)

    就是

    Sage

    smalli nt

    就是

    Sdept

    VARCHAR(30)

    就是

    en terdate

    datetime

    就是

    delimiter $$

    create PROCEDURE insert_student_condition_user(in sno int,in sname

    VARCHAR(20),

    in ssex varchar(2),i n sage in t,i n sdept varchar(30))

    BEGIN

    DECLARE continue han dler for sqlstate '42S02' select ' 学生性别不正确 ';

    if ssex=' 男'or ssex=' 女'THEN

    insert into stude nt values(s no,sn ame,ssex,sage,sdept);

    end if;

    end $$ delimiter;

    她',20,'C1');call in sert_stude nt_con diti on _user(1,'pqw','

    她',20,'C1');

    drop PROCEDURE in sert_stude nt_co ndition_user;

    信息

    结栗1

    畴兄

    孚圭宓KIM

    卜学主性別KU确

    3、创建一存储过程 update_student_borthyear, 在学生表(表结构如表 7、3)中添加

    字段” borthyear ”(出生年份),在存储过程中利用游标 ,通过学生年龄计算出出生年

    份并修改表中对应字段。

    create procedure update_stude nt_borthyear(i n s_no char(10))

    BEGIN

    declare s_age char(10);

    declare state char(20);

    declare cur cursor for select sage from stude nt;

    declare exit han dler for 1329 set state='error';

    ope n cur;

    REPEAT

    fetch cur into s_age;

    update stude nt set borthyear=2018-s_age where sno=s_no;

    un til state='error'

    end repeat;

    close cur;

    END

    sro sname ssexugesdept

    sro sname ssex

    uge

    sdept

    borthyea*

    ?

    201818 pqw S

    18

    Ci

    call update_stude nt_borthyear(201818);

    mysql语句对于大小写不敏感,所以在写的时候要注意区分,整整找了半个小时的错误。

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问