mysql 回退查询_MySQL基础三

索引

什么是索引?

类似于书的目录,需要几页纸来存放目录,但通过目录可快速定位到章、节部分。

索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。

主键索引

主键也是一个特殊索引

primary key

查看索引

show index from class;

创建索引

create index classindex on class(stuid);

alter table course add index index_name(name);

删除索引

drop index classindex on class;

自定义函数

创建自定义函数

#y=2*x + 1

delimiter // #delimiter代表改变SQL语句结束符号

create function LinearFunction(x int)

returns int

begin

declare y int;

set y=2*x+1;

return y;

end //

delimiter ;

select LinearFunction(5);

删除自定义函数

drop function LinearFunction;

存储过程

就是为了以后的使用而保存的一条或多条MySQL语句的集合,可以将其视为批处理文件,虽然它们的作用不仅限于批处理。

创建存储过程

select * from stuscore where Math>90;

delimiter //

create procedure info(score int)

begin select * from stuscore where Math>score;

end //

delimiter ;

call info(80);

删除存储过程

drop procedure info;

事务

用来维护数据库的完整性

保证成批的sql操作要么完全执行,要么完全不执行

比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。

一些术语

事务(transaction)

一组sql语句

回退(rollback)

撤销指定sql语句的过程

提交(commit)

将为存储的sql语句结果写入数据表

保留点(savepoint)

事务处理中设置的临时占位符,可以对它发布回退

使用事务

开启事务

create table blank_account(

id int unsigned auto_increment primary key,

account_name varchar(10),

account_blance decimal(10,2)

);

insert into blank_account(account_name, account_blance) values('客户A','500'),('客户B','300');

select * from blank_account;

创建事务

begin;

update blank_account set account_blance=400 where id=1;

update blank_account set account_blance=400 where id=2;

#如果以上任意一条语句发生异常,则运行rollback

rollback;

commit;

select * from blank_account;

游标

一个存储在MySQL服务器上的数据库查询,被select语句检索出来的结果集,在存储了游标之后,可以根据需要滚动或浏览其中的数据

主要用于交互式应用,用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改

只能用于存储过程

常用操作

以MySQL基础二中的stuscore表为例子

select * from stuscore;

delimiter //

create procedure stuscore_cursor()

begin

declare var_id int(10);

declare var_stuname varchar(20);

declare var_Math decimal(5,1);

declare var_English decimal(5,1);

#创建游标

declare score_cursor cursor for

select stuId,stuName,Math,English from stuscore where class='1';

#打开游标

open score_cursor;

#使用游标

fetch score_cursor into var_id,var_stuname,var_Math,var_English;

select var_id,var_stuname,var_Math,var_English;

#关闭游标

close score_cursor;

end //

delimiter ;

call stuscore_cursor();

标签:account,基础,索引,delimiter,stuscore,MySQL,var,select

来源: https://blog.csdn.net/zoe_0628/article/details/100526112

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值