mysql存储过程接收表类型_mysql之高级-表格类型,事务,存储过程

本文介绍了MySQL中的数据导入、存储引擎选择、事务处理、外键约束和存储过程。重点讲解了如何使用`LOAD DATA INFILE`命令导入数据,对比了MyISAM和InnoDB存储引擎的特性,探讨了事务的概念与应用,以及如何创建和管理存储过程,包括参数类型、调用及删除。此外,还提及了外键在InnoDB中的设置和存储过程中的局部变量、游标控制结构的使用。
摘要由CSDN通过智能技术生成

1.load data infile

load data infile 'newbooks.txt' into table books;

该命令从newbooks.txt文件将原始数据读入到表books中。

默认情况下,文件中数据字段必须通过tab键进行间隔,而且必须括在单引号内。

同时每行都必须有换行符间隔。特殊字符必须转义。---file权限

2.存储引擎--表格类型

create table tablename type=type----默认myisam类型,他是存储记录和

文件的标准方法。可以被压缩,支持全文搜索,不支持事务,外键。

innodb---事务安全,速度快,支持外键。

对一个表大量使用select,insert语句是,应该使用myisam

当事务非常重要,insert,select语句交错执行的情况下,使用innodb

临时表、、视图--使用memory表格

修改表格类型:alter table orders type=innodb;

3.事务

--确保数据库一致,是一个或一系列的查询,这些查询可以保证能够在数据库中

作为一个整体全部执行或全部不执行。

set autocommit=0 //start transaction;----commit/rollback

4.外键

myisam无法强制使用外键。

设置外键---创建使用外键的表格

create table order_items

( orderid int unsigned not null references orders(orderid)//意味必须包含orders表格中orderid列值。

......

)type=innodb //外键要求,表格类型

alter table order_items add foreign key(orderid) references orders(orderid);

5.存储过程:

1)delimiter //将语句末尾的分隔符从当前值改为双斜杠字符。

2)创建存储过程:create procedure total_orders (out total float)

out表示该参数将被传出或返回。

in表示该值必须传人到存储过程。

inout表示该值必须传人但是可以被存储过程修改。

float表示参数类型

3)调用存储过程:call total_order(@t)

该语句将调用total_orders过程并且传人一个用来保存结果的变量。

4)要查看该结果,需要查看该变量。

select @t;

5)删除存储过程:drop procedure total_orders;

创建一个函数。函数接收输入参数并且返回一个唯一值。

1)delimiter //

2) create function add_tax(price float) returns float

return price*1.1;

3)调用:select add_tax(100);

4)删除函数:drop function add_tax;

局部变量:declare声明

游标和控制结构:

游标类似有一个数组。它将从一个查询获得结果集

并且允许一次只处理一行

1)declare c1 cursor for select orderid,amount from orders.

游标名称c1.

2)open c1;运行查询,要获得每一个数据行,必须运行一个fetch语句。

repeat......until done end repeat;

while condition do ....end while

loop .....end loop

3)fetch c1 into this_id,this_amount;从游标查询中获取一个数据行。

set l_amount=this.amount;

if end if; case end case;

4)close c1;

关闭游标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值