当前位置: 首页>> 管理中心 >> 河南中心 >> 资讯
姓名:张豪飞
学校:河南职业技术学院
专业:计算机网络技术
年级:12级
自我介绍:网络专业学生,喜欢网络渗透测试
视频:http://v.youku.com/v_show/id_XNjE1MTIzMjc1.html
LUPA实训报告
很荣幸的加入到了lupa的学习社区,相信在这里可以有很大的提高,我有信心。
完成技术面试和社交面试后,第一个准任务是“开源软件许可协议简介”,介绍了几种开源协议,这才对开源文化有了些真正的了解,例如,开源不仅仅是开放源代码,而是带动更多的人去开源,这是一种可以一直传递下去的精神。
第二任务是“atm数据库设计”,看到这个题目乍一看挺难的,而且环境要求mysql,只接触过mssql,所以必须要重新学习一下了,想到这里就无从下手,好的是毕竟mysql和mssql都是sql,只有各自扩展的语句不同,还是很相似的,所以硬头皮开始学习mysql。
手头没有资料,所以去搜索了一些关于mysql的文档,简单对照mssql浏览了一遍,还好,我还是比较有信心的,所以就开始继续深入了。
先是创建数据库、数据表和插入、更新数据以及创建视图、索引,这些和mssql还是基本一样的,所以可以做下来,但是好长时间没碰mssql了,所以还是显得有点陌生,但是方法还是知道的,然后参考一些sql的文档就做了过了,虽然也有不少小错误,但是几经调试都没有问题了。
再继续是存储过程,这个在学mssql时没怎么做过,所以很陌生,没办法,去看看mysql的存储过程的资料吧,说实话,这个存储过程占用了我完成这个ATM数据库设计任务的很大一部分时间,从关键字到调用变量的细节,看了各种资料,算是完完整整的学了下来。这个问题是创建随机卡号的存储过程,我对mysql的函数不熟悉,所以先去网上看看有没有类似的存储过程,然后只找到了个类似的,但是是mssql的语句,所以需要修改很多地方才能用于mysql,例如存储过程有多行代码需要用DELIMITER定义一个“;”号之外的其他结束标志符号,开始也不需要使用as关键字,特别是mysql的存储过程中定义变量不能在前面加“@”符号。
产生随机卡号这里我是基于当前时间产生的随机数,然后调试执行时会报错,说主键不能重复,运行了无数遍后才突然想起来,这里用时间产生随机数会有个问题,那就是sql两条语句执行会非常快,这样的话在极短时间内产生的随机数一样,所以到时重复,这该怎么办呢,要重新写一个其他方法吗,不,我想到了延时,我们可以调用函数来延长这两条语句直接的时间到一定程度来生成不同的卡号。在开户调用这个存储函数的两条语句直接加了一条语句:select benchmark(20000000,md5(1));,这个语句可以产生一定的延时,所以这样便解决了问题。虽说这样不够严谨但还是一种方法,解决问题的思想值得借鉴的。
还剩下事务和创建用户了,看看资料没什么大问题。
最后导师跟我私信提了几个问题,我觉得还是很有必要的。第一,创建数据库和数据表时要先检查是否存在,如果存在的话删除之后再创建。这个问题确实忽略了,但是建存储过程时还是判断了呢。第二, 建表和加约束条件最好分离,增强代码的可读性。这个我觉得是需要时刻注意的,不仅仅是sql语句,编程需要有很好的代码风格,这是必须的。
在lupa学习的这段时间,最大的收获就是学会来从各个途径收集、整合信息和资源,这样那些好的知识、资源才能为我所用,可以很好的提高学习工作效率。
想成为导师,你也可以!点击www.lupa.cn ,加入LUPA人才芯片工程!
下一篇: