PHP和MySQL Web开发读书笔记---MySQL高级编程

本文介绍了如何使用LOAD DATA INFILE语句加载数据文件到MySQL表中,对比了MyISAM与InnoDB存储引擎的特点,讲解了如何管理事务,演示了如何通过SQL创建存储过程和函数,并给出了具体的示例。

1.使用LOAD DATA INFILE语句载入一个文件,如 load data infile "books.txt" into table books;

该命令把books.txt文件将原始数据读入到books表中,在默认情况下,文件中的数据必须通过Tab键隔开,每一行必须有换行符(\n)进行换行,特殊字符需转义,且每个数据需用单引号包括,要使用该语句,必须具有file权限。

2.常见的存储引擎

  MyISAM--默认引擎,可以被压缩,且可以全文搜索,他们不是事务安全的,而且也不支持外键

  InnoDB--事务安全,且提供了commit和rollback功能,还支持事务安全,且支持外键,但比前者慢

当对一个表格使用大量的select和insert语句时,应该使用MyISAM是最快的,如果需要全文搜索,也用这个;

3.在默认情况下,mysql是自动提交的

  如果我们使用事务安全的表格类型,如InnoDB,要在当前的会话中关闭自动提交,输入该命令即可:set autocommit=0;

  如果自动提交被打开了,则用如下语句开始一个事务:start transaction;,如果关闭了,就不需要使用该命令

  在完成了组成事务的语句后,使用commit将其提交给数据库

  如果改变主意,可以使用rollback将其回滚

4.更改表的类型

  alter table table_name type=innodb

5.存储过程,这边就分析3个例子吧!

第一个:
delimiter // create procedure total_orders(out total float) BEGIN select sum(amount) into total from orders; END // delimiter ;

调用方法:
call tatal_orders(@t)
使用select @t可以查看结构是否正确

 delimiter//语句表示将分隔符从当前值该为//,以保证存储过程中其他符号会被当作代码,而不是分隔符

 create procedure total_orders(out total float)创建了实际的存储过程,名为total_orders,他只有total一个参数,后面的float表明该参数是浮点型的,其中参数可以用IN、OUT、INOUT描述,IN表示该值必须传入到存储过程中,OUT表示该值会被传出或者返回,INOUT表示该值可以传入且可以被存储过程修改,感觉就像是引用的意思吧

 过程体必须封闭在BEGIN和END中,该过程体与常规的select语句相比使用了into total子句,改子句把结果传入到total这个参数中

 最后一个delimiter ;表示把分隔符改回分号

第二个
delimiter // create function add_tax(price float) return float return price*1.1; // delimiter ; 调用方法; select add_tax(100)

 该存储结构创建了一个函数,create function add_tax(price float) return float 这句声明了一个函数,并且表示返回一个浮点数

 

第三个
delimiter // create procedure largest_order(out largest_id int) begin declare this_id int; declare this_amount float; declare l_amount float default 0.0; declare done int default 0; declare continue handler for sqlstate '02000' set done=1; declare c1 cursor for select orderid,amount from orders; open c1; repeat fetch c1 into this_id,this_amount; if not done then if this_amount>l_amount then set l_amount=this_amount; set l_id=this_id; end if; end if; until done end repeat; close c1; set largest_id=l_id; end delimiter ; 调用方式: call largest_order(@l) select @l

最开始的4句是定义局部变量,使用了declare语句,其中l_amount的初始值为0.0

declare done int default 0;该句声明了done变量用来控制循环语句,当查看完所有的行后设置为1

declare continue handler for sqlstate '02000' set done=1;该句声明了continue这个句柄,他将在sqlstate '02000'语句被调用是执行,该语句以为这,该句柄将在无法找到记录后调用

接下来是声明游标c1,declare c1 cursor for select orderid,amount from orders;这只是把结果集保存在c1中,该查询还不会被执行

接下来的open c1;才是真正运行这个操作,fetch语句可以每次从结果集中返回一行,可以在repeat循环中完成此操作

通过该循环把最大值保存在l_id中,最后set largest_id=l_id

6.在定义了过程和函数后,可以用如下语句来查看定义他的代码

  show create procedure procedure_name;

  show create function function_name;

可以用如下语句来删除存储过程

  drop procedure procedure_name;

  drop function function_name;

代码下载地址: https://pan.quark.cn/s/b4a8e0160cfc 齿轮与轴系零件在机械设备中扮演着至关重要的角色,它们负责实现动力传输、调整运动形态以及承受工作载荷等核心功能。 在机械工程的设计实践中,齿轮轴系的设计是一项关键的技术任务,其内容涵盖了材料选用、构造规划、承载能力分析等多个技术层面。 下面将系统性地介绍《齿轮及轴系零件结构设计指导书》中的核心知识点。 一、齿轮设计1. 齿轮种类:依据齿廓轮廓的不同,齿轮可划分为直齿齿轮、斜齿轮以及人字齿轮等类别,各类齿轮均具有特定的性能特点与适用工况,能够满足多样化的工作环境与载荷需求。 2. 齿轮规格参数:模数大小、压力角数值、齿数数量、分度圆尺寸等是齿轮设计的基础数据,这些参数直接决定了齿轮的物理尺寸与运行性能。 3. 齿轮材质选用:齿轮材料的确定需综合评估其耐磨损性能、硬度水平以及韧性表现,常用的材料包括铸铁、钢材、铝合金等。 4. 齿轮强度验证:需进行齿面接触应力分析与齿根弯曲应力分析,以确保齿轮在实际运行过程中不会出现过度磨损或结构破坏。 5. 齿轮加工工艺:涉及切削加工、滚齿加工、剃齿加工、淬火处理等工艺流程,工艺方案的选择将直接影响齿轮的加工精度与使用寿命。 二、轴设计1. 轴的分类方式:依据轴在机械装置中的功能定位与受力特点,可将轴划分为心轴、转轴以及传动轴等类型。 2. 轴的材料选择:通常采用钢材作为轴的材料,例如碳素结构钢或合金结构钢,特殊需求时可选用不锈钢材料或轻质合金材料。 3. 轴的构造规划:需详细考虑轴的轴向长度、截面直径、键槽布置、轴承安装位置等要素,以满足轴的强度要求、刚度要求以及稳定性要求。 4. 轴的强度验证:需进行轴的扭转强度分析与弯曲强度分析,以防止轴在运行过程中发生塑性变形...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值