MySQL学习之路7-索引、事务、函数、存储过程、游标
索引
- 使用索引快速定位某列中特定值的行,不需要遍历数据表所有行。
- 创建索引的数据结构:BTREE and HASH。
- 主键也是一种索引,Primary key。
show index from orders;#显示索引 alter table orders add index oid_index(oid);#添加索引 drop index oid_index on orders;#删除索引
自定义函数
#自定义函数
delimiter //
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;#删除自定义函数
存储过程
- 完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数来调用执行。
#存储过程
delimiter //
create procedure info(score int)
begin
select * from stuscore where Math>score;
end //
delimiter ;
call info(90);#调用存储过程
drop procedure info;#删除存储过程
事务
- 维护数据库的完整性,保证成批的SQL语句要么完全执行,要么都不执行。
create table bank_account(
id int unsigned auto_increment primary key,
account_name varchar(10),
account_balance decimal(10,2)
);
show tables;
insert into bank_account(account_name,account_balance)
values
('客户A',500),
('客户B',300);
begin;#开启事务
update bank_account set account_balance = 400 where account_name = '客户A';
update bank_account set account_balance = 400 where account_name = '客户B';
rollback;#回退
commit;#提交
select * from bank_account;
游标
- 每一行的显示select查询的结果集。
delimiter //
create procedure info_cursor()
begin
declare var_id int(10);
declare var_stuname varchar(20);
declare var_math decimal(5,1); #创建游标
declare score_cursor cursor FOR
select stuid,stuname,Math from stuscore where class = 1; #打开游标
open score_cursor; #使用游标
fetch score_cursor into var_id,var_stuname,var_math;
select var_id,var_stuname,var_math; #关闭游标
close score_cursor; end //
delimiter ;
call info_cursor();#调用游标
2020-03-14 19:54
MySQL学习之路7-索引、事务、函数、存储过程、游标的更多相关文章
- MySQL之视图、触发器、事务、存储过程、函数 流程控制
MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上全部 ...
- day 40 MySQL之视图、触发器、事务、存储过程、函数
MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上 ...
- MySQL学习之路(一)——初涉MySQL。
MySQL学习之路(一) 1.1MySQL的概述 MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据库管理系统. MySQL分为社区版和企业版. 1 ...
- MySQL 的视图、触发器、事务、存储过程、函数
MySQL 的视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句 ...
- MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引
本文内容: 视图 触发器 事务 存储过程 内置函数 流程控制 索引 ------------------------------------------------------------------ ...
- MySQL之试图、触发器、事务、存储过程、函数
阅读目录 一.视图 二.触发器 三.事务 四.存储过程 五.函数 六.流程控制 一.视图 视图是一个虚拟表(非真实存在),是跑到内存中的表,真实表是硬盘上的表,怎么就得到了虚拟表,就是你查询的结果,只 ...
- MySQL学习(二)索引原理及其背后的数据结构
首先区分几个概念: 聚集索引 主索引和辅助索引(即二级索引) innodb中每个表都有一个聚簇索引(clustered index ),除此之外的表上的每个非聚簇索引都是二级索引,又叫辅助索引(sec ...
- MySql 学习之路-高级1
Mysql自学之路-高级1 目录: 1.CREATE DATABASE 创建数据库 2.CREATE TABLE 创建数据表 3.INSERT INTO SELECT 把一个表中的数据拷贝到另一个表中 ...
- MySql 学习之路-基础
Mysql 自学之路 本文包含基础部分与高级部分 一.基础 数据库操作 Show databases:显示所有的数据库 Show tables: 显示所有的数据库表 Use databasename: ...
随机推荐
- tkinter学习1
GUI 用户交互界面 tkinter 介绍 tkinter是 python自带的gui库,对图像处理库tk的封装 #导入tkinter库 import tkinter #创建主窗口对象 root = ...
- div中单行文字垂直水平居中
1.div中单行文字垂直水平居中.条件:外层div高度已经给定.代码如下: 复制代码代码如下: <style type="text/css">.div3{border: ...
- Spyder——科学的Python开发环境
刚开始接触Python的时候,网上找到的资料基本上上来就是介绍Python语言,很少有对开发环境进行讲解的,但如果在学习的过程中不断练习,这样效率会更高,所以特意将一个Python的开发环境Spyde ...
- mysqli_query($conn, "set names utf8"); //**设置字符集*** 不设置插入数据库就是乱码
mysqli_query($conn, "set names utf8"); //**设置字符集*** 不设置插入数据库就是乱码
- Spring Boot框架——快速入门
Spring Boot是Spring 全家桶非常重要的一个模块,通过 Spring Boot 可以快速搭建一个基于 Spring 的 Java 应用程序,Spring Boot 对常用的第三方库提供了 ...
- Journal of Proteomics Research | 构建用于鉴定蓖麻毒素的串联质谱库
文章题目:Constructing a Tandem Mass Spectral Library for Forensic Ricin Identification 构建用于鉴定蓖麻毒素的串联质谱库 ...
- Mol Cell Proteomics. | MARMoSET – Extracting Publication-ready Mass Spectrometry Metadata from RAW Files
本文是马克思普朗克心肺研究所的三名研究者Marina Kiweler.Mario Looso和Johannes Graumann发表在8月刊的MCP的一篇文章. 由于Omics实验经常涉及数百个数据文 ...
- canvas绘制折线图
效果图: 重难点: 1.画布左上角的顶点的坐标为(0 ,0),右下角的坐标最大,与平常思维相反 2.数据的处理 html代码: <!DOCTYPE html><html lang=& ...
- POJ1523 Tarjan求割点以及删除割点之后强连通分量的数量
题目链接:http://poj.org/problem?id=1523 SPF:A Single Point of Failure也就是割点(一个点导致网络之间的不连通),由于给出的图是无向图,所以只 ...
- 第二周Java实验作业
实验二 Java基本程序设计(1) 实验时间 2018-9-6 1.实验目的与要求 (1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤: (2)掌握Eclipse集成开发环境下导入Ja ...